From 7c68ac24396b5c91f83bceb97680eaeb13ca5c14 Mon Sep 17 00:00:00 2001 From: Prinz23 Date: Sat, 7 May 2016 20:40:34 +0200 Subject: [PATCH] Change improve getting the local timezone information. --- CHANGES.md | 1 + lib/pytz/__init__.py | 1526 +++++++++++++++++ lib/pytz/exceptions.py | 48 + lib/pytz/lazy.py | 168 ++ lib/pytz/reference.py | 127 ++ lib/pytz/tests/test_docs.py | 34 + lib/pytz/tests/test_lazy.py | 313 ++++ lib/pytz/tests/test_tzinfo.py | 843 +++++++++ lib/pytz/tzfile.py | 137 ++ lib/pytz/tzinfo.py | 564 ++++++ lib/pytz/zoneinfo/Africa/Abidjan | Bin 0 -> 170 bytes lib/pytz/zoneinfo/Africa/Accra | Bin 0 -> 840 bytes lib/pytz/zoneinfo/Africa/Addis_Ababa | Bin 0 -> 283 bytes lib/pytz/zoneinfo/Africa/Algiers | Bin 0 -> 760 bytes lib/pytz/zoneinfo/Africa/Asmara | Bin 0 -> 283 bytes lib/pytz/zoneinfo/Africa/Asmera | Bin 0 -> 283 bytes lib/pytz/zoneinfo/Africa/Bamako | Bin 0 -> 170 bytes lib/pytz/zoneinfo/Africa/Bangui | Bin 0 -> 171 bytes lib/pytz/zoneinfo/Africa/Banjul | Bin 0 -> 170 bytes lib/pytz/zoneinfo/Africa/Bissau | Bin 0 -> 208 bytes lib/pytz/zoneinfo/Africa/Blantyre | Bin 0 -> 171 bytes lib/pytz/zoneinfo/Africa/Brazzaville | Bin 0 -> 171 bytes lib/pytz/zoneinfo/Africa/Bujumbura | Bin 0 -> 171 bytes lib/pytz/zoneinfo/Africa/Cairo | Bin 0 -> 1972 bytes lib/pytz/zoneinfo/Africa/Casablanca | Bin 0 -> 1629 bytes lib/pytz/zoneinfo/Africa/Ceuta | Bin 0 -> 2075 bytes lib/pytz/zoneinfo/Africa/Conakry | Bin 0 -> 170 bytes lib/pytz/zoneinfo/Africa/Dakar | Bin 0 -> 170 bytes lib/pytz/zoneinfo/Africa/Dar_es_Salaam | Bin 0 -> 283 bytes lib/pytz/zoneinfo/Africa/Djibouti | Bin 0 -> 283 bytes lib/pytz/zoneinfo/Africa/Douala | Bin 0 -> 171 bytes lib/pytz/zoneinfo/Africa/El_Aaiun | Bin 0 -> 1459 bytes lib/pytz/zoneinfo/Africa/Freetown | Bin 0 -> 170 bytes lib/pytz/zoneinfo/Africa/Gaborone | Bin 0 -> 171 bytes lib/pytz/zoneinfo/Africa/Harare | Bin 0 -> 171 bytes lib/pytz/zoneinfo/Africa/Johannesburg | Bin 0 -> 271 bytes lib/pytz/zoneinfo/Africa/Juba | Bin 0 -> 683 bytes lib/pytz/zoneinfo/Africa/Kampala | Bin 0 -> 283 bytes lib/pytz/zoneinfo/Africa/Khartoum | Bin 0 -> 683 bytes lib/pytz/zoneinfo/Africa/Kigali | Bin 0 -> 171 bytes lib/pytz/zoneinfo/Africa/Kinshasa | Bin 0 -> 171 bytes lib/pytz/zoneinfo/Africa/Lagos | Bin 0 -> 171 bytes lib/pytz/zoneinfo/Africa/Libreville | Bin 0 -> 171 bytes lib/pytz/zoneinfo/Africa/Lome | Bin 0 -> 170 bytes lib/pytz/zoneinfo/Africa/Luanda | Bin 0 -> 171 bytes lib/pytz/zoneinfo/Africa/Lubumbashi | Bin 0 -> 171 bytes lib/pytz/zoneinfo/Africa/Lusaka | Bin 0 -> 171 bytes lib/pytz/zoneinfo/Africa/Malabo | Bin 0 -> 171 bytes lib/pytz/zoneinfo/Africa/Maputo | Bin 0 -> 171 bytes lib/pytz/zoneinfo/Africa/Maseru | Bin 0 -> 271 bytes lib/pytz/zoneinfo/Africa/Mbabane | Bin 0 -> 271 bytes lib/pytz/zoneinfo/Africa/Mogadishu | Bin 0 -> 283 bytes lib/pytz/zoneinfo/Africa/Monrovia | Bin 0 -> 241 bytes lib/pytz/zoneinfo/Africa/Nairobi | Bin 0 -> 283 bytes lib/pytz/zoneinfo/Africa/Ndjamena | Bin 0 -> 225 bytes lib/pytz/zoneinfo/Africa/Niamey | Bin 0 -> 171 bytes lib/pytz/zoneinfo/Africa/Nouakchott | Bin 0 -> 170 bytes lib/pytz/zoneinfo/Africa/Ouagadougou | Bin 0 -> 170 bytes lib/pytz/zoneinfo/Africa/Porto-Novo | Bin 0 -> 171 bytes lib/pytz/zoneinfo/Africa/Sao_Tome | Bin 0 -> 170 bytes lib/pytz/zoneinfo/Africa/Timbuktu | Bin 0 -> 170 bytes lib/pytz/zoneinfo/Africa/Tripoli | Bin 0 -> 655 bytes lib/pytz/zoneinfo/Africa/Tunis | Bin 0 -> 710 bytes lib/pytz/zoneinfo/Africa/Windhoek | Bin 0 -> 1582 bytes lib/pytz/zoneinfo/America/Adak | Bin 0 -> 2365 bytes lib/pytz/zoneinfo/America/Anchorage | Bin 0 -> 2384 bytes lib/pytz/zoneinfo/America/Anguilla | Bin 0 -> 170 bytes lib/pytz/zoneinfo/America/Antigua | Bin 0 -> 170 bytes lib/pytz/zoneinfo/America/Araguaina | Bin 0 -> 896 bytes .../zoneinfo/America/Argentina/Buenos_Aires | Bin 0 -> 1087 bytes lib/pytz/zoneinfo/America/Argentina/Catamarca | Bin 0 -> 1129 bytes .../zoneinfo/America/Argentina/ComodRivadavia | Bin 0 -> 1129 bytes lib/pytz/zoneinfo/America/Argentina/Cordoba | Bin 0 -> 1129 bytes lib/pytz/zoneinfo/America/Argentina/Jujuy | Bin 0 -> 1145 bytes lib/pytz/zoneinfo/America/Argentina/La_Rioja | Bin 0 -> 1143 bytes lib/pytz/zoneinfo/America/Argentina/Mendoza | Bin 0 -> 1173 bytes .../zoneinfo/America/Argentina/Rio_Gallegos | Bin 0 -> 1129 bytes lib/pytz/zoneinfo/America/Argentina/Salta | Bin 0 -> 1101 bytes lib/pytz/zoneinfo/America/Argentina/San_Juan | Bin 0 -> 1143 bytes lib/pytz/zoneinfo/America/Argentina/San_Luis | Bin 0 -> 1171 bytes lib/pytz/zoneinfo/America/Argentina/Tucuman | Bin 0 -> 1157 bytes lib/pytz/zoneinfo/America/Argentina/Ushuaia | Bin 0 -> 1129 bytes lib/pytz/zoneinfo/America/Aruba | Bin 0 -> 208 bytes lib/pytz/zoneinfo/America/Asuncion | Bin 0 -> 2062 bytes lib/pytz/zoneinfo/America/Atikokan | Bin 0 -> 345 bytes lib/pytz/zoneinfo/America/Atka | Bin 0 -> 2365 bytes lib/pytz/zoneinfo/America/Bahia | Bin 0 -> 1036 bytes lib/pytz/zoneinfo/America/Bahia_Banderas | Bin 0 -> 1588 bytes lib/pytz/zoneinfo/America/Barbados | Bin 0 -> 344 bytes lib/pytz/zoneinfo/America/Belem | Bin 0 -> 588 bytes lib/pytz/zoneinfo/America/Belize | Bin 0 -> 976 bytes lib/pytz/zoneinfo/America/Blanc-Sablon | Bin 0 -> 307 bytes lib/pytz/zoneinfo/America/Boa_Vista | Bin 0 -> 644 bytes lib/pytz/zoneinfo/America/Bogota | Bin 0 -> 257 bytes lib/pytz/zoneinfo/America/Boise | Bin 0 -> 2403 bytes lib/pytz/zoneinfo/America/Buenos_Aires | Bin 0 -> 1087 bytes lib/pytz/zoneinfo/America/Cambridge_Bay | Bin 0 -> 2098 bytes lib/pytz/zoneinfo/America/Campo_Grande | Bin 0 -> 2015 bytes lib/pytz/zoneinfo/America/Cancun | Bin 0 -> 816 bytes lib/pytz/zoneinfo/America/Caracas | Bin 0 -> 261 bytes lib/pytz/zoneinfo/America/Catamarca | Bin 0 -> 1129 bytes lib/pytz/zoneinfo/America/Cayenne | Bin 0 -> 200 bytes lib/pytz/zoneinfo/America/Cayman | Bin 0 -> 203 bytes lib/pytz/zoneinfo/America/Chicago | Bin 0 -> 3585 bytes lib/pytz/zoneinfo/America/Chihuahua | Bin 0 -> 1522 bytes lib/pytz/zoneinfo/America/Coral_Harbour | Bin 0 -> 345 bytes lib/pytz/zoneinfo/America/Cordoba | Bin 0 -> 1129 bytes lib/pytz/zoneinfo/America/Costa_Rica | Bin 0 -> 341 bytes lib/pytz/zoneinfo/America/Creston | Bin 0 -> 233 bytes lib/pytz/zoneinfo/America/Cuiaba | Bin 0 -> 1987 bytes lib/pytz/zoneinfo/America/Curacao | Bin 0 -> 208 bytes lib/pytz/zoneinfo/America/Danmarkshavn | Bin 0 -> 714 bytes lib/pytz/zoneinfo/America/Dawson | Bin 0 -> 2093 bytes lib/pytz/zoneinfo/America/Dawson_Creek | Bin 0 -> 1059 bytes lib/pytz/zoneinfo/America/Denver | Bin 0 -> 2453 bytes lib/pytz/zoneinfo/America/Detroit | Bin 0 -> 2216 bytes lib/pytz/zoneinfo/America/Dominica | Bin 0 -> 170 bytes lib/pytz/zoneinfo/America/Edmonton | Bin 0 -> 2402 bytes lib/pytz/zoneinfo/America/Eirunepe | Bin 0 -> 684 bytes lib/pytz/zoneinfo/America/El_Salvador | Bin 0 -> 250 bytes lib/pytz/zoneinfo/America/Ensenada | Bin 0 -> 2356 bytes lib/pytz/zoneinfo/America/Fort_Nelson | Bin 0 -> 2249 bytes lib/pytz/zoneinfo/America/Fort_Wayne | Bin 0 -> 1675 bytes lib/pytz/zoneinfo/America/Fortaleza | Bin 0 -> 728 bytes lib/pytz/zoneinfo/America/Glace_Bay | Bin 0 -> 2206 bytes lib/pytz/zoneinfo/America/Godthab | Bin 0 -> 1877 bytes lib/pytz/zoneinfo/America/Goose_Bay | Bin 0 -> 3219 bytes lib/pytz/zoneinfo/America/Grand_Turk | Bin 0 -> 1287 bytes lib/pytz/zoneinfo/America/Grenada | Bin 0 -> 170 bytes lib/pytz/zoneinfo/America/Guadeloupe | Bin 0 -> 170 bytes lib/pytz/zoneinfo/America/Guatemala | Bin 0 -> 306 bytes lib/pytz/zoneinfo/America/Guayaquil | Bin 0 -> 203 bytes lib/pytz/zoneinfo/America/Guyana | Bin 0 -> 270 bytes lib/pytz/zoneinfo/America/Halifax | Bin 0 -> 3438 bytes lib/pytz/zoneinfo/America/Havana | Bin 0 -> 2437 bytes lib/pytz/zoneinfo/America/Hermosillo | Bin 0 -> 454 bytes .../zoneinfo/America/Indiana/Indianapolis | Bin 0 -> 1675 bytes lib/pytz/zoneinfo/America/Indiana/Knox | Bin 0 -> 2437 bytes lib/pytz/zoneinfo/America/Indiana/Marengo | Bin 0 -> 1731 bytes lib/pytz/zoneinfo/America/Indiana/Petersburg | Bin 0 -> 1913 bytes lib/pytz/zoneinfo/America/Indiana/Tell_City | Bin 0 -> 1735 bytes lib/pytz/zoneinfo/America/Indiana/Vevay | Bin 0 -> 1423 bytes lib/pytz/zoneinfo/America/Indiana/Vincennes | Bin 0 -> 1703 bytes lib/pytz/zoneinfo/America/Indiana/Winamac | Bin 0 -> 1787 bytes lib/pytz/zoneinfo/America/Indianapolis | Bin 0 -> 1675 bytes lib/pytz/zoneinfo/America/Inuvik | Bin 0 -> 1928 bytes lib/pytz/zoneinfo/America/Iqaluit | Bin 0 -> 2046 bytes lib/pytz/zoneinfo/America/Jamaica | Bin 0 -> 507 bytes lib/pytz/zoneinfo/America/Jujuy | Bin 0 -> 1145 bytes lib/pytz/zoneinfo/America/Juneau | Bin 0 -> 2362 bytes lib/pytz/zoneinfo/America/Kentucky/Louisville | Bin 0 -> 2781 bytes lib/pytz/zoneinfo/America/Kentucky/Monticello | Bin 0 -> 2361 bytes lib/pytz/zoneinfo/America/Knox_IN | Bin 0 -> 2437 bytes lib/pytz/zoneinfo/America/Kralendijk | Bin 0 -> 208 bytes lib/pytz/zoneinfo/America/La_Paz | Bin 0 -> 243 bytes lib/pytz/zoneinfo/America/Lima | Bin 0 -> 417 bytes lib/pytz/zoneinfo/America/Los_Angeles | Bin 0 -> 2845 bytes lib/pytz/zoneinfo/America/Louisville | Bin 0 -> 2781 bytes lib/pytz/zoneinfo/America/Lower_Princes | Bin 0 -> 208 bytes lib/pytz/zoneinfo/America/Maceio | Bin 0 -> 756 bytes lib/pytz/zoneinfo/America/Managua | Bin 0 -> 463 bytes lib/pytz/zoneinfo/America/Manaus | Bin 0 -> 616 bytes lib/pytz/zoneinfo/America/Marigot | Bin 0 -> 170 bytes lib/pytz/zoneinfo/America/Martinique | Bin 0 -> 257 bytes lib/pytz/zoneinfo/America/Matamoros | Bin 0 -> 1416 bytes lib/pytz/zoneinfo/America/Mazatlan | Bin 0 -> 1564 bytes lib/pytz/zoneinfo/America/Mendoza | Bin 0 -> 1173 bytes lib/pytz/zoneinfo/America/Menominee | Bin 0 -> 2283 bytes lib/pytz/zoneinfo/America/Merida | Bin 0 -> 1456 bytes lib/pytz/zoneinfo/America/Metlakatla | Bin 0 -> 1418 bytes lib/pytz/zoneinfo/America/Mexico_City | Bin 0 -> 1618 bytes lib/pytz/zoneinfo/America/Miquelon | Bin 0 -> 1684 bytes lib/pytz/zoneinfo/America/Moncton | Bin 0 -> 3163 bytes lib/pytz/zoneinfo/America/Monterrey | Bin 0 -> 1416 bytes lib/pytz/zoneinfo/America/Montevideo | Bin 0 -> 1511 bytes lib/pytz/zoneinfo/America/Montreal | Bin 0 -> 3503 bytes lib/pytz/zoneinfo/America/Montserrat | Bin 0 -> 170 bytes lib/pytz/zoneinfo/America/Nassau | Bin 0 -> 2284 bytes lib/pytz/zoneinfo/America/New_York | Bin 0 -> 3545 bytes lib/pytz/zoneinfo/America/Nipigon | Bin 0 -> 2131 bytes lib/pytz/zoneinfo/America/Nome | Bin 0 -> 2376 bytes lib/pytz/zoneinfo/America/Noronha | Bin 0 -> 728 bytes lib/pytz/zoneinfo/America/North_Dakota/Beulah | Bin 0 -> 2389 bytes lib/pytz/zoneinfo/America/North_Dakota/Center | Bin 0 -> 2389 bytes .../zoneinfo/America/North_Dakota/New_Salem | Bin 0 -> 2389 bytes lib/pytz/zoneinfo/America/Ojinaga | Bin 0 -> 1522 bytes lib/pytz/zoneinfo/America/Panama | Bin 0 -> 203 bytes lib/pytz/zoneinfo/America/Pangnirtung | Bin 0 -> 2108 bytes lib/pytz/zoneinfo/America/Paramaribo | Bin 0 -> 308 bytes lib/pytz/zoneinfo/America/Phoenix | Bin 0 -> 353 bytes lib/pytz/zoneinfo/America/Port-au-Prince | Bin 0 -> 849 bytes lib/pytz/zoneinfo/America/Port_of_Spain | Bin 0 -> 170 bytes lib/pytz/zoneinfo/America/Porto_Acre | Bin 0 -> 656 bytes lib/pytz/zoneinfo/America/Porto_Velho | Bin 0 -> 588 bytes lib/pytz/zoneinfo/America/Puerto_Rico | Bin 0 -> 255 bytes lib/pytz/zoneinfo/America/Rainy_River | Bin 0 -> 2131 bytes lib/pytz/zoneinfo/America/Rankin_Inlet | Bin 0 -> 1930 bytes lib/pytz/zoneinfo/America/Recife | Bin 0 -> 728 bytes lib/pytz/zoneinfo/America/Regina | Bin 0 -> 994 bytes lib/pytz/zoneinfo/America/Resolute | Bin 0 -> 1930 bytes lib/pytz/zoneinfo/America/Rio_Branco | Bin 0 -> 656 bytes lib/pytz/zoneinfo/America/Rosario | Bin 0 -> 1129 bytes lib/pytz/zoneinfo/America/Santa_Isabel | Bin 0 -> 2356 bytes lib/pytz/zoneinfo/America/Santarem | Bin 0 -> 626 bytes lib/pytz/zoneinfo/America/Santiago | Bin 0 -> 2515 bytes lib/pytz/zoneinfo/America/Santo_Domingo | Bin 0 -> 489 bytes lib/pytz/zoneinfo/America/Sao_Paulo | Bin 0 -> 2015 bytes lib/pytz/zoneinfo/America/Scoresbysund | Bin 0 -> 1925 bytes lib/pytz/zoneinfo/America/Shiprock | Bin 0 -> 2453 bytes lib/pytz/zoneinfo/America/Sitka | Bin 0 -> 2350 bytes lib/pytz/zoneinfo/America/St_Barthelemy | Bin 0 -> 170 bytes lib/pytz/zoneinfo/America/St_Johns | Bin 0 -> 3664 bytes lib/pytz/zoneinfo/America/St_Kitts | Bin 0 -> 170 bytes lib/pytz/zoneinfo/America/St_Lucia | Bin 0 -> 170 bytes lib/pytz/zoneinfo/America/St_Thomas | Bin 0 -> 170 bytes lib/pytz/zoneinfo/America/St_Vincent | Bin 0 -> 170 bytes lib/pytz/zoneinfo/America/Swift_Current | Bin 0 -> 574 bytes lib/pytz/zoneinfo/America/Tegucigalpa | Bin 0 -> 278 bytes lib/pytz/zoneinfo/America/Thule | Bin 0 -> 1528 bytes lib/pytz/zoneinfo/America/Thunder_Bay | Bin 0 -> 2211 bytes lib/pytz/zoneinfo/America/Tijuana | Bin 0 -> 2356 bytes lib/pytz/zoneinfo/America/Toronto | Bin 0 -> 3503 bytes lib/pytz/zoneinfo/America/Tortola | Bin 0 -> 170 bytes lib/pytz/zoneinfo/America/Vancouver | Bin 0 -> 2901 bytes lib/pytz/zoneinfo/America/Virgin | Bin 0 -> 170 bytes lib/pytz/zoneinfo/America/Whitehorse | Bin 0 -> 2093 bytes lib/pytz/zoneinfo/America/Winnipeg | Bin 0 -> 2891 bytes lib/pytz/zoneinfo/America/Yakutat | Bin 0 -> 2314 bytes lib/pytz/zoneinfo/America/Yellowknife | Bin 0 -> 1980 bytes lib/pytz/zoneinfo/Antarctica/Casey | Bin 0 -> 272 bytes lib/pytz/zoneinfo/Antarctica/Davis | Bin 0 -> 290 bytes lib/pytz/zoneinfo/Antarctica/DumontDUrville | Bin 0 -> 227 bytes lib/pytz/zoneinfo/Antarctica/Macquarie | Bin 0 -> 1530 bytes lib/pytz/zoneinfo/Antarctica/Mawson | Bin 0 -> 204 bytes lib/pytz/zoneinfo/Antarctica/McMurdo | Bin 0 -> 2460 bytes lib/pytz/zoneinfo/Antarctica/Palmer | Bin 0 -> 2026 bytes lib/pytz/zoneinfo/Antarctica/Rothera | Bin 0 -> 173 bytes lib/pytz/zoneinfo/Antarctica/South_Pole | Bin 0 -> 2460 bytes lib/pytz/zoneinfo/Antarctica/Syowa | Bin 0 -> 174 bytes lib/pytz/zoneinfo/Antarctica/Troll | Bin 0 -> 1161 bytes lib/pytz/zoneinfo/Antarctica/Vostok | Bin 0 -> 174 bytes lib/pytz/zoneinfo/Arctic/Longyearbyen | Bin 0 -> 2251 bytes lib/pytz/zoneinfo/Asia/Aden | Bin 0 -> 171 bytes lib/pytz/zoneinfo/Asia/Almaty | Bin 0 -> 1031 bytes lib/pytz/zoneinfo/Asia/Amman | Bin 0 -> 1877 bytes lib/pytz/zoneinfo/Asia/Anadyr | Bin 0 -> 1197 bytes lib/pytz/zoneinfo/Asia/Aqtau | Bin 0 -> 1017 bytes lib/pytz/zoneinfo/Asia/Aqtobe | Bin 0 -> 1047 bytes lib/pytz/zoneinfo/Asia/Ashgabat | Bin 0 -> 671 bytes lib/pytz/zoneinfo/Asia/Ashkhabad | Bin 0 -> 671 bytes lib/pytz/zoneinfo/Asia/Baghdad | Bin 0 -> 988 bytes lib/pytz/zoneinfo/Asia/Bahrain | Bin 0 -> 209 bytes lib/pytz/zoneinfo/Asia/Baku | Bin 0 -> 1363 bytes lib/pytz/zoneinfo/Asia/Bangkok | Bin 0 -> 204 bytes lib/pytz/zoneinfo/Asia/Barnaul | Bin 0 -> 1255 bytes lib/pytz/zoneinfo/Asia/Beirut | Bin 0 -> 2175 bytes lib/pytz/zoneinfo/Asia/Bishkek | Bin 0 -> 1061 bytes lib/pytz/zoneinfo/Asia/Brunei | Bin 0 -> 201 bytes lib/pytz/zoneinfo/Asia/Calcutta | Bin 0 -> 291 bytes lib/pytz/zoneinfo/Asia/Chita | Bin 0 -> 1266 bytes lib/pytz/zoneinfo/Asia/Choibalsan | Bin 0 -> 1585 bytes lib/pytz/zoneinfo/Asia/Chongqing | Bin 0 -> 414 bytes lib/pytz/zoneinfo/Asia/Chungking | Bin 0 -> 414 bytes lib/pytz/zoneinfo/Asia/Colombo | Bin 0 -> 389 bytes lib/pytz/zoneinfo/Asia/Dacca | Bin 0 -> 390 bytes lib/pytz/zoneinfo/Asia/Damascus | Bin 0 -> 2320 bytes lib/pytz/zoneinfo/Asia/Dhaka | Bin 0 -> 390 bytes lib/pytz/zoneinfo/Asia/Dili | Bin 0 -> 309 bytes lib/pytz/zoneinfo/Asia/Dubai | Bin 0 -> 171 bytes lib/pytz/zoneinfo/Asia/Dushanbe | Bin 0 -> 611 bytes lib/pytz/zoneinfo/Asia/Gaza | Bin 0 -> 2313 bytes lib/pytz/zoneinfo/Asia/Harbin | Bin 0 -> 414 bytes lib/pytz/zoneinfo/Asia/Hebron | Bin 0 -> 2341 bytes lib/pytz/zoneinfo/Asia/Ho_Chi_Minh | Bin 0 -> 373 bytes lib/pytz/zoneinfo/Asia/Hong_Kong | Bin 0 -> 1189 bytes lib/pytz/zoneinfo/Asia/Hovd | Bin 0 -> 1513 bytes lib/pytz/zoneinfo/Asia/Irkutsk | Bin 0 -> 1259 bytes lib/pytz/zoneinfo/Asia/Istanbul | Bin 0 -> 2747 bytes lib/pytz/zoneinfo/Asia/Jakarta | Bin 0 -> 370 bytes lib/pytz/zoneinfo/Asia/Jayapura | Bin 0 -> 241 bytes lib/pytz/zoneinfo/Asia/Jerusalem | Bin 0 -> 2265 bytes lib/pytz/zoneinfo/Asia/Kabul | Bin 0 -> 199 bytes lib/pytz/zoneinfo/Asia/Kamchatka | Bin 0 -> 1181 bytes lib/pytz/zoneinfo/Asia/Karachi | Bin 0 -> 403 bytes lib/pytz/zoneinfo/Asia/Kashgar | Bin 0 -> 171 bytes lib/pytz/zoneinfo/Asia/Kathmandu | Bin 0 -> 212 bytes lib/pytz/zoneinfo/Asia/Katmandu | Bin 0 -> 212 bytes lib/pytz/zoneinfo/Asia/Khandyga | Bin 0 -> 1324 bytes lib/pytz/zoneinfo/Asia/Kolkata | Bin 0 -> 291 bytes lib/pytz/zoneinfo/Asia/Krasnoyarsk | Bin 0 -> 1226 bytes lib/pytz/zoneinfo/Asia/Kuala_Lumpur | Bin 0 -> 398 bytes lib/pytz/zoneinfo/Asia/Kuching | Bin 0 -> 519 bytes lib/pytz/zoneinfo/Asia/Kuwait | Bin 0 -> 171 bytes lib/pytz/zoneinfo/Asia/Macao | Bin 0 -> 795 bytes lib/pytz/zoneinfo/Asia/Macau | Bin 0 -> 795 bytes lib/pytz/zoneinfo/Asia/Magadan | Bin 0 -> 1241 bytes lib/pytz/zoneinfo/Asia/Makassar | Bin 0 -> 280 bytes lib/pytz/zoneinfo/Asia/Manila | Bin 0 -> 361 bytes lib/pytz/zoneinfo/Asia/Muscat | Bin 0 -> 171 bytes lib/pytz/zoneinfo/Asia/Nicosia | Bin 0 -> 2016 bytes lib/pytz/zoneinfo/Asia/Novokuznetsk | Bin 0 -> 1197 bytes lib/pytz/zoneinfo/Asia/Novosibirsk | Bin 0 -> 1255 bytes lib/pytz/zoneinfo/Asia/Omsk | Bin 0 -> 1226 bytes lib/pytz/zoneinfo/Asia/Oral | Bin 0 -> 1031 bytes lib/pytz/zoneinfo/Asia/Phnom_Penh | Bin 0 -> 204 bytes lib/pytz/zoneinfo/Asia/Pontianak | Bin 0 -> 375 bytes lib/pytz/zoneinfo/Asia/Pyongyang | Bin 0 -> 312 bytes lib/pytz/zoneinfo/Asia/Qatar | Bin 0 -> 209 bytes lib/pytz/zoneinfo/Asia/Qyzylorda | Bin 0 -> 1047 bytes lib/pytz/zoneinfo/Asia/Rangoon | Bin 0 -> 285 bytes lib/pytz/zoneinfo/Asia/Riyadh | Bin 0 -> 171 bytes lib/pytz/zoneinfo/Asia/Saigon | Bin 0 -> 373 bytes lib/pytz/zoneinfo/Asia/Sakhalin | Bin 0 -> 1257 bytes lib/pytz/zoneinfo/Asia/Samarkand | Bin 0 -> 691 bytes lib/pytz/zoneinfo/Asia/Seoul | Bin 0 -> 571 bytes lib/pytz/zoneinfo/Asia/Shanghai | Bin 0 -> 414 bytes lib/pytz/zoneinfo/Asia/Singapore | Bin 0 -> 428 bytes lib/pytz/zoneinfo/Asia/Srednekolymsk | Bin 0 -> 1237 bytes lib/pytz/zoneinfo/Asia/Taipei | Bin 0 -> 800 bytes lib/pytz/zoneinfo/Asia/Tashkent | Bin 0 -> 681 bytes lib/pytz/zoneinfo/Asia/Tbilisi | Bin 0 -> 1142 bytes lib/pytz/zoneinfo/Asia/Tehran | Bin 0 -> 1678 bytes lib/pytz/zoneinfo/Asia/Tel_Aviv | Bin 0 -> 2265 bytes lib/pytz/zoneinfo/Asia/Thimbu | Bin 0 -> 209 bytes lib/pytz/zoneinfo/Asia/Thimphu | Bin 0 -> 209 bytes lib/pytz/zoneinfo/Asia/Tokyo | Bin 0 -> 355 bytes lib/pytz/zoneinfo/Asia/Tomsk | Bin 0 -> 1255 bytes lib/pytz/zoneinfo/Asia/Ujung_Pandang | Bin 0 -> 280 bytes lib/pytz/zoneinfo/Asia/Ulaanbaatar | Bin 0 -> 1513 bytes lib/pytz/zoneinfo/Asia/Ulan_Bator | Bin 0 -> 1513 bytes lib/pytz/zoneinfo/Asia/Urumqi | Bin 0 -> 171 bytes lib/pytz/zoneinfo/Asia/Ust-Nera | Bin 0 -> 1293 bytes lib/pytz/zoneinfo/Asia/Vientiane | Bin 0 -> 204 bytes lib/pytz/zoneinfo/Asia/Vladivostok | Bin 0 -> 1227 bytes lib/pytz/zoneinfo/Asia/Yakutsk | Bin 0 -> 1226 bytes lib/pytz/zoneinfo/Asia/Yekaterinburg | Bin 0 -> 1302 bytes lib/pytz/zoneinfo/Asia/Yerevan | Bin 0 -> 1275 bytes lib/pytz/zoneinfo/Atlantic/Azores | Bin 0 -> 3488 bytes lib/pytz/zoneinfo/Atlantic/Bermuda | Bin 0 -> 2004 bytes lib/pytz/zoneinfo/Atlantic/Canary | Bin 0 -> 1913 bytes lib/pytz/zoneinfo/Atlantic/Cape_Verde | Bin 0 -> 254 bytes lib/pytz/zoneinfo/Atlantic/Faeroe | Bin 0 -> 1829 bytes lib/pytz/zoneinfo/Atlantic/Faroe | Bin 0 -> 1829 bytes lib/pytz/zoneinfo/Atlantic/Jan_Mayen | Bin 0 -> 2251 bytes lib/pytz/zoneinfo/Atlantic/Madeira | Bin 0 -> 3478 bytes lib/pytz/zoneinfo/Atlantic/Reykjavik | Bin 0 -> 1190 bytes lib/pytz/zoneinfo/Atlantic/South_Georgia | Bin 0 -> 148 bytes lib/pytz/zoneinfo/Atlantic/St_Helena | Bin 0 -> 170 bytes lib/pytz/zoneinfo/Atlantic/Stanley | Bin 0 -> 1246 bytes lib/pytz/zoneinfo/Australia/ACT | Bin 0 -> 2223 bytes lib/pytz/zoneinfo/Australia/Adelaide | Bin 0 -> 2238 bytes lib/pytz/zoneinfo/Australia/Brisbane | Bin 0 -> 452 bytes lib/pytz/zoneinfo/Australia/Broken_Hill | Bin 0 -> 2274 bytes lib/pytz/zoneinfo/Australia/Canberra | Bin 0 -> 2223 bytes lib/pytz/zoneinfo/Australia/Currie | Bin 0 -> 2223 bytes lib/pytz/zoneinfo/Australia/Darwin | Bin 0 -> 323 bytes lib/pytz/zoneinfo/Australia/Eucla | Bin 0 -> 487 bytes lib/pytz/zoneinfo/Australia/Hobart | Bin 0 -> 2335 bytes lib/pytz/zoneinfo/Australia/LHI | Bin 0 -> 1859 bytes lib/pytz/zoneinfo/Australia/Lindeman | Bin 0 -> 522 bytes lib/pytz/zoneinfo/Australia/Lord_Howe | Bin 0 -> 1859 bytes lib/pytz/zoneinfo/Australia/Melbourne | Bin 0 -> 2223 bytes lib/pytz/zoneinfo/Australia/NSW | Bin 0 -> 2223 bytes lib/pytz/zoneinfo/Australia/North | Bin 0 -> 323 bytes lib/pytz/zoneinfo/Australia/Perth | Bin 0 -> 479 bytes lib/pytz/zoneinfo/Australia/Queensland | Bin 0 -> 452 bytes lib/pytz/zoneinfo/Australia/South | Bin 0 -> 2238 bytes lib/pytz/zoneinfo/Australia/Sydney | Bin 0 -> 2223 bytes lib/pytz/zoneinfo/Australia/Tasmania | Bin 0 -> 2335 bytes lib/pytz/zoneinfo/Australia/Victoria | Bin 0 -> 2223 bytes lib/pytz/zoneinfo/Australia/West | Bin 0 -> 479 bytes lib/pytz/zoneinfo/Australia/Yancowinna | Bin 0 -> 2274 bytes lib/pytz/zoneinfo/Brazil/Acre | Bin 0 -> 656 bytes lib/pytz/zoneinfo/Brazil/DeNoronha | Bin 0 -> 728 bytes lib/pytz/zoneinfo/Brazil/East | Bin 0 -> 2015 bytes lib/pytz/zoneinfo/Brazil/West | Bin 0 -> 616 bytes lib/pytz/zoneinfo/CET | Bin 0 -> 2102 bytes lib/pytz/zoneinfo/CST6CDT | Bin 0 -> 2294 bytes lib/pytz/zoneinfo/Canada/Atlantic | Bin 0 -> 3438 bytes lib/pytz/zoneinfo/Canada/Central | Bin 0 -> 2891 bytes lib/pytz/zoneinfo/Canada/East-Saskatchewan | Bin 0 -> 994 bytes lib/pytz/zoneinfo/Canada/Eastern | Bin 0 -> 3503 bytes lib/pytz/zoneinfo/Canada/Mountain | Bin 0 -> 2402 bytes lib/pytz/zoneinfo/Canada/Newfoundland | Bin 0 -> 3664 bytes lib/pytz/zoneinfo/Canada/Pacific | Bin 0 -> 2901 bytes lib/pytz/zoneinfo/Canada/Saskatchewan | Bin 0 -> 994 bytes lib/pytz/zoneinfo/Canada/Yukon | Bin 0 -> 2093 bytes lib/pytz/zoneinfo/Chile/Continental | Bin 0 -> 2515 bytes lib/pytz/zoneinfo/Chile/EasterIsland | Bin 0 -> 2225 bytes lib/pytz/zoneinfo/Cuba | Bin 0 -> 2437 bytes lib/pytz/zoneinfo/EET | Bin 0 -> 1876 bytes lib/pytz/zoneinfo/EST | Bin 0 -> 127 bytes lib/pytz/zoneinfo/EST5EDT | Bin 0 -> 2294 bytes lib/pytz/zoneinfo/Egypt | Bin 0 -> 1972 bytes lib/pytz/zoneinfo/Eire | Bin 0 -> 3559 bytes lib/pytz/zoneinfo/Etc/GMT | Bin 0 -> 127 bytes lib/pytz/zoneinfo/Etc/GMT+0 | Bin 0 -> 127 bytes lib/pytz/zoneinfo/Etc/GMT+1 | Bin 0 -> 154 bytes lib/pytz/zoneinfo/Etc/GMT+10 | Bin 0 -> 158 bytes lib/pytz/zoneinfo/Etc/GMT+11 | Bin 0 -> 158 bytes lib/pytz/zoneinfo/Etc/GMT+12 | Bin 0 -> 158 bytes lib/pytz/zoneinfo/Etc/GMT+2 | Bin 0 -> 154 bytes lib/pytz/zoneinfo/Etc/GMT+3 | Bin 0 -> 154 bytes lib/pytz/zoneinfo/Etc/GMT+4 | Bin 0 -> 154 bytes lib/pytz/zoneinfo/Etc/GMT+5 | Bin 0 -> 154 bytes lib/pytz/zoneinfo/Etc/GMT+6 | Bin 0 -> 154 bytes lib/pytz/zoneinfo/Etc/GMT+7 | Bin 0 -> 154 bytes lib/pytz/zoneinfo/Etc/GMT+8 | Bin 0 -> 154 bytes lib/pytz/zoneinfo/Etc/GMT+9 | Bin 0 -> 154 bytes lib/pytz/zoneinfo/Etc/GMT-0 | Bin 0 -> 127 bytes lib/pytz/zoneinfo/Etc/GMT-1 | Bin 0 -> 155 bytes lib/pytz/zoneinfo/Etc/GMT-10 | Bin 0 -> 159 bytes lib/pytz/zoneinfo/Etc/GMT-11 | Bin 0 -> 159 bytes lib/pytz/zoneinfo/Etc/GMT-12 | Bin 0 -> 159 bytes lib/pytz/zoneinfo/Etc/GMT-13 | Bin 0 -> 159 bytes lib/pytz/zoneinfo/Etc/GMT-14 | Bin 0 -> 159 bytes lib/pytz/zoneinfo/Etc/GMT-2 | Bin 0 -> 155 bytes lib/pytz/zoneinfo/Etc/GMT-3 | Bin 0 -> 155 bytes lib/pytz/zoneinfo/Etc/GMT-4 | Bin 0 -> 155 bytes lib/pytz/zoneinfo/Etc/GMT-5 | Bin 0 -> 155 bytes lib/pytz/zoneinfo/Etc/GMT-6 | Bin 0 -> 155 bytes lib/pytz/zoneinfo/Etc/GMT-7 | Bin 0 -> 155 bytes lib/pytz/zoneinfo/Etc/GMT-8 | Bin 0 -> 155 bytes lib/pytz/zoneinfo/Etc/GMT-9 | Bin 0 -> 155 bytes lib/pytz/zoneinfo/Etc/GMT0 | Bin 0 -> 127 bytes lib/pytz/zoneinfo/Etc/Greenwich | Bin 0 -> 127 bytes lib/pytz/zoneinfo/Etc/UCT | Bin 0 -> 127 bytes lib/pytz/zoneinfo/Etc/UTC | Bin 0 -> 127 bytes lib/pytz/zoneinfo/Etc/Universal | Bin 0 -> 127 bytes lib/pytz/zoneinfo/Etc/Zulu | Bin 0 -> 127 bytes lib/pytz/zoneinfo/Europe/Amsterdam | Bin 0 -> 2943 bytes lib/pytz/zoneinfo/Europe/Andorra | Bin 0 -> 1751 bytes lib/pytz/zoneinfo/Europe/Astrakhan | Bin 0 -> 1197 bytes lib/pytz/zoneinfo/Europe/Athens | Bin 0 -> 2271 bytes lib/pytz/zoneinfo/Europe/Belfast | Bin 0 -> 3687 bytes lib/pytz/zoneinfo/Europe/Belgrade | Bin 0 -> 1957 bytes lib/pytz/zoneinfo/Europe/Berlin | Bin 0 -> 2335 bytes lib/pytz/zoneinfo/Europe/Bratislava | Bin 0 -> 2272 bytes lib/pytz/zoneinfo/Europe/Brussels | Bin 0 -> 2970 bytes lib/pytz/zoneinfo/Europe/Bucharest | Bin 0 -> 2221 bytes lib/pytz/zoneinfo/Europe/Budapest | Bin 0 -> 2405 bytes lib/pytz/zoneinfo/Europe/Busingen | Bin 0 -> 1918 bytes lib/pytz/zoneinfo/Europe/Chisinau | Bin 0 -> 2445 bytes lib/pytz/zoneinfo/Europe/Copenhagen | Bin 0 -> 2160 bytes lib/pytz/zoneinfo/Europe/Dublin | Bin 0 -> 3559 bytes lib/pytz/zoneinfo/Europe/Gibraltar | Bin 0 -> 3061 bytes lib/pytz/zoneinfo/Europe/Guernsey | Bin 0 -> 3687 bytes lib/pytz/zoneinfo/Europe/Helsinki | Bin 0 -> 1909 bytes lib/pytz/zoneinfo/Europe/Isle_of_Man | Bin 0 -> 3687 bytes lib/pytz/zoneinfo/Europe/Istanbul | Bin 0 -> 2747 bytes lib/pytz/zoneinfo/Europe/Jersey | Bin 0 -> 3687 bytes lib/pytz/zoneinfo/Europe/Kaliningrad | Bin 0 -> 1518 bytes lib/pytz/zoneinfo/Europe/Kiev | Bin 0 -> 2097 bytes lib/pytz/zoneinfo/Europe/Kirov | Bin 0 -> 1167 bytes lib/pytz/zoneinfo/Europe/Lisbon | Bin 0 -> 3453 bytes lib/pytz/zoneinfo/Europe/Ljubljana | Bin 0 -> 1957 bytes lib/pytz/zoneinfo/Europe/London | Bin 0 -> 3687 bytes lib/pytz/zoneinfo/Europe/Luxembourg | Bin 0 -> 2974 bytes lib/pytz/zoneinfo/Europe/Madrid | Bin 0 -> 2619 bytes lib/pytz/zoneinfo/Europe/Malta | Bin 0 -> 2629 bytes lib/pytz/zoneinfo/Europe/Mariehamn | Bin 0 -> 1909 bytes lib/pytz/zoneinfo/Europe/Minsk | Bin 0 -> 1368 bytes lib/pytz/zoneinfo/Europe/Monaco | Bin 0 -> 2953 bytes lib/pytz/zoneinfo/Europe/Moscow | Bin 0 -> 1528 bytes lib/pytz/zoneinfo/Europe/Nicosia | Bin 0 -> 2016 bytes lib/pytz/zoneinfo/Europe/Oslo | Bin 0 -> 2251 bytes lib/pytz/zoneinfo/Europe/Paris | Bin 0 -> 2971 bytes lib/pytz/zoneinfo/Europe/Podgorica | Bin 0 -> 1957 bytes lib/pytz/zoneinfo/Europe/Prague | Bin 0 -> 2272 bytes lib/pytz/zoneinfo/Europe/Riga | Bin 0 -> 2235 bytes lib/pytz/zoneinfo/Europe/Rome | Bin 0 -> 2678 bytes lib/pytz/zoneinfo/Europe/Samara | Bin 0 -> 1346 bytes lib/pytz/zoneinfo/Europe/San_Marino | Bin 0 -> 2678 bytes lib/pytz/zoneinfo/Europe/Sarajevo | Bin 0 -> 1957 bytes lib/pytz/zoneinfo/Europe/Simferopol | Bin 0 -> 1490 bytes lib/pytz/zoneinfo/Europe/Skopje | Bin 0 -> 1957 bytes lib/pytz/zoneinfo/Europe/Sofia | Bin 0 -> 2130 bytes lib/pytz/zoneinfo/Europe/Stockholm | Bin 0 -> 1918 bytes lib/pytz/zoneinfo/Europe/Tallinn | Bin 0 -> 2187 bytes lib/pytz/zoneinfo/Europe/Tirane | Bin 0 -> 2098 bytes lib/pytz/zoneinfo/Europe/Tiraspol | Bin 0 -> 2445 bytes lib/pytz/zoneinfo/Europe/Ulyanovsk | Bin 0 -> 1281 bytes lib/pytz/zoneinfo/Europe/Uzhgorod | Bin 0 -> 2103 bytes lib/pytz/zoneinfo/Europe/Vaduz | Bin 0 -> 1918 bytes lib/pytz/zoneinfo/Europe/Vatican | Bin 0 -> 2678 bytes lib/pytz/zoneinfo/Europe/Vienna | Bin 0 -> 2237 bytes lib/pytz/zoneinfo/Europe/Vilnius | Bin 0 -> 2199 bytes lib/pytz/zoneinfo/Europe/Volgograd | Bin 0 -> 1309 bytes lib/pytz/zoneinfo/Europe/Warsaw | Bin 0 -> 2705 bytes lib/pytz/zoneinfo/Europe/Zagreb | Bin 0 -> 1957 bytes lib/pytz/zoneinfo/Europe/Zaporozhye | Bin 0 -> 2111 bytes lib/pytz/zoneinfo/Europe/Zurich | Bin 0 -> 1918 bytes lib/pytz/zoneinfo/Factory | Bin 0 -> 283 bytes lib/pytz/zoneinfo/GB | Bin 0 -> 3687 bytes lib/pytz/zoneinfo/GB-Eire | Bin 0 -> 3687 bytes lib/pytz/zoneinfo/GMT | Bin 0 -> 127 bytes lib/pytz/zoneinfo/GMT+0 | Bin 0 -> 127 bytes lib/pytz/zoneinfo/GMT-0 | Bin 0 -> 127 bytes lib/pytz/zoneinfo/GMT0 | Bin 0 -> 127 bytes lib/pytz/zoneinfo/Greenwich | Bin 0 -> 127 bytes lib/pytz/zoneinfo/HST | Bin 0 -> 128 bytes lib/pytz/zoneinfo/Hongkong | Bin 0 -> 1189 bytes lib/pytz/zoneinfo/Iceland | Bin 0 -> 1190 bytes lib/pytz/zoneinfo/Indian/Antananarivo | Bin 0 -> 283 bytes lib/pytz/zoneinfo/Indian/Chagos | Bin 0 -> 201 bytes lib/pytz/zoneinfo/Indian/Christmas | Bin 0 -> 149 bytes lib/pytz/zoneinfo/Indian/Cocos | Bin 0 -> 152 bytes lib/pytz/zoneinfo/Indian/Comoro | Bin 0 -> 283 bytes lib/pytz/zoneinfo/Indian/Kerguelen | Bin 0 -> 171 bytes lib/pytz/zoneinfo/Indian/Mahe | Bin 0 -> 171 bytes lib/pytz/zoneinfo/Indian/Maldives | Bin 0 -> 204 bytes lib/pytz/zoneinfo/Indian/Mauritius | Bin 0 -> 253 bytes lib/pytz/zoneinfo/Indian/Mayotte | Bin 0 -> 283 bytes lib/pytz/zoneinfo/Indian/Reunion | Bin 0 -> 171 bytes lib/pytz/zoneinfo/Iran | Bin 0 -> 1678 bytes lib/pytz/zoneinfo/Israel | Bin 0 -> 2265 bytes lib/pytz/zoneinfo/Jamaica | Bin 0 -> 507 bytes lib/pytz/zoneinfo/Japan | Bin 0 -> 355 bytes lib/pytz/zoneinfo/Kwajalein | Bin 0 -> 237 bytes lib/pytz/zoneinfo/Libya | Bin 0 -> 655 bytes lib/pytz/zoneinfo/MET | Bin 0 -> 2102 bytes lib/pytz/zoneinfo/MST | Bin 0 -> 127 bytes lib/pytz/zoneinfo/MST7MDT | Bin 0 -> 2294 bytes lib/pytz/zoneinfo/Mexico/BajaNorte | Bin 0 -> 2356 bytes lib/pytz/zoneinfo/Mexico/BajaSur | Bin 0 -> 1564 bytes lib/pytz/zoneinfo/Mexico/General | Bin 0 -> 1618 bytes lib/pytz/zoneinfo/NZ | Bin 0 -> 2460 bytes lib/pytz/zoneinfo/NZ-CHAT | Bin 0 -> 2057 bytes lib/pytz/zoneinfo/Navajo | Bin 0 -> 2453 bytes lib/pytz/zoneinfo/PRC | Bin 0 -> 414 bytes lib/pytz/zoneinfo/PST8PDT | Bin 0 -> 2294 bytes lib/pytz/zoneinfo/Pacific/Apia | Bin 0 -> 1102 bytes lib/pytz/zoneinfo/Pacific/Auckland | Bin 0 -> 2460 bytes lib/pytz/zoneinfo/Pacific/Bougainville | Bin 0 -> 280 bytes lib/pytz/zoneinfo/Pacific/Chatham | Bin 0 -> 2057 bytes lib/pytz/zoneinfo/Pacific/Chuuk | Bin 0 -> 153 bytes lib/pytz/zoneinfo/Pacific/Easter | Bin 0 -> 2225 bytes lib/pytz/zoneinfo/Pacific/Efate | Bin 0 -> 478 bytes lib/pytz/zoneinfo/Pacific/Enderbury | Bin 0 -> 230 bytes lib/pytz/zoneinfo/Pacific/Fakaofo | Bin 0 -> 197 bytes lib/pytz/zoneinfo/Pacific/Fiji | Bin 0 -> 1073 bytes lib/pytz/zoneinfo/Pacific/Funafuti | Bin 0 -> 150 bytes lib/pytz/zoneinfo/Pacific/Galapagos | Bin 0 -> 211 bytes lib/pytz/zoneinfo/Pacific/Gambier | Bin 0 -> 173 bytes lib/pytz/zoneinfo/Pacific/Guadalcanal | Bin 0 -> 172 bytes lib/pytz/zoneinfo/Pacific/Guam | Bin 0 -> 225 bytes lib/pytz/zoneinfo/Pacific/Honolulu | Bin 0 -> 276 bytes lib/pytz/zoneinfo/Pacific/Johnston | Bin 0 -> 276 bytes lib/pytz/zoneinfo/Pacific/Kiritimati | Bin 0 -> 230 bytes lib/pytz/zoneinfo/Pacific/Kosrae | Bin 0 -> 230 bytes lib/pytz/zoneinfo/Pacific/Kwajalein | Bin 0 -> 237 bytes lib/pytz/zoneinfo/Pacific/Majuro | Bin 0 -> 197 bytes lib/pytz/zoneinfo/Pacific/Marquesas | Bin 0 -> 176 bytes lib/pytz/zoneinfo/Pacific/Midway | Bin 0 -> 272 bytes lib/pytz/zoneinfo/Pacific/Nauru | Bin 0 -> 254 bytes lib/pytz/zoneinfo/Pacific/Niue | Bin 0 -> 226 bytes lib/pytz/zoneinfo/Pacific/Norfolk | Bin 0 -> 289 bytes lib/pytz/zoneinfo/Pacific/Noumea | Bin 0 -> 314 bytes lib/pytz/zoneinfo/Pacific/Pago_Pago | Bin 0 -> 272 bytes lib/pytz/zoneinfo/Pacific/Palau | Bin 0 -> 149 bytes lib/pytz/zoneinfo/Pacific/Pitcairn | Bin 0 -> 203 bytes lib/pytz/zoneinfo/Pacific/Pohnpei | Bin 0 -> 153 bytes lib/pytz/zoneinfo/Pacific/Ponape | Bin 0 -> 153 bytes lib/pytz/zoneinfo/Pacific/Port_Moresby | Bin 0 -> 172 bytes lib/pytz/zoneinfo/Pacific/Rarotonga | Bin 0 -> 574 bytes lib/pytz/zoneinfo/Pacific/Saipan | Bin 0 -> 225 bytes lib/pytz/zoneinfo/Pacific/Samoa | Bin 0 -> 272 bytes lib/pytz/zoneinfo/Pacific/Tahiti | Bin 0 -> 174 bytes lib/pytz/zoneinfo/Pacific/Tarawa | Bin 0 -> 153 bytes lib/pytz/zoneinfo/Pacific/Tongatapu | Bin 0 -> 339 bytes lib/pytz/zoneinfo/Pacific/Truk | Bin 0 -> 153 bytes lib/pytz/zoneinfo/Pacific/Wake | Bin 0 -> 153 bytes lib/pytz/zoneinfo/Pacific/Wallis | Bin 0 -> 150 bytes lib/pytz/zoneinfo/Pacific/Yap | Bin 0 -> 153 bytes lib/pytz/zoneinfo/Poland | Bin 0 -> 2705 bytes lib/pytz/zoneinfo/Portugal | Bin 0 -> 3453 bytes lib/pytz/zoneinfo/ROC | Bin 0 -> 800 bytes lib/pytz/zoneinfo/ROK | Bin 0 -> 571 bytes lib/pytz/zoneinfo/Singapore | Bin 0 -> 428 bytes lib/pytz/zoneinfo/Turkey | Bin 0 -> 2747 bytes lib/pytz/zoneinfo/UCT | Bin 0 -> 127 bytes lib/pytz/zoneinfo/US/Alaska | Bin 0 -> 2384 bytes lib/pytz/zoneinfo/US/Aleutian | Bin 0 -> 2365 bytes lib/pytz/zoneinfo/US/Arizona | Bin 0 -> 353 bytes lib/pytz/zoneinfo/US/Central | Bin 0 -> 3585 bytes lib/pytz/zoneinfo/US/East-Indiana | Bin 0 -> 1675 bytes lib/pytz/zoneinfo/US/Eastern | Bin 0 -> 3545 bytes lib/pytz/zoneinfo/US/Hawaii | Bin 0 -> 276 bytes lib/pytz/zoneinfo/US/Indiana-Starke | Bin 0 -> 2437 bytes lib/pytz/zoneinfo/US/Michigan | Bin 0 -> 2216 bytes lib/pytz/zoneinfo/US/Mountain | Bin 0 -> 2453 bytes lib/pytz/zoneinfo/US/Pacific | Bin 0 -> 2845 bytes lib/pytz/zoneinfo/US/Pacific-New | Bin 0 -> 2845 bytes lib/pytz/zoneinfo/US/Samoa | Bin 0 -> 272 bytes lib/pytz/zoneinfo/UTC | Bin 0 -> 127 bytes lib/pytz/zoneinfo/Universal | Bin 0 -> 127 bytes lib/pytz/zoneinfo/W-SU | Bin 0 -> 1528 bytes lib/pytz/zoneinfo/WET | Bin 0 -> 1873 bytes lib/pytz/zoneinfo/Zulu | Bin 0 -> 127 bytes lib/pytz/zoneinfo/iso3166.tab | 274 +++ lib/pytz/zoneinfo/localtime | Bin 0 -> 127 bytes lib/pytz/zoneinfo/posixrules | Bin 0 -> 3545 bytes lib/pytz/zoneinfo/zone.tab | 445 +++++ lib/pytz/zoneinfo/zone1970.tab | 376 ++++ lib/tornado/platform/auto.pyi | 4 + lib/tornado/speedups.pyi | 1 + lib/tzlocal/__init__.py | 7 + lib/tzlocal/darwin.py | 37 + lib/tzlocal/tests.py | 73 + lib/tzlocal/unix.py | 129 ++ lib/tzlocal/win32.py | 93 + lib/tzlocal/windows_tz.py | 548 ++++++ sickbeard/network_timezones.py | 25 +- 613 files changed, 5769 insertions(+), 4 deletions(-) create mode 100644 lib/pytz/__init__.py create mode 100644 lib/pytz/exceptions.py create mode 100644 lib/pytz/lazy.py create mode 100644 lib/pytz/reference.py create mode 100644 lib/pytz/tests/test_docs.py create mode 100644 lib/pytz/tests/test_lazy.py create mode 100644 lib/pytz/tests/test_tzinfo.py create mode 100644 lib/pytz/tzfile.py create mode 100644 lib/pytz/tzinfo.py create mode 100644 lib/pytz/zoneinfo/Africa/Abidjan create mode 100644 lib/pytz/zoneinfo/Africa/Accra create mode 100644 lib/pytz/zoneinfo/Africa/Addis_Ababa create mode 100644 lib/pytz/zoneinfo/Africa/Algiers create mode 100644 lib/pytz/zoneinfo/Africa/Asmara create mode 100644 lib/pytz/zoneinfo/Africa/Asmera create mode 100644 lib/pytz/zoneinfo/Africa/Bamako create mode 100644 lib/pytz/zoneinfo/Africa/Bangui create mode 100644 lib/pytz/zoneinfo/Africa/Banjul create mode 100644 lib/pytz/zoneinfo/Africa/Bissau create mode 100644 lib/pytz/zoneinfo/Africa/Blantyre create mode 100644 lib/pytz/zoneinfo/Africa/Brazzaville create mode 100644 lib/pytz/zoneinfo/Africa/Bujumbura create mode 100644 lib/pytz/zoneinfo/Africa/Cairo create mode 100644 lib/pytz/zoneinfo/Africa/Casablanca create mode 100644 lib/pytz/zoneinfo/Africa/Ceuta create mode 100644 lib/pytz/zoneinfo/Africa/Conakry create mode 100644 lib/pytz/zoneinfo/Africa/Dakar create mode 100644 lib/pytz/zoneinfo/Africa/Dar_es_Salaam create mode 100644 lib/pytz/zoneinfo/Africa/Djibouti create mode 100644 lib/pytz/zoneinfo/Africa/Douala create mode 100644 lib/pytz/zoneinfo/Africa/El_Aaiun create mode 100644 lib/pytz/zoneinfo/Africa/Freetown create mode 100644 lib/pytz/zoneinfo/Africa/Gaborone create mode 100644 lib/pytz/zoneinfo/Africa/Harare create mode 100644 lib/pytz/zoneinfo/Africa/Johannesburg create mode 100644 lib/pytz/zoneinfo/Africa/Juba create mode 100644 lib/pytz/zoneinfo/Africa/Kampala create mode 100644 lib/pytz/zoneinfo/Africa/Khartoum create mode 100644 lib/pytz/zoneinfo/Africa/Kigali create mode 100644 lib/pytz/zoneinfo/Africa/Kinshasa create mode 100644 lib/pytz/zoneinfo/Africa/Lagos create mode 100644 lib/pytz/zoneinfo/Africa/Libreville create mode 100644 lib/pytz/zoneinfo/Africa/Lome create mode 100644 lib/pytz/zoneinfo/Africa/Luanda create mode 100644 lib/pytz/zoneinfo/Africa/Lubumbashi create mode 100644 lib/pytz/zoneinfo/Africa/Lusaka create mode 100644 lib/pytz/zoneinfo/Africa/Malabo create mode 100644 lib/pytz/zoneinfo/Africa/Maputo create mode 100644 lib/pytz/zoneinfo/Africa/Maseru create mode 100644 lib/pytz/zoneinfo/Africa/Mbabane create mode 100644 lib/pytz/zoneinfo/Africa/Mogadishu create mode 100644 lib/pytz/zoneinfo/Africa/Monrovia create mode 100644 lib/pytz/zoneinfo/Africa/Nairobi create mode 100644 lib/pytz/zoneinfo/Africa/Ndjamena create mode 100644 lib/pytz/zoneinfo/Africa/Niamey create mode 100644 lib/pytz/zoneinfo/Africa/Nouakchott create mode 100644 lib/pytz/zoneinfo/Africa/Ouagadougou create mode 100644 lib/pytz/zoneinfo/Africa/Porto-Novo create mode 100644 lib/pytz/zoneinfo/Africa/Sao_Tome create mode 100644 lib/pytz/zoneinfo/Africa/Timbuktu create mode 100644 lib/pytz/zoneinfo/Africa/Tripoli create mode 100644 lib/pytz/zoneinfo/Africa/Tunis create mode 100644 lib/pytz/zoneinfo/Africa/Windhoek create mode 100644 lib/pytz/zoneinfo/America/Adak create mode 100644 lib/pytz/zoneinfo/America/Anchorage create mode 100644 lib/pytz/zoneinfo/America/Anguilla create mode 100644 lib/pytz/zoneinfo/America/Antigua create mode 100644 lib/pytz/zoneinfo/America/Araguaina create mode 100644 lib/pytz/zoneinfo/America/Argentina/Buenos_Aires create mode 100644 lib/pytz/zoneinfo/America/Argentina/Catamarca create mode 100644 lib/pytz/zoneinfo/America/Argentina/ComodRivadavia create mode 100644 lib/pytz/zoneinfo/America/Argentina/Cordoba create mode 100644 lib/pytz/zoneinfo/America/Argentina/Jujuy create mode 100644 lib/pytz/zoneinfo/America/Argentina/La_Rioja create mode 100644 lib/pytz/zoneinfo/America/Argentina/Mendoza create mode 100644 lib/pytz/zoneinfo/America/Argentina/Rio_Gallegos create mode 100644 lib/pytz/zoneinfo/America/Argentina/Salta create mode 100644 lib/pytz/zoneinfo/America/Argentina/San_Juan create mode 100644 lib/pytz/zoneinfo/America/Argentina/San_Luis create mode 100644 lib/pytz/zoneinfo/America/Argentina/Tucuman create mode 100644 lib/pytz/zoneinfo/America/Argentina/Ushuaia create mode 100644 lib/pytz/zoneinfo/America/Aruba create mode 100644 lib/pytz/zoneinfo/America/Asuncion create mode 100644 lib/pytz/zoneinfo/America/Atikokan create mode 100644 lib/pytz/zoneinfo/America/Atka create mode 100644 lib/pytz/zoneinfo/America/Bahia create mode 100644 lib/pytz/zoneinfo/America/Bahia_Banderas create mode 100644 lib/pytz/zoneinfo/America/Barbados create mode 100644 lib/pytz/zoneinfo/America/Belem create mode 100644 lib/pytz/zoneinfo/America/Belize create mode 100644 lib/pytz/zoneinfo/America/Blanc-Sablon create mode 100644 lib/pytz/zoneinfo/America/Boa_Vista create mode 100644 lib/pytz/zoneinfo/America/Bogota create mode 100644 lib/pytz/zoneinfo/America/Boise create mode 100644 lib/pytz/zoneinfo/America/Buenos_Aires create mode 100644 lib/pytz/zoneinfo/America/Cambridge_Bay create mode 100644 lib/pytz/zoneinfo/America/Campo_Grande create mode 100644 lib/pytz/zoneinfo/America/Cancun create mode 100644 lib/pytz/zoneinfo/America/Caracas create mode 100644 lib/pytz/zoneinfo/America/Catamarca create mode 100644 lib/pytz/zoneinfo/America/Cayenne create mode 100644 lib/pytz/zoneinfo/America/Cayman create mode 100644 lib/pytz/zoneinfo/America/Chicago create mode 100644 lib/pytz/zoneinfo/America/Chihuahua create mode 100644 lib/pytz/zoneinfo/America/Coral_Harbour create mode 100644 lib/pytz/zoneinfo/America/Cordoba create mode 100644 lib/pytz/zoneinfo/America/Costa_Rica create mode 100644 lib/pytz/zoneinfo/America/Creston create mode 100644 lib/pytz/zoneinfo/America/Cuiaba create mode 100644 lib/pytz/zoneinfo/America/Curacao create mode 100644 lib/pytz/zoneinfo/America/Danmarkshavn create mode 100644 lib/pytz/zoneinfo/America/Dawson create mode 100644 lib/pytz/zoneinfo/America/Dawson_Creek create mode 100644 lib/pytz/zoneinfo/America/Denver create mode 100644 lib/pytz/zoneinfo/America/Detroit create mode 100644 lib/pytz/zoneinfo/America/Dominica create mode 100644 lib/pytz/zoneinfo/America/Edmonton create mode 100644 lib/pytz/zoneinfo/America/Eirunepe create mode 100644 lib/pytz/zoneinfo/America/El_Salvador create mode 100644 lib/pytz/zoneinfo/America/Ensenada create mode 100644 lib/pytz/zoneinfo/America/Fort_Nelson create mode 100644 lib/pytz/zoneinfo/America/Fort_Wayne create mode 100644 lib/pytz/zoneinfo/America/Fortaleza create mode 100644 lib/pytz/zoneinfo/America/Glace_Bay create mode 100644 lib/pytz/zoneinfo/America/Godthab create mode 100644 lib/pytz/zoneinfo/America/Goose_Bay create mode 100644 lib/pytz/zoneinfo/America/Grand_Turk create mode 100644 lib/pytz/zoneinfo/America/Grenada create mode 100644 lib/pytz/zoneinfo/America/Guadeloupe create mode 100644 lib/pytz/zoneinfo/America/Guatemala create mode 100644 lib/pytz/zoneinfo/America/Guayaquil create mode 100644 lib/pytz/zoneinfo/America/Guyana create mode 100644 lib/pytz/zoneinfo/America/Halifax create mode 100644 lib/pytz/zoneinfo/America/Havana create mode 100644 lib/pytz/zoneinfo/America/Hermosillo create mode 100644 lib/pytz/zoneinfo/America/Indiana/Indianapolis create mode 100644 lib/pytz/zoneinfo/America/Indiana/Knox create mode 100644 lib/pytz/zoneinfo/America/Indiana/Marengo create mode 100644 lib/pytz/zoneinfo/America/Indiana/Petersburg create mode 100644 lib/pytz/zoneinfo/America/Indiana/Tell_City create mode 100644 lib/pytz/zoneinfo/America/Indiana/Vevay create mode 100644 lib/pytz/zoneinfo/America/Indiana/Vincennes create mode 100644 lib/pytz/zoneinfo/America/Indiana/Winamac create mode 100644 lib/pytz/zoneinfo/America/Indianapolis create mode 100644 lib/pytz/zoneinfo/America/Inuvik create mode 100644 lib/pytz/zoneinfo/America/Iqaluit create mode 100644 lib/pytz/zoneinfo/America/Jamaica create mode 100644 lib/pytz/zoneinfo/America/Jujuy create mode 100644 lib/pytz/zoneinfo/America/Juneau create mode 100644 lib/pytz/zoneinfo/America/Kentucky/Louisville create mode 100644 lib/pytz/zoneinfo/America/Kentucky/Monticello create mode 100644 lib/pytz/zoneinfo/America/Knox_IN create mode 100644 lib/pytz/zoneinfo/America/Kralendijk create mode 100644 lib/pytz/zoneinfo/America/La_Paz create mode 100644 lib/pytz/zoneinfo/America/Lima create mode 100644 lib/pytz/zoneinfo/America/Los_Angeles create mode 100644 lib/pytz/zoneinfo/America/Louisville create mode 100644 lib/pytz/zoneinfo/America/Lower_Princes create mode 100644 lib/pytz/zoneinfo/America/Maceio create mode 100644 lib/pytz/zoneinfo/America/Managua create mode 100644 lib/pytz/zoneinfo/America/Manaus create mode 100644 lib/pytz/zoneinfo/America/Marigot create mode 100644 lib/pytz/zoneinfo/America/Martinique create mode 100644 lib/pytz/zoneinfo/America/Matamoros create mode 100644 lib/pytz/zoneinfo/America/Mazatlan create mode 100644 lib/pytz/zoneinfo/America/Mendoza create mode 100644 lib/pytz/zoneinfo/America/Menominee create mode 100644 lib/pytz/zoneinfo/America/Merida create mode 100644 lib/pytz/zoneinfo/America/Metlakatla create mode 100644 lib/pytz/zoneinfo/America/Mexico_City create mode 100644 lib/pytz/zoneinfo/America/Miquelon create mode 100644 lib/pytz/zoneinfo/America/Moncton create mode 100644 lib/pytz/zoneinfo/America/Monterrey create mode 100644 lib/pytz/zoneinfo/America/Montevideo create mode 100644 lib/pytz/zoneinfo/America/Montreal create mode 100644 lib/pytz/zoneinfo/America/Montserrat create mode 100644 lib/pytz/zoneinfo/America/Nassau create mode 100644 lib/pytz/zoneinfo/America/New_York create mode 100644 lib/pytz/zoneinfo/America/Nipigon create mode 100644 lib/pytz/zoneinfo/America/Nome create mode 100644 lib/pytz/zoneinfo/America/Noronha create mode 100644 lib/pytz/zoneinfo/America/North_Dakota/Beulah create mode 100644 lib/pytz/zoneinfo/America/North_Dakota/Center create mode 100644 lib/pytz/zoneinfo/America/North_Dakota/New_Salem create mode 100644 lib/pytz/zoneinfo/America/Ojinaga create mode 100644 lib/pytz/zoneinfo/America/Panama create mode 100644 lib/pytz/zoneinfo/America/Pangnirtung create mode 100644 lib/pytz/zoneinfo/America/Paramaribo create mode 100644 lib/pytz/zoneinfo/America/Phoenix create mode 100644 lib/pytz/zoneinfo/America/Port-au-Prince create mode 100644 lib/pytz/zoneinfo/America/Port_of_Spain create mode 100644 lib/pytz/zoneinfo/America/Porto_Acre create mode 100644 lib/pytz/zoneinfo/America/Porto_Velho create mode 100644 lib/pytz/zoneinfo/America/Puerto_Rico create mode 100644 lib/pytz/zoneinfo/America/Rainy_River create mode 100644 lib/pytz/zoneinfo/America/Rankin_Inlet create mode 100644 lib/pytz/zoneinfo/America/Recife create mode 100644 lib/pytz/zoneinfo/America/Regina create mode 100644 lib/pytz/zoneinfo/America/Resolute create mode 100644 lib/pytz/zoneinfo/America/Rio_Branco create mode 100644 lib/pytz/zoneinfo/America/Rosario create mode 100644 lib/pytz/zoneinfo/America/Santa_Isabel create mode 100644 lib/pytz/zoneinfo/America/Santarem create mode 100644 lib/pytz/zoneinfo/America/Santiago create mode 100644 lib/pytz/zoneinfo/America/Santo_Domingo create mode 100644 lib/pytz/zoneinfo/America/Sao_Paulo create mode 100644 lib/pytz/zoneinfo/America/Scoresbysund create mode 100644 lib/pytz/zoneinfo/America/Shiprock create mode 100644 lib/pytz/zoneinfo/America/Sitka create mode 100644 lib/pytz/zoneinfo/America/St_Barthelemy create mode 100644 lib/pytz/zoneinfo/America/St_Johns create mode 100644 lib/pytz/zoneinfo/America/St_Kitts create mode 100644 lib/pytz/zoneinfo/America/St_Lucia create mode 100644 lib/pytz/zoneinfo/America/St_Thomas create mode 100644 lib/pytz/zoneinfo/America/St_Vincent create mode 100644 lib/pytz/zoneinfo/America/Swift_Current create mode 100644 lib/pytz/zoneinfo/America/Tegucigalpa create mode 100644 lib/pytz/zoneinfo/America/Thule create mode 100644 lib/pytz/zoneinfo/America/Thunder_Bay create mode 100644 lib/pytz/zoneinfo/America/Tijuana create mode 100644 lib/pytz/zoneinfo/America/Toronto create mode 100644 lib/pytz/zoneinfo/America/Tortola create mode 100644 lib/pytz/zoneinfo/America/Vancouver create mode 100644 lib/pytz/zoneinfo/America/Virgin create mode 100644 lib/pytz/zoneinfo/America/Whitehorse create mode 100644 lib/pytz/zoneinfo/America/Winnipeg create mode 100644 lib/pytz/zoneinfo/America/Yakutat create mode 100644 lib/pytz/zoneinfo/America/Yellowknife create mode 100644 lib/pytz/zoneinfo/Antarctica/Casey create mode 100644 lib/pytz/zoneinfo/Antarctica/Davis create mode 100644 lib/pytz/zoneinfo/Antarctica/DumontDUrville create mode 100644 lib/pytz/zoneinfo/Antarctica/Macquarie create mode 100644 lib/pytz/zoneinfo/Antarctica/Mawson create mode 100644 lib/pytz/zoneinfo/Antarctica/McMurdo create mode 100644 lib/pytz/zoneinfo/Antarctica/Palmer create mode 100644 lib/pytz/zoneinfo/Antarctica/Rothera create mode 100644 lib/pytz/zoneinfo/Antarctica/South_Pole create mode 100644 lib/pytz/zoneinfo/Antarctica/Syowa create mode 100644 lib/pytz/zoneinfo/Antarctica/Troll create mode 100644 lib/pytz/zoneinfo/Antarctica/Vostok create mode 100644 lib/pytz/zoneinfo/Arctic/Longyearbyen create mode 100644 lib/pytz/zoneinfo/Asia/Aden create mode 100644 lib/pytz/zoneinfo/Asia/Almaty create mode 100644 lib/pytz/zoneinfo/Asia/Amman create mode 100644 lib/pytz/zoneinfo/Asia/Anadyr create mode 100644 lib/pytz/zoneinfo/Asia/Aqtau create mode 100644 lib/pytz/zoneinfo/Asia/Aqtobe create mode 100644 lib/pytz/zoneinfo/Asia/Ashgabat create mode 100644 lib/pytz/zoneinfo/Asia/Ashkhabad create mode 100644 lib/pytz/zoneinfo/Asia/Baghdad create mode 100644 lib/pytz/zoneinfo/Asia/Bahrain create mode 100644 lib/pytz/zoneinfo/Asia/Baku create mode 100644 lib/pytz/zoneinfo/Asia/Bangkok create mode 100644 lib/pytz/zoneinfo/Asia/Barnaul create mode 100644 lib/pytz/zoneinfo/Asia/Beirut create mode 100644 lib/pytz/zoneinfo/Asia/Bishkek create mode 100644 lib/pytz/zoneinfo/Asia/Brunei create mode 100644 lib/pytz/zoneinfo/Asia/Calcutta create mode 100644 lib/pytz/zoneinfo/Asia/Chita create mode 100644 lib/pytz/zoneinfo/Asia/Choibalsan create mode 100644 lib/pytz/zoneinfo/Asia/Chongqing create mode 100644 lib/pytz/zoneinfo/Asia/Chungking create mode 100644 lib/pytz/zoneinfo/Asia/Colombo create mode 100644 lib/pytz/zoneinfo/Asia/Dacca create mode 100644 lib/pytz/zoneinfo/Asia/Damascus create mode 100644 lib/pytz/zoneinfo/Asia/Dhaka create mode 100644 lib/pytz/zoneinfo/Asia/Dili create mode 100644 lib/pytz/zoneinfo/Asia/Dubai create mode 100644 lib/pytz/zoneinfo/Asia/Dushanbe create mode 100644 lib/pytz/zoneinfo/Asia/Gaza create mode 100644 lib/pytz/zoneinfo/Asia/Harbin create mode 100644 lib/pytz/zoneinfo/Asia/Hebron create mode 100644 lib/pytz/zoneinfo/Asia/Ho_Chi_Minh create mode 100644 lib/pytz/zoneinfo/Asia/Hong_Kong create mode 100644 lib/pytz/zoneinfo/Asia/Hovd create mode 100644 lib/pytz/zoneinfo/Asia/Irkutsk create mode 100644 lib/pytz/zoneinfo/Asia/Istanbul create mode 100644 lib/pytz/zoneinfo/Asia/Jakarta create mode 100644 lib/pytz/zoneinfo/Asia/Jayapura create mode 100644 lib/pytz/zoneinfo/Asia/Jerusalem create mode 100644 lib/pytz/zoneinfo/Asia/Kabul create mode 100644 lib/pytz/zoneinfo/Asia/Kamchatka create mode 100644 lib/pytz/zoneinfo/Asia/Karachi create mode 100644 lib/pytz/zoneinfo/Asia/Kashgar create mode 100644 lib/pytz/zoneinfo/Asia/Kathmandu create mode 100644 lib/pytz/zoneinfo/Asia/Katmandu create mode 100644 lib/pytz/zoneinfo/Asia/Khandyga create mode 100644 lib/pytz/zoneinfo/Asia/Kolkata create mode 100644 lib/pytz/zoneinfo/Asia/Krasnoyarsk create mode 100644 lib/pytz/zoneinfo/Asia/Kuala_Lumpur create mode 100644 lib/pytz/zoneinfo/Asia/Kuching create mode 100644 lib/pytz/zoneinfo/Asia/Kuwait create mode 100644 lib/pytz/zoneinfo/Asia/Macao create mode 100644 lib/pytz/zoneinfo/Asia/Macau create mode 100644 lib/pytz/zoneinfo/Asia/Magadan create mode 100644 lib/pytz/zoneinfo/Asia/Makassar create mode 100644 lib/pytz/zoneinfo/Asia/Manila create mode 100644 lib/pytz/zoneinfo/Asia/Muscat create mode 100644 lib/pytz/zoneinfo/Asia/Nicosia create mode 100644 lib/pytz/zoneinfo/Asia/Novokuznetsk create mode 100644 lib/pytz/zoneinfo/Asia/Novosibirsk create mode 100644 lib/pytz/zoneinfo/Asia/Omsk create mode 100644 lib/pytz/zoneinfo/Asia/Oral create mode 100644 lib/pytz/zoneinfo/Asia/Phnom_Penh create mode 100644 lib/pytz/zoneinfo/Asia/Pontianak create mode 100644 lib/pytz/zoneinfo/Asia/Pyongyang create mode 100644 lib/pytz/zoneinfo/Asia/Qatar create mode 100644 lib/pytz/zoneinfo/Asia/Qyzylorda create mode 100644 lib/pytz/zoneinfo/Asia/Rangoon create mode 100644 lib/pytz/zoneinfo/Asia/Riyadh create mode 100644 lib/pytz/zoneinfo/Asia/Saigon create mode 100644 lib/pytz/zoneinfo/Asia/Sakhalin create mode 100644 lib/pytz/zoneinfo/Asia/Samarkand create mode 100644 lib/pytz/zoneinfo/Asia/Seoul create mode 100644 lib/pytz/zoneinfo/Asia/Shanghai create mode 100644 lib/pytz/zoneinfo/Asia/Singapore create mode 100644 lib/pytz/zoneinfo/Asia/Srednekolymsk create mode 100644 lib/pytz/zoneinfo/Asia/Taipei create mode 100644 lib/pytz/zoneinfo/Asia/Tashkent create mode 100644 lib/pytz/zoneinfo/Asia/Tbilisi create mode 100644 lib/pytz/zoneinfo/Asia/Tehran create mode 100644 lib/pytz/zoneinfo/Asia/Tel_Aviv create mode 100644 lib/pytz/zoneinfo/Asia/Thimbu create mode 100644 lib/pytz/zoneinfo/Asia/Thimphu create mode 100644 lib/pytz/zoneinfo/Asia/Tokyo create mode 100644 lib/pytz/zoneinfo/Asia/Tomsk create mode 100644 lib/pytz/zoneinfo/Asia/Ujung_Pandang create mode 100644 lib/pytz/zoneinfo/Asia/Ulaanbaatar create mode 100644 lib/pytz/zoneinfo/Asia/Ulan_Bator create mode 100644 lib/pytz/zoneinfo/Asia/Urumqi create mode 100644 lib/pytz/zoneinfo/Asia/Ust-Nera create mode 100644 lib/pytz/zoneinfo/Asia/Vientiane create mode 100644 lib/pytz/zoneinfo/Asia/Vladivostok create mode 100644 lib/pytz/zoneinfo/Asia/Yakutsk create mode 100644 lib/pytz/zoneinfo/Asia/Yekaterinburg create mode 100644 lib/pytz/zoneinfo/Asia/Yerevan create mode 100644 lib/pytz/zoneinfo/Atlantic/Azores create mode 100644 lib/pytz/zoneinfo/Atlantic/Bermuda create mode 100644 lib/pytz/zoneinfo/Atlantic/Canary create mode 100644 lib/pytz/zoneinfo/Atlantic/Cape_Verde create mode 100644 lib/pytz/zoneinfo/Atlantic/Faeroe create mode 100644 lib/pytz/zoneinfo/Atlantic/Faroe create mode 100644 lib/pytz/zoneinfo/Atlantic/Jan_Mayen create mode 100644 lib/pytz/zoneinfo/Atlantic/Madeira create mode 100644 lib/pytz/zoneinfo/Atlantic/Reykjavik create mode 100644 lib/pytz/zoneinfo/Atlantic/South_Georgia create mode 100644 lib/pytz/zoneinfo/Atlantic/St_Helena create mode 100644 lib/pytz/zoneinfo/Atlantic/Stanley create mode 100644 lib/pytz/zoneinfo/Australia/ACT create mode 100644 lib/pytz/zoneinfo/Australia/Adelaide create mode 100644 lib/pytz/zoneinfo/Australia/Brisbane create mode 100644 lib/pytz/zoneinfo/Australia/Broken_Hill create mode 100644 lib/pytz/zoneinfo/Australia/Canberra create mode 100644 lib/pytz/zoneinfo/Australia/Currie create mode 100644 lib/pytz/zoneinfo/Australia/Darwin create mode 100644 lib/pytz/zoneinfo/Australia/Eucla create mode 100644 lib/pytz/zoneinfo/Australia/Hobart create mode 100644 lib/pytz/zoneinfo/Australia/LHI create mode 100644 lib/pytz/zoneinfo/Australia/Lindeman create mode 100644 lib/pytz/zoneinfo/Australia/Lord_Howe create mode 100644 lib/pytz/zoneinfo/Australia/Melbourne create mode 100644 lib/pytz/zoneinfo/Australia/NSW create mode 100644 lib/pytz/zoneinfo/Australia/North create mode 100644 lib/pytz/zoneinfo/Australia/Perth create mode 100644 lib/pytz/zoneinfo/Australia/Queensland create mode 100644 lib/pytz/zoneinfo/Australia/South create mode 100644 lib/pytz/zoneinfo/Australia/Sydney create mode 100644 lib/pytz/zoneinfo/Australia/Tasmania create mode 100644 lib/pytz/zoneinfo/Australia/Victoria create mode 100644 lib/pytz/zoneinfo/Australia/West create mode 100644 lib/pytz/zoneinfo/Australia/Yancowinna create mode 100644 lib/pytz/zoneinfo/Brazil/Acre create mode 100644 lib/pytz/zoneinfo/Brazil/DeNoronha create mode 100644 lib/pytz/zoneinfo/Brazil/East create mode 100644 lib/pytz/zoneinfo/Brazil/West create mode 100644 lib/pytz/zoneinfo/CET create mode 100644 lib/pytz/zoneinfo/CST6CDT create mode 100644 lib/pytz/zoneinfo/Canada/Atlantic create mode 100644 lib/pytz/zoneinfo/Canada/Central create mode 100644 lib/pytz/zoneinfo/Canada/East-Saskatchewan create mode 100644 lib/pytz/zoneinfo/Canada/Eastern create mode 100644 lib/pytz/zoneinfo/Canada/Mountain create mode 100644 lib/pytz/zoneinfo/Canada/Newfoundland create mode 100644 lib/pytz/zoneinfo/Canada/Pacific create mode 100644 lib/pytz/zoneinfo/Canada/Saskatchewan create mode 100644 lib/pytz/zoneinfo/Canada/Yukon create mode 100644 lib/pytz/zoneinfo/Chile/Continental create mode 100644 lib/pytz/zoneinfo/Chile/EasterIsland create mode 100644 lib/pytz/zoneinfo/Cuba create mode 100644 lib/pytz/zoneinfo/EET create mode 100644 lib/pytz/zoneinfo/EST create mode 100644 lib/pytz/zoneinfo/EST5EDT create mode 100644 lib/pytz/zoneinfo/Egypt create mode 100644 lib/pytz/zoneinfo/Eire create mode 100644 lib/pytz/zoneinfo/Etc/GMT create mode 100644 lib/pytz/zoneinfo/Etc/GMT+0 create mode 100644 lib/pytz/zoneinfo/Etc/GMT+1 create mode 100644 lib/pytz/zoneinfo/Etc/GMT+10 create mode 100644 lib/pytz/zoneinfo/Etc/GMT+11 create mode 100644 lib/pytz/zoneinfo/Etc/GMT+12 create mode 100644 lib/pytz/zoneinfo/Etc/GMT+2 create mode 100644 lib/pytz/zoneinfo/Etc/GMT+3 create mode 100644 lib/pytz/zoneinfo/Etc/GMT+4 create mode 100644 lib/pytz/zoneinfo/Etc/GMT+5 create mode 100644 lib/pytz/zoneinfo/Etc/GMT+6 create mode 100644 lib/pytz/zoneinfo/Etc/GMT+7 create mode 100644 lib/pytz/zoneinfo/Etc/GMT+8 create mode 100644 lib/pytz/zoneinfo/Etc/GMT+9 create mode 100644 lib/pytz/zoneinfo/Etc/GMT-0 create mode 100644 lib/pytz/zoneinfo/Etc/GMT-1 create mode 100644 lib/pytz/zoneinfo/Etc/GMT-10 create mode 100644 lib/pytz/zoneinfo/Etc/GMT-11 create mode 100644 lib/pytz/zoneinfo/Etc/GMT-12 create mode 100644 lib/pytz/zoneinfo/Etc/GMT-13 create mode 100644 lib/pytz/zoneinfo/Etc/GMT-14 create mode 100644 lib/pytz/zoneinfo/Etc/GMT-2 create mode 100644 lib/pytz/zoneinfo/Etc/GMT-3 create mode 100644 lib/pytz/zoneinfo/Etc/GMT-4 create mode 100644 lib/pytz/zoneinfo/Etc/GMT-5 create mode 100644 lib/pytz/zoneinfo/Etc/GMT-6 create mode 100644 lib/pytz/zoneinfo/Etc/GMT-7 create mode 100644 lib/pytz/zoneinfo/Etc/GMT-8 create mode 100644 lib/pytz/zoneinfo/Etc/GMT-9 create mode 100644 lib/pytz/zoneinfo/Etc/GMT0 create mode 100644 lib/pytz/zoneinfo/Etc/Greenwich create mode 100644 lib/pytz/zoneinfo/Etc/UCT create mode 100644 lib/pytz/zoneinfo/Etc/UTC create mode 100644 lib/pytz/zoneinfo/Etc/Universal create mode 100644 lib/pytz/zoneinfo/Etc/Zulu create mode 100644 lib/pytz/zoneinfo/Europe/Amsterdam create mode 100644 lib/pytz/zoneinfo/Europe/Andorra create mode 100644 lib/pytz/zoneinfo/Europe/Astrakhan create mode 100644 lib/pytz/zoneinfo/Europe/Athens create mode 100644 lib/pytz/zoneinfo/Europe/Belfast create mode 100644 lib/pytz/zoneinfo/Europe/Belgrade create mode 100644 lib/pytz/zoneinfo/Europe/Berlin create mode 100644 lib/pytz/zoneinfo/Europe/Bratislava create mode 100644 lib/pytz/zoneinfo/Europe/Brussels create mode 100644 lib/pytz/zoneinfo/Europe/Bucharest create mode 100644 lib/pytz/zoneinfo/Europe/Budapest create mode 100644 lib/pytz/zoneinfo/Europe/Busingen create mode 100644 lib/pytz/zoneinfo/Europe/Chisinau create mode 100644 lib/pytz/zoneinfo/Europe/Copenhagen create mode 100644 lib/pytz/zoneinfo/Europe/Dublin create mode 100644 lib/pytz/zoneinfo/Europe/Gibraltar create mode 100644 lib/pytz/zoneinfo/Europe/Guernsey create mode 100644 lib/pytz/zoneinfo/Europe/Helsinki create mode 100644 lib/pytz/zoneinfo/Europe/Isle_of_Man create mode 100644 lib/pytz/zoneinfo/Europe/Istanbul create mode 100644 lib/pytz/zoneinfo/Europe/Jersey create mode 100644 lib/pytz/zoneinfo/Europe/Kaliningrad create mode 100644 lib/pytz/zoneinfo/Europe/Kiev create mode 100644 lib/pytz/zoneinfo/Europe/Kirov create mode 100644 lib/pytz/zoneinfo/Europe/Lisbon create mode 100644 lib/pytz/zoneinfo/Europe/Ljubljana create mode 100644 lib/pytz/zoneinfo/Europe/London create mode 100644 lib/pytz/zoneinfo/Europe/Luxembourg create mode 100644 lib/pytz/zoneinfo/Europe/Madrid create mode 100644 lib/pytz/zoneinfo/Europe/Malta create mode 100644 lib/pytz/zoneinfo/Europe/Mariehamn create mode 100644 lib/pytz/zoneinfo/Europe/Minsk create mode 100644 lib/pytz/zoneinfo/Europe/Monaco create mode 100644 lib/pytz/zoneinfo/Europe/Moscow create mode 100644 lib/pytz/zoneinfo/Europe/Nicosia create mode 100644 lib/pytz/zoneinfo/Europe/Oslo create mode 100644 lib/pytz/zoneinfo/Europe/Paris create mode 100644 lib/pytz/zoneinfo/Europe/Podgorica create mode 100644 lib/pytz/zoneinfo/Europe/Prague create mode 100644 lib/pytz/zoneinfo/Europe/Riga create mode 100644 lib/pytz/zoneinfo/Europe/Rome create mode 100644 lib/pytz/zoneinfo/Europe/Samara create mode 100644 lib/pytz/zoneinfo/Europe/San_Marino create mode 100644 lib/pytz/zoneinfo/Europe/Sarajevo create mode 100644 lib/pytz/zoneinfo/Europe/Simferopol create mode 100644 lib/pytz/zoneinfo/Europe/Skopje create mode 100644 lib/pytz/zoneinfo/Europe/Sofia create mode 100644 lib/pytz/zoneinfo/Europe/Stockholm create mode 100644 lib/pytz/zoneinfo/Europe/Tallinn create mode 100644 lib/pytz/zoneinfo/Europe/Tirane create mode 100644 lib/pytz/zoneinfo/Europe/Tiraspol create mode 100644 lib/pytz/zoneinfo/Europe/Ulyanovsk create mode 100644 lib/pytz/zoneinfo/Europe/Uzhgorod create mode 100644 lib/pytz/zoneinfo/Europe/Vaduz create mode 100644 lib/pytz/zoneinfo/Europe/Vatican create mode 100644 lib/pytz/zoneinfo/Europe/Vienna create mode 100644 lib/pytz/zoneinfo/Europe/Vilnius create mode 100644 lib/pytz/zoneinfo/Europe/Volgograd create mode 100644 lib/pytz/zoneinfo/Europe/Warsaw create mode 100644 lib/pytz/zoneinfo/Europe/Zagreb create mode 100644 lib/pytz/zoneinfo/Europe/Zaporozhye create mode 100644 lib/pytz/zoneinfo/Europe/Zurich create mode 100644 lib/pytz/zoneinfo/Factory create mode 100644 lib/pytz/zoneinfo/GB create mode 100644 lib/pytz/zoneinfo/GB-Eire create mode 100644 lib/pytz/zoneinfo/GMT create mode 100644 lib/pytz/zoneinfo/GMT+0 create mode 100644 lib/pytz/zoneinfo/GMT-0 create mode 100644 lib/pytz/zoneinfo/GMT0 create mode 100644 lib/pytz/zoneinfo/Greenwich create mode 100644 lib/pytz/zoneinfo/HST create mode 100644 lib/pytz/zoneinfo/Hongkong create mode 100644 lib/pytz/zoneinfo/Iceland create mode 100644 lib/pytz/zoneinfo/Indian/Antananarivo create mode 100644 lib/pytz/zoneinfo/Indian/Chagos create mode 100644 lib/pytz/zoneinfo/Indian/Christmas create mode 100644 lib/pytz/zoneinfo/Indian/Cocos create mode 100644 lib/pytz/zoneinfo/Indian/Comoro create mode 100644 lib/pytz/zoneinfo/Indian/Kerguelen create mode 100644 lib/pytz/zoneinfo/Indian/Mahe create mode 100644 lib/pytz/zoneinfo/Indian/Maldives create mode 100644 lib/pytz/zoneinfo/Indian/Mauritius create mode 100644 lib/pytz/zoneinfo/Indian/Mayotte create mode 100644 lib/pytz/zoneinfo/Indian/Reunion create mode 100644 lib/pytz/zoneinfo/Iran create mode 100644 lib/pytz/zoneinfo/Israel create mode 100644 lib/pytz/zoneinfo/Jamaica create mode 100644 lib/pytz/zoneinfo/Japan create mode 100644 lib/pytz/zoneinfo/Kwajalein create mode 100644 lib/pytz/zoneinfo/Libya create mode 100644 lib/pytz/zoneinfo/MET create mode 100644 lib/pytz/zoneinfo/MST create mode 100644 lib/pytz/zoneinfo/MST7MDT create mode 100644 lib/pytz/zoneinfo/Mexico/BajaNorte create mode 100644 lib/pytz/zoneinfo/Mexico/BajaSur create mode 100644 lib/pytz/zoneinfo/Mexico/General create mode 100644 lib/pytz/zoneinfo/NZ create mode 100644 lib/pytz/zoneinfo/NZ-CHAT create mode 100644 lib/pytz/zoneinfo/Navajo create mode 100644 lib/pytz/zoneinfo/PRC create mode 100644 lib/pytz/zoneinfo/PST8PDT create mode 100644 lib/pytz/zoneinfo/Pacific/Apia create mode 100644 lib/pytz/zoneinfo/Pacific/Auckland create mode 100644 lib/pytz/zoneinfo/Pacific/Bougainville create mode 100644 lib/pytz/zoneinfo/Pacific/Chatham create mode 100644 lib/pytz/zoneinfo/Pacific/Chuuk create mode 100644 lib/pytz/zoneinfo/Pacific/Easter create mode 100644 lib/pytz/zoneinfo/Pacific/Efate create mode 100644 lib/pytz/zoneinfo/Pacific/Enderbury create mode 100644 lib/pytz/zoneinfo/Pacific/Fakaofo create mode 100644 lib/pytz/zoneinfo/Pacific/Fiji create mode 100644 lib/pytz/zoneinfo/Pacific/Funafuti create mode 100644 lib/pytz/zoneinfo/Pacific/Galapagos create mode 100644 lib/pytz/zoneinfo/Pacific/Gambier create mode 100644 lib/pytz/zoneinfo/Pacific/Guadalcanal create mode 100644 lib/pytz/zoneinfo/Pacific/Guam create mode 100644 lib/pytz/zoneinfo/Pacific/Honolulu create mode 100644 lib/pytz/zoneinfo/Pacific/Johnston create mode 100644 lib/pytz/zoneinfo/Pacific/Kiritimati create mode 100644 lib/pytz/zoneinfo/Pacific/Kosrae create mode 100644 lib/pytz/zoneinfo/Pacific/Kwajalein create mode 100644 lib/pytz/zoneinfo/Pacific/Majuro create mode 100644 lib/pytz/zoneinfo/Pacific/Marquesas create mode 100644 lib/pytz/zoneinfo/Pacific/Midway create mode 100644 lib/pytz/zoneinfo/Pacific/Nauru create mode 100644 lib/pytz/zoneinfo/Pacific/Niue create mode 100644 lib/pytz/zoneinfo/Pacific/Norfolk create mode 100644 lib/pytz/zoneinfo/Pacific/Noumea create mode 100644 lib/pytz/zoneinfo/Pacific/Pago_Pago create mode 100644 lib/pytz/zoneinfo/Pacific/Palau create mode 100644 lib/pytz/zoneinfo/Pacific/Pitcairn create mode 100644 lib/pytz/zoneinfo/Pacific/Pohnpei create mode 100644 lib/pytz/zoneinfo/Pacific/Ponape create mode 100644 lib/pytz/zoneinfo/Pacific/Port_Moresby create mode 100644 lib/pytz/zoneinfo/Pacific/Rarotonga create mode 100644 lib/pytz/zoneinfo/Pacific/Saipan create mode 100644 lib/pytz/zoneinfo/Pacific/Samoa create mode 100644 lib/pytz/zoneinfo/Pacific/Tahiti create mode 100644 lib/pytz/zoneinfo/Pacific/Tarawa create mode 100644 lib/pytz/zoneinfo/Pacific/Tongatapu create mode 100644 lib/pytz/zoneinfo/Pacific/Truk create mode 100644 lib/pytz/zoneinfo/Pacific/Wake create mode 100644 lib/pytz/zoneinfo/Pacific/Wallis create mode 100644 lib/pytz/zoneinfo/Pacific/Yap create mode 100644 lib/pytz/zoneinfo/Poland create mode 100644 lib/pytz/zoneinfo/Portugal create mode 100644 lib/pytz/zoneinfo/ROC create mode 100644 lib/pytz/zoneinfo/ROK create mode 100644 lib/pytz/zoneinfo/Singapore create mode 100644 lib/pytz/zoneinfo/Turkey create mode 100644 lib/pytz/zoneinfo/UCT create mode 100644 lib/pytz/zoneinfo/US/Alaska create mode 100644 lib/pytz/zoneinfo/US/Aleutian create mode 100644 lib/pytz/zoneinfo/US/Arizona create mode 100644 lib/pytz/zoneinfo/US/Central create mode 100644 lib/pytz/zoneinfo/US/East-Indiana create mode 100644 lib/pytz/zoneinfo/US/Eastern create mode 100644 lib/pytz/zoneinfo/US/Hawaii create mode 100644 lib/pytz/zoneinfo/US/Indiana-Starke create mode 100644 lib/pytz/zoneinfo/US/Michigan create mode 100644 lib/pytz/zoneinfo/US/Mountain create mode 100644 lib/pytz/zoneinfo/US/Pacific create mode 100644 lib/pytz/zoneinfo/US/Pacific-New create mode 100644 lib/pytz/zoneinfo/US/Samoa create mode 100644 lib/pytz/zoneinfo/UTC create mode 100644 lib/pytz/zoneinfo/Universal create mode 100644 lib/pytz/zoneinfo/W-SU create mode 100644 lib/pytz/zoneinfo/WET create mode 100644 lib/pytz/zoneinfo/Zulu create mode 100644 lib/pytz/zoneinfo/iso3166.tab create mode 100644 lib/pytz/zoneinfo/localtime create mode 100644 lib/pytz/zoneinfo/posixrules create mode 100644 lib/pytz/zoneinfo/zone.tab create mode 100644 lib/pytz/zoneinfo/zone1970.tab create mode 100644 lib/tornado/platform/auto.pyi create mode 100644 lib/tornado/speedups.pyi create mode 100644 lib/tzlocal/__init__.py create mode 100644 lib/tzlocal/darwin.py create mode 100644 lib/tzlocal/tests.py create mode 100644 lib/tzlocal/unix.py create mode 100644 lib/tzlocal/win32.py create mode 100644 lib/tzlocal/windows_tz.py diff --git a/CHANGES.md b/CHANGES.md index 59b27c46..c0e27434 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -174,6 +174,7 @@ * Fix ensure downloaded eps are not shown on episode view * Fix allow propers to pp when show marked upgrade once * Fix never set episodes without airdate to wanted +* Change improve getting the local timezone information [develop changelog] * Change send nzb data to NZBGet for Anizb instead of url diff --git a/lib/pytz/__init__.py b/lib/pytz/__init__.py new file mode 100644 index 00000000..595d2e3f --- /dev/null +++ b/lib/pytz/__init__.py @@ -0,0 +1,1526 @@ +''' +datetime.tzinfo timezone definitions generated from the +Olson timezone database: + + ftp://elsie.nci.nih.gov/pub/tz*.tar.gz + +See the datetime section of the Python Library Reference for information +on how to use these modules. +''' + +# The IANA (nee Olson) database is updated several times a year. +OLSON_VERSION = '2016f' +VERSION = '2016.6.1' # Switching to pip compatible version numbering. +__version__ = VERSION + +OLSEN_VERSION = OLSON_VERSION # Old releases had this misspelling + +__all__ = [ + 'timezone', 'utc', 'country_timezones', 'country_names', + 'AmbiguousTimeError', 'InvalidTimeError', + 'NonExistentTimeError', 'UnknownTimeZoneError', + 'all_timezones', 'all_timezones_set', + 'common_timezones', 'common_timezones_set', + ] + +import sys, datetime, os.path, gettext + +from pytz.exceptions import AmbiguousTimeError +from pytz.exceptions import InvalidTimeError +from pytz.exceptions import NonExistentTimeError +from pytz.exceptions import UnknownTimeZoneError +from pytz.lazy import LazyDict, LazyList, LazySet +from pytz.tzinfo import unpickler +from pytz.tzfile import build_tzinfo, _byte_string + + +try: + unicode + +except NameError: # Python 3.x + + # Python 3.x doesn't have unicode(), making writing code + # for Python 2.3 and Python 3.x a pain. + unicode = str + + def ascii(s): + r""" + >>> ascii('Hello') + 'Hello' + >>> ascii('\N{TRADE MARK SIGN}') #doctest: +IGNORE_EXCEPTION_DETAIL + Traceback (most recent call last): + ... + UnicodeEncodeError: ... + """ + s.encode('ASCII') # Raise an exception if not ASCII + return s # But return the original string - not a byte string. + +else: # Python 2.x + + def ascii(s): + r""" + >>> ascii('Hello') + 'Hello' + >>> ascii(u'Hello') + 'Hello' + >>> ascii(u'\N{TRADE MARK SIGN}') #doctest: +IGNORE_EXCEPTION_DETAIL + Traceback (most recent call last): + ... + UnicodeEncodeError: ... + """ + return s.encode('ASCII') + + +def open_resource(name): + """Open a resource from the zoneinfo subdir for reading. + + Uses the pkg_resources module if available and no standard file + found at the calculated location. + """ + name_parts = name.lstrip('/').split('/') + for part in name_parts: + if part == os.path.pardir or os.path.sep in part: + raise ValueError('Bad path segment: %r' % part) + filename = os.path.join(os.path.dirname(__file__), + 'zoneinfo', *name_parts) + if not os.path.exists(filename): + # http://bugs.launchpad.net/bugs/383171 - we avoid using this + # unless absolutely necessary to help when a broken version of + # pkg_resources is installed. + try: + from pkg_resources import resource_stream + except ImportError: + resource_stream = None + + if resource_stream is not None: + return resource_stream(__name__, 'zoneinfo/' + name) + return open(filename, 'rb') + + +def resource_exists(name): + """Return true if the given resource exists""" + try: + open_resource(name).close() + return True + except IOError: + return False + + +# Enable this when we get some translations? +# We want an i18n API that is useful to programs using Python's gettext +# module, as well as the Zope3 i18n package. Perhaps we should just provide +# the POT file and translations, and leave it up to callers to make use +# of them. +# +# t = gettext.translation( +# 'pytz', os.path.join(os.path.dirname(__file__), 'locales'), +# fallback=True +# ) +# def _(timezone_name): +# """Translate a timezone name using the current locale, returning Unicode""" +# return t.ugettext(timezone_name) + + +_tzinfo_cache = {} + +def timezone(zone): + r''' Return a datetime.tzinfo implementation for the given timezone + + >>> from datetime import datetime, timedelta + >>> utc = timezone('UTC') + >>> eastern = timezone('US/Eastern') + >>> eastern.zone + 'US/Eastern' + >>> timezone(unicode('US/Eastern')) is eastern + True + >>> utc_dt = datetime(2002, 10, 27, 6, 0, 0, tzinfo=utc) + >>> loc_dt = utc_dt.astimezone(eastern) + >>> fmt = '%Y-%m-%d %H:%M:%S %Z (%z)' + >>> loc_dt.strftime(fmt) + '2002-10-27 01:00:00 EST (-0500)' + >>> (loc_dt - timedelta(minutes=10)).strftime(fmt) + '2002-10-27 00:50:00 EST (-0500)' + >>> eastern.normalize(loc_dt - timedelta(minutes=10)).strftime(fmt) + '2002-10-27 01:50:00 EDT (-0400)' + >>> (loc_dt + timedelta(minutes=10)).strftime(fmt) + '2002-10-27 01:10:00 EST (-0500)' + + Raises UnknownTimeZoneError if passed an unknown zone. + + >>> try: + ... timezone('Asia/Shangri-La') + ... except UnknownTimeZoneError: + ... print('Unknown') + Unknown + + >>> try: + ... timezone(unicode('\N{TRADE MARK SIGN}')) + ... except UnknownTimeZoneError: + ... print('Unknown') + Unknown + + ''' + if zone.upper() == 'UTC': + return utc + + try: + zone = ascii(zone) + except UnicodeEncodeError: + # All valid timezones are ASCII + raise UnknownTimeZoneError(zone) + + zone = _unmunge_zone(zone) + if zone not in _tzinfo_cache: + if zone in all_timezones_set: + fp = open_resource(zone) + try: + _tzinfo_cache[zone] = build_tzinfo(zone, fp) + finally: + fp.close() + else: + raise UnknownTimeZoneError(zone) + + return _tzinfo_cache[zone] + + +def _unmunge_zone(zone): + """Undo the time zone name munging done by older versions of pytz.""" + return zone.replace('_plus_', '+').replace('_minus_', '-') + + +ZERO = datetime.timedelta(0) +HOUR = datetime.timedelta(hours=1) + + +class UTC(datetime.tzinfo): + """UTC + + Optimized UTC implementation. It unpickles using the single module global + instance defined beneath this class declaration. + """ + zone = "UTC" + + _utcoffset = ZERO + _dst = ZERO + _tzname = zone + + def fromutc(self, dt): + if dt.tzinfo is None: + return self.localize(dt) + return super(utc.__class__, self).fromutc(dt) + + def utcoffset(self, dt): + return ZERO + + def tzname(self, dt): + return "UTC" + + def dst(self, dt): + return ZERO + + def __reduce__(self): + return _UTC, () + + def localize(self, dt, is_dst=False): + '''Convert naive time to local time''' + if dt.tzinfo is not None: + raise ValueError('Not naive datetime (tzinfo is already set)') + return dt.replace(tzinfo=self) + + def normalize(self, dt, is_dst=False): + '''Correct the timezone information on the given datetime''' + if dt.tzinfo is self: + return dt + if dt.tzinfo is None: + raise ValueError('Naive time - no tzinfo set') + return dt.astimezone(self) + + def __repr__(self): + return "" + + def __str__(self): + return "UTC" + + +UTC = utc = UTC() # UTC is a singleton + + +def _UTC(): + """Factory function for utc unpickling. + + Makes sure that unpickling a utc instance always returns the same + module global. + + These examples belong in the UTC class above, but it is obscured; or in + the README.txt, but we are not depending on Python 2.4 so integrating + the README.txt examples with the unit tests is not trivial. + + >>> import datetime, pickle + >>> dt = datetime.datetime(2005, 3, 1, 14, 13, 21, tzinfo=utc) + >>> naive = dt.replace(tzinfo=None) + >>> p = pickle.dumps(dt, 1) + >>> naive_p = pickle.dumps(naive, 1) + >>> len(p) - len(naive_p) + 17 + >>> new = pickle.loads(p) + >>> new == dt + True + >>> new is dt + False + >>> new.tzinfo is dt.tzinfo + True + >>> utc is UTC is timezone('UTC') + True + >>> utc is timezone('GMT') + False + """ + return utc +_UTC.__safe_for_unpickling__ = True + + +def _p(*args): + """Factory function for unpickling pytz tzinfo instances. + + Just a wrapper around tzinfo.unpickler to save a few bytes in each pickle + by shortening the path. + """ + return unpickler(*args) +_p.__safe_for_unpickling__ = True + + + +class _CountryTimezoneDict(LazyDict): + """Map ISO 3166 country code to a list of timezone names commonly used + in that country. + + iso3166_code is the two letter code used to identify the country. + + >>> def print_list(list_of_strings): + ... 'We use a helper so doctests work under Python 2.3 -> 3.x' + ... for s in list_of_strings: + ... print(s) + + >>> print_list(country_timezones['nz']) + Pacific/Auckland + Pacific/Chatham + >>> print_list(country_timezones['ch']) + Europe/Zurich + >>> print_list(country_timezones['CH']) + Europe/Zurich + >>> print_list(country_timezones[unicode('ch')]) + Europe/Zurich + >>> print_list(country_timezones['XXX']) + Traceback (most recent call last): + ... + KeyError: 'XXX' + + Previously, this information was exposed as a function rather than a + dictionary. This is still supported:: + + >>> print_list(country_timezones('nz')) + Pacific/Auckland + Pacific/Chatham + """ + def __call__(self, iso3166_code): + """Backwards compatibility.""" + return self[iso3166_code] + + def _fill(self): + data = {} + zone_tab = open_resource('zone.tab') + try: + for line in zone_tab: + line = line.decode('UTF-8') + if line.startswith('#'): + continue + code, coordinates, zone = line.split(None, 4)[:3] + if zone not in all_timezones_set: + continue + try: + data[code].append(zone) + except KeyError: + data[code] = [zone] + self.data = data + finally: + zone_tab.close() + +country_timezones = _CountryTimezoneDict() + + +class _CountryNameDict(LazyDict): + '''Dictionary proving ISO3166 code -> English name. + + >>> print(country_names['au']) + Australia + ''' + def _fill(self): + data = {} + zone_tab = open_resource('iso3166.tab') + try: + for line in zone_tab.readlines(): + line = line.decode('UTF-8') + if line.startswith('#'): + continue + code, name = line.split(None, 1) + data[code] = name.strip() + self.data = data + finally: + zone_tab.close() + +country_names = _CountryNameDict() + + +# Time-zone info based solely on fixed offsets + +class _FixedOffset(datetime.tzinfo): + + zone = None # to match the standard pytz API + + def __init__(self, minutes): + if abs(minutes) >= 1440: + raise ValueError("absolute offset is too large", minutes) + self._minutes = minutes + self._offset = datetime.timedelta(minutes=minutes) + + def utcoffset(self, dt): + return self._offset + + def __reduce__(self): + return FixedOffset, (self._minutes, ) + + def dst(self, dt): + return ZERO + + def tzname(self, dt): + return None + + def __repr__(self): + return 'pytz.FixedOffset(%d)' % self._minutes + + def localize(self, dt, is_dst=False): + '''Convert naive time to local time''' + if dt.tzinfo is not None: + raise ValueError('Not naive datetime (tzinfo is already set)') + return dt.replace(tzinfo=self) + + def normalize(self, dt, is_dst=False): + '''Correct the timezone information on the given datetime''' + if dt.tzinfo is self: + return dt + if dt.tzinfo is None: + raise ValueError('Naive time - no tzinfo set') + return dt.astimezone(self) + + +def FixedOffset(offset, _tzinfos = {}): + """return a fixed-offset timezone based off a number of minutes. + + >>> one = FixedOffset(-330) + >>> one + pytz.FixedOffset(-330) + >>> one.utcoffset(datetime.datetime.now()) + datetime.timedelta(-1, 66600) + >>> one.dst(datetime.datetime.now()) + datetime.timedelta(0) + + >>> two = FixedOffset(1380) + >>> two + pytz.FixedOffset(1380) + >>> two.utcoffset(datetime.datetime.now()) + datetime.timedelta(0, 82800) + >>> two.dst(datetime.datetime.now()) + datetime.timedelta(0) + + The datetime.timedelta must be between the range of -1 and 1 day, + non-inclusive. + + >>> FixedOffset(1440) + Traceback (most recent call last): + ... + ValueError: ('absolute offset is too large', 1440) + + >>> FixedOffset(-1440) + Traceback (most recent call last): + ... + ValueError: ('absolute offset is too large', -1440) + + An offset of 0 is special-cased to return UTC. + + >>> FixedOffset(0) is UTC + True + + There should always be only one instance of a FixedOffset per timedelta. + This should be true for multiple creation calls. + + >>> FixedOffset(-330) is one + True + >>> FixedOffset(1380) is two + True + + It should also be true for pickling. + + >>> import pickle + >>> pickle.loads(pickle.dumps(one)) is one + True + >>> pickle.loads(pickle.dumps(two)) is two + True + """ + if offset == 0: + return UTC + + info = _tzinfos.get(offset) + if info is None: + # We haven't seen this one before. we need to save it. + + # Use setdefault to avoid a race condition and make sure we have + # only one + info = _tzinfos.setdefault(offset, _FixedOffset(offset)) + + return info + +FixedOffset.__safe_for_unpickling__ = True + + +def _test(): + import doctest, os, sys + sys.path.insert(0, os.pardir) + import pytz + return doctest.testmod(pytz) + +if __name__ == '__main__': + _test() + +all_timezones = \ +['Africa/Abidjan', + 'Africa/Accra', + 'Africa/Addis_Ababa', + 'Africa/Algiers', + 'Africa/Asmara', + 'Africa/Asmera', + 'Africa/Bamako', + 'Africa/Bangui', + 'Africa/Banjul', + 'Africa/Bissau', + 'Africa/Blantyre', + 'Africa/Brazzaville', + 'Africa/Bujumbura', + 'Africa/Cairo', + 'Africa/Casablanca', + 'Africa/Ceuta', + 'Africa/Conakry', + 'Africa/Dakar', + 'Africa/Dar_es_Salaam', + 'Africa/Djibouti', + 'Africa/Douala', + 'Africa/El_Aaiun', + 'Africa/Freetown', + 'Africa/Gaborone', + 'Africa/Harare', + 'Africa/Johannesburg', + 'Africa/Juba', + 'Africa/Kampala', + 'Africa/Khartoum', + 'Africa/Kigali', + 'Africa/Kinshasa', + 'Africa/Lagos', + 'Africa/Libreville', + 'Africa/Lome', + 'Africa/Luanda', + 'Africa/Lubumbashi', + 'Africa/Lusaka', + 'Africa/Malabo', + 'Africa/Maputo', + 'Africa/Maseru', + 'Africa/Mbabane', + 'Africa/Mogadishu', + 'Africa/Monrovia', + 'Africa/Nairobi', + 'Africa/Ndjamena', + 'Africa/Niamey', + 'Africa/Nouakchott', + 'Africa/Ouagadougou', + 'Africa/Porto-Novo', + 'Africa/Sao_Tome', + 'Africa/Timbuktu', + 'Africa/Tripoli', + 'Africa/Tunis', + 'Africa/Windhoek', + 'America/Adak', + 'America/Anchorage', + 'America/Anguilla', + 'America/Antigua', + 'America/Araguaina', + 'America/Argentina/Buenos_Aires', + 'America/Argentina/Catamarca', + 'America/Argentina/ComodRivadavia', + 'America/Argentina/Cordoba', + 'America/Argentina/Jujuy', + 'America/Argentina/La_Rioja', + 'America/Argentina/Mendoza', + 'America/Argentina/Rio_Gallegos', + 'America/Argentina/Salta', + 'America/Argentina/San_Juan', + 'America/Argentina/San_Luis', + 'America/Argentina/Tucuman', + 'America/Argentina/Ushuaia', + 'America/Aruba', + 'America/Asuncion', + 'America/Atikokan', + 'America/Atka', + 'America/Bahia', + 'America/Bahia_Banderas', + 'America/Barbados', + 'America/Belem', + 'America/Belize', + 'America/Blanc-Sablon', + 'America/Boa_Vista', + 'America/Bogota', + 'America/Boise', + 'America/Buenos_Aires', + 'America/Cambridge_Bay', + 'America/Campo_Grande', + 'America/Cancun', + 'America/Caracas', + 'America/Catamarca', + 'America/Cayenne', + 'America/Cayman', + 'America/Chicago', + 'America/Chihuahua', + 'America/Coral_Harbour', + 'America/Cordoba', + 'America/Costa_Rica', + 'America/Creston', + 'America/Cuiaba', + 'America/Curacao', + 'America/Danmarkshavn', + 'America/Dawson', + 'America/Dawson_Creek', + 'America/Denver', + 'America/Detroit', + 'America/Dominica', + 'America/Edmonton', + 'America/Eirunepe', + 'America/El_Salvador', + 'America/Ensenada', + 'America/Fort_Nelson', + 'America/Fort_Wayne', + 'America/Fortaleza', + 'America/Glace_Bay', + 'America/Godthab', + 'America/Goose_Bay', + 'America/Grand_Turk', + 'America/Grenada', + 'America/Guadeloupe', + 'America/Guatemala', + 'America/Guayaquil', + 'America/Guyana', + 'America/Halifax', + 'America/Havana', + 'America/Hermosillo', + 'America/Indiana/Indianapolis', + 'America/Indiana/Knox', + 'America/Indiana/Marengo', + 'America/Indiana/Petersburg', + 'America/Indiana/Tell_City', + 'America/Indiana/Vevay', + 'America/Indiana/Vincennes', + 'America/Indiana/Winamac', + 'America/Indianapolis', + 'America/Inuvik', + 'America/Iqaluit', + 'America/Jamaica', + 'America/Jujuy', + 'America/Juneau', + 'America/Kentucky/Louisville', + 'America/Kentucky/Monticello', + 'America/Knox_IN', + 'America/Kralendijk', + 'America/La_Paz', + 'America/Lima', + 'America/Los_Angeles', + 'America/Louisville', + 'America/Lower_Princes', + 'America/Maceio', + 'America/Managua', + 'America/Manaus', + 'America/Marigot', + 'America/Martinique', + 'America/Matamoros', + 'America/Mazatlan', + 'America/Mendoza', + 'America/Menominee', + 'America/Merida', + 'America/Metlakatla', + 'America/Mexico_City', + 'America/Miquelon', + 'America/Moncton', + 'America/Monterrey', + 'America/Montevideo', + 'America/Montreal', + 'America/Montserrat', + 'America/Nassau', + 'America/New_York', + 'America/Nipigon', + 'America/Nome', + 'America/Noronha', + 'America/North_Dakota/Beulah', + 'America/North_Dakota/Center', + 'America/North_Dakota/New_Salem', + 'America/Ojinaga', + 'America/Panama', + 'America/Pangnirtung', + 'America/Paramaribo', + 'America/Phoenix', + 'America/Port-au-Prince', + 'America/Port_of_Spain', + 'America/Porto_Acre', + 'America/Porto_Velho', + 'America/Puerto_Rico', + 'America/Rainy_River', + 'America/Rankin_Inlet', + 'America/Recife', + 'America/Regina', + 'America/Resolute', + 'America/Rio_Branco', + 'America/Rosario', + 'America/Santa_Isabel', + 'America/Santarem', + 'America/Santiago', + 'America/Santo_Domingo', + 'America/Sao_Paulo', + 'America/Scoresbysund', + 'America/Shiprock', + 'America/Sitka', + 'America/St_Barthelemy', + 'America/St_Johns', + 'America/St_Kitts', + 'America/St_Lucia', + 'America/St_Thomas', + 'America/St_Vincent', + 'America/Swift_Current', + 'America/Tegucigalpa', + 'America/Thule', + 'America/Thunder_Bay', + 'America/Tijuana', + 'America/Toronto', + 'America/Tortola', + 'America/Vancouver', + 'America/Virgin', + 'America/Whitehorse', + 'America/Winnipeg', + 'America/Yakutat', + 'America/Yellowknife', + 'Antarctica/Casey', + 'Antarctica/Davis', + 'Antarctica/DumontDUrville', + 'Antarctica/Macquarie', + 'Antarctica/Mawson', + 'Antarctica/McMurdo', + 'Antarctica/Palmer', + 'Antarctica/Rothera', + 'Antarctica/South_Pole', + 'Antarctica/Syowa', + 'Antarctica/Troll', + 'Antarctica/Vostok', + 'Arctic/Longyearbyen', + 'Asia/Aden', + 'Asia/Almaty', + 'Asia/Amman', + 'Asia/Anadyr', + 'Asia/Aqtau', + 'Asia/Aqtobe', + 'Asia/Ashgabat', + 'Asia/Ashkhabad', + 'Asia/Baghdad', + 'Asia/Bahrain', + 'Asia/Baku', + 'Asia/Bangkok', + 'Asia/Barnaul', + 'Asia/Beirut', + 'Asia/Bishkek', + 'Asia/Brunei', + 'Asia/Calcutta', + 'Asia/Chita', + 'Asia/Choibalsan', + 'Asia/Chongqing', + 'Asia/Chungking', + 'Asia/Colombo', + 'Asia/Dacca', + 'Asia/Damascus', + 'Asia/Dhaka', + 'Asia/Dili', + 'Asia/Dubai', + 'Asia/Dushanbe', + 'Asia/Gaza', + 'Asia/Harbin', + 'Asia/Hebron', + 'Asia/Ho_Chi_Minh', + 'Asia/Hong_Kong', + 'Asia/Hovd', + 'Asia/Irkutsk', + 'Asia/Istanbul', + 'Asia/Jakarta', + 'Asia/Jayapura', + 'Asia/Jerusalem', + 'Asia/Kabul', + 'Asia/Kamchatka', + 'Asia/Karachi', + 'Asia/Kashgar', + 'Asia/Kathmandu', + 'Asia/Katmandu', + 'Asia/Khandyga', + 'Asia/Kolkata', + 'Asia/Krasnoyarsk', + 'Asia/Kuala_Lumpur', + 'Asia/Kuching', + 'Asia/Kuwait', + 'Asia/Macao', + 'Asia/Macau', + 'Asia/Magadan', + 'Asia/Makassar', + 'Asia/Manila', + 'Asia/Muscat', + 'Asia/Nicosia', + 'Asia/Novokuznetsk', + 'Asia/Novosibirsk', + 'Asia/Omsk', + 'Asia/Oral', + 'Asia/Phnom_Penh', + 'Asia/Pontianak', + 'Asia/Pyongyang', + 'Asia/Qatar', + 'Asia/Qyzylorda', + 'Asia/Rangoon', + 'Asia/Riyadh', + 'Asia/Saigon', + 'Asia/Sakhalin', + 'Asia/Samarkand', + 'Asia/Seoul', + 'Asia/Shanghai', + 'Asia/Singapore', + 'Asia/Srednekolymsk', + 'Asia/Taipei', + 'Asia/Tashkent', + 'Asia/Tbilisi', + 'Asia/Tehran', + 'Asia/Tel_Aviv', + 'Asia/Thimbu', + 'Asia/Thimphu', + 'Asia/Tokyo', + 'Asia/Tomsk', + 'Asia/Ujung_Pandang', + 'Asia/Ulaanbaatar', + 'Asia/Ulan_Bator', + 'Asia/Urumqi', + 'Asia/Ust-Nera', + 'Asia/Vientiane', + 'Asia/Vladivostok', + 'Asia/Yakutsk', + 'Asia/Yekaterinburg', + 'Asia/Yerevan', + 'Atlantic/Azores', + 'Atlantic/Bermuda', + 'Atlantic/Canary', + 'Atlantic/Cape_Verde', + 'Atlantic/Faeroe', + 'Atlantic/Faroe', + 'Atlantic/Jan_Mayen', + 'Atlantic/Madeira', + 'Atlantic/Reykjavik', + 'Atlantic/South_Georgia', + 'Atlantic/St_Helena', + 'Atlantic/Stanley', + 'Australia/ACT', + 'Australia/Adelaide', + 'Australia/Brisbane', + 'Australia/Broken_Hill', + 'Australia/Canberra', + 'Australia/Currie', + 'Australia/Darwin', + 'Australia/Eucla', + 'Australia/Hobart', + 'Australia/LHI', + 'Australia/Lindeman', + 'Australia/Lord_Howe', + 'Australia/Melbourne', + 'Australia/NSW', + 'Australia/North', + 'Australia/Perth', + 'Australia/Queensland', + 'Australia/South', + 'Australia/Sydney', + 'Australia/Tasmania', + 'Australia/Victoria', + 'Australia/West', + 'Australia/Yancowinna', + 'Brazil/Acre', + 'Brazil/DeNoronha', + 'Brazil/East', + 'Brazil/West', + 'CET', + 'CST6CDT', + 'Canada/Atlantic', + 'Canada/Central', + 'Canada/East-Saskatchewan', + 'Canada/Eastern', + 'Canada/Mountain', + 'Canada/Newfoundland', + 'Canada/Pacific', + 'Canada/Saskatchewan', + 'Canada/Yukon', + 'Chile/Continental', + 'Chile/EasterIsland', + 'Cuba', + 'EET', + 'EST', + 'EST5EDT', + 'Egypt', + 'Eire', + 'Etc/GMT', + 'Etc/GMT+0', + 'Etc/GMT+1', + 'Etc/GMT+10', + 'Etc/GMT+11', + 'Etc/GMT+12', + '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-0', + 'Etc/GMT-1', + 'Etc/GMT-10', + 'Etc/GMT-11', + 'Etc/GMT-12', + 'Etc/GMT-13', + 'Etc/GMT-14', + '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/GMT0', + 'Etc/Greenwich', + 'Etc/UCT', + 'Etc/UTC', + 'Etc/Universal', + 'Etc/Zulu', + 'Europe/Amsterdam', + 'Europe/Andorra', + 'Europe/Astrakhan', + 'Europe/Athens', + 'Europe/Belfast', + 'Europe/Belgrade', + 'Europe/Berlin', + 'Europe/Bratislava', + 'Europe/Brussels', + 'Europe/Bucharest', + 'Europe/Budapest', + 'Europe/Busingen', + 'Europe/Chisinau', + 'Europe/Copenhagen', + 'Europe/Dublin', + 'Europe/Gibraltar', + 'Europe/Guernsey', + 'Europe/Helsinki', + 'Europe/Isle_of_Man', + 'Europe/Istanbul', + 'Europe/Jersey', + 'Europe/Kaliningrad', + 'Europe/Kiev', + 'Europe/Kirov', + 'Europe/Lisbon', + 'Europe/Ljubljana', + 'Europe/London', + 'Europe/Luxembourg', + 'Europe/Madrid', + 'Europe/Malta', + 'Europe/Mariehamn', + 'Europe/Minsk', + 'Europe/Monaco', + 'Europe/Moscow', + 'Europe/Nicosia', + 'Europe/Oslo', + 'Europe/Paris', + 'Europe/Podgorica', + 'Europe/Prague', + 'Europe/Riga', + 'Europe/Rome', + 'Europe/Samara', + 'Europe/San_Marino', + 'Europe/Sarajevo', + 'Europe/Simferopol', + 'Europe/Skopje', + 'Europe/Sofia', + 'Europe/Stockholm', + 'Europe/Tallinn', + 'Europe/Tirane', + 'Europe/Tiraspol', + 'Europe/Ulyanovsk', + 'Europe/Uzhgorod', + 'Europe/Vaduz', + 'Europe/Vatican', + 'Europe/Vienna', + 'Europe/Vilnius', + 'Europe/Volgograd', + 'Europe/Warsaw', + 'Europe/Zagreb', + 'Europe/Zaporozhye', + 'Europe/Zurich', + 'GB', + 'GB-Eire', + 'GMT', + 'GMT+0', + 'GMT-0', + 'GMT0', + 'Greenwich', + 'HST', + 'Hongkong', + 'Iceland', + 'Indian/Antananarivo', + 'Indian/Chagos', + 'Indian/Christmas', + 'Indian/Cocos', + 'Indian/Comoro', + 'Indian/Kerguelen', + 'Indian/Mahe', + 'Indian/Maldives', + 'Indian/Mauritius', + 'Indian/Mayotte', + 'Indian/Reunion', + 'Iran', + 'Israel', + 'Jamaica', + 'Japan', + 'Kwajalein', + 'Libya', + 'MET', + 'MST', + 'MST7MDT', + 'Mexico/BajaNorte', + 'Mexico/BajaSur', + 'Mexico/General', + 'NZ', + 'NZ-CHAT', + 'Navajo', + 'PRC', + 'PST8PDT', + 'Pacific/Apia', + 'Pacific/Auckland', + 'Pacific/Bougainville', + 'Pacific/Chatham', + 'Pacific/Chuuk', + 'Pacific/Easter', + 'Pacific/Efate', + 'Pacific/Enderbury', + 'Pacific/Fakaofo', + 'Pacific/Fiji', + 'Pacific/Funafuti', + 'Pacific/Galapagos', + 'Pacific/Gambier', + 'Pacific/Guadalcanal', + 'Pacific/Guam', + 'Pacific/Honolulu', + 'Pacific/Johnston', + 'Pacific/Kiritimati', + 'Pacific/Kosrae', + 'Pacific/Kwajalein', + 'Pacific/Majuro', + 'Pacific/Marquesas', + 'Pacific/Midway', + 'Pacific/Nauru', + 'Pacific/Niue', + 'Pacific/Norfolk', + 'Pacific/Noumea', + 'Pacific/Pago_Pago', + 'Pacific/Palau', + 'Pacific/Pitcairn', + 'Pacific/Pohnpei', + 'Pacific/Ponape', + 'Pacific/Port_Moresby', + 'Pacific/Rarotonga', + 'Pacific/Saipan', + 'Pacific/Samoa', + 'Pacific/Tahiti', + 'Pacific/Tarawa', + 'Pacific/Tongatapu', + 'Pacific/Truk', + 'Pacific/Wake', + 'Pacific/Wallis', + 'Pacific/Yap', + 'Poland', + 'Portugal', + 'ROC', + 'ROK', + 'Singapore', + 'Turkey', + 'UCT', + 'US/Alaska', + 'US/Aleutian', + 'US/Arizona', + 'US/Central', + 'US/East-Indiana', + 'US/Eastern', + 'US/Hawaii', + 'US/Indiana-Starke', + 'US/Michigan', + 'US/Mountain', + 'US/Pacific', + 'US/Pacific-New', + 'US/Samoa', + 'UTC', + 'Universal', + 'W-SU', + 'WET', + 'Zulu'] +all_timezones = LazyList( + tz for tz in all_timezones if resource_exists(tz)) + +all_timezones_set = LazySet(all_timezones) +common_timezones = \ +['Africa/Abidjan', + 'Africa/Accra', + 'Africa/Addis_Ababa', + 'Africa/Algiers', + 'Africa/Asmara', + 'Africa/Bamako', + 'Africa/Bangui', + 'Africa/Banjul', + 'Africa/Bissau', + 'Africa/Blantyre', + 'Africa/Brazzaville', + 'Africa/Bujumbura', + 'Africa/Cairo', + 'Africa/Casablanca', + 'Africa/Ceuta', + 'Africa/Conakry', + 'Africa/Dakar', + 'Africa/Dar_es_Salaam', + 'Africa/Djibouti', + 'Africa/Douala', + 'Africa/El_Aaiun', + 'Africa/Freetown', + 'Africa/Gaborone', + 'Africa/Harare', + 'Africa/Johannesburg', + 'Africa/Juba', + 'Africa/Kampala', + 'Africa/Khartoum', + 'Africa/Kigali', + 'Africa/Kinshasa', + 'Africa/Lagos', + 'Africa/Libreville', + 'Africa/Lome', + 'Africa/Luanda', + 'Africa/Lubumbashi', + 'Africa/Lusaka', + 'Africa/Malabo', + 'Africa/Maputo', + 'Africa/Maseru', + 'Africa/Mbabane', + 'Africa/Mogadishu', + 'Africa/Monrovia', + 'Africa/Nairobi', + 'Africa/Ndjamena', + 'Africa/Niamey', + 'Africa/Nouakchott', + 'Africa/Ouagadougou', + 'Africa/Porto-Novo', + 'Africa/Sao_Tome', + 'Africa/Tripoli', + 'Africa/Tunis', + 'Africa/Windhoek', + 'America/Adak', + 'America/Anchorage', + 'America/Anguilla', + 'America/Antigua', + 'America/Araguaina', + 'America/Argentina/Buenos_Aires', + 'America/Argentina/Catamarca', + 'America/Argentina/Cordoba', + 'America/Argentina/Jujuy', + 'America/Argentina/La_Rioja', + 'America/Argentina/Mendoza', + 'America/Argentina/Rio_Gallegos', + 'America/Argentina/Salta', + 'America/Argentina/San_Juan', + 'America/Argentina/San_Luis', + 'America/Argentina/Tucuman', + 'America/Argentina/Ushuaia', + 'America/Aruba', + 'America/Asuncion', + 'America/Atikokan', + 'America/Bahia', + 'America/Bahia_Banderas', + 'America/Barbados', + 'America/Belem', + 'America/Belize', + 'America/Blanc-Sablon', + 'America/Boa_Vista', + 'America/Bogota', + 'America/Boise', + 'America/Cambridge_Bay', + 'America/Campo_Grande', + 'America/Cancun', + 'America/Caracas', + 'America/Cayenne', + 'America/Cayman', + 'America/Chicago', + 'America/Chihuahua', + 'America/Costa_Rica', + 'America/Creston', + 'America/Cuiaba', + 'America/Curacao', + 'America/Danmarkshavn', + 'America/Dawson', + 'America/Dawson_Creek', + 'America/Denver', + 'America/Detroit', + 'America/Dominica', + 'America/Edmonton', + 'America/Eirunepe', + 'America/El_Salvador', + 'America/Fort_Nelson', + 'America/Fortaleza', + 'America/Glace_Bay', + 'America/Godthab', + 'America/Goose_Bay', + 'America/Grand_Turk', + 'America/Grenada', + 'America/Guadeloupe', + 'America/Guatemala', + 'America/Guayaquil', + 'America/Guyana', + 'America/Halifax', + 'America/Havana', + 'America/Hermosillo', + 'America/Indiana/Indianapolis', + 'America/Indiana/Knox', + 'America/Indiana/Marengo', + 'America/Indiana/Petersburg', + 'America/Indiana/Tell_City', + 'America/Indiana/Vevay', + 'America/Indiana/Vincennes', + 'America/Indiana/Winamac', + 'America/Inuvik', + 'America/Iqaluit', + 'America/Jamaica', + 'America/Juneau', + 'America/Kentucky/Louisville', + 'America/Kentucky/Monticello', + 'America/Kralendijk', + 'America/La_Paz', + 'America/Lima', + 'America/Los_Angeles', + 'America/Lower_Princes', + 'America/Maceio', + 'America/Managua', + 'America/Manaus', + 'America/Marigot', + 'America/Martinique', + 'America/Matamoros', + 'America/Mazatlan', + 'America/Menominee', + 'America/Merida', + 'America/Metlakatla', + 'America/Mexico_City', + 'America/Miquelon', + 'America/Moncton', + 'America/Monterrey', + 'America/Montevideo', + 'America/Montserrat', + 'America/Nassau', + 'America/New_York', + 'America/Nipigon', + 'America/Nome', + 'America/Noronha', + 'America/North_Dakota/Beulah', + 'America/North_Dakota/Center', + 'America/North_Dakota/New_Salem', + 'America/Ojinaga', + 'America/Panama', + 'America/Pangnirtung', + 'America/Paramaribo', + 'America/Phoenix', + 'America/Port-au-Prince', + 'America/Port_of_Spain', + 'America/Porto_Velho', + 'America/Puerto_Rico', + 'America/Rainy_River', + 'America/Rankin_Inlet', + 'America/Recife', + 'America/Regina', + 'America/Resolute', + 'America/Rio_Branco', + 'America/Santarem', + 'America/Santiago', + 'America/Santo_Domingo', + 'America/Sao_Paulo', + 'America/Scoresbysund', + 'America/Sitka', + 'America/St_Barthelemy', + 'America/St_Johns', + 'America/St_Kitts', + 'America/St_Lucia', + 'America/St_Thomas', + 'America/St_Vincent', + 'America/Swift_Current', + 'America/Tegucigalpa', + 'America/Thule', + 'America/Thunder_Bay', + 'America/Tijuana', + 'America/Toronto', + 'America/Tortola', + 'America/Vancouver', + 'America/Whitehorse', + 'America/Winnipeg', + 'America/Yakutat', + 'America/Yellowknife', + 'Antarctica/Casey', + 'Antarctica/Davis', + 'Antarctica/DumontDUrville', + 'Antarctica/Macquarie', + 'Antarctica/Mawson', + 'Antarctica/McMurdo', + 'Antarctica/Palmer', + 'Antarctica/Rothera', + 'Antarctica/Syowa', + 'Antarctica/Troll', + 'Antarctica/Vostok', + 'Arctic/Longyearbyen', + 'Asia/Aden', + 'Asia/Almaty', + 'Asia/Amman', + 'Asia/Anadyr', + 'Asia/Aqtau', + 'Asia/Aqtobe', + 'Asia/Ashgabat', + 'Asia/Baghdad', + 'Asia/Bahrain', + 'Asia/Baku', + 'Asia/Bangkok', + 'Asia/Barnaul', + 'Asia/Beirut', + 'Asia/Bishkek', + 'Asia/Brunei', + 'Asia/Chita', + 'Asia/Choibalsan', + 'Asia/Colombo', + 'Asia/Damascus', + 'Asia/Dhaka', + 'Asia/Dili', + 'Asia/Dubai', + 'Asia/Dushanbe', + 'Asia/Gaza', + 'Asia/Hebron', + 'Asia/Ho_Chi_Minh', + 'Asia/Hong_Kong', + 'Asia/Hovd', + 'Asia/Irkutsk', + 'Asia/Jakarta', + 'Asia/Jayapura', + 'Asia/Jerusalem', + 'Asia/Kabul', + 'Asia/Kamchatka', + 'Asia/Karachi', + 'Asia/Kathmandu', + 'Asia/Khandyga', + 'Asia/Kolkata', + 'Asia/Krasnoyarsk', + 'Asia/Kuala_Lumpur', + 'Asia/Kuching', + 'Asia/Kuwait', + 'Asia/Macau', + 'Asia/Magadan', + 'Asia/Makassar', + 'Asia/Manila', + 'Asia/Muscat', + 'Asia/Nicosia', + 'Asia/Novokuznetsk', + 'Asia/Novosibirsk', + 'Asia/Omsk', + 'Asia/Oral', + 'Asia/Phnom_Penh', + 'Asia/Pontianak', + 'Asia/Pyongyang', + 'Asia/Qatar', + 'Asia/Qyzylorda', + 'Asia/Rangoon', + 'Asia/Riyadh', + 'Asia/Sakhalin', + 'Asia/Samarkand', + 'Asia/Seoul', + 'Asia/Shanghai', + 'Asia/Singapore', + 'Asia/Srednekolymsk', + 'Asia/Taipei', + 'Asia/Tashkent', + 'Asia/Tbilisi', + 'Asia/Tehran', + 'Asia/Thimphu', + 'Asia/Tokyo', + 'Asia/Tomsk', + 'Asia/Ulaanbaatar', + 'Asia/Urumqi', + 'Asia/Ust-Nera', + 'Asia/Vientiane', + 'Asia/Vladivostok', + 'Asia/Yakutsk', + 'Asia/Yekaterinburg', + 'Asia/Yerevan', + 'Atlantic/Azores', + 'Atlantic/Bermuda', + 'Atlantic/Canary', + 'Atlantic/Cape_Verde', + 'Atlantic/Faroe', + 'Atlantic/Madeira', + 'Atlantic/Reykjavik', + 'Atlantic/South_Georgia', + 'Atlantic/St_Helena', + 'Atlantic/Stanley', + 'Australia/Adelaide', + 'Australia/Brisbane', + 'Australia/Broken_Hill', + 'Australia/Currie', + 'Australia/Darwin', + 'Australia/Eucla', + 'Australia/Hobart', + 'Australia/Lindeman', + 'Australia/Lord_Howe', + 'Australia/Melbourne', + 'Australia/Perth', + 'Australia/Sydney', + 'Canada/Atlantic', + 'Canada/Central', + 'Canada/Eastern', + 'Canada/Mountain', + 'Canada/Newfoundland', + 'Canada/Pacific', + 'Europe/Amsterdam', + 'Europe/Andorra', + 'Europe/Astrakhan', + 'Europe/Athens', + 'Europe/Belgrade', + 'Europe/Berlin', + 'Europe/Bratislava', + 'Europe/Brussels', + 'Europe/Bucharest', + 'Europe/Budapest', + 'Europe/Busingen', + 'Europe/Chisinau', + 'Europe/Copenhagen', + 'Europe/Dublin', + 'Europe/Gibraltar', + 'Europe/Guernsey', + 'Europe/Helsinki', + 'Europe/Isle_of_Man', + 'Europe/Istanbul', + 'Europe/Jersey', + 'Europe/Kaliningrad', + 'Europe/Kiev', + 'Europe/Kirov', + 'Europe/Lisbon', + 'Europe/Ljubljana', + 'Europe/London', + 'Europe/Luxembourg', + 'Europe/Madrid', + 'Europe/Malta', + 'Europe/Mariehamn', + 'Europe/Minsk', + 'Europe/Monaco', + 'Europe/Moscow', + 'Europe/Oslo', + 'Europe/Paris', + 'Europe/Podgorica', + 'Europe/Prague', + 'Europe/Riga', + 'Europe/Rome', + 'Europe/Samara', + 'Europe/San_Marino', + 'Europe/Sarajevo', + 'Europe/Simferopol', + 'Europe/Skopje', + 'Europe/Sofia', + 'Europe/Stockholm', + 'Europe/Tallinn', + 'Europe/Tirane', + 'Europe/Ulyanovsk', + 'Europe/Uzhgorod', + 'Europe/Vaduz', + 'Europe/Vatican', + 'Europe/Vienna', + 'Europe/Vilnius', + 'Europe/Volgograd', + 'Europe/Warsaw', + 'Europe/Zagreb', + 'Europe/Zaporozhye', + 'Europe/Zurich', + 'GMT', + 'Indian/Antananarivo', + 'Indian/Chagos', + 'Indian/Christmas', + 'Indian/Cocos', + 'Indian/Comoro', + 'Indian/Kerguelen', + 'Indian/Mahe', + 'Indian/Maldives', + 'Indian/Mauritius', + 'Indian/Mayotte', + 'Indian/Reunion', + 'Pacific/Apia', + 'Pacific/Auckland', + 'Pacific/Bougainville', + 'Pacific/Chatham', + 'Pacific/Chuuk', + 'Pacific/Easter', + 'Pacific/Efate', + 'Pacific/Enderbury', + 'Pacific/Fakaofo', + 'Pacific/Fiji', + 'Pacific/Funafuti', + 'Pacific/Galapagos', + 'Pacific/Gambier', + 'Pacific/Guadalcanal', + 'Pacific/Guam', + 'Pacific/Honolulu', + 'Pacific/Johnston', + 'Pacific/Kiritimati', + 'Pacific/Kosrae', + 'Pacific/Kwajalein', + 'Pacific/Majuro', + 'Pacific/Marquesas', + 'Pacific/Midway', + 'Pacific/Nauru', + 'Pacific/Niue', + 'Pacific/Norfolk', + 'Pacific/Noumea', + 'Pacific/Pago_Pago', + 'Pacific/Palau', + 'Pacific/Pitcairn', + 'Pacific/Pohnpei', + 'Pacific/Port_Moresby', + 'Pacific/Rarotonga', + 'Pacific/Saipan', + 'Pacific/Tahiti', + 'Pacific/Tarawa', + 'Pacific/Tongatapu', + 'Pacific/Wake', + 'Pacific/Wallis', + 'US/Alaska', + 'US/Arizona', + 'US/Central', + 'US/Eastern', + 'US/Hawaii', + 'US/Mountain', + 'US/Pacific', + 'UTC'] +common_timezones = LazyList( + tz for tz in common_timezones if tz in all_timezones) + +common_timezones_set = LazySet(common_timezones) diff --git a/lib/pytz/exceptions.py b/lib/pytz/exceptions.py new file mode 100644 index 00000000..0376108e --- /dev/null +++ b/lib/pytz/exceptions.py @@ -0,0 +1,48 @@ +''' +Custom exceptions raised by pytz. +''' + +__all__ = [ + 'UnknownTimeZoneError', 'InvalidTimeError', 'AmbiguousTimeError', + 'NonExistentTimeError', + ] + + +class UnknownTimeZoneError(KeyError): + '''Exception raised when pytz is passed an unknown timezone. + + >>> isinstance(UnknownTimeZoneError(), LookupError) + True + + This class is actually a subclass of KeyError to provide backwards + compatibility with code relying on the undocumented behavior of earlier + pytz releases. + + >>> isinstance(UnknownTimeZoneError(), KeyError) + True + ''' + pass + + +class InvalidTimeError(Exception): + '''Base class for invalid time exceptions.''' + + +class AmbiguousTimeError(InvalidTimeError): + '''Exception raised when attempting to create an ambiguous wallclock time. + + At the end of a DST transition period, a particular wallclock time will + occur twice (once before the clocks are set back, once after). Both + possibilities may be correct, unless further information is supplied. + + See DstTzInfo.normalize() for more info + ''' + + +class NonExistentTimeError(InvalidTimeError): + '''Exception raised when attempting to create a wallclock time that + cannot exist. + + At the start of a DST transition period, the wallclock time jumps forward. + The instants jumped over never occur. + ''' diff --git a/lib/pytz/lazy.py b/lib/pytz/lazy.py new file mode 100644 index 00000000..f7fc597c --- /dev/null +++ b/lib/pytz/lazy.py @@ -0,0 +1,168 @@ +from threading import RLock +try: + from UserDict import DictMixin +except ImportError: + from collections import Mapping as DictMixin + + +# With lazy loading, we might end up with multiple threads triggering +# it at the same time. We need a lock. +_fill_lock = RLock() + + +class LazyDict(DictMixin): + """Dictionary populated on first use.""" + data = None + def __getitem__(self, key): + if self.data is None: + _fill_lock.acquire() + try: + if self.data is None: + self._fill() + finally: + _fill_lock.release() + return self.data[key.upper()] + + def __contains__(self, key): + if self.data is None: + _fill_lock.acquire() + try: + if self.data is None: + self._fill() + finally: + _fill_lock.release() + return key in self.data + + def __iter__(self): + if self.data is None: + _fill_lock.acquire() + try: + if self.data is None: + self._fill() + finally: + _fill_lock.release() + return iter(self.data) + + def __len__(self): + if self.data is None: + _fill_lock.acquire() + try: + if self.data is None: + self._fill() + finally: + _fill_lock.release() + return len(self.data) + + def keys(self): + if self.data is None: + _fill_lock.acquire() + try: + if self.data is None: + self._fill() + finally: + _fill_lock.release() + return self.data.keys() + + +class LazyList(list): + """List populated on first use.""" + + _props = [ + '__str__', '__repr__', '__unicode__', + '__hash__', '__sizeof__', '__cmp__', + '__lt__', '__le__', '__eq__', '__ne__', '__gt__', '__ge__', + 'append', 'count', 'index', 'extend', 'insert', 'pop', 'remove', + 'reverse', 'sort', '__add__', '__radd__', '__iadd__', '__mul__', + '__rmul__', '__imul__', '__contains__', '__len__', '__nonzero__', + '__getitem__', '__setitem__', '__delitem__', '__iter__', + '__reversed__', '__getslice__', '__setslice__', '__delslice__'] + + def __new__(cls, fill_iter=None): + + if fill_iter is None: + return list() + + # We need a new class as we will be dynamically messing with its + # methods. + class LazyList(list): + pass + + fill_iter = [fill_iter] + + def lazy(name): + def _lazy(self, *args, **kw): + _fill_lock.acquire() + try: + if len(fill_iter) > 0: + list.extend(self, fill_iter.pop()) + for method_name in cls._props: + delattr(LazyList, method_name) + finally: + _fill_lock.release() + return getattr(list, name)(self, *args, **kw) + return _lazy + + for name in cls._props: + setattr(LazyList, name, lazy(name)) + + new_list = LazyList() + return new_list + +# Not all versions of Python declare the same magic methods. +# Filter out properties that don't exist in this version of Python +# from the list. +LazyList._props = [prop for prop in LazyList._props if hasattr(list, prop)] + + +class LazySet(set): + """Set populated on first use.""" + + _props = ( + '__str__', '__repr__', '__unicode__', + '__hash__', '__sizeof__', '__cmp__', + '__lt__', '__le__', '__eq__', '__ne__', '__gt__', '__ge__', + '__contains__', '__len__', '__nonzero__', + '__getitem__', '__setitem__', '__delitem__', '__iter__', + '__sub__', '__and__', '__xor__', '__or__', + '__rsub__', '__rand__', '__rxor__', '__ror__', + '__isub__', '__iand__', '__ixor__', '__ior__', + 'add', 'clear', 'copy', 'difference', 'difference_update', + 'discard', 'intersection', 'intersection_update', 'isdisjoint', + 'issubset', 'issuperset', 'pop', 'remove', + 'symmetric_difference', 'symmetric_difference_update', + 'union', 'update') + + def __new__(cls, fill_iter=None): + + if fill_iter is None: + return set() + + class LazySet(set): + pass + + fill_iter = [fill_iter] + + def lazy(name): + def _lazy(self, *args, **kw): + _fill_lock.acquire() + try: + if len(fill_iter) > 0: + for i in fill_iter.pop(): + set.add(self, i) + for method_name in cls._props: + delattr(LazySet, method_name) + finally: + _fill_lock.release() + return getattr(set, name)(self, *args, **kw) + return _lazy + + for name in cls._props: + setattr(LazySet, name, lazy(name)) + + new_set = LazySet() + return new_set + +# Not all versions of Python declare the same magic methods. +# Filter out properties that don't exist in this version of Python +# from the list. +LazySet._props = [prop for prop in LazySet._props if hasattr(set, prop)] diff --git a/lib/pytz/reference.py b/lib/pytz/reference.py new file mode 100644 index 00000000..3dda13e7 --- /dev/null +++ b/lib/pytz/reference.py @@ -0,0 +1,127 @@ +''' +Reference tzinfo implementations from the Python docs. +Used for testing against as they are only correct for the years +1987 to 2006. Do not use these for real code. +''' + +from datetime import tzinfo, timedelta, datetime +from pytz import utc, UTC, HOUR, ZERO + +# A class building tzinfo objects for fixed-offset time zones. +# Note that FixedOffset(0, "UTC") is a different way to build a +# UTC tzinfo object. + +class FixedOffset(tzinfo): + """Fixed offset in minutes east from UTC.""" + + def __init__(self, offset, name): + self.__offset = timedelta(minutes = offset) + self.__name = name + + def utcoffset(self, dt): + return self.__offset + + def tzname(self, dt): + return self.__name + + def dst(self, dt): + return ZERO + +# A class capturing the platform's idea of local time. + +import time as _time + +STDOFFSET = timedelta(seconds = -_time.timezone) +if _time.daylight: + DSTOFFSET = timedelta(seconds = -_time.altzone) +else: + DSTOFFSET = STDOFFSET + +DSTDIFF = DSTOFFSET - STDOFFSET + +class LocalTimezone(tzinfo): + + def utcoffset(self, dt): + if self._isdst(dt): + return DSTOFFSET + else: + return STDOFFSET + + def dst(self, dt): + if self._isdst(dt): + return DSTDIFF + else: + return ZERO + + def tzname(self, dt): + return _time.tzname[self._isdst(dt)] + + def _isdst(self, dt): + tt = (dt.year, dt.month, dt.day, + dt.hour, dt.minute, dt.second, + dt.weekday(), 0, -1) + stamp = _time.mktime(tt) + tt = _time.localtime(stamp) + return tt.tm_isdst > 0 + +Local = LocalTimezone() + +# A complete implementation of current DST rules for major US time zones. + +def first_sunday_on_or_after(dt): + days_to_go = 6 - dt.weekday() + if days_to_go: + dt += timedelta(days_to_go) + return dt + +# In the US, DST starts at 2am (standard time) on the first Sunday in April. +DSTSTART = datetime(1, 4, 1, 2) +# and ends at 2am (DST time; 1am standard time) on the last Sunday of Oct. +# which is the first Sunday on or after Oct 25. +DSTEND = datetime(1, 10, 25, 1) + +class USTimeZone(tzinfo): + + def __init__(self, hours, reprname, stdname, dstname): + self.stdoffset = timedelta(hours=hours) + self.reprname = reprname + self.stdname = stdname + self.dstname = dstname + + def __repr__(self): + return self.reprname + + def tzname(self, dt): + if self.dst(dt): + return self.dstname + else: + return self.stdname + + def utcoffset(self, dt): + return self.stdoffset + self.dst(dt) + + def dst(self, dt): + if dt is None or dt.tzinfo is None: + # An exception may be sensible here, in one or both cases. + # It depends on how you want to treat them. The default + # fromutc() implementation (called by the default astimezone() + # implementation) passes a datetime with dt.tzinfo is self. + return ZERO + assert dt.tzinfo is self + + # Find first Sunday in April & the last in October. + start = first_sunday_on_or_after(DSTSTART.replace(year=dt.year)) + end = first_sunday_on_or_after(DSTEND.replace(year=dt.year)) + + # Can't compare naive to aware objects, so strip the timezone from + # dt first. + if start <= dt.replace(tzinfo=None) < end: + return HOUR + else: + return ZERO + +Eastern = USTimeZone(-5, "Eastern", "EST", "EDT") +Central = USTimeZone(-6, "Central", "CST", "CDT") +Mountain = USTimeZone(-7, "Mountain", "MST", "MDT") +Pacific = USTimeZone(-8, "Pacific", "PST", "PDT") + diff --git a/lib/pytz/tests/test_docs.py b/lib/pytz/tests/test_docs.py new file mode 100644 index 00000000..ae189d31 --- /dev/null +++ b/lib/pytz/tests/test_docs.py @@ -0,0 +1,34 @@ +# -*- coding: ascii -*- + +from doctest import DocFileSuite +import unittest, os.path, sys + +THIS_DIR = os.path.dirname(__file__) + +README = os.path.join(THIS_DIR, os.pardir, os.pardir, 'README.txt') + + +class DocumentationTestCase(unittest.TestCase): + def test_readme_encoding(self): + '''Confirm the README.txt is pure ASCII.''' + f = open(README, 'rb') + try: + f.read().decode('ASCII') + finally: + f.close() + + +def test_suite(): + "For the Z3 test runner" + return unittest.TestSuite(( + DocumentationTestCase('test_readme_encoding'), + DocFileSuite(os.path.join(os.pardir, os.pardir, 'README.txt')))) + + +if __name__ == '__main__': + sys.path.insert(0, os.path.abspath(os.path.join( + THIS_DIR, os.pardir, os.pardir + ))) + unittest.main(defaultTest='test_suite') + + diff --git a/lib/pytz/tests/test_lazy.py b/lib/pytz/tests/test_lazy.py new file mode 100644 index 00000000..3a4afa63 --- /dev/null +++ b/lib/pytz/tests/test_lazy.py @@ -0,0 +1,313 @@ +from operator import * +import os.path +import sys +import unittest +import warnings + + +if __name__ == '__main__': + # Only munge path if invoked as a script. Testrunners should have setup + # the paths already + sys.path.insert(0, os.path.abspath(os.path.join(os.pardir, os.pardir))) + + +from pytz.lazy import LazyList, LazySet + + +class LazyListTestCase(unittest.TestCase): + initial_data = [3,2,1] + + def setUp(self): + self.base = [3, 2, 1] + self.lesser = [2, 1, 0] + self.greater = [4, 3, 2] + + self.lazy = LazyList(iter(list(self.base))) + + def test_unary_ops(self): + unary_ops = [str, repr, len, bool, not_] + try: + unary_ops.append(unicode) + except NameError: + pass # unicode no longer exists in Python 3. + + for op in unary_ops: + self.assertEqual( + op(self.lazy), + op(self.base), str(op)) + + def test_binary_ops(self): + binary_ops = [eq, ge, gt, le, lt, ne, add, concat] + try: + binary_ops.append(cmp) + except NameError: + pass # cmp no longer exists in Python 3. + + for op in binary_ops: + self.assertEqual( + op(self.lazy, self.lazy), + op(self.base, self.base), str(op)) + for other in [self.base, self.lesser, self.greater]: + self.assertEqual( + op(self.lazy, other), + op(self.base, other), '%s %s' % (op, other)) + self.assertEqual( + op(other, self.lazy), + op(other, self.base), '%s %s' % (op, other)) + + # Multiplication + self.assertEqual(self.lazy * 3, self.base * 3) + self.assertEqual(3 * self.lazy, 3 * self.base) + + # Contains + self.assertTrue(2 in self.lazy) + self.assertFalse(42 in self.lazy) + + def test_iadd(self): + self.lazy += [1] + self.base += [1] + self.assertEqual(self.lazy, self.base) + + def test_bool(self): + self.assertTrue(bool(self.lazy)) + self.assertFalse(bool(LazyList())) + self.assertFalse(bool(LazyList(iter([])))) + + def test_hash(self): + self.assertRaises(TypeError, hash, self.lazy) + + def test_isinstance(self): + self.assertTrue(isinstance(self.lazy, list)) + self.assertFalse(isinstance(self.lazy, tuple)) + + def test_callable(self): + try: + callable + except NameError: + return # No longer exists with Python 3. + self.assertFalse(callable(self.lazy)) + + def test_append(self): + self.base.append('extra') + self.lazy.append('extra') + self.assertEqual(self.lazy, self.base) + + def test_count(self): + self.assertEqual(self.lazy.count(2), 1) + + def test_index(self): + self.assertEqual(self.lazy.index(2), 1) + + def test_extend(self): + self.base.extend([6, 7]) + self.lazy.extend([6, 7]) + self.assertEqual(self.lazy, self.base) + + def test_insert(self): + self.base.insert(0, 'ping') + self.lazy.insert(0, 'ping') + self.assertEqual(self.lazy, self.base) + + def test_pop(self): + self.assertEqual(self.lazy.pop(), self.base.pop()) + self.assertEqual(self.lazy, self.base) + + def test_remove(self): + self.base.remove(2) + self.lazy.remove(2) + self.assertEqual(self.lazy, self.base) + + def test_reverse(self): + self.base.reverse() + self.lazy.reverse() + self.assertEqual(self.lazy, self.base) + + def test_reversed(self): + self.assertEqual(list(reversed(self.lazy)), list(reversed(self.base))) + + def test_sort(self): + self.base.sort() + self.assertNotEqual(self.lazy, self.base, 'Test data already sorted') + self.lazy.sort() + self.assertEqual(self.lazy, self.base) + + def test_sorted(self): + self.assertEqual(sorted(self.lazy), sorted(self.base)) + + def test_getitem(self): + for idx in range(-len(self.base), len(self.base)): + self.assertEqual(self.lazy[idx], self.base[idx]) + + def test_setitem(self): + for idx in range(-len(self.base), len(self.base)): + self.base[idx] = idx + 1000 + self.assertNotEqual(self.lazy, self.base) + self.lazy[idx] = idx + 1000 + self.assertEqual(self.lazy, self.base) + + def test_delitem(self): + del self.base[0] + self.assertNotEqual(self.lazy, self.base) + del self.lazy[0] + self.assertEqual(self.lazy, self.base) + + del self.base[-2] + self.assertNotEqual(self.lazy, self.base) + del self.lazy[-2] + self.assertEqual(self.lazy, self.base) + + def test_iter(self): + self.assertEqual(list(iter(self.lazy)), list(iter(self.base))) + + def test_getslice(self): + for i in range(-len(self.base), len(self.base)): + for j in range(-len(self.base), len(self.base)): + for step in [-1, 1]: + self.assertEqual(self.lazy[i:j:step], self.base[i:j:step]) + + def test_setslice(self): + for i in range(-len(self.base), len(self.base)): + for j in range(-len(self.base), len(self.base)): + for step in [-1, 1]: + replacement = range(0, len(self.base[i:j:step])) + self.base[i:j:step] = replacement + self.lazy[i:j:step] = replacement + self.assertEqual(self.lazy, self.base) + + def test_delslice(self): + del self.base[0:1] + del self.lazy[0:1] + self.assertEqual(self.lazy, self.base) + + del self.base[-1:1:-1] + del self.lazy[-1:1:-1] + self.assertEqual(self.lazy, self.base) + + +class LazySetTestCase(unittest.TestCase): + initial_data = set([3,2,1]) + + def setUp(self): + self.base = set([3, 2, 1]) + self.lazy = LazySet(iter(set(self.base))) + + def test_unary_ops(self): + # These ops just need to work. + unary_ops = [str, repr] + try: + unary_ops.append(unicode) + except NameError: + pass # unicode no longer exists in Python 3. + + for op in unary_ops: + op(self.lazy) # These ops just need to work. + + # These ops should return identical values as a real set. + unary_ops = [len, bool, not_] + + for op in unary_ops: + self.assertEqual( + op(self.lazy), + op(self.base), '%s(lazy) == %r' % (op, op(self.lazy))) + + def test_binary_ops(self): + binary_ops = [eq, ge, gt, le, lt, ne, sub, and_, or_, xor] + try: + binary_ops.append(cmp) + except NameError: + pass # cmp no longer exists in Python 3. + + for op in binary_ops: + self.assertEqual( + op(self.lazy, self.lazy), + op(self.base, self.base), str(op)) + self.assertEqual( + op(self.lazy, self.base), + op(self.base, self.base), str(op)) + self.assertEqual( + op(self.base, self.lazy), + op(self.base, self.base), str(op)) + + # Contains + self.assertTrue(2 in self.lazy) + self.assertFalse(42 in self.lazy) + + def test_iops(self): + try: + iops = [isub, iand, ior, ixor] + except NameError: + return # Don't exist in older Python versions. + for op in iops: + # Mutating operators, so make fresh copies. + lazy = LazySet(self.base) + base = self.base.copy() + op(lazy, set([1])) + op(base, set([1])) + self.assertEqual(lazy, base, str(op)) + + def test_bool(self): + self.assertTrue(bool(self.lazy)) + self.assertFalse(bool(LazySet())) + self.assertFalse(bool(LazySet(iter([])))) + + def test_hash(self): + self.assertRaises(TypeError, hash, self.lazy) + + def test_isinstance(self): + self.assertTrue(isinstance(self.lazy, set)) + + def test_callable(self): + try: + callable + except NameError: + return # No longer exists with Python 3. + self.assertFalse(callable(self.lazy)) + + def test_add(self): + self.base.add('extra') + self.lazy.add('extra') + self.assertEqual(self.lazy, self.base) + + def test_copy(self): + self.assertEqual(self.lazy.copy(), self.base) + + def test_method_ops(self): + ops = [ + 'difference', 'intersection', 'isdisjoint', + 'issubset', 'issuperset', 'symmetric_difference', 'union', + 'difference_update', 'intersection_update', + 'symmetric_difference_update', 'update'] + for op in ops: + if not hasattr(set, op): + continue # Not in this version of Python. + # Make a copy, as some of the ops are mutating. + lazy = LazySet(set(self.base)) + base = set(self.base) + self.assertEqual( + getattr(self.lazy, op)(set([1])), + getattr(self.base, op)(set([1])), op) + self.assertEqual(self.lazy, self.base, op) + + def test_discard(self): + self.base.discard(1) + self.assertNotEqual(self.lazy, self.base) + self.lazy.discard(1) + self.assertEqual(self.lazy, self.base) + + def test_pop(self): + self.assertEqual(self.lazy.pop(), self.base.pop()) + self.assertEqual(self.lazy, self.base) + + def test_remove(self): + self.base.remove(2) + self.lazy.remove(2) + self.assertEqual(self.lazy, self.base) + + def test_clear(self): + self.lazy.clear() + self.assertEqual(self.lazy, set()) + + +if __name__ == '__main__': + warnings.simplefilter("error") # Warnings should be fatal in tests. + unittest.main() diff --git a/lib/pytz/tests/test_tzinfo.py b/lib/pytz/tests/test_tzinfo.py new file mode 100644 index 00000000..66793598 --- /dev/null +++ b/lib/pytz/tests/test_tzinfo.py @@ -0,0 +1,843 @@ +# -*- coding: ascii -*- + +import sys, os, os.path +import unittest, doctest +try: + import cPickle as pickle +except ImportError: + import pickle +from datetime import datetime, time, timedelta, tzinfo +import warnings + +if __name__ == '__main__': + # Only munge path if invoked as a script. Testrunners should have setup + # the paths already + sys.path.insert(0, os.path.abspath(os.path.join(os.pardir, os.pardir))) + +import pytz +from pytz import reference +from pytz.tzfile import _byte_string +from pytz.tzinfo import DstTzInfo, StaticTzInfo + +# I test for expected version to ensure the correct version of pytz is +# actually being tested. +EXPECTED_VERSION='2016.6.1' +EXPECTED_OLSON_VERSION='2016f' + +fmt = '%Y-%m-%d %H:%M:%S %Z%z' + +NOTIME = timedelta(0) + +# GMT is a tzinfo.StaticTzInfo--the class we primarily want to test--while +# UTC is reference implementation. They both have the same timezone meaning. +UTC = pytz.timezone('UTC') +GMT = pytz.timezone('GMT') +assert isinstance(GMT, StaticTzInfo), 'GMT is no longer a StaticTzInfo' + +def prettydt(dt): + """datetime as a string using a known format. + + We don't use strftime as it doesn't handle years earlier than 1900 + per http://bugs.python.org/issue1777412 + """ + if dt.utcoffset() >= timedelta(0): + offset = '+%s' % (dt.utcoffset(),) + else: + offset = '-%s' % (-1 * dt.utcoffset(),) + return '%04d-%02d-%02d %02d:%02d:%02d %s %s' % ( + dt.year, dt.month, dt.day, + dt.hour, dt.minute, dt.second, + dt.tzname(), offset) + + +try: + unicode +except NameError: + # Python 3.x doesn't have unicode(), making writing code + # for Python 2.3 and Python 3.x a pain. + unicode = str + + +class BasicTest(unittest.TestCase): + + def testVersion(self): + # Ensuring the correct version of pytz has been loaded + self.assertEqual(EXPECTED_VERSION, pytz.__version__, + 'Incorrect pytz version loaded. Import path is stuffed ' + 'or this test needs updating. (Wanted %s, got %s)' + % (EXPECTED_VERSION, pytz.__version__)) + + self.assertEqual(EXPECTED_OLSON_VERSION, pytz.OLSON_VERSION, + 'Incorrect pytz version loaded. Import path is stuffed ' + 'or this test needs updating. (Wanted %s, got %s)' + % (EXPECTED_OLSON_VERSION, pytz.OLSON_VERSION)) + + def testGMT(self): + now = datetime.now(tz=GMT) + self.assertTrue(now.utcoffset() == NOTIME) + self.assertTrue(now.dst() == NOTIME) + self.assertTrue(now.timetuple() == now.utctimetuple()) + self.assertTrue(now==now.replace(tzinfo=UTC)) + + def testReferenceUTC(self): + now = datetime.now(tz=UTC) + self.assertTrue(now.utcoffset() == NOTIME) + self.assertTrue(now.dst() == NOTIME) + self.assertTrue(now.timetuple() == now.utctimetuple()) + + def testUnknownOffsets(self): + # This tzinfo behavior is required to make + # datetime.time.{utcoffset, dst, tzname} work as documented. + + dst_tz = pytz.timezone('US/Eastern') + + # This information is not known when we don't have a date, + # so return None per API. + self.assertTrue(dst_tz.utcoffset(None) is None) + self.assertTrue(dst_tz.dst(None) is None) + # We don't know the abbreviation, but this is still a valid + # tzname per the Python documentation. + self.assertEqual(dst_tz.tzname(None), 'US/Eastern') + + def clearCache(self): + pytz._tzinfo_cache.clear() + + def testUnicodeTimezone(self): + # We need to ensure that cold lookups work for both Unicode + # and traditional strings, and that the desired singleton is + # returned. + self.clearCache() + eastern = pytz.timezone(unicode('US/Eastern')) + self.assertTrue(eastern is pytz.timezone('US/Eastern')) + + self.clearCache() + eastern = pytz.timezone('US/Eastern') + self.assertTrue(eastern is pytz.timezone(unicode('US/Eastern'))) + + def testStaticTzInfo(self): + # Ensure that static timezones are correctly detected, + # per lp:1602807 + static = pytz.timezone('Etc/GMT-4') + self.assertTrue(isinstance(static, StaticTzInfo)) + + +class PicklingTest(unittest.TestCase): + + def _roundtrip_tzinfo(self, tz): + p = pickle.dumps(tz) + unpickled_tz = pickle.loads(p) + self.assertTrue(tz is unpickled_tz, '%s did not roundtrip' % tz.zone) + + def _roundtrip_datetime(self, dt): + # Ensure that the tzinfo attached to a datetime instance + # is identical to the one returned. This is important for + # DST timezones, as some state is stored in the tzinfo. + tz = dt.tzinfo + p = pickle.dumps(dt) + unpickled_dt = pickle.loads(p) + unpickled_tz = unpickled_dt.tzinfo + self.assertTrue(tz is unpickled_tz, '%s did not roundtrip' % tz.zone) + + def testDst(self): + tz = pytz.timezone('Europe/Amsterdam') + dt = datetime(2004, 2, 1, 0, 0, 0) + + for localized_tz in tz._tzinfos.values(): + self._roundtrip_tzinfo(localized_tz) + self._roundtrip_datetime(dt.replace(tzinfo=localized_tz)) + + def testRoundtrip(self): + dt = datetime(2004, 2, 1, 0, 0, 0) + for zone in pytz.all_timezones: + tz = pytz.timezone(zone) + self._roundtrip_tzinfo(tz) + + def testDatabaseFixes(self): + # Hack the pickle to make it refer to a timezone abbreviation + # that does not match anything. The unpickler should be able + # to repair this case + tz = pytz.timezone('Australia/Melbourne') + p = pickle.dumps(tz) + tzname = tz._tzname + hacked_p = p.replace(_byte_string(tzname), + _byte_string('?'*len(tzname))) + self.assertNotEqual(p, hacked_p) + unpickled_tz = pickle.loads(hacked_p) + self.assertTrue(tz is unpickled_tz) + + # Simulate a database correction. In this case, the incorrect + # data will continue to be used. + p = pickle.dumps(tz) + new_utcoffset = tz._utcoffset.seconds + 42 + + # Python 3 introduced a new pickle protocol where numbers are stored in + # hexadecimal representation. Here we extract the pickle + # representation of the number for the current Python version. + old_pickle_pattern = pickle.dumps(tz._utcoffset.seconds)[3:-1] + new_pickle_pattern = pickle.dumps(new_utcoffset)[3:-1] + hacked_p = p.replace(old_pickle_pattern, new_pickle_pattern) + + self.assertNotEqual(p, hacked_p) + unpickled_tz = pickle.loads(hacked_p) + self.assertEqual(unpickled_tz._utcoffset.seconds, new_utcoffset) + self.assertTrue(tz is not unpickled_tz) + + def testOldPickles(self): + # Ensure that applications serializing pytz instances as pickles + # have no troubles upgrading to a new pytz release. These pickles + # where created with pytz2006j + east1 = pickle.loads(_byte_string( + "cpytz\n_p\np1\n(S'US/Eastern'\np2\nI-18000\n" + "I0\nS'EST'\np3\ntRp4\n." + )) + east2 = pytz.timezone('US/Eastern').localize( + datetime(2006, 1, 1)).tzinfo + self.assertTrue(east1 is east2) + + # Confirm changes in name munging between 2006j and 2007c cause + # no problems. + pap1 = pickle.loads(_byte_string( + "cpytz\n_p\np1\n(S'America/Port_minus_au_minus_Prince'" + "\np2\nI-17340\nI0\nS'PPMT'\np3\ntRp4\n.")) + pap2 = pytz.timezone('America/Port-au-Prince').localize( + datetime(1910, 1, 1)).tzinfo + self.assertTrue(pap1 is pap2) + + gmt1 = pickle.loads(_byte_string( + "cpytz\n_p\np1\n(S'Etc/GMT_plus_10'\np2\ntRp3\n.")) + gmt2 = pytz.timezone('Etc/GMT+10') + self.assertTrue(gmt1 is gmt2) + + +class USEasternDSTStartTestCase(unittest.TestCase): + tzinfo = pytz.timezone('US/Eastern') + + # 24 hours before DST changeover + transition_time = datetime(2002, 4, 7, 7, 0, 0, tzinfo=UTC) + + # Increase for 'flexible' DST transitions due to 1 minute granularity + # of Python's datetime library + instant = timedelta(seconds=1) + + # before transition + before = { + 'tzname': 'EST', + 'utcoffset': timedelta(hours = -5), + 'dst': timedelta(hours = 0), + } + + # after transition + after = { + 'tzname': 'EDT', + 'utcoffset': timedelta(hours = -4), + 'dst': timedelta(hours = 1), + } + + def _test_tzname(self, utc_dt, wanted): + tzname = wanted['tzname'] + dt = utc_dt.astimezone(self.tzinfo) + self.assertEqual(dt.tzname(), tzname, + 'Expected %s as tzname for %s. Got %s' % ( + tzname, str(utc_dt), dt.tzname() + ) + ) + + def _test_utcoffset(self, utc_dt, wanted): + utcoffset = wanted['utcoffset'] + dt = utc_dt.astimezone(self.tzinfo) + self.assertEqual( + dt.utcoffset(), wanted['utcoffset'], + 'Expected %s as utcoffset for %s. Got %s' % ( + utcoffset, utc_dt, dt.utcoffset() + ) + ) + + def _test_dst(self, utc_dt, wanted): + dst = wanted['dst'] + dt = utc_dt.astimezone(self.tzinfo) + self.assertEqual(dt.dst(),dst, + 'Expected %s as dst for %s. Got %s' % ( + dst, utc_dt, dt.dst() + ) + ) + + def test_arithmetic(self): + utc_dt = self.transition_time + + for days in range(-420, 720, 20): + delta = timedelta(days=days) + + # Make sure we can get back where we started + dt = utc_dt.astimezone(self.tzinfo) + dt2 = dt + delta + dt2 = dt2 - delta + self.assertEqual(dt, dt2) + + # Make sure arithmetic crossing DST boundaries ends + # up in the correct timezone after normalization + utc_plus_delta = (utc_dt + delta).astimezone(self.tzinfo) + local_plus_delta = self.tzinfo.normalize(dt + delta) + self.assertEqual( + prettydt(utc_plus_delta), + prettydt(local_plus_delta), + 'Incorrect result for delta==%d days. Wanted %r. Got %r'%( + days, + prettydt(utc_plus_delta), + prettydt(local_plus_delta), + ) + ) + + def _test_all(self, utc_dt, wanted): + self._test_utcoffset(utc_dt, wanted) + self._test_tzname(utc_dt, wanted) + self._test_dst(utc_dt, wanted) + + def testDayBefore(self): + self._test_all( + self.transition_time - timedelta(days=1), self.before + ) + + def testTwoHoursBefore(self): + self._test_all( + self.transition_time - timedelta(hours=2), self.before + ) + + def testHourBefore(self): + self._test_all( + self.transition_time - timedelta(hours=1), self.before + ) + + def testInstantBefore(self): + self._test_all( + self.transition_time - self.instant, self.before + ) + + def testTransition(self): + self._test_all( + self.transition_time, self.after + ) + + def testInstantAfter(self): + self._test_all( + self.transition_time + self.instant, self.after + ) + + def testHourAfter(self): + self._test_all( + self.transition_time + timedelta(hours=1), self.after + ) + + def testTwoHoursAfter(self): + self._test_all( + self.transition_time + timedelta(hours=1), self.after + ) + + def testDayAfter(self): + self._test_all( + self.transition_time + timedelta(days=1), self.after + ) + + +class USEasternDSTEndTestCase(USEasternDSTStartTestCase): + tzinfo = pytz.timezone('US/Eastern') + transition_time = datetime(2002, 10, 27, 6, 0, 0, tzinfo=UTC) + before = { + 'tzname': 'EDT', + 'utcoffset': timedelta(hours = -4), + 'dst': timedelta(hours = 1), + } + after = { + 'tzname': 'EST', + 'utcoffset': timedelta(hours = -5), + 'dst': timedelta(hours = 0), + } + + +class USEasternEPTStartTestCase(USEasternDSTStartTestCase): + transition_time = datetime(1945, 8, 14, 23, 0, 0, tzinfo=UTC) + before = { + 'tzname': 'EWT', + 'utcoffset': timedelta(hours = -4), + 'dst': timedelta(hours = 1), + } + after = { + 'tzname': 'EPT', + 'utcoffset': timedelta(hours = -4), + 'dst': timedelta(hours = 1), + } + + +class USEasternEPTEndTestCase(USEasternDSTStartTestCase): + transition_time = datetime(1945, 9, 30, 6, 0, 0, tzinfo=UTC) + before = { + 'tzname': 'EPT', + 'utcoffset': timedelta(hours = -4), + 'dst': timedelta(hours = 1), + } + after = { + 'tzname': 'EST', + 'utcoffset': timedelta(hours = -5), + 'dst': timedelta(hours = 0), + } + + +class WarsawWMTEndTestCase(USEasternDSTStartTestCase): + # In 1915, Warsaw changed from Warsaw to Central European time. + # This involved the clocks being set backwards, causing a end-of-DST + # like situation without DST being involved. + tzinfo = pytz.timezone('Europe/Warsaw') + transition_time = datetime(1915, 8, 4, 22, 36, 0, tzinfo=UTC) + before = { + 'tzname': 'WMT', + 'utcoffset': timedelta(hours=1, minutes=24), + 'dst': timedelta(0), + } + after = { + 'tzname': 'CET', + 'utcoffset': timedelta(hours=1), + 'dst': timedelta(0), + } + + +class VilniusWMTEndTestCase(USEasternDSTStartTestCase): + # At the end of 1916, Vilnius changed timezones putting its clock + # forward by 11 minutes 35 seconds. Neither timezone was in DST mode. + tzinfo = pytz.timezone('Europe/Vilnius') + instant = timedelta(seconds=31) + transition_time = datetime(1916, 12, 31, 22, 36, 00, tzinfo=UTC) + before = { + 'tzname': 'WMT', + 'utcoffset': timedelta(hours=1, minutes=24), + 'dst': timedelta(0), + } + after = { + 'tzname': 'KMT', + 'utcoffset': timedelta(hours=1, minutes=36), # Really 1:35:36 + 'dst': timedelta(0), + } + + +class VilniusCESTStartTestCase(USEasternDSTStartTestCase): + # In 1941, Vilnius changed from MSG to CEST, switching to summer + # time while simultaneously reducing its UTC offset by two hours, + # causing the clocks to go backwards for this summer time + # switchover. + tzinfo = pytz.timezone('Europe/Vilnius') + transition_time = datetime(1941, 6, 23, 21, 00, 00, tzinfo=UTC) + before = { + 'tzname': 'MSK', + 'utcoffset': timedelta(hours=3), + 'dst': timedelta(0), + } + after = { + 'tzname': 'CEST', + 'utcoffset': timedelta(hours=2), + 'dst': timedelta(hours=1), + } + + +class LondonHistoryStartTestCase(USEasternDSTStartTestCase): + # The first known timezone transition in London was in 1847 when + # clocks where synchronized to GMT. However, we currently only + # understand v1 format tzfile(5) files which does handle years + # this far in the past, so our earliest known transition is in + # 1916. + tzinfo = pytz.timezone('Europe/London') + # transition_time = datetime(1847, 12, 1, 1, 15, 00, tzinfo=UTC) + # before = { + # 'tzname': 'LMT', + # 'utcoffset': timedelta(minutes=-75), + # 'dst': timedelta(0), + # } + # after = { + # 'tzname': 'GMT', + # 'utcoffset': timedelta(0), + # 'dst': timedelta(0), + # } + transition_time = datetime(1916, 5, 21, 2, 00, 00, tzinfo=UTC) + before = { + 'tzname': 'GMT', + 'utcoffset': timedelta(0), + 'dst': timedelta(0), + } + after = { + 'tzname': 'BST', + 'utcoffset': timedelta(hours=1), + 'dst': timedelta(hours=1), + } + + +class LondonHistoryEndTestCase(USEasternDSTStartTestCase): + # Timezone switchovers are projected into the future, even + # though no official statements exist or could be believed even + # if they did exist. We currently only check the last known + # transition in 2037, as we are still using v1 format tzfile(5) + # files. + tzinfo = pytz.timezone('Europe/London') + # transition_time = datetime(2499, 10, 25, 1, 0, 0, tzinfo=UTC) + transition_time = datetime(2037, 10, 25, 1, 0, 0, tzinfo=UTC) + before = { + 'tzname': 'BST', + 'utcoffset': timedelta(hours=1), + 'dst': timedelta(hours=1), + } + after = { + 'tzname': 'GMT', + 'utcoffset': timedelta(0), + 'dst': timedelta(0), + } + + +class NoumeaHistoryStartTestCase(USEasternDSTStartTestCase): + # Noumea adopted a whole hour offset in 1912. Previously + # it was 11 hours, 5 minutes and 48 seconds off UTC. However, + # due to limitations of the Python datetime library, we need + # to round that to 11 hours 6 minutes. + tzinfo = pytz.timezone('Pacific/Noumea') + transition_time = datetime(1912, 1, 12, 12, 54, 12, tzinfo=UTC) + before = { + 'tzname': 'LMT', + 'utcoffset': timedelta(hours=11, minutes=6), + 'dst': timedelta(0), + } + after = { + 'tzname': 'NCT', + 'utcoffset': timedelta(hours=11), + 'dst': timedelta(0), + } + + +class NoumeaDSTEndTestCase(USEasternDSTStartTestCase): + # Noumea dropped DST in 1997. + tzinfo = pytz.timezone('Pacific/Noumea') + transition_time = datetime(1997, 3, 1, 15, 00, 00, tzinfo=UTC) + before = { + 'tzname': 'NCST', + 'utcoffset': timedelta(hours=12), + 'dst': timedelta(hours=1), + } + after = { + 'tzname': 'NCT', + 'utcoffset': timedelta(hours=11), + 'dst': timedelta(0), + } + + +class NoumeaNoMoreDSTTestCase(NoumeaDSTEndTestCase): + # Noumea dropped DST in 1997. Here we test that it stops occuring. + transition_time = ( + NoumeaDSTEndTestCase.transition_time + timedelta(days=365*10)) + before = NoumeaDSTEndTestCase.after + after = NoumeaDSTEndTestCase.after + + +class TahitiTestCase(USEasternDSTStartTestCase): + # Tahiti has had a single transition in its history. + tzinfo = pytz.timezone('Pacific/Tahiti') + transition_time = datetime(1912, 10, 1, 9, 58, 16, tzinfo=UTC) + before = { + 'tzname': 'LMT', + 'utcoffset': timedelta(hours=-9, minutes=-58), + 'dst': timedelta(0), + } + after = { + 'tzname': 'TAHT', + 'utcoffset': timedelta(hours=-10), + 'dst': timedelta(0), + } + + +class SamoaInternationalDateLineChange(USEasternDSTStartTestCase): + # At the end of 2011, Samoa will switch from being east of the + # international dateline to the west. There will be no Dec 30th + # 2011 and it will switch from UTC-10 to UTC+14. + tzinfo = pytz.timezone('Pacific/Apia') + transition_time = datetime(2011, 12, 30, 10, 0, 0, tzinfo=UTC) + before = { + 'tzname': 'SDT', + 'utcoffset': timedelta(hours=-10), + 'dst': timedelta(hours=1), + } + after = { + 'tzname': 'WSDT', + 'utcoffset': timedelta(hours=14), + 'dst': timedelta(hours=1), + } + + +class ReferenceUSEasternDSTStartTestCase(USEasternDSTStartTestCase): + tzinfo = reference.Eastern + def test_arithmetic(self): + # Reference implementation cannot handle this + pass + + +class ReferenceUSEasternDSTEndTestCase(USEasternDSTEndTestCase): + tzinfo = reference.Eastern + + def testHourBefore(self): + # Python's datetime library has a bug, where the hour before + # a daylight saving transition is one hour out. For example, + # at the end of US/Eastern daylight saving time, 01:00 EST + # occurs twice (once at 05:00 UTC and once at 06:00 UTC), + # whereas the first should actually be 01:00 EDT. + # Note that this bug is by design - by accepting this ambiguity + # for one hour one hour per year, an is_dst flag on datetime.time + # became unnecessary. + self._test_all( + self.transition_time - timedelta(hours=1), self.after + ) + + def testInstantBefore(self): + self._test_all( + self.transition_time - timedelta(seconds=1), self.after + ) + + def test_arithmetic(self): + # Reference implementation cannot handle this + pass + + +class LocalTestCase(unittest.TestCase): + def testLocalize(self): + loc_tz = pytz.timezone('Europe/Amsterdam') + + loc_time = loc_tz.localize(datetime(1930, 5, 10, 0, 0, 0)) + # Actually +00:19:32, but Python datetime rounds this + self.assertEqual(loc_time.strftime('%Z%z'), 'AMT+0020') + + loc_time = loc_tz.localize(datetime(1930, 5, 20, 0, 0, 0)) + # Actually +00:19:32, but Python datetime rounds this + self.assertEqual(loc_time.strftime('%Z%z'), 'NST+0120') + + loc_time = loc_tz.localize(datetime(1940, 5, 10, 0, 0, 0)) + self.assertEqual(loc_time.strftime('%Z%z'), 'NET+0020') + + loc_time = loc_tz.localize(datetime(1940, 5, 20, 0, 0, 0)) + self.assertEqual(loc_time.strftime('%Z%z'), 'CEST+0200') + + loc_time = loc_tz.localize(datetime(2004, 2, 1, 0, 0, 0)) + self.assertEqual(loc_time.strftime('%Z%z'), 'CET+0100') + + loc_time = loc_tz.localize(datetime(2004, 4, 1, 0, 0, 0)) + self.assertEqual(loc_time.strftime('%Z%z'), 'CEST+0200') + + tz = pytz.timezone('Europe/Amsterdam') + loc_time = loc_tz.localize(datetime(1943, 3, 29, 1, 59, 59)) + self.assertEqual(loc_time.strftime('%Z%z'), 'CET+0100') + + + # Switch to US + loc_tz = pytz.timezone('US/Eastern') + + # End of DST ambiguity check + loc_time = loc_tz.localize(datetime(1918, 10, 27, 1, 59, 59), is_dst=1) + self.assertEqual(loc_time.strftime('%Z%z'), 'EDT-0400') + + loc_time = loc_tz.localize(datetime(1918, 10, 27, 1, 59, 59), is_dst=0) + self.assertEqual(loc_time.strftime('%Z%z'), 'EST-0500') + + self.assertRaises(pytz.AmbiguousTimeError, + loc_tz.localize, datetime(1918, 10, 27, 1, 59, 59), is_dst=None + ) + + # Start of DST non-existent times + loc_time = loc_tz.localize(datetime(1918, 3, 31, 2, 0, 0), is_dst=0) + self.assertEqual(loc_time.strftime('%Z%z'), 'EST-0500') + + loc_time = loc_tz.localize(datetime(1918, 3, 31, 2, 0, 0), is_dst=1) + self.assertEqual(loc_time.strftime('%Z%z'), 'EDT-0400') + + self.assertRaises(pytz.NonExistentTimeError, + loc_tz.localize, datetime(1918, 3, 31, 2, 0, 0), is_dst=None + ) + + # Weird changes - war time and peace time both is_dst==True + + loc_time = loc_tz.localize(datetime(1942, 2, 9, 3, 0, 0)) + self.assertEqual(loc_time.strftime('%Z%z'), 'EWT-0400') + + loc_time = loc_tz.localize(datetime(1945, 8, 14, 19, 0, 0)) + self.assertEqual(loc_time.strftime('%Z%z'), 'EPT-0400') + + loc_time = loc_tz.localize(datetime(1945, 9, 30, 1, 0, 0), is_dst=1) + self.assertEqual(loc_time.strftime('%Z%z'), 'EPT-0400') + + loc_time = loc_tz.localize(datetime(1945, 9, 30, 1, 0, 0), is_dst=0) + self.assertEqual(loc_time.strftime('%Z%z'), 'EST-0500') + + # Weird changes - ambiguous time (end-of-DST like) but is_dst==False + for zonename, ambiguous_naive, expected in [ + ('Europe/Warsaw', datetime(1915, 8, 4, 23, 59, 59), + ['1915-08-04 23:59:59 WMT+0124', + '1915-08-04 23:59:59 CET+0100']), + ('Europe/Moscow', datetime(2014, 10, 26, 1, 30), + ['2014-10-26 01:30:00 MSK+0400', + '2014-10-26 01:30:00 MSK+0300'])]: + loc_tz = pytz.timezone(zonename) + self.assertRaises(pytz.AmbiguousTimeError, + loc_tz.localize, ambiguous_naive, is_dst=None + ) + # Also test non-boolean is_dst in the weird case + for dst in [True, timedelta(1), False, timedelta(0)]: + loc_time = loc_tz.localize(ambiguous_naive, is_dst=dst) + self.assertEqual(loc_time.strftime(fmt), expected[not dst]) + + def testNormalize(self): + tz = pytz.timezone('US/Eastern') + dt = datetime(2004, 4, 4, 7, 0, 0, tzinfo=UTC).astimezone(tz) + dt2 = dt - timedelta(minutes=10) + self.assertEqual( + dt2.strftime('%Y-%m-%d %H:%M:%S %Z%z'), + '2004-04-04 02:50:00 EDT-0400' + ) + + dt2 = tz.normalize(dt2) + self.assertEqual( + dt2.strftime('%Y-%m-%d %H:%M:%S %Z%z'), + '2004-04-04 01:50:00 EST-0500' + ) + + def testPartialMinuteOffsets(self): + # utcoffset in Amsterdam was not a whole minute until 1937 + # However, we fudge this by rounding them, as the Python + # datetime library + tz = pytz.timezone('Europe/Amsterdam') + utc_dt = datetime(1914, 1, 1, 13, 40, 28, tzinfo=UTC) # correct + utc_dt = utc_dt.replace(second=0) # But we need to fudge it + loc_dt = utc_dt.astimezone(tz) + self.assertEqual( + loc_dt.strftime('%Y-%m-%d %H:%M:%S %Z%z'), + '1914-01-01 14:00:00 AMT+0020' + ) + + # And get back... + utc_dt = loc_dt.astimezone(UTC) + self.assertEqual( + utc_dt.strftime('%Y-%m-%d %H:%M:%S %Z%z'), + '1914-01-01 13:40:00 UTC+0000' + ) + + def no_testCreateLocaltime(self): + # It would be nice if this worked, but it doesn't. + tz = pytz.timezone('Europe/Amsterdam') + dt = datetime(2004, 10, 31, 2, 0, 0, tzinfo=tz) + self.assertEqual( + dt.strftime(fmt), + '2004-10-31 02:00:00 CET+0100' + ) + + +class CommonTimezonesTestCase(unittest.TestCase): + def test_bratislava(self): + # Bratislava is the default timezone for Slovakia, but our + # heuristics where not adding it to common_timezones. Ideally, + # common_timezones should be populated from zone.tab at runtime, + # but I'm hesitant to pay the startup cost as loading the list + # on demand whilst remaining backwards compatible seems + # difficult. + self.assertTrue('Europe/Bratislava' in pytz.common_timezones) + self.assertTrue('Europe/Bratislava' in pytz.common_timezones_set) + + def test_us_eastern(self): + self.assertTrue('US/Eastern' in pytz.common_timezones) + self.assertTrue('US/Eastern' in pytz.common_timezones_set) + + def test_belfast(self): + # Belfast uses London time. + self.assertTrue('Europe/Belfast' in pytz.all_timezones_set) + self.assertFalse('Europe/Belfast' in pytz.common_timezones) + self.assertFalse('Europe/Belfast' in pytz.common_timezones_set) + + +class BaseTzInfoTestCase: + '''Ensure UTC, StaticTzInfo and DstTzInfo work consistently. + + These tests are run for each type of tzinfo. + ''' + tz = None # override + tz_class = None # override + + def test_expectedclass(self): + self.assertTrue(isinstance(self.tz, self.tz_class)) + + def test_fromutc(self): + # naive datetime. + dt1 = datetime(2011, 10, 31) + + # localized datetime, same timezone. + dt2 = self.tz.localize(dt1) + + # Both should give the same results. Note that the standard + # Python tzinfo.fromutc() only supports the second. + for dt in [dt1, dt2]: + loc_dt = self.tz.fromutc(dt) + loc_dt2 = pytz.utc.localize(dt1).astimezone(self.tz) + self.assertEqual(loc_dt, loc_dt2) + + # localized datetime, different timezone. + new_tz = pytz.timezone('Europe/Paris') + self.assertTrue(self.tz is not new_tz) + dt3 = new_tz.localize(dt1) + self.assertRaises(ValueError, self.tz.fromutc, dt3) + + def test_normalize(self): + other_tz = pytz.timezone('Europe/Paris') + self.assertTrue(self.tz is not other_tz) + + dt = datetime(2012, 3, 26, 12, 0) + other_dt = other_tz.localize(dt) + + local_dt = self.tz.normalize(other_dt) + + self.assertTrue(local_dt.tzinfo is not other_dt.tzinfo) + self.assertNotEqual( + local_dt.replace(tzinfo=None), other_dt.replace(tzinfo=None)) + + def test_astimezone(self): + other_tz = pytz.timezone('Europe/Paris') + self.assertTrue(self.tz is not other_tz) + + dt = datetime(2012, 3, 26, 12, 0) + other_dt = other_tz.localize(dt) + + local_dt = other_dt.astimezone(self.tz) + + self.assertTrue(local_dt.tzinfo is not other_dt.tzinfo) + self.assertNotEqual( + local_dt.replace(tzinfo=None), other_dt.replace(tzinfo=None)) + + +class OptimizedUTCTestCase(unittest.TestCase, BaseTzInfoTestCase): + tz = pytz.utc + tz_class = tz.__class__ + + +class LegacyUTCTestCase(unittest.TestCase, BaseTzInfoTestCase): + # Deprecated timezone, but useful for comparison tests. + tz = pytz.timezone('Etc/UTC') + tz_class = StaticTzInfo + + +class StaticTzInfoTestCase(unittest.TestCase, BaseTzInfoTestCase): + tz = pytz.timezone('GMT') + tz_class = StaticTzInfo + + +class DstTzInfoTestCase(unittest.TestCase, BaseTzInfoTestCase): + tz = pytz.timezone('Australia/Melbourne') + tz_class = DstTzInfo + + +def test_suite(): + suite = unittest.TestSuite() + suite.addTest(doctest.DocTestSuite('pytz')) + suite.addTest(doctest.DocTestSuite('pytz.tzinfo')) + import test_tzinfo + suite.addTest(unittest.defaultTestLoader.loadTestsFromModule(test_tzinfo)) + return suite + + +if __name__ == '__main__': + warnings.simplefilter("error") # Warnings should be fatal in tests. + unittest.main(defaultTest='test_suite') diff --git a/lib/pytz/tzfile.py b/lib/pytz/tzfile.py new file mode 100644 index 00000000..14b6bfcb --- /dev/null +++ b/lib/pytz/tzfile.py @@ -0,0 +1,137 @@ +#!/usr/bin/env python +''' +$Id: tzfile.py,v 1.8 2004/06/03 00:15:24 zenzen Exp $ +''' + +try: + from cStringIO import StringIO +except ImportError: + from io import StringIO +from datetime import datetime, timedelta +from struct import unpack, calcsize + +from pytz.tzinfo import StaticTzInfo, DstTzInfo, memorized_ttinfo +from pytz.tzinfo import memorized_datetime, memorized_timedelta + +def _byte_string(s): + """Cast a string or byte string to an ASCII byte string.""" + return s.encode('ASCII') + +_NULL = _byte_string('\0') + +def _std_string(s): + """Cast a string or byte string to an ASCII string.""" + return str(s.decode('ASCII')) + +def build_tzinfo(zone, fp): + head_fmt = '>4s c 15x 6l' + head_size = calcsize(head_fmt) + (magic, format, ttisgmtcnt, ttisstdcnt,leapcnt, timecnt, + typecnt, charcnt) = unpack(head_fmt, fp.read(head_size)) + + # Make sure it is a tzfile(5) file + assert magic == _byte_string('TZif'), 'Got magic %s' % repr(magic) + + # Read out the transition times, localtime indices and ttinfo structures. + data_fmt = '>%(timecnt)dl %(timecnt)dB %(ttinfo)s %(charcnt)ds' % dict( + timecnt=timecnt, ttinfo='lBB'*typecnt, charcnt=charcnt) + data_size = calcsize(data_fmt) + data = unpack(data_fmt, fp.read(data_size)) + + # make sure we unpacked the right number of values + assert len(data) == 2 * timecnt + 3 * typecnt + 1 + transitions = [memorized_datetime(trans) + for trans in data[:timecnt]] + lindexes = list(data[timecnt:2 * timecnt]) + ttinfo_raw = data[2 * timecnt:-1] + tznames_raw = data[-1] + del data + + # Process ttinfo into separate structs + ttinfo = [] + tznames = {} + i = 0 + while i < len(ttinfo_raw): + # have we looked up this timezone name yet? + tzname_offset = ttinfo_raw[i+2] + if tzname_offset not in tznames: + nul = tznames_raw.find(_NULL, tzname_offset) + if nul < 0: + nul = len(tznames_raw) + tznames[tzname_offset] = _std_string( + tznames_raw[tzname_offset:nul]) + ttinfo.append((ttinfo_raw[i], + bool(ttinfo_raw[i+1]), + tznames[tzname_offset])) + i += 3 + + # Now build the timezone object + if len(ttinfo) ==1 or len(transitions) == 0: + ttinfo[0][0], ttinfo[0][2] + cls = type(zone, (StaticTzInfo,), dict( + zone=zone, + _utcoffset=memorized_timedelta(ttinfo[0][0]), + _tzname=ttinfo[0][2])) + else: + # Early dates use the first standard time ttinfo + i = 0 + while ttinfo[i][1]: + i += 1 + if ttinfo[i] == ttinfo[lindexes[0]]: + transitions[0] = datetime.min + else: + transitions.insert(0, datetime.min) + lindexes.insert(0, i) + + # calculate transition info + transition_info = [] + for i in range(len(transitions)): + inf = ttinfo[lindexes[i]] + utcoffset = inf[0] + if not inf[1]: + dst = 0 + else: + for j in range(i-1, -1, -1): + prev_inf = ttinfo[lindexes[j]] + if not prev_inf[1]: + break + dst = inf[0] - prev_inf[0] # dst offset + + # Bad dst? Look further. DST > 24 hours happens when + # a timzone has moved across the international dateline. + if dst <= 0 or dst > 3600*3: + for j in range(i+1, len(transitions)): + stdinf = ttinfo[lindexes[j]] + if not stdinf[1]: + dst = inf[0] - stdinf[0] + if dst > 0: + break # Found a useful std time. + + tzname = inf[2] + + # Round utcoffset and dst to the nearest minute or the + # datetime library will complain. Conversions to these timezones + # might be up to plus or minus 30 seconds out, but it is + # the best we can do. + utcoffset = int((utcoffset + 30) // 60) * 60 + dst = int((dst + 30) // 60) * 60 + transition_info.append(memorized_ttinfo(utcoffset, dst, tzname)) + + cls = type(zone, (DstTzInfo,), dict( + zone=zone, + _utc_transition_times=transitions, + _transition_info=transition_info)) + + return cls() + +if __name__ == '__main__': + import os.path + from pprint import pprint + base = os.path.join(os.path.dirname(__file__), 'zoneinfo') + tz = build_tzinfo('Australia/Melbourne', + open(os.path.join(base,'Australia','Melbourne'), 'rb')) + tz = build_tzinfo('US/Eastern', + open(os.path.join(base,'US','Eastern'), 'rb')) + pprint(tz._utc_transition_times) + #print tz.asPython(4) + #print tz.transitions_mapping diff --git a/lib/pytz/tzinfo.py b/lib/pytz/tzinfo.py new file mode 100644 index 00000000..1318872d --- /dev/null +++ b/lib/pytz/tzinfo.py @@ -0,0 +1,564 @@ +'''Base classes and helpers for building zone specific tzinfo classes''' + +from datetime import datetime, timedelta, tzinfo +from bisect import bisect_right +try: + set +except NameError: + from sets import Set as set + +import pytz +from pytz.exceptions import AmbiguousTimeError, NonExistentTimeError + +__all__ = [] + +_timedelta_cache = {} +def memorized_timedelta(seconds): + '''Create only one instance of each distinct timedelta''' + try: + return _timedelta_cache[seconds] + except KeyError: + delta = timedelta(seconds=seconds) + _timedelta_cache[seconds] = delta + return delta + +_epoch = datetime.utcfromtimestamp(0) +_datetime_cache = {0: _epoch} +def memorized_datetime(seconds): + '''Create only one instance of each distinct datetime''' + try: + return _datetime_cache[seconds] + except KeyError: + # NB. We can't just do datetime.utcfromtimestamp(seconds) as this + # fails with negative values under Windows (Bug #90096) + dt = _epoch + timedelta(seconds=seconds) + _datetime_cache[seconds] = dt + return dt + +_ttinfo_cache = {} +def memorized_ttinfo(*args): + '''Create only one instance of each distinct tuple''' + try: + return _ttinfo_cache[args] + except KeyError: + ttinfo = ( + memorized_timedelta(args[0]), + memorized_timedelta(args[1]), + args[2] + ) + _ttinfo_cache[args] = ttinfo + return ttinfo + +_notime = memorized_timedelta(0) + +def _to_seconds(td): + '''Convert a timedelta to seconds''' + return td.seconds + td.days * 24 * 60 * 60 + + +class BaseTzInfo(tzinfo): + # Overridden in subclass + _utcoffset = None + _tzname = None + zone = None + + def __str__(self): + return self.zone + + +class StaticTzInfo(BaseTzInfo): + '''A timezone that has a constant offset from UTC + + These timezones are rare, as most locations have changed their + offset at some point in their history + ''' + def fromutc(self, dt): + '''See datetime.tzinfo.fromutc''' + if dt.tzinfo is not None and dt.tzinfo is not self: + raise ValueError('fromutc: dt.tzinfo is not self') + return (dt + self._utcoffset).replace(tzinfo=self) + + def utcoffset(self, dt, is_dst=None): + '''See datetime.tzinfo.utcoffset + + is_dst is ignored for StaticTzInfo, and exists only to + retain compatibility with DstTzInfo. + ''' + return self._utcoffset + + def dst(self, dt, is_dst=None): + '''See datetime.tzinfo.dst + + is_dst is ignored for StaticTzInfo, and exists only to + retain compatibility with DstTzInfo. + ''' + return _notime + + def tzname(self, dt, is_dst=None): + '''See datetime.tzinfo.tzname + + is_dst is ignored for StaticTzInfo, and exists only to + retain compatibility with DstTzInfo. + ''' + return self._tzname + + def localize(self, dt, is_dst=False): + '''Convert naive time to local time''' + if dt.tzinfo is not None: + raise ValueError('Not naive datetime (tzinfo is already set)') + return dt.replace(tzinfo=self) + + def normalize(self, dt, is_dst=False): + '''Correct the timezone information on the given datetime. + + This is normally a no-op, as StaticTzInfo timezones never have + ambiguous cases to correct: + + >>> from pytz import timezone + >>> gmt = timezone('GMT') + >>> isinstance(gmt, StaticTzInfo) + True + >>> dt = datetime(2011, 5, 8, 1, 2, 3, tzinfo=gmt) + >>> gmt.normalize(dt) is dt + True + + The supported method of converting between timezones is to use + datetime.astimezone(). Currently normalize() also works: + + >>> la = timezone('America/Los_Angeles') + >>> dt = la.localize(datetime(2011, 5, 7, 1, 2, 3)) + >>> fmt = '%Y-%m-%d %H:%M:%S %Z (%z)' + >>> gmt.normalize(dt).strftime(fmt) + '2011-05-07 08:02:03 GMT (+0000)' + ''' + if dt.tzinfo is self: + return dt + if dt.tzinfo is None: + raise ValueError('Naive time - no tzinfo set') + return dt.astimezone(self) + + def __repr__(self): + return '' % (self.zone,) + + def __reduce__(self): + # Special pickle to zone remains a singleton and to cope with + # database changes. + return pytz._p, (self.zone,) + + +class DstTzInfo(BaseTzInfo): + '''A timezone that has a variable offset from UTC + + The offset might change if daylight saving time comes into effect, + or at a point in history when the region decides to change their + timezone definition. + ''' + # Overridden in subclass + _utc_transition_times = None # Sorted list of DST transition times in UTC + _transition_info = None # [(utcoffset, dstoffset, tzname)] corresponding + # to _utc_transition_times entries + zone = None + + # Set in __init__ + _tzinfos = None + _dst = None # DST offset + + def __init__(self, _inf=None, _tzinfos=None): + if _inf: + self._tzinfos = _tzinfos + self._utcoffset, self._dst, self._tzname = _inf + else: + _tzinfos = {} + self._tzinfos = _tzinfos + self._utcoffset, self._dst, self._tzname = self._transition_info[0] + _tzinfos[self._transition_info[0]] = self + for inf in self._transition_info[1:]: + if inf not in _tzinfos: + _tzinfos[inf] = self.__class__(inf, _tzinfos) + + def fromutc(self, dt): + '''See datetime.tzinfo.fromutc''' + if (dt.tzinfo is not None + and getattr(dt.tzinfo, '_tzinfos', None) is not self._tzinfos): + raise ValueError('fromutc: dt.tzinfo is not self') + dt = dt.replace(tzinfo=None) + idx = max(0, bisect_right(self._utc_transition_times, dt) - 1) + inf = self._transition_info[idx] + return (dt + inf[0]).replace(tzinfo=self._tzinfos[inf]) + + def normalize(self, dt): + '''Correct the timezone information on the given datetime + + If date arithmetic crosses DST boundaries, the tzinfo + is not magically adjusted. This method normalizes the + tzinfo to the correct one. + + To test, first we need to do some setup + + >>> from pytz import timezone + >>> utc = timezone('UTC') + >>> eastern = timezone('US/Eastern') + >>> fmt = '%Y-%m-%d %H:%M:%S %Z (%z)' + + We next create a datetime right on an end-of-DST transition point, + the instant when the wallclocks are wound back one hour. + + >>> utc_dt = datetime(2002, 10, 27, 6, 0, 0, tzinfo=utc) + >>> loc_dt = utc_dt.astimezone(eastern) + >>> loc_dt.strftime(fmt) + '2002-10-27 01:00:00 EST (-0500)' + + Now, if we subtract a few minutes from it, note that the timezone + information has not changed. + + >>> before = loc_dt - timedelta(minutes=10) + >>> before.strftime(fmt) + '2002-10-27 00:50:00 EST (-0500)' + + But we can fix that by calling the normalize method + + >>> before = eastern.normalize(before) + >>> before.strftime(fmt) + '2002-10-27 01:50:00 EDT (-0400)' + + The supported method of converting between timezones is to use + datetime.astimezone(). Currently, normalize() also works: + + >>> th = timezone('Asia/Bangkok') + >>> am = timezone('Europe/Amsterdam') + >>> dt = th.localize(datetime(2011, 5, 7, 1, 2, 3)) + >>> fmt = '%Y-%m-%d %H:%M:%S %Z (%z)' + >>> am.normalize(dt).strftime(fmt) + '2011-05-06 20:02:03 CEST (+0200)' + ''' + if dt.tzinfo is None: + raise ValueError('Naive time - no tzinfo set') + + # Convert dt in localtime to UTC + offset = dt.tzinfo._utcoffset + dt = dt.replace(tzinfo=None) + dt = dt - offset + # convert it back, and return it + return self.fromutc(dt) + + def localize(self, dt, is_dst=False): + '''Convert naive time to local time. + + This method should be used to construct localtimes, rather + than passing a tzinfo argument to a datetime constructor. + + is_dst is used to determine the correct timezone in the ambigous + period at the end of daylight saving time. + + >>> from pytz import timezone + >>> fmt = '%Y-%m-%d %H:%M:%S %Z (%z)' + >>> amdam = timezone('Europe/Amsterdam') + >>> dt = datetime(2004, 10, 31, 2, 0, 0) + >>> loc_dt1 = amdam.localize(dt, is_dst=True) + >>> loc_dt2 = amdam.localize(dt, is_dst=False) + >>> loc_dt1.strftime(fmt) + '2004-10-31 02:00:00 CEST (+0200)' + >>> loc_dt2.strftime(fmt) + '2004-10-31 02:00:00 CET (+0100)' + >>> str(loc_dt2 - loc_dt1) + '1:00:00' + + Use is_dst=None to raise an AmbiguousTimeError for ambiguous + times at the end of daylight saving time + + >>> try: + ... loc_dt1 = amdam.localize(dt, is_dst=None) + ... except AmbiguousTimeError: + ... print('Ambiguous') + Ambiguous + + is_dst defaults to False + + >>> amdam.localize(dt) == amdam.localize(dt, False) + True + + is_dst is also used to determine the correct timezone in the + wallclock times jumped over at the start of daylight saving time. + + >>> pacific = timezone('US/Pacific') + >>> dt = datetime(2008, 3, 9, 2, 0, 0) + >>> ploc_dt1 = pacific.localize(dt, is_dst=True) + >>> ploc_dt2 = pacific.localize(dt, is_dst=False) + >>> ploc_dt1.strftime(fmt) + '2008-03-09 02:00:00 PDT (-0700)' + >>> ploc_dt2.strftime(fmt) + '2008-03-09 02:00:00 PST (-0800)' + >>> str(ploc_dt2 - ploc_dt1) + '1:00:00' + + Use is_dst=None to raise a NonExistentTimeError for these skipped + times. + + >>> try: + ... loc_dt1 = pacific.localize(dt, is_dst=None) + ... except NonExistentTimeError: + ... print('Non-existent') + Non-existent + ''' + if dt.tzinfo is not None: + raise ValueError('Not naive datetime (tzinfo is already set)') + + # Find the two best possibilities. + possible_loc_dt = set() + for delta in [timedelta(days=-1), timedelta(days=1)]: + loc_dt = dt + delta + idx = max(0, bisect_right( + self._utc_transition_times, loc_dt) - 1) + inf = self._transition_info[idx] + tzinfo = self._tzinfos[inf] + loc_dt = tzinfo.normalize(dt.replace(tzinfo=tzinfo)) + if loc_dt.replace(tzinfo=None) == dt: + possible_loc_dt.add(loc_dt) + + if len(possible_loc_dt) == 1: + return possible_loc_dt.pop() + + # If there are no possibly correct timezones, we are attempting + # to convert a time that never happened - the time period jumped + # during the start-of-DST transition period. + if len(possible_loc_dt) == 0: + # If we refuse to guess, raise an exception. + if is_dst is None: + raise NonExistentTimeError(dt) + + # If we are forcing the pre-DST side of the DST transition, we + # obtain the correct timezone by winding the clock forward a few + # hours. + elif is_dst: + return self.localize( + dt + timedelta(hours=6), is_dst=True) - timedelta(hours=6) + + # If we are forcing the post-DST side of the DST transition, we + # obtain the correct timezone by winding the clock back. + else: + return self.localize( + dt - timedelta(hours=6), is_dst=False) + timedelta(hours=6) + + + # If we get this far, we have multiple possible timezones - this + # is an ambiguous case occuring during the end-of-DST transition. + + # If told to be strict, raise an exception since we have an + # ambiguous case + if is_dst is None: + raise AmbiguousTimeError(dt) + + # Filter out the possiblilities that don't match the requested + # is_dst + filtered_possible_loc_dt = [ + p for p in possible_loc_dt + if bool(p.tzinfo._dst) == is_dst + ] + + # Hopefully we only have one possibility left. Return it. + if len(filtered_possible_loc_dt) == 1: + return filtered_possible_loc_dt[0] + + if len(filtered_possible_loc_dt) == 0: + filtered_possible_loc_dt = list(possible_loc_dt) + + # If we get this far, we have in a wierd timezone transition + # where the clocks have been wound back but is_dst is the same + # in both (eg. Europe/Warsaw 1915 when they switched to CET). + # At this point, we just have to guess unless we allow more + # hints to be passed in (such as the UTC offset or abbreviation), + # but that is just getting silly. + # + # Choose the earliest (by UTC) applicable timezone if is_dst=True + # Choose the latest (by UTC) applicable timezone if is_dst=False + # i.e., behave like end-of-DST transition + dates = {} # utc -> local + for local_dt in filtered_possible_loc_dt: + utc_time = local_dt.replace(tzinfo=None) - local_dt.tzinfo._utcoffset + assert utc_time not in dates + dates[utc_time] = local_dt + return dates[[min, max][not is_dst](dates)] + + def utcoffset(self, dt, is_dst=None): + '''See datetime.tzinfo.utcoffset + + The is_dst parameter may be used to remove ambiguity during DST + transitions. + + >>> from pytz import timezone + >>> tz = timezone('America/St_Johns') + >>> ambiguous = datetime(2009, 10, 31, 23, 30) + + >>> tz.utcoffset(ambiguous, is_dst=False) + datetime.timedelta(-1, 73800) + + >>> tz.utcoffset(ambiguous, is_dst=True) + datetime.timedelta(-1, 77400) + + >>> try: + ... tz.utcoffset(ambiguous) + ... except AmbiguousTimeError: + ... print('Ambiguous') + Ambiguous + + ''' + if dt is None: + return None + elif dt.tzinfo is not self: + dt = self.localize(dt, is_dst) + return dt.tzinfo._utcoffset + else: + return self._utcoffset + + def dst(self, dt, is_dst=None): + '''See datetime.tzinfo.dst + + The is_dst parameter may be used to remove ambiguity during DST + transitions. + + >>> from pytz import timezone + >>> tz = timezone('America/St_Johns') + + >>> normal = datetime(2009, 9, 1) + + >>> tz.dst(normal) + datetime.timedelta(0, 3600) + >>> tz.dst(normal, is_dst=False) + datetime.timedelta(0, 3600) + >>> tz.dst(normal, is_dst=True) + datetime.timedelta(0, 3600) + + >>> ambiguous = datetime(2009, 10, 31, 23, 30) + + >>> tz.dst(ambiguous, is_dst=False) + datetime.timedelta(0) + >>> tz.dst(ambiguous, is_dst=True) + datetime.timedelta(0, 3600) + >>> try: + ... tz.dst(ambiguous) + ... except AmbiguousTimeError: + ... print('Ambiguous') + Ambiguous + + ''' + if dt is None: + return None + elif dt.tzinfo is not self: + dt = self.localize(dt, is_dst) + return dt.tzinfo._dst + else: + return self._dst + + def tzname(self, dt, is_dst=None): + '''See datetime.tzinfo.tzname + + The is_dst parameter may be used to remove ambiguity during DST + transitions. + + >>> from pytz import timezone + >>> tz = timezone('America/St_Johns') + + >>> normal = datetime(2009, 9, 1) + + >>> tz.tzname(normal) + 'NDT' + >>> tz.tzname(normal, is_dst=False) + 'NDT' + >>> tz.tzname(normal, is_dst=True) + 'NDT' + + >>> ambiguous = datetime(2009, 10, 31, 23, 30) + + >>> tz.tzname(ambiguous, is_dst=False) + 'NST' + >>> tz.tzname(ambiguous, is_dst=True) + 'NDT' + >>> try: + ... tz.tzname(ambiguous) + ... except AmbiguousTimeError: + ... print('Ambiguous') + Ambiguous + ''' + if dt is None: + return self.zone + elif dt.tzinfo is not self: + dt = self.localize(dt, is_dst) + return dt.tzinfo._tzname + else: + return self._tzname + + def __repr__(self): + if self._dst: + dst = 'DST' + else: + dst = 'STD' + if self._utcoffset > _notime: + return '' % ( + self.zone, self._tzname, self._utcoffset, dst + ) + else: + return '' % ( + self.zone, self._tzname, self._utcoffset, dst + ) + + def __reduce__(self): + # Special pickle to zone remains a singleton and to cope with + # database changes. + return pytz._p, ( + self.zone, + _to_seconds(self._utcoffset), + _to_seconds(self._dst), + self._tzname + ) + + + +def unpickler(zone, utcoffset=None, dstoffset=None, tzname=None): + """Factory function for unpickling pytz tzinfo instances. + + This is shared for both StaticTzInfo and DstTzInfo instances, because + database changes could cause a zones implementation to switch between + these two base classes and we can't break pickles on a pytz version + upgrade. + """ + # Raises a KeyError if zone no longer exists, which should never happen + # and would be a bug. + tz = pytz.timezone(zone) + + # A StaticTzInfo - just return it + if utcoffset is None: + return tz + + # This pickle was created from a DstTzInfo. We need to + # determine which of the list of tzinfo instances for this zone + # to use in order to restore the state of any datetime instances using + # it correctly. + utcoffset = memorized_timedelta(utcoffset) + dstoffset = memorized_timedelta(dstoffset) + try: + return tz._tzinfos[(utcoffset, dstoffset, tzname)] + except KeyError: + # The particular state requested in this timezone no longer exists. + # This indicates a corrupt pickle, or the timezone database has been + # corrected violently enough to make this particular + # (utcoffset,dstoffset) no longer exist in the zone, or the + # abbreviation has been changed. + pass + + # See if we can find an entry differing only by tzname. Abbreviations + # get changed from the initial guess by the database maintainers to + # match reality when this information is discovered. + for localized_tz in tz._tzinfos.values(): + if (localized_tz._utcoffset == utcoffset + and localized_tz._dst == dstoffset): + return localized_tz + + # This (utcoffset, dstoffset) information has been removed from the + # zone. Add it back. This might occur when the database maintainers have + # corrected incorrect information. datetime instances using this + # incorrect information will continue to do so, exactly as they were + # before being pickled. This is purely an overly paranoid safety net - I + # doubt this will ever been needed in real life. + inf = (utcoffset, dstoffset, tzname) + tz._tzinfos[inf] = tz.__class__(inf, tz._tzinfos) + return tz._tzinfos[inf] diff --git a/lib/pytz/zoneinfo/Africa/Abidjan b/lib/pytz/zoneinfo/Africa/Abidjan new file mode 100644 index 0000000000000000000000000000000000000000..6fd1af32daec193239ab6b472526fd3d6bdb2f76 GIT binary patch literal 170 zcmWHE%1kq2zyM4@5fBCe7@MO3$eHwPk_Q9h|Nnn1KvF=!;^P~_;10wf5JG}!KfpQ| Q82$qRep9)C#v5<}0M)@5+W-In literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Africa/Accra b/lib/pytz/zoneinfo/Africa/Accra new file mode 100644 index 0000000000000000000000000000000000000000..6ff8fb6b235d413a87fda2af8e7ea9c4bbcf78d9 GIT binary patch literal 840 zcmcK2J4jn$7>DuK%c3A%R1jUflfWK@mRe8Ac%+v(wUGjmZav)#jPE-@ zVbE+1)XR27((QC~*!^leax4_35Le(u;2QLz~@Qx-xtB-(`QO&>ftW$l=!! zcN7cS?3Q0p_i(d5R`3SvXz`rlg=nrQY z5*gF0gCe7Pby#FvWME`uWN2h;WN>73WO!tJBmfe@t09mWUJZgo@oE?(j#mRAk&sYG zEF>5b4GD+DLjocZk&sACuLeb;dNnK(*QA literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Africa/Addis_Ababa b/lib/pytz/zoneinfo/Africa/Addis_Ababa new file mode 100644 index 0000000000000000000000000000000000000000..750d3dc14cabc52517d6be5d76da4080f213f4fc GIT binary patch literal 283 zcmWHE%1kq2zyPd35fBCe7+bgj$l3Vr)}JkhW?eWw(f!6-{fAc=7@3$E85opWKq|Ei z7+4q>lrb>?#y}vl5vt7$Nd+ex-4@c!DPSUx@;>^{0 zr+d9Bax-7+-i|b@`@yh!xxACt=_4IVo$CTGugk6;By!lJ%TrV0&P=+M3!bVZWIk3xQL#lLuJ!dVWt@pw>l>^J&ZYM2?$EF= zqh^lxjlrlrwYfq~foB*iDdz~bW@!VvBl0^%}+kYL&m Tunq=>|3HA>R4$ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Africa/Banjul b/lib/pytz/zoneinfo/Africa/Banjul new file mode 100644 index 0000000000000000000000000000000000000000..6fd1af32daec193239ab6b472526fd3d6bdb2f76 GIT binary patch literal 170 zcmWHE%1kq2zyM4@5fBCe7@MO3$eHwPk_Q9h|Nnn1KvF=!;^P~_;10wf5JG}!KfpQ| Q82$qRep9)C#v5<}0M)@5+W-In literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Africa/Bissau b/lib/pytz/zoneinfo/Africa/Bissau new file mode 100644 index 0000000000000000000000000000000000000000..0696667ce83faeb71e52b4da0531fc59650da77f GIT binary patch literal 208 zcmWHE%1kq2zyQoZ5fBCe7@Ma7$eHwPt_){-q5uOU)Bpb;Qy3V48kU9nqAKws$ haK{h^cOVS`AtV_81FGjg5P+-!aY?X>3uvnW7Xb2-Bv$|c literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Africa/Blantyre b/lib/pytz/zoneinfo/Africa/Blantyre new file mode 100644 index 0000000000000000000000000000000000000000..5b871dbaa7c2969f6b4dfc854184a29010bfb2cc GIT binary patch literal 171 zcmWHE%1kq2zyM4@5fBCe7@MO3$Z2vr`h|g!fkCbZBqgK3z~bW@!r<%}0^%}+kYL&m Tunq=>|3HA>R4$wYfq~foB*iDdz~bW@!VvBl0^%}+kYL&m Tunq=>|3HA>R4$ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Africa/Bujumbura b/lib/pytz/zoneinfo/Africa/Bujumbura new file mode 100644 index 0000000000000000000000000000000000000000..5b871dbaa7c2969f6b4dfc854184a29010bfb2cc GIT binary patch literal 171 zcmWHE%1kq2zyM4@5fBCe7@MO3$Z2vr`h|g!fkCbZBqgK3z~bW@!r<%}0^%}+kYL&m Tunq=>|3HA>R4$Gl#oH>O)9+(4cD*T%Sy-Uhc#Wb+-c;NQsd0E znq_Oo16^(DGFzoqW?3|K%eF$aIN8Wew>-3#WQHdMjhjU0ee79Vt_OY@_r?4(o}Bk5 zz4Vdg<>FsA%>4=9T(kS;=h4c2w6%O>+A>Z0;Ds}${i|+$=+JxN;S)3T*E_n*H(&PY zj+d7k{myFr?X#gd^1{xbyW*j+yRS4jHL5i{)fwtvPiO4uj~^Gmbu`f;g;RiW<<{KhsUd)cj>r}agNtxR-QbdP8 zWuqMlHR|M`&D-_48hx-#Uhzu5xboeH?U*NvRqVx0a%^3_7`HMm$5(cVtL_Qx)%oMq zge@(0LZ(LK%dIy5c$1pcm$29D7iw~+l=028#gsi;?X_x!D%f~bPHlKiOj}bgubW>W z3YSfnMMWufec}r_J?D8*96x7^PkyFKM3XIPuU0d=-j_FQZxp2mezZ5Pe@or8Wt^Gy zSe`Cx?laFg1-Es-8qV3>5+vH5 z4sUN+70iA6fv~#qzTl1xYs{VXjry)9>dm}Fot}U1T$3C-7%V6&FbmA1K}{^n)O-@t z3++#4(Mzqt-NzzfZNolYyY7Bd`(`Fct-95ucC6E>V|&AN;o2Z8a+$uev;O<*;_nqA zUgut)D47*;PjPaA7ajrd}KcqpVLyi`a9yyvsxl|qv=^bev>7Ju~q<>@s zkR9OI0%Q+3HUZfMWE+ru;MfSS+X-YVylyX$%|Ld8V>^)jKsE%~5oAk{JwY}F*%f44 zkbOZm#_M(l*&46g8)S2k-9feo*&k$skR3v{2-zcKlaO6Pwh7rMWTU)pr;x4ky1ha+ x3)wAXyO90zx()NX9YeOv>-Nm+HVxS|ahYZ*PDY%aUF9&=~-lkfngL|E%9 zjItytiU-Ssv6Mv1ZKPbE;1HQx^L_s)HIF>=TmS#-f6m&ToX`7&@+(S5dVif*dxwj& z$S$6H_;x!K_)^`_+S9)tu8UlM@W#J$d}Q>|n3LY4x5J{}5-TTvyY?;;w{)i;*RVX= z<#kuDYsrjgx5i0+{QeJ-?so%z!mtyOzL#pf0ex0RXHI$P&%81?l0Kxbm%gtlGOM}X z&nSEm$vk}7pFMhSbWXKuR@@cMNhSRZk`RYzNIr8mBp*Cu(kRx8`oIlW?z)gzt&w$w$o#2Q}~0SjoTCPV+xk z%e=&To!8Vy3Ur_p+)C4e@8wc>@v9X1F;aBwycRV!$^3)OQat~e6jz3&SgW*TON%a8 zKU5YLKGa2156I#PSGBa?crEK+qh;@(O8F08D{k!8C65>A(lZshtYMoh-!n^B)RxG~ z^5GiUl_skK=~7vmD63PGWX<%BvbIOOtQ#>z*F~eUp?j=uxP3=9zI~;e&R>+xw;HwT z$Zg$nYL#r=ctN*SJ`t~7Oq-wfZCQq zL2e;0&8|Nu^bf;o`Tb|Db{H5kGGu5@8yhk>WOPm&9x^_s4Um7w2%R=WWQ-gJiHs5% zCNfTBpvXu$3>6ux(*}!-)@j2<#)}LX88I?sWX#B*oi=Kx4I3G^(*}-=+-XBc#_qJi zJ8ksH@R9L5EdZxQfP~<*7?2>G76lT9)8aq^aatr!3k8YAX~7`TI4v9`9;XH5w1|+9 zkeCdQpqv&J5*8Ad(*ko^WJqX8Y)EiObVzted`N&!ix3GBi4h4Bi4qADi4zGFi4+MH zi4_SJi53YLi5CgjX%QnKJ1u4;Xe4SRY$R?Za3pg4??dlw?Wgc1kd!$pc}#LjQf6uj Iju_SXCqbI4^#A|> literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Africa/Ceuta b/lib/pytz/zoneinfo/Africa/Ceuta new file mode 100644 index 0000000000000000000000000000000000000000..6227e2bb09f72bd8702782f4866adfee844da46c GIT binary patch literal 2075 zcmdtieMnVz9LMoj}`}kMx z&`;k~hECXH?Gv|m1-s+@)4I<+vBN6sgJBofh2FUzVMUbXg(5q$gHer7?ZHyqkkleDaMnKb`9NguUGGE!?LqbDGf zM>gr?n`JVkyGEy;_R7aMiZ!#jRI}Qr>L)v=YxWN@I;|p3r`J!B8M$utmXDN~@%J>x z+atN|4$X_ZC3%nkl3D%F%B;>yGW*YiGN-jg@-Ls!g2o1!d-QOMdxBmv)8Avi;Fg()LJ}2mY4Q zrcPN=+9hRMAL?h>CuL>HWi5~0EvvFxwIb|iT|G*5_5JU4O^;vKUaHg2Z~CyMe@a(ShaVi%lg7h@mCC&FH=U#hMa$8W3(kTNkg?JbVq8Vo@?#z=cVrP zb=`ElSvGgJ>z3W;bZhG#-Bx!<1C0T7^>g(f(DyO7FF)>qgWk-ix3_zMdHXoVC~=t= zvhVxl6D!iPV#c_ld2U7K7x=72Ib20P%WH1D+?eBX@#7qq%lG=1KWKi{dHG-T{gKsc z&bEwG{~=>Q27!#i(F_9_2Qm<3B*;*Zu^@wSG^0U=<7mdizhyvcqGe%^P$S9FvBI85`ii{K)Dl%4Nu*hhU z;UeQj28@gt8M31pGcssLGiqem$heV#BO^zKj*J}{JTiJ@_{jK?03Z=SLV&~o34)`E z0ulyC69*&^NFgTx035E3CIL`aN~AR$pg!sKY;gaitS6cQ>VR!FdrXd&T3;)MhZi5L70_SKVhlCD^9TGewdPw+?_#pwb-pT@on>J2NA&#Dcw8ZqpWKTg#GA5;k F{||>~3L*di literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Africa/Conakry b/lib/pytz/zoneinfo/Africa/Conakry new file mode 100644 index 0000000000000000000000000000000000000000..6fd1af32daec193239ab6b472526fd3d6bdb2f76 GIT binary patch literal 170 zcmWHE%1kq2zyM4@5fBCe7@MO3$eHwPk_Q9h|Nnn1KvF=!;^P~_;10wf5JG}!KfpQ| Q82$qRep9)C#v5<}0M)@5+W-In literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Africa/Dakar b/lib/pytz/zoneinfo/Africa/Dakar new file mode 100644 index 0000000000000000000000000000000000000000..6fd1af32daec193239ab6b472526fd3d6bdb2f76 GIT binary patch literal 170 zcmWHE%1kq2zyM4@5fBCe7@MO3$eHwPk_Q9h|Nnn1KvF=!;^P~_;10wf5JG}!KfpQ| Q82$qRep9)C#v5<}0M)@5+W-In literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Africa/Dar_es_Salaam b/lib/pytz/zoneinfo/Africa/Dar_es_Salaam new file mode 100644 index 0000000000000000000000000000000000000000..750d3dc14cabc52517d6be5d76da4080f213f4fc GIT binary patch literal 283 zcmWHE%1kq2zyPd35fBCe7+bgj$l3Vr)}JkhW?eWw(f!6-{fAc=7@3$E85opWKq|Ei z7+4q>lrlrwYfq~foB*iDdz~bW@!VvBl0^%}+kYL&m Tunq=>|3HA>R4$ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Africa/El_Aaiun b/lib/pytz/zoneinfo/Africa/El_Aaiun new file mode 100644 index 0000000000000000000000000000000000000000..d4f5fba779e417d01bd78aa21a6b9fe7f2931f7c GIT binary patch literal 1459 zcmd7RU1-g59LMqhJY>xb7b23cr`#NS@O*>hY0VBh&Y7JvXOGwe!?Af7HvU}T0#Qm> z>s#_rq@@+LUAU5^mWLK;w33G_9Zy-JU)t6Y)f6p&0dy@#Bzw57^cQU!IO|>Y!ON;U@N>S}K4YeHA(DR47et5gCZ)no+ z!UGzwGL|az8SKq?1gS#aaOi0?$(+~i?nufyViajkh-6~);~C|TVGb|w(IrUaR0Du zKe0x4T&9lJbJh`KYAkjKfKce z9i4Kpw?|tpJkr)HyX4UR+j_Y1m3V1Ghy0UID)m`CFO~Y33O3HgAuP} znO!Tx+#>ENx5!_VG5GsmDLWLxPbzU*DI97+ib1MD%0cQu3UXRSNJ&ns2`LJx3MmVz z3n>h#%xR@Ltu~}Mr&WiP=d}8e0-aW&(@I2YM2d7;l};-YsncnNB9%I=RHRm?6^m5s zv~rzRFH*46Dn?3nTFpq&POI8!Wg~SXg&Q7~JFRr2cBFWxRqwR&k@}GZAS*zYfUE&o z1hNXJEdyBxvJhk?$WoBCAd5j(gDeMG53(R+MaYtnH6e>aR^_y1A?tG5!jP3AOGDO% iEDl*6vON61)|X*Z%w>~-;N0x_*|~vWUM}X$&G-dVC}Wub literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Africa/Freetown b/lib/pytz/zoneinfo/Africa/Freetown new file mode 100644 index 0000000000000000000000000000000000000000..6fd1af32daec193239ab6b472526fd3d6bdb2f76 GIT binary patch literal 170 zcmWHE%1kq2zyM4@5fBCe7@MO3$eHwPk_Q9h|Nnn1KvF=!;^P~_;10wf5JG}!KfpQ| Q82$qRep9)C#v5<}0M)@5+W-In literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Africa/Gaborone b/lib/pytz/zoneinfo/Africa/Gaborone new file mode 100644 index 0000000000000000000000000000000000000000..5b871dbaa7c2969f6b4dfc854184a29010bfb2cc GIT binary patch literal 171 zcmWHE%1kq2zyM4@5fBCe7@MO3$Z2vr`h|g!fkCbZBqgK3z~bW@!r<%}0^%}+kYL&m Tunq=>|3HA>R4$|3HA>R4$GwXU9&d$p(IMKUsi;r&zL$G6T2uKbLLI_*Q4pa!X@&{DUe;~-Mc60#IASZxm ckTXCu$SEKikz6gr8^RY*kR56}pS zs5DxQNOYrBjf#RoN5yg;&CF+alT9|?U$D5gG9-Sin0>=$_1MjQrfQGN<9i{F zvc}mOk&*3p6J09nn5vlg*t1SdC{xqz%cMVLQlg|?(QDj?U0G`q#=G`p`s&Hlos8@H zv$$&5*_4^RN7Yz9)lI9ns(H4cTV~ExYhhVt`wmo_cc^p84V8Pjk?pVhrbExk{N1|g zyr}5WYS9-F=a(xgL>GT7`Uf5R`*~laxEJa9g+NSCmN)`YwEKGne`xXc_0fl2VH2Kh z7oZK&2WfP)HXyqA}x`gNK>RM(iZ89G)6ijt&!eHbEG@c9_b%y XXMoHBnFTTrWG47ub8+pE28P{Fn%;rY literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Africa/Kampala b/lib/pytz/zoneinfo/Africa/Kampala new file mode 100644 index 0000000000000000000000000000000000000000..750d3dc14cabc52517d6be5d76da4080f213f4fc GIT binary patch literal 283 zcmWHE%1kq2zyPd35fBCe7+bgj$l3Vr)}JkhW?eWw(f!6-{fAc=7@3$E85opWKq|Ei z7+4q>lrkz6gr8^RY*kR56}pS zs5DxQNOYrBjf#RoN5yg;&CF+alT9|?U$D5gG9-Sin0>=$_1MjQrfQGN<9i{F zvc}mOk&*3p6J09nn5vlg*t1SdC{xqz%cMVLQlg|?(QDj?U0G`q#=G`p`s&Hlos8@H zv$$&5*_4^RN7Yz9)lI9ns(H4cTV~ExYhhVt`wmo_cc^p84V8Pjk?pVhrbExk{N1|g zyr}5WYS9-F=a(xgL>GT7`Uf5R`*~laxEJa9g+NSCmN)`YwEKGne`xXc_0fl2VH2Kh z7oZK&2WfP)HXyqA}x`gNK>RM(iZ89G)6ijt&!eHbEG@c9_b%y XXMoHBnFTTrWG47ub8+pE28P{Fn%;rY literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Africa/Kigali b/lib/pytz/zoneinfo/Africa/Kigali new file mode 100644 index 0000000000000000000000000000000000000000..5b871dbaa7c2969f6b4dfc854184a29010bfb2cc GIT binary patch literal 171 zcmWHE%1kq2zyM4@5fBCe7@MO3$Z2vr`h|g!fkCbZBqgK3z~bW@!r<%}0^%}+kYL&m Tunq=>|3HA>R4$wYfq~foB*iDdz~bW@!VvBl0^%}+kYL&m Tunq=>|3HA>R4$ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Africa/Lagos b/lib/pytz/zoneinfo/Africa/Lagos new file mode 100644 index 0000000000000000000000000000000000000000..b1c97cc5a77eb187cc8ea8a4031a45a9bf153b35 GIT binary patch literal 171 zcmWHE%1kq2zyM4@5fBCe7@MO3$XOWpIe>wYfq~foB*iDdz~bW@!VvBl0^%}+kYL&m Tunq=>|3HA>R4$ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Africa/Libreville b/lib/pytz/zoneinfo/Africa/Libreville new file mode 100644 index 0000000000000000000000000000000000000000..b1c97cc5a77eb187cc8ea8a4031a45a9bf153b35 GIT binary patch literal 171 zcmWHE%1kq2zyM4@5fBCe7@MO3$XOWpIe>wYfq~foB*iDdz~bW@!VvBl0^%}+kYL&m Tunq=>|3HA>R4$ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Africa/Lome b/lib/pytz/zoneinfo/Africa/Lome new file mode 100644 index 0000000000000000000000000000000000000000..6fd1af32daec193239ab6b472526fd3d6bdb2f76 GIT binary patch literal 170 zcmWHE%1kq2zyM4@5fBCe7@MO3$eHwPk_Q9h|Nnn1KvF=!;^P~_;10wf5JG}!KfpQ| Q82$qRep9)C#v5<}0M)@5+W-In literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Africa/Luanda b/lib/pytz/zoneinfo/Africa/Luanda new file mode 100644 index 0000000000000000000000000000000000000000..b1c97cc5a77eb187cc8ea8a4031a45a9bf153b35 GIT binary patch literal 171 zcmWHE%1kq2zyM4@5fBCe7@MO3$XOWpIe>wYfq~foB*iDdz~bW@!VvBl0^%}+kYL&m Tunq=>|3HA>R4$ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Africa/Lubumbashi b/lib/pytz/zoneinfo/Africa/Lubumbashi new file mode 100644 index 0000000000000000000000000000000000000000..5b871dbaa7c2969f6b4dfc854184a29010bfb2cc GIT binary patch literal 171 zcmWHE%1kq2zyM4@5fBCe7@MO3$Z2vr`h|g!fkCbZBqgK3z~bW@!r<%}0^%}+kYL&m Tunq=>|3HA>R4$|3HA>R4$wYfq~foB*iDdz~bW@!VvBl0^%}+kYL&m Tunq=>|3HA>R4$ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Africa/Maputo b/lib/pytz/zoneinfo/Africa/Maputo new file mode 100644 index 0000000000000000000000000000000000000000..5b871dbaa7c2969f6b4dfc854184a29010bfb2cc GIT binary patch literal 171 zcmWHE%1kq2zyM4@5fBCe7@MO3$Z2vr`h|g!fkCbZBqgK3z~bW@!r<%}0^%}+kYL&m Tunq=>|3HA>R4$GwXU9&d$p(IMKUsi;r&zL$G6T2uKbLLI_*Q4pa!X@&{DUe;~-Mc60#IASZxm ckTXCu$SEKiGwXU9&d$p(IMKUsi;r&zL$G6T2uKbLLI_*Q4pa!X@&{DUe;~-Mc60#IASZxm ckTXCu$SEKilr7i>=P8i;0~l=AcU}0Flz;VKsEgbf~cxxb3io6YLGClrwYfq~foB*iDdz~bW@!VvBl0^%}+kYL&m Tunq=>|3HA>R4$ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Africa/Nouakchott b/lib/pytz/zoneinfo/Africa/Nouakchott new file mode 100644 index 0000000000000000000000000000000000000000..6fd1af32daec193239ab6b472526fd3d6bdb2f76 GIT binary patch literal 170 zcmWHE%1kq2zyM4@5fBCe7@MO3$eHwPk_Q9h|Nnn1KvF=!;^P~_;10wf5JG}!KfpQ| Q82$qRep9)C#v5<}0M)@5+W-In literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Africa/Ouagadougou b/lib/pytz/zoneinfo/Africa/Ouagadougou new file mode 100644 index 0000000000000000000000000000000000000000..6fd1af32daec193239ab6b472526fd3d6bdb2f76 GIT binary patch literal 170 zcmWHE%1kq2zyM4@5fBCe7@MO3$eHwPk_Q9h|Nnn1KvF=!;^P~_;10wf5JG}!KfpQ| Q82$qRep9)C#v5<}0M)@5+W-In literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Africa/Porto-Novo b/lib/pytz/zoneinfo/Africa/Porto-Novo new file mode 100644 index 0000000000000000000000000000000000000000..b1c97cc5a77eb187cc8ea8a4031a45a9bf153b35 GIT binary patch literal 171 zcmWHE%1kq2zyM4@5fBCe7@MO3$XOWpIe>wYfq~foB*iDdz~bW@!VvBl0^%}+kYL&m Tunq=>|3HA>R4$ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Africa/Sao_Tome b/lib/pytz/zoneinfo/Africa/Sao_Tome new file mode 100644 index 0000000000000000000000000000000000000000..6fd1af32daec193239ab6b472526fd3d6bdb2f76 GIT binary patch literal 170 zcmWHE%1kq2zyM4@5fBCe7@MO3$eHwPk_Q9h|Nnn1KvF=!;^P~_;10wf5JG}!KfpQ| Q82$qRep9)C#v5<}0M)@5+W-In literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Africa/Timbuktu b/lib/pytz/zoneinfo/Africa/Timbuktu new file mode 100644 index 0000000000000000000000000000000000000000..6fd1af32daec193239ab6b472526fd3d6bdb2f76 GIT binary patch literal 170 zcmWHE%1kq2zyM4@5fBCe7@MO3$eHwPk_Q9h|Nnn1KvF=!;^P~_;10wf5JG}!KfpQ| Q82$qRep9)C#v5<}0M)@5+W-In literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Africa/Tripoli b/lib/pytz/zoneinfo/Africa/Tripoli new file mode 100644 index 0000000000000000000000000000000000000000..b32e2202f572b8ca6ef3c5cf1d9e787a24f2c328 GIT binary patch literal 655 zcmcK1y)Oe{9Ki9Xt$}*US=39>YHJ`OImJk57onkU5{bt^(oWAP25I~WOa>97K}6ET zAO?%6iNq#Co+cUzi5v^D@O)2ACWBx5Jm0%Z+FU-5vyfZ0#jmL`PgqRUEUudiX4`)~ zkKdjiTX(TTSzf!c$`32LGB~Cx2POTKxo}&yCS<7gO@%)Cb?alF+jg@g+e=4o$JxCM z7uVg+y^!wOu2RCIYm_hc_sEEUl4q~A>>MrH5#iEC$GL$pZ5t=`+di5p70f-VbQ#&2uFP8rJF2K$F*pjo^ixvdY;V@X|sOD`GdfF z^+%s(kf3N#L?|j=jSNM{s}Z6o@i$0Ow7eQIiW)_ZqDK*=C{iRTniNrrDn*u}OA)3h cQ=}={6mg0=MV_M1a02vyP9bQHWWWx70c9krqyPW_ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Africa/Tunis b/lib/pytz/zoneinfo/Africa/Tunis new file mode 100644 index 0000000000000000000000000000000000000000..4bd3885a96f61bbf9c0db6b42956b02d6e2bccc4 GIT binary patch literal 710 zcmchUyGjE=6o${{A{s~>5h6+oNsO`3BBD)5WlVy23%G?^r4S+AB6$Ey0~XN-u+U0T z@D)@rsEN1MB8!6QWD5%$(fJm%(8A6$ob&AtGcbI=xm;Qum0#7ScW5fAoA0i5J+_L4 z`Sa9UwuvZnnqNZRN?nTMMiExo|O9 zYdWFIq1Ab?;;3?;72QiYvGkBLFx>0JBLQbHeP$*632UMpbTa96nT)rp+047j`7f&Z zSX1R+p4F81L>WGh*W>elFa7spiF9o0$BHK@K9NYj(Jm5F68xI%%*>in(4EOHFid^i zFt|jSe`|^9W3HAr_lC%auBBY}D?}4S6-1Xytqh_Kq7I@DqR^$*=u)eM=!7VRXoaYS z=;awGhG>SUhUkVUhiHeWhv@~D{({HgI?d{9CnTk@%B(rnAgRSiRGPm) z+{rssdVYdr%+6AoOQuWa*G0+``b9j$Q&iS?n9jbn(5!v-S?62`Ho5&zbzaAq@t(e} z*Ht_;`AuhaLHaebzN}w1%7^-7A~Ru`^Hj?K}fzC=@28=%V*XPS!aS9<%jaZ?#}M^}CtHdRw!O4XAAQ~mL_ z)C@dVwL_O==ee7zuJ5SqYVB6_T|1>=YrFC{=E?5W<*Ko`M(>HpP3m~ad)`Z1L!dg`F(mEYQ57&@;)K8;*S~p* zsLA#}l^Nj@C=xMOf<+d`1=!QxLpcM&L_(Fg^1MDNEOOh!UFeexdnw}b`+R?Qsl-0v zxHSIj(I0m8ExFAQw;+B&9OG+v25}AI8^k$=cM$g={y`jscnERPq4g2sq(kc^#7&5w z5Jw@NLR@9|3UQXYA8d3;=Iwk>ZM~@ZF3*4e|L1VW+uzq$ z*ZORh>tDxXe&OW|nU{O=E9P@{u-HGj{I`zDMn~S9d`jIq+35s6@=4c`YA5Jmo(%5E zbwWBf>d?k2e^^zH4lm61yS;JR{n`${CwfkMj$d^muV2&)zMu9loW3EW^tgY~7t`{t zV^dD_TjTQX!BfsXd)}4zwvIS4oA=7tvVJG7pi$nJ*5Jga^y$T(A}1kut4>&zvMk{j zM=$v?TP03r>7`%As{22S(Mj*!P|LbYW%9tZN~uYc%iDez59BS7E6S(DgR!$Rb>%6M z8t~|}$Ptk?^Rr(0Q@>a>aZaaScw1$ReyTIade!Rw*R>d~SKgLSWLB3{*`-4=r#eOD zrtXw^*`ewow@>CLCX4(ld9q+WL_B;ZUOw{eWwA!(=tsxTh{uNF^xAih3E4iU3-_N^ zMU@xz<4qr`;?-a3lHx&C^6NEOn(=`sy>MQZMI97nV`H*>woN=a^0i+7&8w=S_k`Z? z`E#mr%dmD1m#eBZyYLt9><#lyAO3*W_MTHJ5ATrlcsb>2$u_eCwL1dp|)w zJ#$`c**`CznHUrGO*3-q=$oRU;-+pqa6)a%xTLqY46CN73Ef<}TQ$!f)h(&Ds^#21 z-Rdq-t;d^m+m$8i`NIS91%JNS(Y;;1s1ihbO^NI{G%q^yQsvI}8POHzk-I9j*cDiz zyYnxp?(f{XCw@ZpOkCA_=8meDM$hV(r}nAd{^PpuWRvQzKcx2_c|rvRhXjR&-R=pG zaNofv5UAVcas>j-jw>_}=xPXxu-}FDmuP#B;p>VI1O_^SmfHK`^%XwXhHCTHn%D8U zip;&J*yk!-XD;i^#hf5MoWCx<{~lSS`3GLk8|LMnJjY+=1k72h|472V19kPt_>ciw z%?Obpq8%d_2FWp_1cr%>6B#HnQe>#eSdqb6&1jL~TFrQo0V5+uhK!6E88k9#WZ1~K zk%1#4M~04!9T_|_dSv*>_>lluO$4ka1V{{!ARtjd!hpm92?P=eBos(2kYFIuK*E8< z!)gM8M8s-Bg2V&~3KA70EJ$3Cz#x%9LW9Hx2@Vn+Bs@rbkN_bOvYHSfF+zfbL46P=JNEDGUB5_0li9`|!B@#;{m`F5{a3b+U0*XY`YC?*{)M|o? zMAd4-io_KOED~8Hv`B1`;3CmQ!i&Tg2{002s|hg@W2*@=5@o9iGZJSc&`6|_P$RKM zf{jGmWvU$-92S1N$L)!@gOAJg@elOz|BClN_5S-7Y0B;uChh4J*_m0HBE7=v&Gcr9 G$UgyoReRu+M{XsK zHixs(agMDvX=l2Xu0^-3wTU@~TMuKAx;2xfYdy`PxSj8*trs<4a{l}OKL^GO-u%A4 z+NNi+od28%^BZ2y5%Y3S*=Ih(hjId=i+*kytuK(jkCv#Zvs=8uH&;uiuh{E)d5H|^ zO!CfXEz+U&g@KvXi8?GlA>hso*X~z01tOv+bj0A8*Ym?geb<%YK;&09WK>`#51hE6L`R-{uxnT?^v{=zwtXiSXa6Y^)?5&YvERs~ zlv5&UYEmbA4vXaRuXV~qi%1>%K&M@PMWy$j&>3g8tEGEi((<(`mD#9dR$G=@RsPhHy;|nR&lb7Ym&m-yU&KS7dgQ}nUx<}DQ9ttDIq~R`aJ}mIap7&A z(D?`6RRxt7bz#FXRkZYNU0k$F75{WqmZbNIlFR31S=3HZc4k1XxmhR5U;j|A{k&6E z>^`X zwF8mz$?@}|?!Ybi)X;#~*f1hD^>>TS72oUn?vv{2^hn3-qY8v$GZP%mJvq#(Hb0aC@`Hsisb{#32{VQZk&n?lKGgrRQJR;g+CuMu( zY0(~x(;c~&RLA&lx^s?JokL@K$L(IVv;Td)>&tevd+!^1&so3PyRl2Z*q5tZAv0W| zGw<|-g}bNm2?pCb9mjk(JE6f~SBop$exvMfX4!ijUnf2o?AhlM_MWh|!sis`^FG0+ z%ID;l*6=CvIUBf?n@fJVxtZhQ!}y&=dXWWN&5DsFBWp$$jjS43 zHnMJH;mFF7r6X%c7LTkRSw6CUqyR_-kP=u;4XmaJNEMJWAay_rfm8x11yT#77)Ujc zav=3U3W8L`YD$9C#A=FyR0SyuQWvB!NM(@HAhkh?gH#784^khbKuCp<5+OCRnj#@p zLdt~H2`Lm(DWp_Lt&n0N)k4aJ)C(yXQZcJ38B#N=DH>8Wt0@~&H>7Y#<&e@LwL^-B zR1Ya1Qa_}CNCmB?gh&morie%tt)`4f9g#vJl|)L3)DkHsQca|sNIj8)A{9kSiqzC< zii%X#YRZb#)oKchR2C^MQd^|BNOh6&BK1WIj8qsYF;ZizDKb)Jt0^;5XR9eRQfZ{r zNUf1#Bh^OAjnvyQ`3?=48Fr_~9T7f_kK=r7A~_8e|2O0R+&uI>kJ6`AEX&BskZBc} KnHiZG((@OSrEiM> literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Anguilla b/lib/pytz/zoneinfo/America/Anguilla new file mode 100644 index 0000000000000000000000000000000000000000..447efbe2c967cc5642b58f51aff86b67073134fb GIT binary patch literal 170 zcmWHE%1kq2zyM4@5fBCe7@MO3$eC>n9!4DOvr?i+4S!rgo> zo^p@HFB6g~eV$3(cIuVi30X}~sDtFP9Gqq4u>7YvTzR98ZptLRlvc+_pCl8;)#XQP zuJQ-e_1d8PDXG*^U%f<|UsX1?YqFmseREzQf9EE3#rJuseD_0F=_aG%+q!ysL~4q* zbnWZMruJl9)wNuhy1h*$Q}3mrqFXn2I{tZF?z zm9~X?{bb9U_OTNEbmN0`^!(DjGegp+T6K_{^We+c-JKw?_B4}|XYKw@P}tQS2G3r+ z)@=_ZkO65w1sx(U)P&z4yAP5x)D~SIVCm|p~ z5Lz1B#X<0OsFpU`S7VLsP!7@}fR(-zPh8@CL_w$mz!;BmR?pB~`i@n5SFodiH3@pIwQoa!=Bft9RA&D|vrDeM`^3ziJlJ zRxRjvrV>l&#nf?A>kg~hXx)5nIi>2It$zLOsBUabnMS#yzSM^N<;rgTwUjX5iv8;Q zos7RSoKW^!m%nEGkPf#E7Ix$(bX#k_(4PFH+drHwbZlR*I)WpGnD+F|ryLB2re`e*J8NS_ztc5IwtcEP- zl=YAWow6dbB(f&5D6%TDEV3@LFtReTG_p3bxKma~mUqhfNC8L%PALJY!6`)`RUl;` zbvUIEq!OeQr__QJ fr97lQq(G!Xq(r1frxb})iInO6-!vlz{>7kP+x`IDW zMBZ?5y5-_|(-pbhxsg%#FZAmNTc4Y$?HN6_bVf~YzG$Z>$4$O*PtV+Zp&q_`V;`N5 zn%VpoZHF@E@#v_YJ6KSKOC|ecTiwhb3+eggxGMG}ZLvC`o?XrAg}&Qn;r%tc*yq%u zd1uS9gjq@*x3%tws*Tm{=kO_2?`qZcw_~QUF=ZRYviedR)?dr}%(p_qexDgoKkoMH z<&lJP*Z1nxGzZV`(%gY8$Vg&*T+uI*^!Ce$b`s@ z$dt&OUYQh`)hp8?^CA-?Gb2+Yb0d=@vm?_Z^CJl$8F(cHBnPh~fnM6yKEMDj!u^-88ls$R)8_z!!HO2m7jKLJ6C_WS?< literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Argentina/ComodRivadavia b/lib/pytz/zoneinfo/America/Argentina/ComodRivadavia new file mode 100644 index 0000000000000000000000000000000000000000..7cbc9f4bddf7ba58314977a4a42f76e4426c5e48 GIT binary patch literal 1129 zcmd7QJ!n%=9ER~*o75NuD}suMRBS1U4u@)tD3wz(6vQrVpwh`f1VK<7tRQ|ZPC`I} zAha~vRp@c3mZsWcV~utwfi#HV5K!C{l^EhzkN@Y?Ne3N0;ojfn!d>z{>7kP+x`IDW zMBZ?5y5-_|(-pbhxsg%#FZAmNTc4Y$?HN6_bVf~YzG$Z>$4$O*PtV+Zp&q_`V;`N5 zn%VpoZHF@E@#v_YJ6KSKOC|ecTiwhb3+eggxGMG}ZLvC`o?XrAg}&Qn;r%tc*yq%u zd1uS9gjq@*x3%tws*Tm{=kO_2?`qZcw_~QUF=ZRYviedR)?dr}%(p_qexDgoKkoMH z<&lJP*Z1nxGzZV`(%gY8$Vg&*T+uI*^!Ce$b`s@ z$dt&OUYQh`)hp8?^CA-?Gb2+Yb0d=@vm?_Z^CJl$8F(cHBnPh~fnM6yKEMDj!u^-88ls$R)8_z!!HO2m7jKLJ6C_WS?< literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Argentina/Cordoba b/lib/pytz/zoneinfo/America/Argentina/Cordoba new file mode 100644 index 0000000000000000000000000000000000000000..cd97a24bdb7bf9661349f903818ee2323d107fae GIT binary patch literal 1129 zcmd7QKWLLd9Eb6@Hq{seD}suML~JRE%TbLHrE(=hRm{=`DxDNW5Cp}+3gW-TNeD;~ zgqFs3RXm4kX`?-jHQJ#B(jtOGKygzmv(B- ze6W>R!px_R+gevx)kf;}OUo%$?`+le_ammUK4lxFiuzg`)Qgqf=36mgzZd${k2}43 zX(*xG^<8?^*dY^cJDuO28#isOxqN%_vuXcyF5j_jt?DQr$;SexV`gtYUahDdxB8>W z`g5~qI&OLfSDT(Um!k(3N6o>)v1rqZ=70RPgqD9RvDu%UE0%-6KSR!yY!G&Cq1?2_ zxwloG3uWHO`*q9b!|61K3+)($;c}yAvqyQAz2}5A$g%sjDuvx-%DypZb))Sc1U_&$qz};D;Xjw gdL>6BNhC`oO(ahwQLki*q>AJk{D-|pB;uWspN(PoumAu6 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Argentina/Jujuy b/lib/pytz/zoneinfo/America/Argentina/Jujuy new file mode 100644 index 0000000000000000000000000000000000000000..7be3eeb6d0426ba1d1a2a6963a6234742ea0950a GIT binary patch literal 1145 zcmdVYPe_wt9Ki9{oVrE_Bd7=oA;nym2Wu^|;E^4KXqPz{cJ5J_z7 zd#TKg+;8;vn}5AOoJhFIFXSe zV?{>mmGL4Y_R5%%Q6u9 gD@h_*B55LdB8eiIBB>&|dL`N5KWR21N$-yQ0H&!1x&QzG literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Argentina/La_Rioja b/lib/pytz/zoneinfo/America/Argentina/La_Rioja new file mode 100644 index 0000000000000000000000000000000000000000..1296ed44d5f2a8f9d7f2cd0201187e5ec7baeb08 GIT binary patch literal 1143 zcmd7QJ!n%=9ER~*+i0wU6+uNrD)z%fheI_+6!nx01u;t-D0FfVK@b!ND~Ml>oP0!8Pmb4z5JFUhyT(IN0QIoIV(-Svds)w)M+DGS_ z&18O~wgYK1H9V{z?=Psr#gcupxn`!1HtFfbs48~HZLxY+J-d?8Gs#RRmAMeMyqAD z<7R(ry!O=Wos1ftpI5rF%JvMdG(E2`wKgnk{KsFYY3aAz(-=bMrcy!RT%i;+Iajnn z*ttrnVYPE_s@y9j-pKp4OV3A=sURU&cQ038D(L6w_mlejZinO>zgzv+$4<_fA+rLKS)Df=?H1bD?K4iAzdMDA$=i@q3?_bX^p>^-jL>y?vVD7{=Cv4 p(xF#cM0!M;^h%dVn@FEXqe!Pnt6u39Y1S*<2LEHY%~JEO=AWRI_~!rs literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Argentina/Mendoza b/lib/pytz/zoneinfo/America/Argentina/Mendoza new file mode 100644 index 0000000000000000000000000000000000000000..f9eb526c7bef450c9726e79ee8e34312648a0e3b GIT binary patch literal 1173 zcmdVYPe_wt9Ki9{+;oi&hR{DGgcNgKUd**1lxOTG9C zEH`XcpKQ);7vy#0O2)r?I;HMyd8VhgX4Lf3h(ELOteKgb)U);5YVPU_|NhIj=E143 z&d+XAW;mlCj*qKHdkTKxT**9ctLgcJ0X4rG@r&`8DOPUzPcLTGLh`y^_;ATACau4y z-5=FZZhE$$dK1aXhyzJEc2XvboOKC*Aq+WUgy-uj+bU(A!szm~OpSM=Gz?j%!2h zvDy>8J0H^3 ztP^8*l~ck(;&Mu0NMuN8NNh-ONOb7J;~??z^AaEu wArc}IBNC)jqC~=UN}NcbNTf)pNUTV(NVG_}NW4hEPKnt2Zz>K;1~kKK{Rt4x)pO-f{Q29Nd!MH$8OpNO$nZ z5s^1s96fUJyzzqEZd}QzyJu4R-j-)(YHLPMEu2u(o6g$l$qAEh+}1N!pR4;XUfTz! zqo$DGtnE<7JRBR-kM%s&}{O`kQgn*pRf1Qbm2Ljp)yn-R4U%Zoke9sBbq@ zdU-Ui+~r+*)x-f4X+NIZo}D!9E!kX0;)CgUe=66xZJp{YAIfzFORCH4&BYcgYR9#~ zwnY7j*;9xaonKPAy2kd6tTufw&$l(LX#U4D9Qx&K4zHA7&J|jNz`0^M2su}>LBzRg zxoNF)uNJvi%e;~I>wi2S>`w6J;5S-mnXGA}YQGBYwYGB+|gGCMLoGCz_4l7UxJKyvU(5=a(E8eYi*NyICe zAgLg^Ajx6BNhC`oO(ahwQLki*r0SJiga5GCs6@Oo`W=TO_JaTb literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Argentina/Salta b/lib/pytz/zoneinfo/America/Argentina/Salta new file mode 100644 index 0000000000000000000000000000000000000000..5778059f35314bde0c8ac450a9f211d6aa1d053f GIT binary patch literal 1101 zcmd7QJ!n%=9ER~*n`#V#m4b?hRBS1U%b^-0R^gNk1u;t+sC04=K@gMz{nZeVix`RKi zu)N`L^~m9Q>lL}(xsg>5M$-D>ju&QnS5{9~&Z(Jg7wyc{gqdyJ*K;>tszeU{zF%*cIBLQjXY+eLRem+wq`GMyjK=eu@qR$Zmz`DoyD)Evsks%5qJ)&VlkD0#Vji&GQ<@Tm^&Hwmo39bFsW3wFR7AAwhxk4!jIajnn*twNb(1CkKUCw_$4;)H(YqC7IAlCzKx9O(42g{C zl|hkFkztW>k%5tsk)e^Xk-?GCk>Qc?y%GQtfmcF6VnBlMN)$*KUWo$<1c?L*#VfHO z!64CiB^)FkuLOidgoK2|gam~|g+44EBrg750z)E0LPKIhg7ZprNO)d}4++pK5h5WX XF(N@CQ6gb_CC=c#t1}|W?u+~c)0yx= literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Argentina/San_Juan b/lib/pytz/zoneinfo/America/Argentina/San_Juan new file mode 100644 index 0000000000000000000000000000000000000000..8670279e40f637bba98616999b6a4f641fb57ffa GIT binary patch literal 1143 zcmd7QKWI}y0LSrHlV}Wrm4b?hRO}xUm!ldZih3bKLClf{3Y{E85Cp}+3gW-TNeD;~ zgqB3R3SNh3NuxPUYqVeqq(uaWfa0d8#E|-@=Y6kEI_T(y_dbsYZ^`eQ9yxhp!29C_ z?Hex6A$#$>@ru3Oxseg~FQnvyEzi}|wv3!wI3tRiF6v@oLQS_PW$ETi@$l7K{pfs1 zm8UmLJ(5w6$H(Q90~JxZRMRtCTWa>0U(PN^L^U4M)y6&X>}podC2y;_57+d3(ujHW zUf07>wU9Wjn+JoUnQQ4Ufm5P2&?#H*a;n{x(CunnEHy{v*ZN-dtrFGWOGDzv-IQD& ziwbjnk6bfxLm*ai5TbqifaR>&x98t9<|X3;0)ls~x@o8dIL}JYy;~&u>gsdqHCs zYaQ#1dDGy&SmTX-zhUM1Xfo|3>=jRO4W+$do_;^+zwdU~e&cp)|N7Y2b9QX9gzSiH ziR_7N>a@Ee+dA#O$i~Rd$kxc-$mYoI$o9zoNCQX*NDEHe1JZ=kc7e2k^x?FPAe}gE zD@ZR$Ge|d1+YZtX(vZ`3gtX+eJt0jYT_J5DeIbpZ>x>868h$Kf^|6{lzTl4PFPk+VuRsaA1 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Argentina/San_Luis b/lib/pytz/zoneinfo/America/Argentina/San_Luis new file mode 100644 index 0000000000000000000000000000000000000000..51eb1d84eaa44e785cd4a690fdfe05f32db6302a GIT binary patch literal 1171 zcmd7QPe@cj9Ki8s?z-#J!3g>*T~aJhgYC9KRI_;4lDw=7g{KY?1VPaugDC3KDG+Mu zr0kY-3!ErR)N*XIEh*VpCAtYkw}Qf!t<>rFow|9bWAm8z83x|v{l3}WlP5ZYRjW~M z*sT4sIX7RH*X`^5>fwcqezfJK8Qs>eN9WF{v5gn)*vOC>uieuVH{Ytq?>^Wk=VNAa ze3Q1l{bp)#P(R&URK-hW`>eTYrjLd6^h&!brINO^Fsxo&$?2KyTW03-RXf}5)U5er zD?1ZruJgEE+!s}g`KtXEKBcN1O}hFqZ))p1ZLL&M-xvGzkIHWIvzV|;6FqAAZbq*R zB$T@r*O8$v6Ky$N*q$3PEls&XYx1jUUA|Lj+Z@+zuZw0!daF%VpPN0C?M9E~O{!k$ zbYG)M-&iW7D;aa}%Q=1Me%y4uIjZZ{)c@lX4)HWZ8p4rqLpT)SA|Mm8n2Xt)Pod+ROFSCkeZO9yiyfXmRIUR3PUPGN<(TxibG!=2Pu!=OMOUz xNQFp=NR3`85~MVg(8(Ar6RQ=#d@V$uat|_ixiAh9Q^+o$E5LHv0o3235x&# literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Argentina/Tucuman b/lib/pytz/zoneinfo/America/Argentina/Tucuman new file mode 100644 index 0000000000000000000000000000000000000000..694093e7c4e6d499bc9716d821ac2ffbd90491da GIT binary patch literal 1157 zcmd7QKWI}y9Ki8co75NtD}suML~JRE%TbLHMZA)sDrQLol}-vG2!i5Z1@YhFBm^V~ zLQ7-oD0&Xn(nNbU)@X(DBrPIz2qr}xJS z*&8-%uic#2Ub3&@YguvsTv|TZ@LY{;%F40XQ(}DGc|ATlq6&?BvUvTKc=-CQesngh zCJO7N?#rsjgM)H%cS)2k`1;Alx|%v1kW-5>QSM6Ua`mowb~z`fQ#aN0hbwv}WyFkn zuPf2GnoS;Is!4sn1*(&SrhE!usQa8#K@wL`37b-i{w^CexFZPHZx6^WQ zATG?+?Q;3Z0TpUHnctEdRc)=ge0$=vYX5j9-?4d>=amDy^%!y zsoFUaQ?l?$$QLhVcmE32J%2H>Z(&&NFCK|BEo=VACm2|ITCh3T;(i%3Iq!MKlzcB> zOj&y&W9Iy(mBzfO@}Bd#vG=Q&&IeN&FKKsIn%$G}dO7{RGJhYQwBNYlHGX|;>^ePg z=N2+dWT41Uk-<9caFGE!?U0c{Bf~}pjtm_cJTiPF03-q=1SAF|2&at#3BzgQKmtJ` zaoSLjSe!N(BpM_fBp#;?2#E*@$!TLkf^yoZkg$-rkid}0kkHV@#=!>1-%E5zcu0Im yfJlT+8zK^;(*}t|>9k=YaUy{tks_fYu{v$ANVHBHE)p*iu=igU9JX0+3;zV%t^rg4 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Argentina/Ushuaia b/lib/pytz/zoneinfo/America/Argentina/Ushuaia new file mode 100644 index 0000000000000000000000000000000000000000..dc42621da6d177b442f3b636326fcf81594800ea GIT binary patch literal 1129 zcmd7QJ!n%=9ER~*n`n%J6+uNrDz=ow?(%Q0e3#f*@2JtRQ|Z;vfVh z2trGvT?J2vYHh1M8f&ye38X;;hk)XysKgMzdi+1fMRd^76K;Mt7eXNKlNmU6v@`hQ zMC1t+Ikizn37hO>5RV$4i8#`Vm#=j#58*Y?5b zsF|JKsO>=3JRBL(kMVsdsXGVQsRj`U;Fd^KyM~U$<>|a>dOTE-2Hwsf1hlhe8*2FKktu|b8>k6GBP1D zBQhm2r&lILX7$Rn$h^qJ$jr#p$lS=}$n41U$oxnGNCsX>0m;EDNg!DuX?P_MBoVJ< zf~11vf+XXWY>;%2e7uqnl95+ZLUKZqLb5{ALh?eN7&np`e=eyZxgp6R*&*q9B|juV luVjd%=#?CiB#|tUG?6@!M7@$JlB!p74gSMkqZ09s=npF&_Y?pC literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Aruba b/lib/pytz/zoneinfo/America/Aruba new file mode 100644 index 0000000000000000000000000000000000000000..05e77ab4b3c23ad045a53e8a3baa6141155c8dfe GIT binary patch literal 208 zcmWHE%1kq2zyQoZ5fBCe7@Ma7$eApsr~GZk8xICXrvLx<$1*Vd|9@Zy1Iz#a#}6=Y o`1pn}IQju`a0o~v5QLCm{11p0po#zggRBA3Bv{1-wAF+Q01JpOZvX%Q literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Asuncion b/lib/pytz/zoneinfo/America/Asuncion new file mode 100644 index 0000000000000000000000000000000000000000..79541fddcbdf6584058ae7a4dddc5c820e995366 GIT binary patch literal 2062 zcmdVaT};(=9LMn^nh!_{J^?D3WnqYi?~yaWPUVk$BI8LpsG#|fPhf-xB@}x?*R-{! zC@%HN(cE;?;;Ssvi{ghjnX6z!YqQPduGwN_%Zxex{oa4uy6B?I*6-~9f1Ukz&fWj> zj#gH0o)h@T8Sb8NarU^2?@3MWb}{+4=7(n8FeC2wYkXI|9ewnwCY<}jKD=vC#~N|yi_wW{k}{}Ewss_vNU<1$)w!gAgSNC+sR-3C{sSq zvr|8wqG=~;%p(U&WLnb+`)F*hPG8?+9xEH6k1tqhW`ra1M1I6PIk8sLhj*CtyC2HT zzW2;iTA&$SpV?WLMoH$GGiG)yL4)t#v{@y6Dz)QGD5py1tO(ldvFA0Mn`p!Lx+G`P z9h=kpljh#NX7f6~*16wauur$PX{4jaJkxeTo~>)P&mBA_^C~|wX4`Jbuj@0CouS*8U8YF}s%>yjIX?TeieDLm!bqSiDi-rs9Wnmj3u z4VtCJHL|SqmMIGsOH?kK@-ZUI6Hl7uzZdF?{(WZUcR{V_t}>OMChDq7@7UEJ+|ieg zZ?fn&up6g+BAZhB>?ZH1Y>69fw*1g2RlPr(>W)>i zwX@5-a(buMw4O7szFVQSds@u4s))w6w%NLZG~K@Bklm5)X??~H`&!aeX^1bk4gG_% z^LDP?)qP7Eucq4FdRbm?&oOT_pOiOSQp{Viee(A90W&0SXxy;>^5c15_6Gv~eVFHc zVFM#Q?|S!x`;deOPYR2ofqZwBR&bR?-Fy4@iT?W=zt{cRf8+1{^*7I*>itR0$O3rG z3XmlrYd{u(tO8jEvJPY+$V!lw-nM+$&cz}J-kse!L60#XH}3`iZ2 zLLikuN`ce@DF#vvq#Q^+kb)o;K}v$u#Mc!CsR~jSq%KHdkjfyXL282(2dNHH9;7}< zfshIzB|>WC>xzU_$=8($sS{Etq*6$!kXj+dLaK$73#k`UFr;Eg$&i{MMMJ9Q>&k}I v4JjN_Iiz$*?U3Rj)kDgM)GzS=&tJTYVwfmq7KJ1j3QCq_7G(#+e2M=PV#gNs literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Atikokan b/lib/pytz/zoneinfo/America/Atikokan new file mode 100644 index 0000000000000000000000000000000000000000..5708b55ac6bcb7580498bed9721a43fbd5a1773f GIT binary patch literal 345 zcmWHE%1kq2zyNGO5fBCeb|40^B^rRlyd4W0=I{DhaN z#K_FT`v3nb83u;`|95U+WcmMp^#TSCFq;QV3V=uk5g*?W24@!_4hG_IAPxv&a0RkK zfDuZD5Ox*^P$}41KfroGw*LQL^sXfZM1!0OqCrjt(IDr7XpoaZG|1Ut8t8NeD!ZKv I=owQk0JN5Mg#Z8m literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Atka b/lib/pytz/zoneinfo/America/Atka new file mode 100644 index 0000000000000000000000000000000000000000..4f1ec71373359e29dbd7c52486583af9e5a964d7 GIT binary patch literal 2365 zcmciCZA{fw0LSsm8d3;=Iwk>ZM~@ZF3*4e|L1VW+uzq$ z*ZORh>tDxXe&OW|nU{O=E9P@{u-HGj{I`zDMn~S9d`jIq+35s6@=4c`YA5Jmo(%5E zbwWBf>d?k2e^^zH4lm61yS;JR{n`${CwfkMj$d^muV2&)zMu9loW3EW^tgY~7t`{t zV^dD_TjTQX!BfsXd)}4zwvIS4oA=7tvVJG7pi$nJ*5Jga^y$T(A}1kut4>&zvMk{j zM=$v?TP03r>7`%As{22S(Mj*!P|LbYW%9tZN~uYc%iDez59BS7E6S(DgR!$Rb>%6M z8t~|}$Ptk?^Rr(0Q@>a>aZaaScw1$ReyTIade!Rw*R>d~SKgLSWLB3{*`-4=r#eOD zrtXw^*`ewow@>CLCX4(ld9q+WL_B;ZUOw{eWwA!(=tsxTh{uNF^xAih3E4iU3-_N^ zMU@xz<4qr`;?-a3lHx&C^6NEOn(=`sy>MQZMI97nV`H*>woN=a^0i+7&8w=S_k`Z? z`E#mr%dmD1m#eBZyYLt9><#lyAO3*W_MTHJ5ATrlcsb>2$u_eCwL1dp|)w zJ#$`c**`CznHUrGO*3-q=$oRU;-+pqa6)a%xTLqY46CN73Ef<}TQ$!f)h(&Ds^#21 z-Rdq-t;d^m+m$8i`NIS91%JNS(Y;;1s1ihbO^NI{G%q^yQsvI}8POHzk-I9j*cDiz zyYnxp?(f{XCw@ZpOkCA_=8meDM$hV(r}nAd{^PpuWRvQzKcx2_c|rvRhXjR&-R=pG zaNofv5UAVcas>j-jw>_}=xPXxu-}FDmuP#B;p>VI1O_^SmfHK`^%XwXhHCTHn%D8U zip;&J*yk!-XD;i^#hf5MoWCx<{~lSS`3GLk8|LMnJjY+=1k72h|472V19kPt_>ciw z%?Obpq8%d_2FWp_1cr%>6B#HnQe>#eSdqb6&1jL~TFrQo0V5+uhK!6E88k9#WZ1~K zk%1#4M~04!9T_|_dSv*>_>lluO$4ka1V{{!ARtjd!hpm92?P=eBos(2kYFIuK*E8< z!)gM8M8s-Bg2V&~3KA70EJ$3Cz#x%9LW9Hx2@Vn+Bs@rbkN_bOvYHSfF+zfbL46P=JNEDGUB5_0li9`|!B@#;{m`F5{a3b+U0*XY`YC?*{)M|o? zMAd4-io_KOED~8Hv`B1`;3CmQ!i&Tg2{002s|hg@W2*@=5@o9iGZJSc&`6|_P$RKM zf{jGmWvU$-92S1N$L)!@gOAJg@elOz|BClN_5S-7Y0B;uChh4J*_m0HBE7=v&Gcr9 G$UgyoReRDs|A3_sqn-)RpYa(Jz^)@r<^d-?E64IzHlr36?XfA5eq85QIS_wrF z3AQ<_h!$}+!59PvmbNmY2u#PRX;m#UN-tw^I?rj@DuT{%?{65m!!Z9RJ~hyniT*e% z{U=x-y`f)=rt`lk05r`}5M$@zu7xnv~Y2I&FPiHf_;@w%r<*%^z#*mcfikk3ZC{ zeG{_HjOg}*cSVOT>5lqtlQ|(aTYXk?`B-zw6KR)5ZJ+Kp9gELwzHn7`&6joe^|aYD zyk@=AXf<6Nzg`m#?Nh0X8K+*{MJdi|?OpsKNT##gt xY>;%2e2|2YjF6OqJ|`rppw9|P3&{&f49N^h4ap5j4#^Hl5C2nsDPLkX^$P+YVZ8tV literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Bahia_Banderas b/lib/pytz/zoneinfo/America/Bahia_Banderas new file mode 100644 index 0000000000000000000000000000000000000000..21e2b719f33d6195a65cbce81764adc92167b989 GIT binary patch literal 1588 zcmdUuTSyd90EW++VwvDzB~b)XffQzHYIZYiO*7ptx|&(7YuVa%(J@V|yc|e`AaV?X zNQ5A|QKUhcW)HpOOITz?B?LYQMFpJ#Ns5@xH}w)hP;dQ*Gv6?<`}BR@(qJG-{I+oY zh0A>U@;+1Q$Hm?^X7{J6(cVC@|Bidu-xrzc@B7xK9=@&dzv#H7gfL}dWvh`?8zYzI z1dQZ@37HbR-bhUvk;}pt8ELaWi?r8~#`3Q(#ftH0Yh~{fv8pG+T0PJu(%au#YdTv* zM)e~rv$a#M-PB{bE1G21lGE0@tTLG$RcGZa$dow~9Y${Ge3|>A*4Qu>CiD7=jQpW# z%5!$1*m!+hZEBb*HlKX1wv@-pf&=}kFmsCZ=69;1x$k6gT$9==hGfZ%b7skCx7;?~ zXqMjZklUa6%pF&6h@H1HOy3Dhl%1Jp`h$l=d2_njmFpF|eREaC!c?&*Jwyef3uNV- zF;)2~S?>KdsDi^Wa^I^fYX8j%d0_B?d9Y(dR$aPmR@dBB#E{=Rytd8Dwi(`+YRO5v**>vNhYCfJRTTVSy!WH72 zNv_a8oUo98JGR~B6+%BP5o+7l&Wp*m-7ZBW?=Hi(`+Ho|e|*pPc!j6XE8O~S*4LAz z-}U`<-oG$v;^$9oJdH}@eu17 z=0ogf6ac9JQUas~ND+`KAZ0-6fE40TR{|*oQVXOQNHvUdAoVZ`f>gvP2~rcIC`eU| zvLJOq3UjC{gOmoT4N@GWI!Jkt`XB{DDuk2>sgY46q)JAakUANKI@FaiN_D7fWfTjk nmQgOGUP!@^isAoPa)b^&RRO& literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Barbados b/lib/pytz/zoneinfo/America/Barbados new file mode 100644 index 0000000000000000000000000000000000000000..6339936014862e144f8beb04b55b617f9834c3dc GIT binary patch literal 344 zcmWHE%1kq2zyK^j5fBCeZXgD+1sZ_F%1V`|J6e;U@-cjRz&EAm0{?V|2LdH|7X-^5 zJrD{BxF8(=KS9L6E`WiNnF$L2|34wkzyKy${{O#vfsy0?|KkT3czk?A7@UCE(FKTu zLx6@uKnMv=`T^DR9|%BB1JNMofrLR$1k*rgf@qLaK{Uv@AR6Rk5DjuRhz2T84S+DY} z_4dB!WMonPT=&xB_dTOh%5&ZGxvuVde&1lJv^uJOtX6r$&GO~uxqCyl-J>up_f99} z&q-T(9y2F#sB06)ruLYbdjEY?uPo|Dv(Ll_vA%2UnisR$%!OIvLb2mpYnQAy6AlYH_ZC{ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Belize b/lib/pytz/zoneinfo/America/Belize new file mode 100644 index 0000000000000000000000000000000000000000..eada52e70c77fa2f8c68d7f713fe5708c878751f GIT binary patch literal 976 zcmciAO-NKx9ES0GXN2)1qawsjh^xv)gbNb_U1Z>*;7U^*g6z~nY7<5fLV+!$wuXy7 zHe;pUY?>TRWX3Yn90vPd#gP^rY2m795z?yD|2fpEl^f4+?r#{F&3)eV$@4wU!GEVh ze&KRjsI#|rn8)Q2oxA+gJc+OCi4&hp{>C{y*-|i5y#w}X-CZ*s_1Nk4t7c|@ zr=9t7M-{d;*~0u4Rs6BV&Sp-jXDfU4^Zs@LB@j& Y2pJK17?M}Ugbd2NnWL(fm9lO^lb5vvQOR7%ir*`%!_T@}S{H76T-Hu}QFqU!XXnK0aYDa!Z;GbglJ5f( zDp;D8LHSm+;+}35dsN#Wk{^YFN?xDJk)201dN!|9Q?44@-#_L z3QJT&L*a>Ph$u`HDhd~cjKW5tqwrA(DU4AKC51DpA*HZVX!(73DZ~_J3N?kBLQY|) R&{O!M{@)SA&1p=>zW}cm40r$l literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Bogota b/lib/pytz/zoneinfo/America/Bogota new file mode 100644 index 0000000000000000000000000000000000000000..7a5a445ace508e1aee9a626c21ece56a69717bf3 GIT binary patch literal 257 zcmWHE%1kq2zyK^j5fBCe7+bIb$e9rlTA;;T9H6}~)`5|kiTVHkT@x4>z$DB6|Hlt7 za{T|la{~jfk8cQr6A(N52ZM+ZkU?M&LfAr9phA$PfiV$^`&r96Qkf literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Boise b/lib/pytz/zoneinfo/America/Boise new file mode 100644 index 0000000000000000000000000000000000000000..ada6d64b1afc93b62445fb8697075fd6be6ed3b6 GIT binary patch literal 2403 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 A=l}o! literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Cancun b/lib/pytz/zoneinfo/America/Cancun new file mode 100644 index 0000000000000000000000000000000000000000..7e69f73de44698b65b61038ea40972f1e7c7affa GIT binary patch literal 816 zcmchUPe>F|9LIm-j+k3uV0qD_u!M(bZEGv@-|jYS?zZkaCr=ZYiy-XKspEr|PX4(H zUL*(v#X2o5U6v4p&|?%)U4rQNE~04ke4jz^&>_6^9o~Fq2Ilhl_|tQjC_!UjEs4G*g`g-O0b1LpnCoTL1w#@1BeDW a07Qcv0g?te1Vn=z!$7iYxPVSG;Q{~-zCmXI literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Catamarca b/lib/pytz/zoneinfo/America/Catamarca new file mode 100644 index 0000000000000000000000000000000000000000..7cbc9f4bddf7ba58314977a4a42f76e4426c5e48 GIT binary patch literal 1129 zcmd7QJ!n%=9ER~*o75NuD}suMRBS1U4u@)tD3wz(6vQrVpwh`f1VK<7tRQ|ZPC`I} zAha~vRp@c3mZsWcV~utwfi#HV5K!C{l^EhzkN@Y?Ne3N0;ojfn!d>z{>7kP+x`IDW zMBZ?5y5-_|(-pbhxsg%#FZAmNTc4Y$?HN6_bVf~YzG$Z>$4$O*PtV+Zp&q_`V;`N5 zn%VpoZHF@E@#v_YJ6KSKOC|ecTiwhb3+eggxGMG}ZLvC`o?XrAg}&Qn;r%tc*yq%u zd1uS9gjq@*x3%tws*Tm{=kO_2?`qZcw_~QUF=ZRYviedR)?dr}%(p_qexDgoKkoMH z<&lJP*Z1nxGzZV`(%gY8$Vg&*T+uI*^!Ce$b`s@ z$dt&OUYQh`)hp8?^CA-?Gb2+Yb0d=@vm?_Z^CJl$8F(cHBnPh~fnM6yKEMDj!u^-88ls$R)8_z!!HO2m7jKLJ6C_WS?< literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Cayenne b/lib/pytz/zoneinfo/America/Cayenne new file mode 100644 index 0000000000000000000000000000000000000000..bffe9b02ec9e7959e48036e371252c7c114f64c0 GIT binary patch literal 200 zcmWHE%1kq2zyQoZ5fBCe7@MO3$eH*>d&2L-rUw`png0Jj_kn@o|Nr9$7+C)Qzj}dz m#m6^bL<`Wg|NlW&fM_DE;R4!d%mn}jdNF?h literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Cayman b/lib/pytz/zoneinfo/America/Cayman new file mode 100644 index 0000000000000000000000000000000000000000..5c1c06372c6dc8610ffd14f74e923bdcb9b21d31 GIT binary patch literal 203 zcmWHE%1kq2zyQoZ5fBCeCLji}c^ZI3_m{*Mj7;@ zhGvVQk_wrKh~{WcDN2$`xS>(#ZeX~vnF$&Y>LFfYH$oy#!8hx0#iLzBjZ z$lu1(zQe=(Y9C(vX!|X5jlW*@)it$zegnPY{iAB-z7$#Y;_oIa;-FqVy40*0P%0mL zFIH>4LT^kQta9e` z)L%w+Rhx#l(VP8Rsx9HQb?#j*mDl2|&Z{U_TWi;nt-A}=*QYCFTXvbrFWMv97Z#X; zp(V0oeYh&jcujW3W|*QelVw-nII}zERsBuFr_7!X6ZM|zv1+eZAHDZTq}ungOCM}= zMI9Vj*A!2`EQfmhVh#^HEG4b?n;$~A$PvjlrQS=WwEQjeqid5sS}@HVD_g9OfAXd( z%TLoky)spmXAaXRlH%0K^lti8R3~*hp_M)}DBM&;hRfN`zUG{tul(FpOr`y=RbD-5 zeyKPqzm^o4s@+9$e)|b^A-i0gWjocyg@yXk+|}xGa+ba_VuAWCcD}yaJxTo@I9^vj z@{+mMFj`-)lW4A2C(4a;QRe26DEVVgd*jM&FYdKoMwWPq$ASx{#*7P6b4qbJbv_Z6P|rjciZ}gd17Ii?*4%?J(3G_&y3gAld&sxuQAE0 zcVLE&=-p36T;3v)9VVH`;-wPh6>Fk$W=nKcuzC8!#rm0&J}PETn(nhXNW~5xru)9v zSoI6w&!M=yg;9Vj^T$|0%tdlaVY>643Q6$gi z&oT*P*2sv=;pVxRLOpUpni|z1OOH+*rp9>9*JC5Qsj*e#b)sJ@mAF4zCwY3Pq;>v! zLd7Zd{CiO{@jJJfl-gbkf&y-FfRhYPsE?EtfjHmio>+jhyfI-g^I;m^kUx+dc#0B*H$u2HB@?oZW49 zJpLl?-}hpb{j9SWt8e|1{p)UbLQU6lWKSZy64{r?&P4VmvOAIeiR@5hk0QGi*{6|SL5B0Ct_!^kd1_A#=Pk-h9_cQdk|9qo=r z_B67qk$sKqY-DdEyBpcx$PP#LII_!;eU9vOWUo8g-Hz;cN4w*ZJ&){qN4xKlosaB& zWcMTcA87#60i*?vwg*TPkS-u?K>C0*0_gwIHYq(>yX|d&12{u(msa%Aq`~cAkspH z9wJR-=pxcahCVvlMk1X=T8Z=$X(rN5q@4`?L>kJ_QKY2|Jw=+z&{ap@3|&Ur%+O~?+h~SPBduoWHPURP+eo{Sej^P> zI*zm)={eGLr0b5h?F@Z)w2f!zyrXSBL+_F1Bi%>ZkMtk80gyWYxdo7W0J#Z}yTH-j z2FQKjXm13DJHgT33JmuGax*a84an`la6ce71j8MH+!Dw=f!q|xU4h&d$bI2xZw%zl zaJ07ua&I`=n*+H!klTad{y=UJhC2kgMHuc84gWNN6N7u>!2hBeoH1+Jg)5+dF{xKZ`LIQ&PV}gSNf&+r; F{Ry|ZcJBZH literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Chihuahua b/lib/pytz/zoneinfo/America/Chihuahua new file mode 100644 index 0000000000000000000000000000000000000000..e3adbdbfb25b557db2a2edfc721c365d90706233 GIT binary patch literal 1522 zcmdUuYiN#P9EbnoHEXTh773A1qP3Hq%y9>sv3IlW9ka2$W8N8?ZN}Oh@1hkA_mn8d z5@E?wJ2;h3LLt+NNiE5i6isq!J?`t}gYrrF;&*pH*V9wax9jp0R`{ajj|JK>(p2)nmU^D;bDOqs%omqHdk1VQwWRmus(8<|tCZ%kb zPK`KX7N?fzv{744`t&57{-s4_xTfihXLV}n>k)ccSH8-8I91%o<5kubmt;4LSIe8< zNKR?2$*sI6c}e4pC-bu8Px)$Agf+`bd0`61UepDBx6P_g2Xx_`Gp4AgQm?*rORZ_o z(#88vtCFLU+FPMj>29~I%~-3}6-P+f%v800!D#V?dQJJHk5WFEY&Hz_NJaN_v+-r8 zY`PX`D(^nkRV@Q%^M!U@UHib)G#%5mh5c%auTj?}-d9`GiuAS#t*SnvLF&I9R1KpF zrJ=W4HNKxG+i&Ek9gio=&T~~}*Hw|-d$Y}+L$5>vhH-}5;|ln<$8kG3D9z9sqBcWsh~f;*A*wTUhbYg`9-_XVR)0tWkPILxKyrX2 z0m%ZA1|$ziB8*HRsW5VZB*VxCl8&D?A4o!sj36m7a)KlU$qJGdBrix}kjx;dL2`p6 z2gweSo}V^9NP>Ra3?V5pa)czw$P$t!BTx7rBpPh{jkn!~xnshk!Xv}nQIX-X;gP{V E0A>k%D*ylh literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Coral_Harbour b/lib/pytz/zoneinfo/America/Coral_Harbour new file mode 100644 index 0000000000000000000000000000000000000000..5708b55ac6bcb7580498bed9721a43fbd5a1773f GIT binary patch literal 345 zcmWHE%1kq2zyNGO5fBCeb|40^B^rRlyd4W0=I{DhaN z#K_FT`v3nb83u;`|95U+WcmMp^#TSCFq;QV3V=uk5g*?W24@!_4hG_IAPxv&a0RkK zfDuZD5Ox*^P$}41KfroGw*LQL^sXfZM1!0OqCrjt(IDr7XpoaZG|1Ut8t8NeD!ZKv I=owQk0JN5Mg#Z8m literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Cordoba b/lib/pytz/zoneinfo/America/Cordoba new file mode 100644 index 0000000000000000000000000000000000000000..cd97a24bdb7bf9661349f903818ee2323d107fae GIT binary patch literal 1129 zcmd7QKWLLd9Eb6@Hq{seD}suML~JRE%TbLHrE(=hRm{=`DxDNW5Cp}+3gW-TNeD;~ zgqFs3RXm4kX`?-jHQJ#B(jtOGKygzmv(B- ze6W>R!px_R+gevx)kf;}OUo%$?`+le_ammUK4lxFiuzg`)Qgqf=36mgzZd${k2}43 zX(*xG^<8?^*dY^cJDuO28#isOxqN%_vuXcyF5j_jt?DQr$;SexV`gtYUahDdxB8>W z`g5~qI&OLfSDT(Um!k(3N6o>)v1rqZ=70RPgqD9RvDu%UE0%-6KSR!yY!G&Cq1?2_ zxwloG3uWHO`*q9b!|61K3+)($;c}yAvqyQAz2}5A$g%sjDuvx-%DypZb))Sc1U_&$qz};D;Xjw gdL>6BNhC`oO(ahwQLki*q>AJk{D-|pB;uWspN(PoumAu6 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Costa_Rica b/lib/pytz/zoneinfo/America/Costa_Rica new file mode 100644 index 0000000000000000000000000000000000000000..c247133e334bee3b7802741383bddedb9cdf6cc3 GIT binary patch literal 341 zcmWHE%1kq2zyK^j5fBCeE+7W61sj0G;um7Rf@Yoxg4^=~gvGQIgr^4ts84^8ppm!j zf@b-l1kFP?FEBDQLE-=Z8;uzlz$DB6|2sD@a{m9ndI1Bkk8cP=uosYUb^+qx5TL;j z5JK2F+(4CJ=lp=``40q{?OMJd8st2XFvy8u8t67LHDf literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Creston b/lib/pytz/zoneinfo/America/Creston new file mode 100644 index 0000000000000000000000000000000000000000..798f627a81e25f9657c12909f4b0878f55eea9d2 GIT binary patch literal 233 zcmWHE%1kq2zyK^j5fBCeW*`Q!c^ZJk>}%cy^L|=0FfuXz|3B#n1H=FSb0;vc{QuwI zz`y}v`}l@1_y&hC1OPD%gb=m{W+l%LsHXow5NBJk2SkIc1<@d@Nwu2`=ooV@0J&g0 AN&o-= literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Cuiaba b/lib/pytz/zoneinfo/America/Cuiaba new file mode 100644 index 0000000000000000000000000000000000000000..e3aec8ccdfe76b9eab95158461855b3595a630d6 GIT binary patch literal 1987 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 FegO+5`(*$C literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Denver b/lib/pytz/zoneinfo/America/Denver new file mode 100644 index 0000000000000000000000000000000000000000..7fc669171f88e8e1fb0c1483bb83e746e5f1c779 GIT binary patch literal 2453 zcmdtjeN5F=9LMnkqQH%ZQ;8vb8FWLuL3o9$5k`URY6U)Y(?UE3#rVT< zR*YFDf|Ayni4SWwHq3b&mt~`eO%k}b^FAy8>5u+w>&t$;e%!&IpEvGR z-Zfd`A2->2!ozi$hxe(9ANJ?zJ^i7o`=tck^V$z;Z>?YNYndW?3oq&3_WkO^wg^2m z=l6!8>R53#-KR(Ab%;NrJ^EUhPh1;)Mvi^&5##48Hesdb*xmIy=m9w`H%Z)*G*8CPE>zRQ9WpLBQN{f_SI2)D zt`dgA^o&zKs+or`>sx!ys9C-l^0w`V)a(@jIcM!h;`Zz>FGv zB*zAkG<-@YUv`T-2lnZda}6rB>qVV*v`nQp)#;2^7O2d+7MZninwsxiBNvp7s_euE ze9|x>fuGjy37}>mM5fY_lmETdpuf~XP;K(-=s*-%&&xJFiNiU4~kX2Bl3~q z1ER8JNIp8yCaP+V$<*7-ulRIbVydb;yRY*i1vPNW)$SRR#BI`sJimcRXmWr$uS*+Ep7FjN`USz?@imhhJ$eNKwBdbQc zY+hJ5XBG~uoMY+8+L6U0t4EfPtlw%1fKBc$bvVj{)Q6)$NQJDXL`aRS zrbtMYILd_72`Lm(DWp_Lt&n0N)k4aJ)C(yXQZb}tNX@LKXh_vK%7)a9qi{&&I7)}q zj-z-;^^o!*^+O7XRM2Wlh}6((iilLvYRZVzk)x1EC6Q7hwM2@ER1+yDQct9yNJXut zq)1Jzrl?3&t){FVrON6L@X jUtDkg|1SRy^Iu`1`R|b8nxB@HmXYGh%uLHn%W(V&DI1f# literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Detroit b/lib/pytz/zoneinfo/America/Detroit new file mode 100644 index 0000000000000000000000000000000000000000..a123b331e72fc35cfc33d7386b48a3789706488c GIT binary patch literal 2216 zcmdtie@xVM9LMo5L|_LbloTpaLB>FS(=vDTtKMt`{2xIWL%`mewGuXVT2=W)C3?*6&g zGu#;6Q11QXk!auH@OauDUT1E%SI-AItM*sz^*(vZ$obqqxb5iv6`N<|TCtppSG-{^BC#z|{`(*m}qblp%FLJ}lvnu=W zXL93#!|JAX&)od@9+lJZgUQ`Epl|V?HZvAHt8dMC#pD%i)_D^jO1`f_=MTRu1wYT$ zGY5A_;ZRr=^+l!l=qy#zwNOg;WU8`A#FTIPQ&j|l=C-BZDSzHfGpl@1%}z=+mD9h` zl_S5IIpgo^xo6IqdEfTws)1kS_V>2yJ9d9AcRs&fSGOIJ`Q6*pUG;mVrfHq3Eoqm! z+8R|i)^7quYjt2~mkFlM*TJK$X2EE#UiiXJS@dPK3T(`qd#>(wm^}sVb4B z509v2S?LmP_*jL<$7H$xHMRW5$!10N8NK54C9`s(UpF2aGOLDn>DArG%zcBcdQHuY`qeSx3Rpiqui6)Mz=$qNHapVit(mU6* zp1q_WXwNba4h-qGh6y9PkLic}+H7jur#EMuGF$39^_Gc?(q7rC+J{d{M`nlW7(6JQ zmmAe1eLeE%g(|hRD*%BxWDi4zu3!V_ZfaQ7GpQac98ub z8*8Z^-75-67jU_J?c`*&(t;WRJ)ukzFF& zMD~en6xk`VRb;PDyIEwn$aazaA{$0_jBFX%GqP!9*T}Y!eIpx3cJ8!WNA~Wtn@4t! zY#-S_(g36bNDGi2AWcBJfV2VW1JVej6G$tNUN~(tkZvIDK>C3+1nCIU5~L?cQ;@D8 zZ9)2iGzRI6)3yfbjng&<>5kL32k8&eAf!V`i;x~6O+vbav88`R6X~bZHWcY7(o&?SNK=unB5lS0YhQgfzJ43s U!cawVd2wlBsI08Gthm(o7dPd97XSbN literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Dominica b/lib/pytz/zoneinfo/America/Dominica new file mode 100644 index 0000000000000000000000000000000000000000..447efbe2c967cc5642b58f51aff86b67073134fb GIT binary patch literal 170 zcmWHE%1kq2zyM4@5fBCe7@MO3$eCtlrxHU!BP|I6Kk2@lt49^Pju^YP-?iSu291NzOOVAZ|rW!>%DuJ*iiN$+i)DfZQWqI;c3 z)mx<(WnWaU>d*LC_D_8zK5Y-vzJA0`OpA*l>$x9VtYA{Rs`(s5= z^&CB;_^O(jGpU19$5cq%Ssf}5D~A}-j`2O}+Ved+?97M=Kir}tKI{>ZZ+A=idW*QO z{RMgbmRfOxr$)|NoiCya?w7N(62y%Ox5?-Qd1_9mL(UD1S95<|q+`AfRk6MhJ@3em zYX19|^-Vp;Rh)O8y!rV7wV=!|7uJ6!ZgGAiZ(Z@8SQK?s#wThKKXpzgI5vocu_HS1 zvRm9fyjLfkYE;Qx+jYvp61BLwPN%-QM5WcW%Jhx1RYv|gxuj%5IpZIYccg!*mIf!v z%$Pq!=EX3XHF-v4ANyI}`PGnEw%?)e8rm(E@AygI-MLNVG@Q`)w05d{i}vgLYPPD} z#johR+_ft2w^5m&+$8c(^~r+pDp7E-U9Py2BMRT>)hka|DpymRe(;0ks;JVVi#y`f zL(2+vi8oM{#wKfb*>}o)HBy&5kE!zSlVrvG3!-8)Lav?~6>Ij5%ZJDML}jZ_J~G@c zs%j3&wO#AQqpp*>x~)w;mV7`zUguFY;X8G0exa(p;?;HW$*S&nh4utTD$l#wy8ee> z)cTH9@`;lX;z@6od}?4^G?d54#vMNKwDT{yq2Z9&7ozY ze*Zh&0YQHMZY@IWdzk%{D_w5k$~8}^c~+UH*llJbM1cKp|BJaz*uUdH`TfienI1Af zWP(;RLu87`9Fa*PvqYwe%oCZY)yx!`Dl%8AnJh9}WV*gUcX6ne?k;!w+9+^JJ{E-B3WB^G4M-GrAaAW~V14kZ^L?D?!Qeic@K$3xE z14##x4OvUQe!o_L6XCf9V9(Sevkwq8A4KoO!AORY6m#SlNis*4ku-DU8A&up zrjb-zO|Fq-TTQl+bX!fnk%S`|M^cXD97#Hob^ITv-C>Hq)RaHTm64L3lA7d7OG`;h HNp<`UV`q_f literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Eirunepe b/lib/pytz/zoneinfo/America/Eirunepe new file mode 100644 index 0000000000000000000000000000000000000000..3359731e2d23ab794784e2e88d3beee04bfb2137 GIT binary patch literal 684 zcmcK1y-UMD7=ZD#wu2QFK?D)MI_sb!h|`Hn2gR#q5(lS(e}Et^t%D%AIEmuoY9}XY z9OSm5Q(Q}1E4Wz%@vF3!^L?V=AP5d#xcn}GKzLqvc`Y^W{8&+W!)C>0bMDH>Z9lt{ z$#tfjTyw>Ek6NFX_f%o(N*AgmK*oWL1pj#~F`3k4>;nw#9Dx7; literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/El_Salvador b/lib/pytz/zoneinfo/America/El_Salvador new file mode 100644 index 0000000000000000000000000000000000000000..9b8bc7a8778a0b8caea494cd5995318ca30d4fa8 GIT binary patch literal 250 zcmWHE%1kq2zyQoZ5fBCeHXsJEc^ZJk;;YLP6lUFdpcpedK&fiq17(}q00t&TApHM- zO#%bM|NlETFtYsrzj^@!hmUUvgR=_|2ZsQ4f#9KL%xx5K0lDV{5HB z9&}Q!q9On+5H{kw_6aVjP>^V!s)w&B&k z)DItfzy6!Vpkt)-?U@U$LH&KfHg&N)PhU#OQscfdIk9A`m~`dJ$xx=4igwDW;W%-5 zd`|w*_nVkLGbVrRJSP^8_3B0EhD7XOr@rRBUa`36O(~9biff-$a!GT8SX#4JE(>lK zaRmXne8YONA|*%0uPRa3Er^#1k=ZICl%*3dtWeJ3#S$+Mh=ap<)BX2nH zky=$6D_7TkE0VK+k~ePoP}~&vrF5ls3)kGVPKjv~DWjk3)T!NK%|M?{JKL((b|2C1 zle^Tq*2i`Fkxj}|eOP8RB&$qcqs%Iqud-dGGACnFt&jFfuXCR8P9(?;e@=+pGgoBZ z`A@~hx8n89AG|JZ>G(t6`r;vRTitj1_VymNsc1moQSqG0U#In*`Fqq|iw|mFa*^`Q zz9I{vJgQ*ifZTF%sk-~6le+NhTIFv!s_*G9R7E@Y>EbT8+PX2Qw>1e>;>^>5?I9Jo zlB7$szfz@_a%I`dpGDaxP8pm#D|VcillP6jBX+ir$@>SM7v&YFhHpkVxk62`H zVee&y{(!?@5^xlA^3A!|oZ^7liFqRaz61YaVYBut{AxJN(vY9vOr{o zRSt+tqWUW@SSY)+Uvs`4o$byj-BTMG*ux4b@$f}WLBkM*M zj;tJ6I7qDS_4004V}e1*8l}9gspGl|V{?)B-66QVpaWNIj5( zSWQKcl2}bmkfI<}LCS*E1t|~B8&WrMM`QlHARYQHC08* zYBhC53X4=0DJ@c4q_{|Rk@6z-MGA~m7%8#U)EFtU)l?ZNv(?lYDKt`Pq|`{Qkzym& e#{Yl0V@%e)ChKYbOm~JmJ_;Q zIs3DUzS&KzCNgHTkqmEKt*i;lM2yHv7)mNy0ura^{abfkbldu!JyLG>*}le|`cvgLd#buzf6m`vf7z6yzoul^ z(|LEB{%IvLki6Us3@?$vs3bGk882r}PnfeUmu2X1pZTq!Th29)>-p_%a-qIgho3oQ zFK+G7OZR~J zNnKsrWY-k6>+KJ|Y;)68*XBNI*Iw*0c?(~XysrHwKkgC9Z++9O8(J@SzT2t=$F|tQ zr+4f6PYZ0(y*st|jYYO(MY(RM5?h*-qrtLa8yugd;bGyEBHZ=g_(X<6uZ((LDD<8U ziwK44YrJUxJ=VX4+nZic81#yB-6?hFE_aH9UZH#E3H$pF{`-8a`>8*l5&v)auc6SU zl~pewb3!JC%nF&7ubUS#F=S@Q)R4I$lk;`6L#Bt!51Ak`Lu87`9Fa*PvqYwe%oCX? zGE-!#$Xt=h`nuU7)Ae=pMJ9~Q7@0CMXJpdItdVIW^F}6)%p93IGIwP1$n25nBlGul z2|zM{qyWhQ`bpr0EbzEA0C_+Xfn)+n1(FLS8AvvebRhXa65{JJf}{k=36c~fD@a<9 zyda4|GJ~WB$qkYmBs)lYko+JCLNes*QiS9PNfMGJBuz-3kVGMwLQ;j~3P~1{EhJq? zzINxNFqpM{-+HNxF}}@{sJZt2OIzZ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Fort_Wayne b/lib/pytz/zoneinfo/America/Fort_Wayne new file mode 100644 index 0000000000000000000000000000000000000000..4a92c06593d33d3969756f482e5d3d4b773984ef GIT binary patch literal 1675 zcmdVaT}+K}0LSs?kk@(LFc&RW7jAmD%q$zL)}m8hP9)@yXes=a&Q2uH1yVP-Da?{F zud{4KTr|uuW;Thu)jw}D*7heCne9CO-+%60xN+k-d!Em8&Q9xG{Ju}1pk!mR^T#p5 ze8S1G-kjV=y5`b!I@UdY4Q zNkG1>nd`pGnkC;CPIEtfo1#CP{~m6O)ZQ6SIgMfMtL;_k2|<~Wo+dK-&+5#$H7c{C zUT2M+ud*(e=>>f;YT>aunf+{@@K=}0oU73yca>i*YKRbvQxoKp%8z1cL z#d23$l&C4plDiK(Vu;VahDQ9p8GJi<9X4dx@PF{~yp}nR<9XLF`64{;LbEf{-jA`@ z30$2?o_Fu2Z)&zb;H0ISbE!F(n{!dX$uRdB<}(hTy+Yvcb1O1mwsRX8{44VdJg;zQ zxEYxrGC^d9$P|$|TFoSpSt8T4nt37`W$BdKmtexND5Yy1CoT*WPzk%HF+S3AekVkAh{sP zAlV@4Ao(B(AsHblSxrtzQdW}{l9tuvg(QY#hNOn%h9rk%hopz(ha`w(h@^<*h$Lw> zSt4m#O`b@iR+A}`Dv~RbERrpfE|M>jFp@EnGLkcrwAEydq-`~MBZ*s0=1A&D?nv@T o_DK3j{>UT1`A?q#qs^ls#XK5f{WIf};}c{3NlEcZ@rk2<0ei4L_+`3MZ%(?nwC88dqxY1*W7)YCfBszpFI_w?X-TJa`Oonr`=q>&AqwC zSlwVI_SvrvUb^IAYEj%q_T}wUQ6`%1oy5VUNR}F8Y9}Sq$!(djL*jKyJ8zZKB7Za^ z-+g{n810aS_^~K@FP-9UL6x4XjYk7E7%)H6ey`uocFwsupLb|& z)1%pee_T`DI~=Z;+~GN4ySr__@J?>uz)pSh=uh%x_s=>q?~jcmI$>;Ip^i1>OO*bm zQ)NV=i-z^8%)=5hr(ds*-z~9$UX4B9A=lU~I_-y7P25n8PXD;wT>EaDjeot`T-US4 zUf;Rc+|abhCe$RG#L^^tWB#PMY5o;EV{Ve%9COCbjJP5*FZ`uRV`n6JcvNQ{J0`O~ z9MW6%za?|pF4~mmcFNqUZ|%J1{pQxZBlflx&zsv5U$dzT8cgcsN17H}V$w$U=z?F; z%pHTBnttj&$>>|B!T$NOaNAPNd?i-08f$EJ>#veiQebmeeJy#Zv+SMOAIM$NVVj?H z(&V2Tvx_djZx(;?nJxJ7WwYdv)uo@bn!9&>s)cWaOi{}LUAAMB+*9#_-dkTO#S0(P z<;8ij{P(@KBx9v1In`xL<8n-Cf1O=1k!bGUw^hr&&zAD8T7BS1f>f+8RO$UwRxU}= zRc)uGGC5L1RYxUsd0bcL?UU8x5w?2vfT{lctgV^cYt|k(Zr6==ne{sk+SQFushv8 z{>@qQMEi96iHGgxiVbG-@VC&v7|JF8IesY|W-!QTkl`TXK?dY?BSMCR zjES#dP{^o|VIku}28N6b8JgFP4H+CVI%Igr_>ci2BSeOXj1d_mGD>8a$T*RKA|pkH zij39k28)aq87?wjWWdOXks%{vMh1}uVBnU_pkT4)|Kmvh80tp2Y3$F_X5)C9ANIZ~$AQ3@Ag2V&~3KA70EJ$3Cz#x(F zy3io8@w(t3(eb+QAn`#0ghU7l5fURLNJx~BFd=b50)<4%>q3RZ%IkuKM9b^Kg~SU9 z7!olgWJt`ApdnF1!iK~R2^pZye@c1^t>*7Nc_AmfJg+95F#-|f`~*B2_q6m zB#=lXkx(MB^txao(e%1-BJuRPfFcn^LW;x`2`Um*B&_(qifgQEZmw%@dU;MTJD8bX Mo|P5M3TDRs4J6`am;e9( literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Godthab b/lib/pytz/zoneinfo/America/Godthab new file mode 100644 index 0000000000000000000000000000000000000000..111d9a8178ca214aae66804548a990bb2691644b GIT binary patch literal 1877 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 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Guyana b/lib/pytz/zoneinfo/America/Guyana new file mode 100644 index 0000000000000000000000000000000000000000..036dbe06f50292190d2086e0b70eb63a06662109 GIT binary patch literal 270 zcmWHE%1kq2zyPd35fBCe7@M~N$eD4ovg4z<4iBR%yU0?81C@y_x-0nmi=Um z=O3?|%x`#j)tZOTE$5iGIdvbuzwE~v-#dp}I7Mai<$Ifti4Wgx?XGZ2oR!a~yB~#h zbc$2n_Z43o?p@t~tGoJWFYnrR@40Ia_H{nKHrM@R+iT9Jzf`;HUTJXFe>uqY&Q5bm z)-88G8=C7aU0C35=)A@Ge3EoGhWfl;4135e3u^7%)cGghrZbnlTN)qmZK-JGZ1rTi zTi=cLmS5W7Zd?4lOJyZI-dqc)L`+86E?Ymsy z-QP<1_8*bn0}D>d%DaEht&|s3Ro-F!t^18Slvbt>cPdfe#V*s;p4Zip(0qMF=c%JL zv*fWgQ$GXsEhUKSWcHHKqOtr{-XtnT6SqR%>}(K0ol4~` zA#aLc&k`AYafY~6PnWkHc|$ezWyofmrm5y@@^r}CBh~GNBlI0J`>Gb%eRRu=b}Dpm zm~Iud0MZ1a`*?#+W(V@gAJASZ2bjrJ=!{^Qy zccp!+@6P!^b&lPr?-}xwhW+6Btg zw9O**YOPFzEjZqQScC#tCp6>?hK0x_+oRL*FVBW9E@ku&QP z#q&ke<*e!`kzbG@UnmO^1zG*%?4_54r%}KS{scC@!7tqCKltze-tXTfJs!XRkP2w* z_wV(2g6!wp?0ZOJQmSXbK=Y)SXM}k~su?PeC&0d?-oU`s+wbw8{CE7a3h-c#-i%1{fJ(WQdV5Mg|!fWn`F9d zh8h`bWU#Gfw2|RP#v2)MWWL<0#25)Z2h2oez_BuGrq289nqg_j8n z5EmpcNMw-EAhAJ$gG2`j4-y|FKvokWBt%GzkRTyZLc)Z^2?-PuDI`=#tdL+K(L%z7 z#0v=+5;3a@84@!jXh_tMupx0n0*6En2^|tUBzQ>lknkb#vzh=R5ww~RA~8gQh(r+y zBN9g>kVqtvP$IEJf{8>E2`3UyB%nw{ttO;MOp%}>QANUv#1#oF5?Lg)NNkbdBGE;{ zi^SJz0*pl1YC?>}*lL1|L>UP)5@#gPNTiWaBe6z;jYJy>Hxh5F2{;mQs|h(0bE^qD z5_Kf(NZgUYBauf!kHj7cJ`#N-{7C$f0{}S!tmY6vjsdGV2#}+|Y7PVBI6w{r{&j4hH0CKn@4wct8#a@IWUkT135I1V*@!j@c*NO gGvr^6j$m_(^fEU|WKz$lm?$SQDLOhTI?4(D8&gR`p#T5? literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Havana b/lib/pytz/zoneinfo/America/Havana new file mode 100644 index 0000000000000000000000000000000000000000..1a58fcdc988ea6ec1bb660ceabe85ea19e5b0774 GIT binary patch literal 2437 zcmdtjZ%kEn9LMp)-yCXL{y`%Nlf+6;u^XxQwI zbvPPo9rB!}K@Dp->4n#JX~fn+H?s75iSkYHqTLg6)3h9ST*4t4H&XA#I1Li>Q>8op zVo)Z0yVslO<;u;+H+#3Vy)Bb=9dvKa|50x%Z}%prcI%WC2fV38&+D`~^6!^z1v6UYTUUE?j8LxI`c@T8^5DK?rcnO6AFDYt2*4hYgxX|UUkV$oV`%* zPC4bynfkIO#SVH&W34iGq(|==*eCb)9n{rtX>~&akbR{hCJ3#EE|(|$m11DrEKB`*_1s?HeJq?ilhjs_$ony(LYG=gK()F zJ}q1J$Lka4hO}zCqfZ_=snu%+b!%g*KIQAuZPokq>8bB&&FU>$Gj>9@r@tiI2M$Ty z^h&AgY>;QK<;jkgpwwSTk)6A9Wmm@}*&o%ulVG-f~_KXbw%NZ5<-<_dQ+Zo3( zch89og-&~6<3ge1N1X|O-uWcYA8>NawJghA1p%`j#|aCwIDvoO-CO3Hc6ZnQ_=)+q zP$<|iw*%QBvPEQ%$R@33m&i7)W}nDLt!AglR*}6Tn?-huY}ab`i)`3xc8qKp*)y_f zWY=i7%>(=9FdGMUj%*#-JFu$mqqO+dPUv;pY@(g>szNGp(D zAk9F!fwTkZ2htFvBS=fErYA^KkggzYLHdF;2I&ma8l*Q!bCB*J?Lqp3GzjUC)wBrd z5z-{2OGulLJ|T@lI)$_f=@rr}q+3Y4kbWTzLpo+PEkk-{HBCdhhO`ao8`3zWb4cru z-XYCHx@R@*L;7bm4MaL>891R6X~bbG!*Hm z)wC4pDbiG=t4Ldsz9Nl9I*YUx=`GS+q`OFak^WjugOLtfO^cBpTTPRZE+cJ5`iwLh z=`_-6q}NEZk!~aHM*3|v4M#d|H7!SaZZ%Cux{kCR={wSRr1MDYk={H1=itYfH-OK) Z3Fi41rlh4Tn7?42KQ%Qa)jXxf{0?B7_b&hd literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Hermosillo b/lib/pytz/zoneinfo/America/Hermosillo new file mode 100644 index 0000000000000000000000000000000000000000..ec435c23bc47f925bd70754b38bc8b1d2c4d3943 GIT binary patch literal 454 zcmWHE%1kq2zyNGO5fBCe0U!pkMH+y_(rqsa)_=--uq`btVY~CCgdIF)2|NC_eK`H9 zFyY3;Egu*d3K|U4TLg@X#Tty=(*#U{el(b>dkB~r-D+T9WCBBGMiwyq|9|=q28RFt z=T2Z?`Tu|Q0tSx%|N9#lctC7M0f@MdZwP~La0r7l5C;IUuS*Ef6$lVQg8PA%fx&+u z0Qmz%gZu)bLH+^JAU}ack{0yQ&{sz$? Pzk_I6`JW3IIObdcn4XX> literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Indiana/Indianapolis b/lib/pytz/zoneinfo/America/Indiana/Indianapolis new file mode 100644 index 0000000000000000000000000000000000000000..4a92c06593d33d3969756f482e5d3d4b773984ef GIT binary patch literal 1675 zcmdVaT}+K}0LSs?kk@(LFc&RW7jAmD%q$zL)}m8hP9)@yXes=a&Q2uH1yVP-Da?{F zud{4KTr|uuW;Thu)jw}D*7heCne9CO-+%60xN+k-d!Em8&Q9xG{Ju}1pk!mR^T#p5 ze8S1G-kjV=y5`b!I@UdY4Q zNkG1>nd`pGnkC;CPIEtfo1#CP{~m6O)ZQ6SIgMfMtL;_k2|<~Wo+dK-&+5#$H7c{C zUT2M+ud*(e=>>f;YT>aunf+{@@K=}0oU73yca>i*YKRbvQxoKp%8z1cL z#d23$l&C4plDiK(Vu;VahDQ9p8GJi<9X4dx@PF{~yp}nR<9XLF`64{;LbEf{-jA`@ z30$2?o_Fu2Z)&zb;H0ISbE!F(n{!dX$uRdB<}(hTy+Yvcb1O1mwsRX8{44VdJg;zQ zxEYxrGC^d9$P|$|TFoSpSt8T4nt37`W$BdKmtexND5Yy1CoT*WPzk%HF+S3AekVkAh{sP zAlV@4Ao(B(AsHblSxrtzQdW}{l9tuvg(QY#hNOn%h9rk%hopz(ha`w(h@^<*h$Lw> zSt4m#O`b@iR+A}`Dv~RbERrpfE|M>jFp@EnGLkcrwAEydq-`~MBZ*s0=1A&D?nv@T o_DK3j{>UT1`A?q#qs^ls#XK5f{WIf};}c{3NlEcZ@rk2<0ei4LQnGhSpSU3r(rDnlm&BQVB4LS;(VtK}zTJydN*KKlgpv@4U_qC|931-bH24 zPm{k~i2a0z+hrf#$7uUfzb{Ge{`7aXXLF?9yX%7b=5?PwJ9$u@EeSQ}^Uq7$#M9>c zw4>54jiw{IPCB~YGC%kZ>kB8=nv0z~^`-r9s?O#r{o|H3s;jSGmp;5`X5Z>v#V+jV%yK@)MJLPs9kW=8MdCQ)_e=I$-!GN!7) z+*4K{V;82IXivI~dpy?MJ0(_PCe2XeM-EGD;CK~#BSzoXeM?Pfy{Yg2{E~`0bWz9e zJ+3BJj+O^D?NyWVugl~WpP2{K&dEc$yUoMVhb7^WO(wzDs;7i4FHdg6bM^e=6qC!1q#~3v?BU3+JF{tKE zh}YiyHsu`-&;@Bts^ChTEQtHgEcilXq3?)U)X*b^owcUuwHA4%dA%uKx=$9@7nx`C zPU@1HD)rpd2EC-TP%Vwvte53vs%8Dlb!kGpDm|U6%R&NF*?}azqW7|TVTVUvJmWVj zD--3V#%{B!AVSpEQ)YGAfUH^dzF8aHD&@0lOu4ULSEe_p%FZ)-UCd^+uKAFz8d|Q_ z*KgMw+H=*$>I(fzQj%7D}XDFjjpq!dUk zkYXU!KvxdlP!G-)grg!zNjPeP6a}dYQWm5xPFonHGEQ3>j@lr_L8^n42dNKIAdU(l zCE}RQI(-x4Uf=*jPjv69GM5>6C5ve0mNTiZTDUn(t#YC#9hsqsHoGHl%u9dQ8}uLl$E2dNMSiDi7rw~)s;+^(yB^D18-sy+37_S?S&{llQ*Ges;cfCo<%qz`oT2hn zVc)>(0kN_N`} z+CAthr#7fP)z4L@l}d-mpa>P;WLTaO;Tg|lM9NhWv89iUj5#SIkL}P=x=Lgwm&vTm zQ6j7Tkj@@BQ)M@9);ZB5RnDmrJ-RhPjoH0Pj(w0JycNYV_iR5gZn{_I)r5-i>B(}! zie@n}uDkS2x+#2L+vVi6BVzLFZaP2yy2`)Srl$rEse=8DdRo(FHGTaVJ>yb|Dx6!Z zXV&E^;XN&9RTqod18d|QzgNtSE|>GNlf}H&0_pGHUHEUO%cAghQFJU`E^NLpife}J zk~?i`QCXZ`+|a0&ObTkb^^97Yru4EUwQ6~ zS9KJK)pZ->nuqD4qS7zdo{JZig*kHFPDga|m`_Nkh1Z{-u<&0W&#$-N-~H>G>o!C? zj_aO3?g@3>qxDW_``*PqV|Y3}UH8UiPwZH)&l#0z?uq7}V(vVjlV#qs%y(QK`vl+L zC%C};u$^GXkKZ!?f$J8A1nZGWBC|xMiOdt3C^A#4nJO|@WU|O?k?A7yMJ9~Q7@0CM zXRDbsGHa`uHZpHy;>gUAsUveoJ9%E1J(rn2Fn=TgBm*P`BnKo3Bnzua1Ifc`5HR z-M8sm!gJRb$#6rh`R=M4-AHMP8M%0^JFnk9|LLUre)t>n!y8|^(UT|4h3DUOWBbCu zZF^tFHy;l!Zg^EDI(G(_R`kh_jT?iXZf%pFD<2FlPffealWB8hB;kHNlQ6%Xn&UEu z=a^_$+?lO$6YCpuQyv>LS!)U{=Zyw=Ri8-SbEQH4%r_-}?+#PoUXp3y zi$UQR`(6B4cQF0P3$CuRN9yYqO8vwk(@?(JH4JTXiTG_{;;jyM$LQ?v&R3q5`Jd0T z$#w0r;NW$(ad}dj`m^oA+Df^rd)O{2o+YWpr)=uVgesy$nwro((zzvk^qS+Y zt8s1EmHAqFZtAx^XWx_FqF&p3bcd{+Y_^XNJS|V0skQ6Yr{&4RC3byFLN;tQc1lcN zS=k;Q|N6@L+fRS~CP$xga{t3Cie4`_CW?;ik7Y;Eoh-x^KjVt|cS!yF8Sd6U_GftVk8kOJ5JfFnnL*@CBj*}9+sOGw z&Ny<;y?WM>^NyT(1lbg1 zSCDN%_66A(WM`1A@#@|no8#5pLAJ-M`-5x{vO~xgA$x>u60%FkHW|M^|ATQV(9NpR W%_>XYP%*cnsw`PuT~S?8Rq#9Z#I;iZ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Indiana/Tell_City b/lib/pytz/zoneinfo/America/Indiana/Tell_City new file mode 100644 index 0000000000000000000000000000000000000000..0250bf90f8fc8716a77163e7c1b92663fc6d96f7 GIT binary patch literal 1735 zcmdtiOGs2v7{Ku}X%8hMq{4;hqJ>10X)jtR1Sz65K5|l1v!|Jrc`Ow*v$F_o*CI%Z zm<-H_=tW@G!opsQ2uUNNAVy6K%{-}rLCo#^4+T++Xxn$W_jkRFyYGLz`K5bSh(9L8 zeBow_&CPqHG7n$7Tb;lARkk+HQy0#@kxx$qRPW*`*}Ee|_f<`b7wbl~-&dgeOTBWS zAyEycu95Fb68%F50ZAa zzwTGM!lyr<>{b)UF3QRBHZ`@aNq)&_RDsS&?ObyFqB)>lP5u6)<<&AdDN80#-WDm# z%5+NK8Ic;6p;K=i5ou%bdc(P9wee-T^wig?^o}^0QCOfdPlwB_ghaKeYD#8DMl0{; zm(u&qrE*qx%ABDnkr(ws=RFc)OQ1vNw+)Dbw=KHx_(QR^t4quR2;nC zugi17ggp5`SF9cvhsrPN!wa8_%8Vvm85mR5YujY?+a6UD(I{)WZmQbpy|T`CN*#HX zChHrj)X`42Y$(cA$6Dse87^}L1zULi{hB$;T)%((*S{U-+GQae=gtjRu;W~56?5$S zT>G5QQ!H?tC-+?uzy4;U$1Bz+nLFFux#rIFie&SiY`!rr`~3Oh{re*BF~7BoIQ`>4 z9WzBifmUQOk>x}d6j@SaQITb}nuSG{7Fk?md65N1mKa%NWSNnLMwS{`Y-G8uX2Fpq zx0*#qmK|AmWa*K`N0uK60Eqwz0f_+#0*L}`7`zY%V*&vpK|(=dv6^5QqOqEA7~-*- zfEXe|LPBCffpv2kuse0*$t HY+UGfYubM# literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Indiana/Vevay b/lib/pytz/zoneinfo/America/Indiana/Vevay new file mode 100644 index 0000000000000000000000000000000000000000..e934de61adb342d238789c5dab9155408f8cd778 GIT binary patch literal 1423 zcmdVZOGs2v0Eh8AI`)vPgaQ|Xi(ItP@ex9VfuSOn<8w5dOpm1vrsb(@8p~`JmF1@0 z7!hU^B}F8ZVJ)O0Du@V_A_(jhnI(SFJg``(oxXax*)2_3?K(dTw>>+U1Y(_4!0>I_sO9Zd<9p3~Y@hCVkqy#lVw79#ZQ@1qeN+LM3$A7h_b~oU7pjb%4ddjMcOu1alcz{pU+Y|u3V6n z?~6sCze`p<+#sr(1F|OW6}3gVvhLWNsQ0DIV8bgB{IMt-3vY|YuWNKu<_p#Id_nI@ zjH%F#8NGXUNHw3C(0iu3RZIJ@ZXKyoBJe=A4R(pWIdQo!91!hkQQ1+RD>~*wGQ2Te zgx?g&&Si_D^KPa*F!xS$#kc70w+rfE#HSD4n^8Rt2`w*9sKbRyAL$uZN7p~oz14lH zH}OeEHpfL|_Nk0!L`8J!y6jsDi4!Ad<;f34qJJPPPfccuftCt+`jR7(JmyaJCZ#O< zN4M*a7dwvYJ{tFUUH8tYv%@gM=AjffXQ;xaJ-K_O8g zVIgrLfgzD0p;=9ANN`pY9TJ|^#D@fkM2Lil#E1lmM2Uon#EAroM2duJHL)VWT1~V_ zxK$!kA!bE@goDUnh_vFK*oR!0vQD| z3}hV0K#-9jLqW!Z4903kgAB)N#)AyVYDR<%2^kYIC}dQ~u#j;f19Se1g{7L|6`J8? T2R8W&{CU}d{Ct1DKQHwc0I7wa^g-H5PR76HXv}uY_kMXLigSL}u>G7J>tL_5D#%?Mi zqoN)m4dQK4j|dVG(IP^^smBnMGlrxhnd^MVj)la|o!tAonY2w8|L+7#sw&4ge_TDy zH{4tm=H@-!HIL}gO!wfG@3LuUfA`S-XY%f@q}w*)t881=TeojWI1eX(&?>sv?WhXM zm-Um}S4HFH>(C_iW>lJt75bgGgU9K2BQuiq6*PX`Lg~^aH!)jK`BjU`w@}d11IHE)B?8kyJ6;pCjjNh>5xB zgJf{t9TEJIkn{6Si1}{@=!F@#)WVx_y(oEHl{B~O#n1Ps((UKqWJO_)sOT(_p^<|`=$>Cz^+<@SmJGQv_DEDmChD5|akVO( zu2-LGSGDt!TJAls*5oO@wzg5N8+t>pFW#uuCtt|$gop?~zb@<2>O@`ZVY#uZL~M%g zkei?Q#g_Vz+ZTlS2&1XI-sTN*;|8(zRKITg+@Bi}gyq37*c;4mHzEsaU z+2r)H?|toaAWvtA=iR>MOPdi0I#ct_J=fd|%sngU6qxq{^BtGZJ|Xz`;Z>R+w!`cC z^;_mY@Vv5=WD_z(WQ@olkx?SUM8;_~14TxP3>6tGGFW7^$Z(PIA_GQ7j0_nWv(*e5 z8MW068yPn;aAf4j(2=ntgGWY>3?CUk5&#kb+7Ngl1}+l>5Cswj5{K0U!bK!j6ABWG z)dYh?gM@>`g9L;`goK2|gam~|g@lE~Wi^2zky%Y>NNiRU91_p61&v| zk3?@Z;Un=Q2LN&iAO`_*7$64%aws_V82BGgg+Au6$TNpUW?*dgnC#J+f!y5e-0abP Feggguh2;PM literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Indiana/Winamac b/lib/pytz/zoneinfo/America/Indiana/Winamac new file mode 100644 index 0000000000000000000000000000000000000000..b34f7b27eee88867fd131f0e9b87b4c3b4c071c4 GIT binary patch literal 1787 zcmdVaNo-9~7{KxKw8j_{#G-kGg-x|eipY}?ZJOd4UkxpFj7_yTrlvL2U6?o6w1`xN z7()p)MH)nqh=^9HsZI?gr5tKek-Y2tk0pu3&bhhwck}XI@)qC!i)7|59wL4_?d>Pr zoIHE;9_QId*^zkfz?JW+d`nmF;J#<-?zX5`J>Z+Fp4ZXTtZ5MsM}IK28MWe3zkB9! z@3}BA5@|itIE`@4QTB2OkoT+jK_K-RE zLMpdii_AS0R7)CbWnRfhlYjqY$=a-3UaD91x?xsND$=W? zFIB;a5?N4xT^05zl!aA?R8ecDTwAtTt*Z;k^~E`A!=<1s&Q4bw_Xyc0V6T{12d{s= z+P1S-pbgJ|zkL7neIb1R@|i%a@1HCe9o&0o_w3G7^z{AP*8+Vegd<{XioK`VdxpIy zM?|W9Pqm+M0`3WszmH|U{jwX&)?dG}|G@XNW1{8Am?EQ!j4Lv-$k-yI>$KyGj4(3B z$S5P@jEpog*2ri(?RX<2j*K}n>d3ewBae(dGWy8)BMBfGASoa@AW0xuAZa*l9!Mfi zn+cK%k_(ayk`0m$x_o#cA&$)mND0XaNy=%n;*gfp=7l8Yw3#8PA-N&RA=x46A^9N* zA{innA~_;SI&GFnnogT1lBm;WilmCO>izJL>jHHa@j3kX@jil|gc_WEC zZRSYoPMbTDJd!<10<-vRyIp;h_mb5(dYIladmW5(anr2@}h^zW@LL literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Indianapolis b/lib/pytz/zoneinfo/America/Indianapolis new file mode 100644 index 0000000000000000000000000000000000000000..4a92c06593d33d3969756f482e5d3d4b773984ef GIT binary patch literal 1675 zcmdVaT}+K}0LSs?kk@(LFc&RW7jAmD%q$zL)}m8hP9)@yXes=a&Q2uH1yVP-Da?{F zud{4KTr|uuW;Thu)jw}D*7heCne9CO-+%60xN+k-d!Em8&Q9xG{Ju}1pk!mR^T#p5 ze8S1G-kjV=y5`b!I@UdY4Q zNkG1>nd`pGnkC;CPIEtfo1#CP{~m6O)ZQ6SIgMfMtL;_k2|<~Wo+dK-&+5#$H7c{C zUT2M+ud*(e=>>f;YT>aunf+{@@K=}0oU73yca>i*YKRbvQxoKp%8z1cL z#d23$l&C4plDiK(Vu;VahDQ9p8GJi<9X4dx@PF{~yp}nR<9XLF`64{;LbEf{-jA`@ z30$2?o_Fu2Z)&zb;H0ISbE!F(n{!dX$uRdB<}(hTy+Yvcb1O1mwsRX8{44VdJg;zQ zxEYxrGC^d9$P|$|TFoSpSt8T4nt37`W$BdKmtexND5Yy1CoT*WPzk%HF+S3AekVkAh{sP zAlV@4Ao(B(AsHblSxrtzQdW}{l9tuvg(QY#hNOn%h9rk%hopz(ha`w(h@^<*h$Lw> zSt4m#O`b@iR+A}`Dv~RbERrpfE|M>jFp@EnGLkcrwAEydq-`~MBZ*s0=1A&D?nv@T o_DK3j{>UT1`A?q#qs^ls#XK5f{WIf};}c{3NlEcZ@rk2<0ei4m;p&f$QPfUhNVLOMctBs9X8z|+wR-*)B;;@?GM zT=AbV)}}IDH7{Ce>ROu{%{9Er=5TAhEbP6_)M;JFW^sDH&)T}^$}8ue9X@Al+&$l4 zd`)s=srlbcaDU;$?Q$Q!XN&vw{k<#XX7MXBI;YP}>CwCglCAc^)lrjO^NgKZQD7b_ zm}95qSIfhh0Xsb-DAWI#tvNqtO78G|I^*o`GV`O$I_v0p$xF?!kL*7#`K!|Q(M_M5 z$I5=Nk1zkw%+CJI1`E{$$1Z6>V4EozIje=2E)6pS4exek1cI7TWTho2LA?`)$RouTAB-Yj(l6XUxJA0bO+F zuvy%DMVB1hXO^~qp-*)kl&9-X=(5(mQdN9FtE<*Z^`ApF8tO37i^ptDR*R`Q)nk`m zU219%y{FH8*(|Y+Ze8*5VySCRYJGp6JioA38&VmvGB>30RX-NQwW2U)l*uFH_V_I5I+qDCm&AQkHUEkd;8$u`b}T-2Z}o^};0cTB^dne*C&=Z_KeaNk0>>fC(d%kLtj?Oo9? zZ{rn@{`+rfcf4lgMI*18<7FeS8+qXzuN-;l9IqXD@yM%3UcT48exv}T0;B|_2BZk2 z3Zx9A4x|u{N{~`GYC($ex@wSeysjRkAdZTVl8~B^qL8YPvXHuv!jQ_4(vaGa;*jc) z^1QA-q(F`ekrFv-M2h675-F3TPNYzzQlwO*R-{<3s}?EO>*_@c_PUCZk~wNdibkqN z%0}u&3P&nON=Ir(iubzek@CH+eq;f>ZUvAf;8+7>5ja)>Sq6@EKo){yC6J{+)&f}! zWHpfG@VfOt7R2jT1X&WVTN7kakX1pJg=1Zih2dBkWNA3o23Z`A)j^iW>(&QZAg@~? wWQn|PjgUn`RtZ@qWSx+OLRJdz-lYn-@tW_(t0*=%TpErP#Y#%TCE-ZmA5g@Bm3)Lx1Mc4x zeApxkR_es*PP1yPT(5rdS#|$cDXCF(+6%hX_IO0LkF}|EMWLj>s8^Y3I&wxo5z}U8*Kxh8=p(bcd5_+m`(9=1`XoDYR&^J5OZVW*YR^QQ?CpO>?fbf3 z_V=XKQ}2~Z&*p?W@VqD9^?|(W^75zlnKpfD?@j3~`vbFw?|<@PAm8`jf6JTU`|7Mp_QWarx!Z zxaKzY^iAr2JnNPDMOv9%>*{1^f~US-9i5xC%Oky>9GZ>Omfk!LO|9+gdgz(0W*9e0 zpJqGf#ZE5&%Vq7Gqf~Yltew58lC|%1$3N*tsv~>QliiQxpS~vg+oUdUW+sd8Z>&sm zw{rzC<1uy+!;E4HF@@Mdj3L$#bBH~p0Hgw>1f&L}2&4+645SXE5Tp{Ml=`1kuC&{8 Em)X2_LjV8( literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Jujuy b/lib/pytz/zoneinfo/America/Jujuy new file mode 100644 index 0000000000000000000000000000000000000000..7be3eeb6d0426ba1d1a2a6963a6234742ea0950a GIT binary patch literal 1145 zcmdVYPe_wt9Ki9{oVrE_Bd7=oA;nym2Wu^|;E^4KXqPz{cJ5J_z7 zd#TKg+;8;vn}5AOoJhFIFXSe zV?{>mmGL4Y_R5%%Q6u9 gD@h_*B55LdB8eiIBB>&|dL`N5KWR21N$-yQ0H&!1x&QzG literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Juneau b/lib/pytz/zoneinfo/America/Juneau new file mode 100644 index 0000000000000000000000000000000000000000..ade50a8eeaa1dc389b4f8d421d83080792de7c52 GIT binary patch literal 2362 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 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Knox_IN b/lib/pytz/zoneinfo/America/Knox_IN new file mode 100644 index 0000000000000000000000000000000000000000..cc785da97de0a5614613f9ba6e502d7dc5f525b5 GIT binary patch literal 2437 zcmd_rUrg0y9LMo52q6eaCWd5SS}_9&Y$$E8wFP5`#6Nk!KM+Q0h-E%1kf_n))+8^Q zrA@&a>LQnGhSpSU3r(rDnlm&BQVB4LS;(VtK}zTJydN*KKlgpv@4U_qC|931-bH24 zPm{k~i2a0z+hrf#$7uUfzb{Ge{`7aXXLF?9yX%7b=5?PwJ9$u@EeSQ}^Uq7$#M9>c zw4>54jiw{IPCB~YGC%kZ>kB8=nv0z~^`-r9s?O#r{o|H3s;jSGmp;5`X5Z>v#V+jV%yK@)MJLPs9kW=8MdCQ)_e=I$-!GN!7) z+*4K{V;82IXivI~dpy?MJ0(_PCe2XeM-EGD;CK~#BSzoXeM?Pfy{Yg2{E~`0bWz9e zJ+3BJj+O^D?NyWVugl~WpP2{K&dEc$yUoMVhb7^WO(wzDs;7i4FHdg6bM^e=6qC!1q#~3v?BU3+JF{tKE zh}YiyHsu`-&;@Bts^ChTEQtHgEcilXq3?)U)X*b^owcUuwHA4%dA%uKx=$9@7nx`C zPU@1HD)rpd2EC-TP%Vwvte53vs%8Dlb!kGpDm|U6%R&NF*?}azqW7|TVTVUvJmWVj zD--3V#%{B!AVSpEQ)YGAfUH^dzF8aHD&@0lOu4ULSEe_p%FZ)-UCd^+uKAFz8d|Q_ z*KgMw+H=*$>I(fzQj%7D}XDFjjpq!dUk zkYXU!KvxdlP!G-)grg!zNjPeP6a}dYQWm5xPFonHGEQ3>j@lr_L8^n42dNKIAdU(l zCE}RQI(-x4Uf=*jPjv69GM5>6C5ve0mNTiZTDUn(t#YC#9hsqsHoGHl%u9dQ8}uLl$E2dNMSiDi~o!{@yMj<`N{II8b;;h4Pcf#du-7moku zKOiS@BtWh|)^TmM%uFco|Nrer7#M)$8W4H> z03*x)|2sD@aQgU$Fa)>;gNP8Il@Jg@*r9?zm0*Ydfa>`V1exv1dq6bE;UF61cn}Tp z0Eh;80z`v60-`~l0nW literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Los_Angeles b/lib/pytz/zoneinfo/America/Los_Angeles new file mode 100644 index 0000000000000000000000000000000000000000..1fa9149f9a9207a9b9838141088663ebe669f250 GIT binary patch literal 2845 zcmd_reN5F=9LMpCq6kW!Oq2-iq$YxjfTAdt`82>pRIVgu_>jOb4HZHyLt6A;%{b(I z=!w3PYq>IX%w|!9Zn;{s5}NZVB1>f|sc4Bx_jcar-~Qs*Kc?5=Y4;?3kvcQ zJpVY|>^EG_XZG^mx6D4O-cOZx>%xq@7$ZC1ykWlG6d{d+udixcGE^P&73$-Dc59yMJf5rn`Z`tl4y0)R2QkXCBU%T% z+)H&?*Hd?0JDf{vy-plap$(OC z$EP)__wJ9idZSX^xyk50>xO2QNRVh9q9r_s{rT4GlZ0qhhL5 zl&?*qL&{Wi^Y;>SVW}EkzfVRqm70-NTO_u2u^CnRl*DbBV&d~(*9k>K%;=P2Jtnie zNsP+UV-s4J>jks+A=v`pFufD$I)3t14R5>ajibn!-b>D6CBvXY5kN z{$MFdYA_|u7iC>|wOLnxMAmndo2RR43U!RgtnHbwvt`R2C^MQd^|BNOh6& zBK1WI?6eg|O6;^XMv9D787VVTXQa?brIAu2wML4KR2wNbQg5W-NX3zoJ8jL8q9avD z%8t|>DLhhnr1VJbk>VrON6L@XA6WpWT>)eXoOTV6MR3|xK$Zbn2V^0Tl|YsPSqo$_ zkkvqz16dDbL7a9)kR@^2H9;1|X;%eV7GzzJg+W#ZSsG+*ki|h(2U#9ueUJr0RtQ-l zr(Gjtk(_pwkY#e(bwU;jSt(?xkhMY<3t25>xsdfj77ST2WXYU%&5%WN+EqiA&1u&S xSvX|nkflS`4p}^8^^oQBxUKu&O<#yz#3Z|nBhp95Cd9^#NRN+?jgO5B`5OyZo4^17 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Louisville b/lib/pytz/zoneinfo/America/Louisville new file mode 100644 index 0000000000000000000000000000000000000000..fdf2e88b48cecddf4eafa6d8a41ba7363e4874d6 GIT binary patch literal 2781 zcmd_re@sVwUxvTJ(v;m$ubN&=(eTmKJJj-<7(p4{=C5>X z+H_FXNJ~v?j?`>gjntSqTbVMQh2aAwm5DxPE6cpM=Y1;X)*t=XKb^aCUeC^8@XvjJ z{P~6RGM#^1(e@2D*B*OwP7K;d<@S`|tMC0Pn^$!RZrM~PTZ?{iwsnn{V{zky$If`= zljlOglYM`Zle1#X$+`+vyER5m<(+cs4i=fS^%cRdcCMHD>eAr3HH$@8P7gK|`lYdK zc<}4oLGn#O@8J351ZnbSJKqlWnD3H2&iCCMbHV=g3qLoSADSASi>GT$^N||o(uWOl zxk?9(XTAJ>W|+Bgw3iO;Pc-2-!rG|_nTXX5y491~w3d*HR5zr}M6IGmoRjGE!z%ju z?h?~!kHqZSXkyJO)lRRJ_FufF;|>O-!+{mLnGmA)gZ#@spP1$|eS?Ix*TkxmMIB+0RPI=OzE^t&)v_pe?pDYbqzpt4X> z_YP8NWn(3MLxRc(1We}Q-_$^FuDN^CS(TO4-wevER)eGC%#fa6>LE>+&Cu%~=wU}r zn0x9fb#~Py8UB7y-@EQ}x$ouKdc>kVGIGT-b^nBoGHT8&H9D9*IahZW?|_-w zTf5fe#*Ngudl#B9&3*OQSJue5(<78`=>i%5ZXY#ahEFDzN2&+2(`3>UO=@yty!i8u zD*yGXG9~LxHRXIqGu3lMPp!FPriFIs{H?WSdi`2GW5qu6aP>l6FsH)ItQ@bE?;V-7 zdV!ifpj;ja_|%-Z5}E5wQ*)d1C6E-a0-t6}VboPsxXUB+n@*_(<-^Rv<5%>f#fj#z zs#?7$FJxrhKK*!>Hj5Wk=%Ox%&5{YFdP(S<6b~s^#r21zB%wr=RKG5z*Yed(e^2<@ooj7TZMK^oh9XeDnMN>KqPNZE~D&_`ur{ zk>T)Lo1M1qxxM@B#M9{<4u5|TO zf7t!zU;Fd7?0*mr7qkv-MoNIx04V}e1*8l}9gsq}+Dag$Kx*M?i{Wakfs_NO2T~BE zB1lP)njl3%s)CdSsS8pVq%ufpklG-{L8^n42dR&%Ef7*6q(n%KkRl;fLdt~H2`Lo1 zmEu6DxNNO}Vj;Hhq|ivEky0bIMv9G88!0zZ zZ=~Qz#gURDHAjl>YO9Wv-PP6|DZHz#JW_h3_DJ!O>LcYx>W?e{vI58wAZvguf~#Ex zWEouTIv@+-YF7eT3S=#i#XwdASq@}9kOe_j1X&VfO^`)FRs~rWSGz9A!noR%L6*kV zt_`v{$m$@=gRBp-K*$OqON6WuvPj4(A_p;gBAU(1=u^MwI@M11OpUTiJimNtomsUkt@Algnby}A zR^>pAv3v}sgSvl$&lHQ>5%zc Q&4kE|_zzQh&8i{q7aIB{(EtDd literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Managua b/lib/pytz/zoneinfo/America/Managua new file mode 100644 index 0000000000000000000000000000000000000000..c543ffd475e374b39c6800fcc69c3c06b6eb5dd3 GIT binary patch literal 463 zcmWHE%1kq2zyNGO5fBCe0U!pkMH+y_UR{qDY|bSKoJ;Hi1OtCO5WJEfAZ&Q+f$)~V z0L{dS3R(xf1GJs*J}^4@KENsBzyoLd%m9~=yareK$OJ|vW+oOOWQNlJ|F4%}U;vU5 z3@rcuuU^2w@&EtM4GcUWl2HI6;^P~_;0wgg!66K;Kpg%!0$gdz8Z~gA-NvGxFsiX%W9 zEl#Vbd?OoP-84=+bTjNzANjlt>xmB%g1#96a)$c1tYElp`gTd zFccgL5Cw?>MZuzgQP3!G6uh_&kb)T3K~gX&pd24m3M>Ve0!%@sKvS^kzkz$se$x8_ Dipc^V literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Marigot b/lib/pytz/zoneinfo/America/Marigot new file mode 100644 index 0000000000000000000000000000000000000000..447efbe2c967cc5642b58f51aff86b67073134fb GIT binary patch literal 170 zcmWHE%1kq2zyM4@5fBCe7@MO3$eCW~TrDkL_V#0Fx~L{~tfV z!1@3G)eDTgKE5FgZf-!rF&KzlLO=$AK?q?BS%C^cmJ0rWXaO4k|9@t?$Po|?asWse T=Sv6kviB!Y)!gV2f81L0 z4i6VJ55KQd=Eqp{UEP+7uVQP<6YUN~gr_x5ru%|oSJ`Kok(wnkJ+I{M*d*cI{7HKk zSH+&6FLl=U7_~P#t+OXqRL-0)L%p!d2wSTdsW>ccXBXRkVxUn&o8 zXjHy!>C(4+O%%i=%7VEDQMm9!9=UT%70nh)e|M)Uj;6_ynrd})aHA~E&QWFU-(-1G ziV9TB%D{?4Rc1`e%8$t+nEX};UkGu0HL9ydKZxr2Azjn^T%4Hd(zW&X#L3|rUFV-x zr}{hP=^dl$OsHDcC-kWXUyf{8YEq%p6d8J5sG4IPvU%L8S{4`N*}(#FZpPB*BiqG= ziT65OnIPoAGkr1Ri?|dX)2)ebL|aL}Zd+Ya5$~vs%+IKfO?|Rs>Y?gfZjxQYH`V32 zLfPHZuC7cvWl!xfb#-XH6pl6jc z7t$Eg8PXck8`2!oovmq)qd!~IAV-Hti%5@1lSr3Hn@FEXqe!Pnt4Oc5rdgz0ThlH_ zzqY1fj*gL*IeJE#=I9z}o1<@}ainvkb)~I_t=Ryw16#8NWDm$DICg<- zgJU1aMmTnYY=vVl$YwZpV{5j9?8nw@2-%UX*%GoRWK+nlkZmFRLNIh;V}G;lj~TZAhX0IRZM0$AQ=|xcrbM}x z2uqXfl1q6dmk?UHq$JsrvZiH7$MZRq7hZYch41M(pVO&xUVT2^++u%}{IS9I4Tt5~ z!}ADjZ)e-OD_VNXUbp#I_}Y`7_&S1T`Z~Vv>AC;D()X?YYGDg_t>Qk0t(ckePe^gd{Y6F!PQz$o%q$ zCUN&Mos@CeB(Ja2DdC6Af|Pu{a9FiTosy_i`ufDya8JVOpVDmlrPUr=_S33B$!7;xk3#KS@z< zlG*sZQ;MHVF`Hhs%jPSCP08)2y0od=l$~qU<(2nL#hxR&GPg@@@z?6AxVx%);cC5g zY_r-HUL)JS9#A#Ia;4@)xvKpbFWawWsvVCe$j&pRrmjV#epiNRIQT{+V1RoK3<&%O zm*X6d7jc{uMgkqD`LqmmoJK9dJO`+s@6$bA@nm}?*`8(gcv8I9h2Qi3g+=|pK6C7_ z31Sq)Du`JSyIfksAeOb3-kq|2xWVLZfohWQZt83jNp zV3Yu=m(pAkqZC- literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Mendoza b/lib/pytz/zoneinfo/America/Mendoza new file mode 100644 index 0000000000000000000000000000000000000000..f9eb526c7bef450c9726e79ee8e34312648a0e3b GIT binary patch literal 1173 zcmdVYPe_wt9Ki9{+;oi&hR{DGgcNgKUd**1lxOTG9C zEH`XcpKQ);7vy#0O2)r?I;HMyd8VhgX4Lf3h(ELOteKgb)U);5YVPU_|NhIj=E143 z&d+XAW;mlCj*qKHdkTKxT**9ctLgcJ0X4rG@r&`8DOPUzPcLTGLh`y^_;ATACau4y z-5=FZZhE$$dK1aXhyzJEc2XvboOKC*Aq+WUgy-uj+bU(A!szm~OpSM=Gz?j%!2h zvDy>8J0H^3 ztP^8*l~ck(;&Mu0NMuN8NNh-ONOb7J;~??z^AaEu wArc}IBNC)jqC~=UN}NcbNTf)pNUTV(NVG_}NW4hEPKnt2Zz>K;CzK^IB4RIw&?gHJ59n{ zJ5}PIW^>bX&1zz6g}J%0LQSg5H%X=W>Xx}F=GM#pn7f<_)X60(;H$r1wrCcIzn*cv*kld9q`kwdCA)j0_VpLZ%(g1+@0u<-4I!1gAzEgYRI0m|o|n9gd1`j< zH!{bQs`97&X7bO4)!eIJnR#EHQTLpB$IL%4rVBoN-rUkw(3QP{Zd|2 ztrzc_C`;xS=%pUht0~~pH=n9Zd23# zxq4`DvsqQYUp?GiV;(8{RM&2AmDSn3x~`#G>f<`}nvw!pGrCqcWTZ>Ow*lSgiIT=X zuU>cV7kO+~se1fa#Hkh^^Zmd5L?V5s zm5M};9E=(tiM+i}MZ514+&huCnsn{w3(JCPL6Loy*=L1)76(Ak3?!WmewJ&LZ*ex3z--)Gh}K`J2zx<$n22mA@f5f$T34?icUL6WRgxh zOO9zG^F$_!%oLd_GFOhtBD3X~E;3(^2_rM+m@+bFj!7f4=9sqA&KsFHGIM0=$lQ_1 zBeUn2J~Drf1RxpUNCA=qjwCp37LYVJZ61(BAelf?f#d>729gaV9Y{Vn5`tueBPB>q zIFf>7g(EFan-`A6AerGv4U!uqIY@Sp^dR{`5`<(3NfDAGBuP%2C5|*XZJsz1<+PdN zNEMPRBw0wdkaQvWLK22#3`rT1GbCwFn>8eDPMbH5#5rx|I8uk?jw5+U_BhgqZG@)$JZg!Rj{}Mzl;t9b zB#5FHh1Md;Y#~7|A_)qqgd!*+YSAf>q^#+Dw_3Go5%dq|d@~pBYQE1Z@%s|QADd;K zaG2K|zRy?Yx-d9V9?>;kzQ~5;~-q&f9!D`LmUA=Z-TCE%I(doxusP%nPXVi_T%+6zSL;gACtgMq+v7IVAt5D{I z`IKu#qI6Alh}__CnftU#Y<%@u=G}4$_t--1ITbB7U7OVT&2vS;(I>jFB1#q24(Z~| zIm&YP>CKVv)s~o6y;Y1UZ}@5HeL0}EO}5CAkzTcZyj1SE(l2)2%#fwsCq&uF<+9x0 zAS&9@^{!k?>@JPemC-4pDt(6bEhtje%UP2J$nnU7i_eIrSif%i(k`0A@^te=g*fzKr9OPy zDULi0(=F%ARBQi7-PVz*+It>r5i}!c=0ErZ0#~PnF!xyz90&|u7a`n1^L{>Ydo1BB zwnVl$&MeFP$G>O&g&R}9UJ97u2tV-z;tIqUhBFXv816v)VK@Zwh~bh=;}gRvh*uD| zAbvp{gLnpU4dNTbIf!=<_aOd39E5lXanYvnk>R9G<0ZpQh@T8cA)Yc^h4{*F7UC_$ zU5LLBhanzAT!#1zaoVQw8sav@Z;0a%&l#>md}lZh@t)y6#D7KukPa9vKze{QVbgR0 zX#>&+q!CCbkX9hQK$?Mc18E1+52GPSM~s#rJu#ZHX}V&xWz+PumYc47bk literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Metlakatla b/lib/pytz/zoneinfo/America/Metlakatla new file mode 100644 index 0000000000000000000000000000000000000000..af71f0d226a07ea62dea49aa7687593628132bbb GIT binary patch literal 1418 zcmb``OGp%P0LSrJU0q$*no9F=kUs^QW-=PSP9X&*CMvF*T3MF1Y%gDnXr(C_<{=zC zgdMU!gi!}`=wydXh)&@m9-;?G1<}Q%LkA;p`hO=n6@k!y_|Iotuiu})DRj0#`{Q`j zFI-Nwx_oC0s@KcWbh*6yTgP%sroJ&(F6;+6x;B|DTsM4rRBwWa?%ZR#Te4(Kt=Eh# zi@VJtezHr0%LS)8bP_dQ_nqDEue`pAH)h8MbJ6kz+J&d=O33KI7QR zb8&ol%{VbXEt*@GjFVF%;#AeD)iQEVp57O+&IGT^)bQ9Q z!vFUe;?%#noLY7H&RFL!b!>GGEJWU7|A>)}M1q9ksA54U7(R%Gqrw5=K>|V|LPA1f zLV`k~a#Udj=I}*I3iXI8yQN@o802u)?1Y``z zAdpcY!$8J?385A-qWLTP7mOCoupHHl3 n6OX37$|URmHn86dbM&&kQnr^{wLh;Q&&aLH&(F)xGrT_m)W~gs literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Mexico_City b/lib/pytz/zoneinfo/America/Mexico_City new file mode 100644 index 0000000000000000000000000000000000000000..f11e3d2d66a2d7c21f498df96c3fd1db3a0d8817 GIT binary patch literal 1618 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 Vvx{{nIh>C8Shq9Yk?e>M`vuR{Xd(ar literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Montevideo b/lib/pytz/zoneinfo/America/Montevideo new file mode 100644 index 0000000000000000000000000000000000000000..7b2bbd831b51737443b5363c318cf8a0259fd661 GIT binary patch literal 1511 zcmdVZO-K}B0Eh8i^E*?}LxiPkCTd0v1+kRcs+pf#Tdt&57#)%>fd!I~8H9PLLj>u? za4HHdgEvgr=))~5HL-@w@L(tvD4|&yDOyhN^OkrB>f8+T{$^MA_Wa!?hYqf{{BZ@z zZ+N(N%ZK-+C*^VZd~Hj!HO|xgIZRxCTWr7aGDBE6>&sN%|zO!C*5Ku=%{U`Z=;y~a83U{ zm#Y1kI?yyXR4&Ycx&({&s%E{@-Q-&|sQHd}>H$L&BB&%QA>`H@J#?g63p?dw3oksa zMI6r3V>;a0%FU^I?4|c&)v_11xZE-k_o+gUj|tP_jUqiUI7uXmP5SELJ}v3oay>2o zo0h(9oi`)jd$UJ#jGWeVZ*EtTk=Ib_$ZuL=IFF|} zw%1M=JNCvpT;(CIoymTVU9OL=g2)kvTQgkl*=~n*kj)i?a(jdE^V1 zRh{#P```5x$^TXLO#l9oDX+?^nKejFNKr~z6;c*b7g88f8B!Wj8&Vun9a0`rA5tJv zAyOhzBT^(%B~m6*CsL?VR*IC0)QS|Vl+_~TDrLP$!Ae;%QnFIkj1-Mjt(0XWbt8o% zm7^-17i#B{#RJtN9vOr{o$P$q?B8x;;i7XRY Rr&2D|@_$Y=Sk8At@J}R0P3r&v literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Montreal b/lib/pytz/zoneinfo/America/Montreal new file mode 100644 index 0000000000000000000000000000000000000000..7b4682a39e2fc97450c99eed4576d2a4614bf294 GIT binary patch literal 3503 zcmd_sX;76_9LMpiA{wHIikTw0q=>RgxKd&+gnGpVOmRCJdIvQ*xgZo`3u-tuOrt@i zgSl@RqGFJSpr$rWiQ=B((UcTH5AL~eJKyJRFB;!9)8jn%bH};7{eAy2aS7AA+y3#? zH~+)SbHluRZ}EZo$SGJZSO0KRe6uw0=$fzdBG#^O)$3xnM66#jQE%vyEH+N>r#HC| zSDOd7*PE+?)mHDH<sWb@>Y$MI~_yBuGCPu zJJMg|Pw^}*;Qbtrza{wZjzI&4psM?CtdqXCoTFP~_6qT@YzLOfAr^RMcY5f{~| z*sZ0f+pQ};6ZUE8S=-{`b6&Gc&xa;OoUh#^FEpPgE|h1;i(5Vt&aT-BA&_mBb0EBxFj0{9}o@O zmB<&Gt`}~$b<#~Q5slPh>3(jlYFzA)O$yVM$Ci(E)32s0&x~ohS<0KLc|xRaF|Mof zit^Jfd%LR_{Tk_39sI;g4XbtQx{XBZJ8rVgb+$rJ68Y`Xo2 z%SDISE4t&1T=h!WA>C=n=c=>UM(x{muJWxtDE-`Gm0$S=*|oB#>Q=N=`j^FsfSd#w zxT}WX!RqIS*FL#jKfp{p|Fu+tI3o;p(w-_t=vPq51oSuSE^c#s@5ze0@m_LMQP zM@7t&yK+p}Rx#$9haT&5SdBeYqsP^5R&ndg^!V~+YC?Lxo>(+XO^VOflXHeEVc#vM zES)K)24u;%9d;4lI9X1M3=-3-f_&pKA4-bwP- zvvbQ-Vr;FJnfdD7Fs0`tW~;eg2lTw?6g98*l1%EAC6dZZWOA!ykzBM+raX!h@8v9( z@1G49sc8zO;$Db)M&6J(uVC^?&NOPG|lKo6YGwQe4Ny=`7q~YiNCU zw?3N=v&Yy54K(j)^S))?5iw@GY_>YqN6f#EUZwe=HF}Tu3-dV5Gv`)v6*7Xz5F%rU z3?ed$$S@+~hzuk$lE_dZV`*sy6B$iQGn~kHA_IzyC^DqTm?DFUj4Cp$$haZ{i;OHX zw8+>ZgNux=r5Rpid@aoYBO{CqF*3%;AS0uU3^Ov$$Uq|_jSMw1*2rKZqm2wVGTxSE zz>yJ0h8!7lWYCdOM}{34cVyr#&B!A|Z)wIJ8GK~)k>N+i9|-^w0VD)S43HooQ9#0g z!~qEe5(!Ha3M3XtFpy{<;XvYn1O$l)5)vdPNKlZdAYnn`f&>PM3=$ek6B{HrNOX|! zpcNm!5Fj2CAs|FZjF2E9Q9{Cm#0d!$5-B89NUSVPu#jjW;X>kt1PqB75;7!aNYId| zAz?$}h6E0Y91=Ptc1Z9nP4tlPA@M^3h(r(xAreC*h)5KXFd}h80*OQt38kfpB@#?a z6HO$XNIa2%A`wMGio_HNDiT#BtVmpuz#@@FLW{%}39hAyE)rfOzDR(P2qPgzVvGbC zi82yqB+f{nkw_zH`aJQ8^%^p+;} zNboI9^pWsen)o9J0CEH%hX8U6AO`_*6d;EIavUHB0&*lEhXQgeAP0k`IU10|!O|QL z$N^z#jtJzCK#mFIpg@iaf*c~q xF@hW<$WekECdhGu94NNuyCVLl7mAxXT*Ax&<8KcQ>>e2GZx0Cx3<(T&`x_HwlD7Z= literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Montserrat b/lib/pytz/zoneinfo/America/Montserrat new file mode 100644 index 0000000000000000000000000000000000000000..447efbe2c967cc5642b58f51aff86b67073134fb GIT binary patch literal 170 zcmWHE%1kq2zyM4@5fBCe7@MO3$eC9?8oq9TdcLHkFkm%@A^Ey{n=mrSD)MG9^c*ez5ia% zK(KjRvFjgan*D{#>9v>Vj^C}#G>NJNbxp2Yqt*1v%QBx&7s1YHrwN?s&RKW!HUc z=4~I)cb1$rcdd9<-<|%N$;sQPbD|$fuDed>j=U;)Ka}eEgI$t898d-Q&Eh$}P6@s3HgpvGtJUHgqH$(e5!77wb@87Zc0_E)-W^k=hZ>O)PNzv=Fx#+-BuSha_EG9 ztVEj~ZGC!Y`WdsUwq5UvUY2lKuL_S0NhBkpB7=veeIlry=szG&UaC-gIzsZ)$t=~e z$tQcCcPUqV+<)*Bi@hIqxni-8Psb(1VyE7AC9d)ZT-8Da035gJrjSwV*fD~ zV@1f4kToHTLRN(=3t5+=T^O=5WNFCS&{-T0td3)s2docSAhJSaiO3p}MIx(2mWiwr zS*W93DY8^#t;k}L)gsG9){86{SuwI?WX;H;kyRthM%Ili99g-eT{^OMWbw%Ak>w-n zM+$&c04V`d1EdH@6_7F@b#SzWKq}#AOM%n^DF#vvq#Q^+kb)o;K}v$u1Stwq6{IXk zU68^cm2tGCL282(2dNHH9;7}V16bY#kQYNHMjWdT@sW4Jvq{c{*@&8?Aw+(cO4RyYMfv4D0nC~wt@)UUr-G2cP_@SKu literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/New_York b/lib/pytz/zoneinfo/America/New_York new file mode 100644 index 0000000000000000000000000000000000000000..7553fee37a5d03e9163ee19b1ced730a02345cfb GIT binary patch literal 3545 zcmd_sSy0tw7{~FW;u1<|in&Fm6{0L|xKd(jgnGmUQpxbGKnAsVN+m4AN|bP>tkJ=? z!Q9a_a=|1E(F`4%HgPS*S5s0GdzBW_I;Z#h-geP=(N%xve?Dg%818=GCn+U!T5r!k zp2qfnczG_{m+x&}v>!$5LS@CrKdJW?d1U3=U#eB{j*B;NN9u6QjyHo{+MdLuyyRuVz=}cJ;}*W9HM6Z*=*-GP8ThR$Z~? z9kVBEnckcCg83{lTklJoYCeyiq$|DiWPk7=eIPPb4%AOn2ZQ3|;PHX#i&u;s>iUZu zQa5zfoO9-I+$nt|xzZf%yjvfODK^JFEA@$x#pZ-wpuh92m+vdm^~vf2Ikn+sRb4(q zP8XypUF4NBnGdS7xzX}NLN|3TwUwNo7^Q3CBh8QfTj~p8!RBJyYx+`?tLD;ghxJc2 zRp#>19lEx%)LhwJrG73sBxXgay1Hb$T${gK)nygRFH`5LUlViWw;_+H-=kBczT30< zkKkCj-fXhIUO&m)xG-4%d3=!h>%bk_x3iP+ulH-ua-V6Ce?~WaR+~oRQvvEPX*^b| zCUK{wY0tf?>8tJKmX>SOEt{8_K(k0S*9)b^iB&qNB13L1%hSOd7MPZAP1CIk(#>si zAJVNe<4v2%-E~MpxM@4Eg}yz!xoOuWT(xgjYdSP+t~y)`l#XX=Ri|$+%N={ZR-s$I zk~>#!QJu3r=B}5PsxHZAP1orq`tF#0=AMyn=zBxfnXvA&beQim2@g!x;ni!U`=$Q6 zM|r+PR3)j%qD+a})=x#}j*^~B+o@g|8K(C$*HxeR1k-o?Nfi^;!}RN2uKG6(G6On( zrw7#hYzE%=L=UR`)(rl>NXM33k^6SNsPA9$jSP9`aUGYnRfguxR}UmElVNF(so~Mt zGGh2JHKMNA#79om@l}gWLeNm1ux+LpS=&{QdbdDEAB|Jqc{60pjxH*3idV)K2B>kd z(K3EcjhfJ@l_Vt}P)RrHf!UjW>RRSp0w|(nd~dpDQl|CBh`!bl)O^&X!%T? znzr0bEgGYhce^~6KSMnpStw6rcvV_Zj->ozrL!U%(GouMi>H9_XT=}`?E+~mJT0XO*zH~R_6OYt*7Fr~ zUy+SPb{5%MWN(qpMRph2USxlf4R+ccMz+{#_ZZn^WS5a`M)n!mXk@36tw#15*=%ID zk?ltI8`*HD-Em~gop#TWO-FX!X}2BOcVy#{okzAF*?VO3k==LN?ML<>X#mmzqyMS(m14ZNb8W^Aedx|s_=_=Azq_0S0ka;NP%(sZZoI?{He??~g3 z&LgcydXF?8=|0kar2ohb;IwxDatk=^J%HQ1axWk^19CSY zw*zuNAU6bZMZQ``|338(#cM5W=AomJ#vmkd1a=UnL`V#q{9xs9Rrirn)O@y~k SRPU&s5#C1GyYGMZ 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 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/North_Dakota/Beulah b/lib/pytz/zoneinfo/America/North_Dakota/Beulah new file mode 100644 index 0000000000000000000000000000000000000000..8174c8828851a7ac72aa65cbd5135664152e3182 GIT binary patch literal 2389 zcmd_qZA_L`9LMo7TBsu@`mIv{CO1w5Ck1LbiQ zcxXTd`Ce1keATOiFT5*4j_=m9j`fOb-|CU_rQPDXj%VcT=2~%meT|&6CQpRs-y`Ry z$BG+bZqR6c-Pkl=-t_cgwP3X? z7jFDm+?;w*-cs<6SQL6v#>8n6Gxep84caVXM^EUu%U-c~_;nqB)=>%F&+5b@C2Gme zI-Rt4nM$r}l_^{1s-=1B<+74-l^S!eT%Pi|x-B41rbYZN(!L9p=@S=3#s@#k+rJnR zEBb?U=Fom|$DW_`o%?o)tcFkYU9J1n-9`O6yJm;VS@OKj%~_{%e>)}f5?Vyw**9c< zNR`Mx(jg1Rvc!F_9MCJzRjR_4W_AD3B&VpdLKSz;b{<%fsY)8JIIAL~m3Q?y$2;j! zrKy8X={HfLJnA!F`6(gROda*D?Ykr@M!S5Kt?!EmhqwExY7UBZ-IczF3g1)J?aj`^ z34Q93x(cTzq)pZ4WjeKE8&q9Pv{QGwK-C9$occrYYU8(GJCAnei^tBmzQ>yuizg0W z^fi=*2xrep-=@@G#O8(rzAd4jimgTMzO7SZswu6{X&ODFwuQAh+lB{J^Y{j5d-q=T z)cFFZWoM(>F&OXctSVExx@I|k9`l*zZ{hVn{>+&EuRgBZ^MVkr`*x4V-*xwEG1I;W z+i&T*$ND{Uco$(S3%#N+$2_adQ)ZrGugEq(XPcinkNpPkKd)^B1^o zm49$QvOZ*i$O@4qB5OnzX*H`vmWiwrStznnv`giMwQ^>$z-l>`i>wz}FtTD~$;g_m zX3@y1t!CNCx{-w=E9Y1`vUZNeBdh0FKC*s}0w5LOC;?Ifjv^pcK+1sB!DeZ~BuGs-ih@+dYRZDt#cB$JREDE8NNtefAk{(2gVYBp5KREwirNWC};hExnG8B#N(Xh_wprff*vtfp{C z<*cT3NbNX^hg1(KA5uT0fJg3U!RgtnHb+wwpB9*n8(jv9Bn&KkWMas)jU!=es6-G+TQDdaY992fj z%u#2nDKt`Pt0^^7YpW?XQf;K%NWGDQBNazVj?`S(e*Z6W9%Kr?+>}1PaA{&nVp4oz La&lsFVp7nb$wqRA literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/North_Dakota/Center b/lib/pytz/zoneinfo/America/North_Dakota/Center new file mode 100644 index 0000000000000000000000000000000000000000..8035b24fafeff6fad833094f814905213b2f3a0b GIT binary patch literal 2389 zcmd_qUrd#C9LMqBL6kp%J((235lRa}0Rh8+q%0r?c?9*yA0Y~Z5X<=a2NX5>l?>*E z`D`x4{t!5FwK8OGhI1p#YOQoGY|hq3YRego^{l*Lf#>P>{&m?!>!Pc^XU};*IN7-Q zy!`7MpUV(`yAb^^JY1K4c=sy()pIn*e&=+E>h18_eQ*4%zTOvMk1o6^M{A?SACt}2 z)Qt);eYxDa^<|C-3}svHdtM>BV=Yf-Km_f$WzEf7s6GG8FDhY-%ukLA?Z{7RK zfLgH5wH9tVC+^Faq6y^6`=*DzC0d<}Ybi1^KIG!S5f7!j#QU z;l;zED6+&UI)&sA%hZ_2gac;#Pr zN&2Tfsw{Izmi-hbD&oF%Dn1vYGH}va-+xV1jdeTK?VpLKhIctNbw|b1J=M-LzE4$c zXRF+h(yyLvsFHP&9jd-CSJqE#R1Jyovf+HOY7Ftn#$(B9)Ab+a^Ib*ag$u5;xn;3< zap0=cR2C`ZfwRt*%wNUUrgxofQQwH|C7sUpz=Uea>X$8J7u3$^4!Lu9P_<5Ol)HKk zs@<21<({@?_0mwXY^y0(FL%$DK_2~?5p2Tizxd3W`Ja7Uw=Yx(*ZrW^6YRQg+alDw zN0@KRbx$4l%;jA~uk`taFJC`v^;52&QoqR4Kj-P6Igj}!{(oNEA^o4t+9v<{E&Ug` zZcT8+amxBA3#6=&vP8-nDT_4KtE4QGvQElEDJ!LBsl2dOPA`_QT8`yX)=OD1WyO>w zQ`T&%7fo5Usa`f^-IRq>R?e|>%Gx;=Pgy<3@+s@*5P+fphXfQ2I7FbRK#_r>gQ*sR zq69?>iWU?xC~8pTpy)vngrW$CBos|JM4_l+s%4?*VycCqD8nHQMH`AZ6m=-_Q1qb) z#Gw#HA`XoxB5|lhk%>bmQ!NySQWU8;w4#VbQHvrMMK6kA6vZf#Q8c57Mp4aF%f_Lb zsTPhyIa4hihjtY4DC$wtDN37asVQ2UYOyJ5Q{<-TO%a@;I7M=b=EC^>zu-Jv3%^WDpX^(jnvt58 N>`PBiO;1e={}b5BehUBq literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/North_Dakota/New_Salem b/lib/pytz/zoneinfo/America/North_Dakota/New_Salem new file mode 100644 index 0000000000000000000000000000000000000000..5b630ee66715d60ee99405709d86e0e6a0c8b29c GIT binary patch literal 2389 zcmd_qUrd#C9LMqBLG;K8?3allAe5E_0s@L5Nm)Pyc?9tYC`3^pVi}KrAW_3#NiZ** z&*p|$Nnqq^&4jrbj*T#@wUu*Wb6Ojvt$!BvtlVOOJpJCkF1zTW?)siR=k?%Z+Sf>5zfLC?3M%&#l{h&VH7itgBzitgzMTkGf8szx* zWn$t|sl4$~rkLzsCfzrph3JTqp0-I5^z02eWlN+Au9{;{Et*i%R*c);lo93KpKgc9 zAr*4GPx_pr>ZY%{?a<5bim;)*_Kefr;^sHIq&&P=+_LWlIkTxo+*(&HXRXT<;rS2A z*~{X^ZSi-@hS3^|v@N|3bnIBb5-!(h7`<%MHajv}M`4ej1 zT362B^oh7L{ffM+;BB!W{H%;iutnVDmv+2wtB4;tV<%h-h=qf%*@+h{mDKs7oqV!b zEo!c{Qw}asskJRKZQE?MIB$boQaq;8;~thv(>_=CcoSqs)bAqWyHL4o{IbaW@Mn4N z7XxB>ug}gJI3n&l@RNQ2%X`F%`XTi|%YN&@!lNp?y57oJ)S_~8R$IBhy(99HHamG2 z4vYM-LMQ*^E>SR=>OAtwA+_@2D$BpSNv%4SVii`DtD^Rq*6QV1s<`30wI(`N1=e1) z0uvrplHPBXd=n$eVm@=qJ`iHv zP1X}hJ?hEYa;rM5Rn_EWSv8{@Rc&0XReP>L)pD#ZZr`q$y)8}1hbK^qs z%!w;beMy+G4xDwir2ite*1zs-3;$GXFKlzRPmZd_j2^3T{Cr+8?Bw4 z2i2}i1=jB72K8KjqSahks`hluu!21LGbPx->%aa?oBAJoT(@gf2-kh9%MAI(TJ+pWh5i9)x;m^^}8vT^&rzjw@_0QS*XU=23A@I*@JEZ@!S=-oOzoq{I z*R2c=?M2pyED%{CvP5K!$Rdq;mB=!Ybs`HzR*Gh+ys%bIFBVuW$8wSNA`3=Vj4T;h zvr#V^S+!9w8(BB9aAf5iOGnnuv3O+l9Lq=6&rtxR0vshkYQRwhqzXtGkUAK3A&^QS zr9f(d6a%RSQVygZNI{T_aFhh82}e%W5mF?iN=TWIIvI7LkV2hZGN~9#TG}enm<)|o9QlzFxQIV=5Wku?0)P+SVYt*GhYHQTRMXHOGm!rN&fjKISl$fK&NRc_J zjFg$9&PH8mq|!!RYNXaiU2LSw#i73`6kleMH(3k&qU_eRcdSSiO3p`P}}bJi|p=?YI|RY*wOe{<#hJRoyEf{ zx28?zZN8#*qm?`5p>)5AH$3ZJ3(rK9ad>G$l--;&%4cqgiq0wH z$oM5uSu<)>4b+Qj=cGE?)g_N5jHu&YpR8HgqiXXDW$mYc^2Q}d?<0@$g+)u>olJG& z?Ppovd&oFB86{2yGK_|yInn5jG5pM zZI5gjf1u9J2jsbd8|wVDN4B52eQR@y--lEnXqP|6~KO_N029OjO zIY5$NWC2Nokq0CZNG6a}Ah|%2v8c0wq+?O%14+oD&IpncBqvBxjI1DOG4g^W#>fnk z8Y4GIau#)Vkn}9-{2&Qh)EPojgyaZG5|Sk(O-P>bKS(q}_nW4>jdv#7lkAD{PKU$p IuqQ_R0G#QIJOBUy literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Panama b/lib/pytz/zoneinfo/America/Panama new file mode 100644 index 0000000000000000000000000000000000000000..5c1c06372c6dc8610ffd14f74e923bdcb9b21d31 GIT binary patch literal 203 zcmWHE%1kq2zyQoZ5fBCeCLji}c^ZI3_m{*Mj7yt(JvbZuu#dpIpmYZGnD z8EsViXMYqrD5PP3j3QPoM-hldtSF+pnGqFwD)NuOIA)Nv_HO5US`-99(4XDMxu460 zry%~miRShPE1bVwOUxS%*8y{QF6lS7;mOASkDmTUoG<)Io)@#;&!KSjLUGI3)$Qxl zHQVyM>{zb4wld{iSA0?B6y&uERd+>}@`KJMnfJ|?a|G3?&3 z|3|g*i6d@7)2FI%&k66w$QiY2Nc+^H6ltfqh86>pjiEViMM97SCmfN z<(3V#h~VjBH`KR5grCh3<;kS3*!zoE8;$9k8^02fqBZ)KicxXv;w)X6`-Q5UNjd8- ze5lu-J*RK`a!6I3`ay1Zr(fNE%#(LKzgtyzy&-E39};&qJSS^gcZs@Cx2&(L74`Ec zb+l}!icTEWv8);uJKd=_&K9b>UwB5|^I5fsAMB8u&J>7-?Q!W2q>Fp2Lb7rHjM$vF zR3@4}5Qz)(a!cf8vE{of_165eYU_J*dRywGYJO=#w@e*X+YgWE`$s#~j@CiFb7+$i z@i*nJr#i&$vH|%(GA>%PdSqKPB-&=1WwL0gNPb);+ZWA?_E+=eo|#F}F|b~Deln*X z>dw;-pPEozO(`vpji^T=O7HC&RF7uAtM@hZs(qdZdC^(Pb70k9-a*&nh&WQWKWkv&??CXroQ%{GyJA{#|^ zifk3xE3#Q+x5##p{URGic8qKp*)y_fWY<=+Z7%kWY#iA+vUOzd$mWsVBil#zk2C=3 z0MY`a2UgPrqzhKl2BZ&G(+H#!NGp(DAk9F!fwTkZ2htFvBS=e-o>)y&kgixwTadn3 zO=FPGAgw`qgER-}4$>Z^KS+a+4k0Z5|p73F(v7Gz#gI)wBxf71AuETS&W* zejyD*I)=0i=^4^Aq-$2wHl%M>(>SDaR?|A9cS!S)?jh|%`iC?S|L-7w1;@!Wv5c5# Umd4ixD}v$DczJoSJQ&XW4V<53a{vGU literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Paramaribo b/lib/pytz/zoneinfo/America/Paramaribo new file mode 100644 index 0000000000000000000000000000000000000000..2f05b2364443c95e1209aa9fa5f9bf3bfed208e6 GIT binary patch literal 308 zcmWHE%1kq2zyNGO5fBCe7+bIb$eGC6w_~4{_mN9UI$O8}BX&sdGu*+z$i&RT`v3nK z4+aJxX~Vz*Bz-{Sxf2W=V3PO$|Em`mczt|B7y^LU&(%GIAvh=mWIP;%kl>UbP+k9l d0OTYP4RRKU200BR4RRicrlJ$MfNnPC0stz%RCNFV literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Phoenix b/lib/pytz/zoneinfo/America/Phoenix new file mode 100644 index 0000000000000000000000000000000000000000..adf28236a2feb68f177f5b002ea068db59eea997 GIT binary patch literal 353 zcmWHE%1kq2zyK^j5fBCeZXgD+1sZ_Fyk%As=I>^2SkNXjVd1Qo4W~PKCY%?)FLS>C z>6#0TQZm1OlnVTQ5y8O32!zZ)$jJ2n|Fm}u4FCVHUckum|Nq;uKkB@H%gRct^ z2Lo|<2+(i{2qEkw9-vCFlYT(;{0D+K7M=|t8stO}4RR)k200Z(gPaSZK~4tIAZLSV apwmG#$oU`|D@${B zYvGe_o7mFrsaLvVsG_f4T+@-*jE)??RM9{|N54E(vG0BQ+S_>*|LCaBjr;0)wO1t; zZmF)7OR9T(R41o@tDeD|`o{2QbvyS+4m`-%=|oXx(h)m1mMzOCes!-uQ68TCrt+bN zvQzk=oWuR{NNQ7AzPf+6|6J{T@@bvVb>DOeVfM7}yYBlP>w@dPelF_&f4-Y_gp_8> zq|M4ZW*kCTmWOaoA7rQbrZ>ogzdtd5=enikutWySYle#q*wYLd88k9%WZ=lqk-;Ow zM*<)bkPt`=BnT1(3FB$vAb~thBqS6P3kilqL&72Pkbp=;BqS0O35rBT!Xj~zz(`~y bG!h#LjzmYodz$#j0T5?;0s`hpqym2cQoGUI literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Port_of_Spain b/lib/pytz/zoneinfo/America/Port_of_Spain new file mode 100644 index 0000000000000000000000000000000000000000..447efbe2c967cc5642b58f51aff86b67073134fb GIT binary patch literal 170 zcmWHE%1kq2zyM4@5fBCe7@MO3$eC)iGx$Y%|#HG)ms7@JMamXMP zH$ikLz1l@^I8eclqg7&_a})%@9GBm5a7W%pudJ_5h##xfzu{(O{LOQE$8US5`G;cf z@>B71!IYk7)mbesE7Rwy5_PKTz@x2})@0ZmQ?-Lg-i61iuCwxGKW$&zH{_e$RPR0G zCSIITars&{g1T*-beLw;r#=b=GkAHZGTZlN=xELkPlje>cT0_S-x|@9`sH%&qF)H- zZmv>o&Xuj`n$KyG%`LHMe`J>a!9T^`uu>>=gI`BtYOl5L7*zx)Vf$><7^x SH-KrNI~d4u2p7`Nytx-*8x)J3LP{?&|36G$-EvQ$HOk-}w2#F>`MA6+O3Uf{mTgZzd$Xp>fh} z;_Op;-Gz2D@tadN{%oU}bmoYi{K^qYINo5df1*LAG?&>M>dItlW!NSbh2_S@$@Zp< zWJ#K}NTM?UK7ub1yPn*oa&6?Hms0sGu>-?5VlifZ? zL$ytkvny5?6jsRXYc6YU`Vv`~^Mx)NpCaMuKilx7F~Zuule&^O+o%@E%@UtDa_ho3kQ!&QGBT_>e(yB z!y$X`bI+I+=T~aUzGk!XbhegOSD95ur|9aXd1g)H6W+Lm(Yh*NF%5r z776$(^6x4fbU*YejPQnA)NSW4ZMQ+xfan2H1fmH<6;G!N@1hJu8;CldP9KOu5RD)z zL3DyB#n1|(7DF$HVhqh7sxfqfD96waq8>v(Pp2S6Lx_qH9U)3Ww1lY1&=aC4LsN*V z3|%40GPLz{>O%DObP7W>hNukD8KN{qYlzwqy&;M-G>53p&>f;YLwkt&4E;S_0vH*9 zq=1nFND?4ffTRJE2S_3ynSi7Mk_$*OAldMA>0so;(EAjyGb$J3<;k{?f(AV!8fU5Xevf+UHNB}keWd4eR0kts;3Ai07h3z98J zx*+-TbP0oG%+sX|k~2@2G)UGUX=CIKk~l`@AgN>I4w5`Z_8{qFP35RySpmqJJm xJzWwZS%jn!l1E4)A(@1v5|T^#AM`TLWpts-X=cfSU`{YQvm_J>hJx8~e*r9o^kK+um<<=d$MsazwcTt_j9H%>>a)F#?ZQQd9gBVlZ(Uh(!^Bza#pIO zjF_Oq2KPy7!Z1z!BgG8A`B2k3ADCCZ`dQOY{$w%^e5tR-o|o6QAJ7qV@5$@Szpx|o zy5x2$98;V{9TJQyLF=pv_~|jsnP`ZjM7kT zOmf!^)^SA@^5*P2nwL3A#^+wv34_ukJp8r|-|Cl%55KpQzP%xD{dm+)KHg{Y&wps& zZs|5tK2cF+{m)N3TC*%U@*Y2lw|q$qopE$aG2ij&H0arnarabSgmj9M673tS( z#Wy0A{ip4`wqK;Gd!Mat{#xdDY_bb#4$J$k)plX&Mf1VVMqQNMW)|00X-(1&v!p0r zm-H+%wV4@Od!@wG4f1K-F~3=U>sMW|w^&wQjoVeRv9kL3OxL{V95v*y`7_7OIB>|3GY%bc?2Lnl96jUkJ-XwE2mp})A_7DP zh!7Ad7-B%=U2oqP-dArdk~gvbaH5+Wr;Oo*HiK_QYtM1{x-5!R!VmLaZ3Coe-_k4|ES z$Pk$!LPMm6hz*e&A~-~Hi0Ba6A;Nof(nG}e=;UVvz@v)*BLt8bFoFPy0wWBNI4}YM zi3B7RkXS&10f`1A93EXfAOZ2{A_57CM;8-FP#{rZgar~8MqnV3VT1+}8%A&-(P4zg zql*tDKptI$AR+STVgv~iBubDlLE;1n6eLpcsSj16E7*8fFn{T|KyD!DFAaqPp+GS4 EZ|0Bbod5s; literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Recife b/lib/pytz/zoneinfo/America/Recife new file mode 100644 index 0000000000000000000000000000000000000000..f0ad7b9897b44440a9120b60f7f4dba436417cbe GIT binary patch literal 728 zcmb`^J1j#{0Eh8guSCUTF&NaLkr)goO4^1&Oe74r0|t{26NAAbVK7OIBrInXgWRz- zS!hi}h(z>3Ct)E}(~{$S$7msOntOjuliRf4-<_JD?Q(vca`Oonr^8&luU$2_t^K)J ztbQmP`|MZo=WcnJUJ^Hv19|gUl($WH-fetRq)Lr4y_*)9)Q-%$A@RDcy|>C~kw2P| z?{xuH810mW#IY#)FTCPjL6x4W} zRudYDZ8gD>=ty{eKJk$OkP(m}kTH-!kWs8=7-Sr)83-8(844N8Y6e3_!+#&nZ#E41 FzW|kqAr}Au literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Regina b/lib/pytz/zoneinfo/America/Regina new file mode 100644 index 0000000000000000000000000000000000000000..5fe8d6b618e34c4c87a7eac43f7a27af41161d02 GIT binary patch literal 994 zcmc)I%S%*Y9Eb7Wl%-5VyqJMViy|}(1r3t+8kQv%jsz`aOcZA2p+6uFEegTK3$7jA zL`0A)FT<2XUdjsyW0`kP-ZCvYM2iUO_&%@gbmPi1yytT`%rJ}R8@(TIz9RdsljaSF ztIQmpb6s zu9t}GFYyQN%A;F)^=5^;R$r{w3k%$h$}06WyIeLe6{*di`Ley?tMAiO@?#{ep>QT XtO!|>)vO6w6tXHj`elX9)XKuUTnF}q literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Resolute b/lib/pytz/zoneinfo/America/Resolute new file mode 100644 index 0000000000000000000000000000000000000000..884b1f6470c78c482f0daa280b85e01312c764da GIT binary patch literal 1930 zcmdUvZ%ov69LGP0E{%;^DTPQ-S`vC3cNlt_^p9f<5=lJ?gv=B}EaOw^32O9VWBRCk z;540%(os*UnPZu)N%nthHODB|Rxz#Rnj7oepDh-Q>-+lE1Gb*n!`|$7uiJ6=?DKjh z*S0-gD*xIw{u3V7;UC^-n}7LgtlR!5S-yVs&Yc%$wAIVZ#<}C;a^1~Exso$y zvCf)4F1Z=AH22pWn|*0a^9KL4Ti*Xp^G|(i1;^jhTT|D|ZQaLp&YE9j?v}Ie_OcSEcEE)UEE&b%8-2Kh#ZrRCkD}VO|chCM| zyZ5NN``XXh{XNg?19c~?qNQCEB|TP|SgDo2y)9M6TV2)A5vk6qbJhL3rDi1N9z6D< zEx)irYxi{8iqlc8Yi_cK4&A6LmzCS99lz`9yaG$ExuD7Mkkyx+(fS|rr6K=I*YL4O zz0GcY?FaVQzE0gx+-DnGo3tfsuWhO-*G(gv zt+lW~TfeBWwrL@4dn0UHF8`oU9IBQl&!^qi)B<_xZ@Dfqt+Ri-c4B44m@?ZQZDBpR-b#Uimt GH1jVLtLuRP literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Rio_Branco b/lib/pytz/zoneinfo/America/Rio_Branco new file mode 100644 index 0000000000000000000000000000000000000000..788d0e9ceb073af24f064c34e1458979afd10903 GIT binary patch literal 656 zcmcK1KTE?v9Dw0#Z3iPNf(RmN?Ke;n#OcJPgW^>)iGx$Y%|#HG)mv(B- ze6W>R!px_R+gevx)kf;}OUo%$?`+le_ammUK4lxFiuzg`)Qgqf=36mgzZd${k2}43 zX(*xG^<8?^*dY^cJDuO28#isOxqN%_vuXcyF5j_jt?DQr$;SexV`gtYUahDdxB8>W z`g5~qI&OLfSDT(Um!k(3N6o>)v1rqZ=70RPgqD9RvDu%UE0%-6KSR!yY!G&Cq1?2_ zxwloG3uWHO`*q9b!|61K3+)($;c}yAvqyQAz2}5A$g%sjDuvx-%DypZb))Sc1U_&$qz};D;Xjw gdL>6BNhC`oO(ahwQLki*q>AJk{D-|pB;uWspN(PoumAu6 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Santa_Isabel b/lib/pytz/zoneinfo/America/Santa_Isabel new file mode 100644 index 0000000000000000000000000000000000000000..1387475394bc24653c36981b9310eb165ce3e4aa GIT binary patch literal 2356 zcmdtie@xV60LSrzP!c7dRFvSbC#7y6o*chC!G0NaVqBn{#F>#9KL%xx5K0lDV{5HB z9&}Q!q9On+5H{kw_6aVjP>^V!s)w&B&k z)DItfzy6!Vpkt)-?U@U$LH&KfHg&N)PhU#OQscfdIk9A`m~`dJ$xx=4igwDW;W%-5 zd`|w*_nVkLGbVrRJSP^8_3B0EhD7XOr@rRBUa`36O(~9biff-$a!GT8SX#4JE(>lK zaRmXne8YONA|*%0uPRa3Er^#1k=ZICl%*3dtWeJ3#S$+Mh=ap<)BX2nH zky=$6D_7TkE0VK+k~ePoP}~&vrF5ls3)kGVPKjv~DWjk3)T!NK%|M?{JKL((b|2C1 zle^Tq*2i`Fkxj}|eOP8RB&$qcqs%Iqud-dGGACnFt&jFfuXCR8P9(?;e@=+pGgoBZ z`A@~hx8n89AG|JZ>G(t6`r;vRTitj1_VymNsc1moQSqG0U#In*`Fqq|iw|mFa*^`Q zz9I{vJgQ*ifZTF%sk-~6le+NhTIFv!s_*G9R7E@Y>EbT8+PX2Qw>1e>;>^>5?I9Jo zlB7$szfz@_a%I`dpGDaxP8pm#D|VcillP6jBX+ir$@>SM7v&YFhHpkVxk62`H zVee&y{(!?@5^xlA^3A!|oZ^7liFqRaz61YaVYBut{AxJN(vY9vOr{o zRSt+tqWUW@SSY)+Uvs`4o$byj-BTMG*ux4b@$f}WLBkM*M zj;tJ6I7qDS_4004V}e1*8l}9gspGl|V{?)B-66QVpaWNIj5( zSWQKcl2}bmkfI<}LCS*E1t|~B8&WrMM`QlHARYQHC08* zYBhC53X4=0DJ@c4q_{|Rk@6z-MGA~m7%8#U)EFtU)l?ZNv(?lYDKt`Pq|`{Qkzym& e#{Yl0V@%e)ChKYbOm~JmJ0kvlAUHWGf{QMSle%^nK?ld`bYm(G z*^1yGhz_NxUEBgH_)}Wtyf?ZDf`ebky+8ZJz1VOSLLunRr(+NN^wO7%~4f74CP%=P&GF#pAQoLOWT@!^*7X8 z_n5BFPO5t8S~i@T-#BU4&9G0s=kt2t;z$i{-RtD>ls}XT^ziPc8tJ;#*`;+QT4KLk zt;Sq>LKt&%6^k2F@*opm<{9 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Santiago b/lib/pytz/zoneinfo/America/Santiago new file mode 100644 index 0000000000000000000000000000000000000000..6542b6106617f4633545d37c8224e5e4a637cc6d GIT binary patch literal 2515 zcmd_rZ%kEX0LSrj0f9g=q!dt-EJ=gl;g13)_=q5o{J90>KQtsqKm-T^BPh`qNv%aP z8#ybowMMS#16DwT`K&dRqT;RyT{>GcTdl>&O3d{3e2=+a^rE+Iox5{BXLpzJ>i2yL zHkFsgS^v0v%{Sa!UFPOJu+==;MaJ5LMc+ERTD}=RWbM#uYvXWFW3udBZH*nhER5A&VG(LZN}lw#0+f&cp!7L6seG>m$(xS5l;7E3 zrGNKNV&>3<3}_n@H@`9@*ftmZo?9x6Rw4_1Yy7qv+EwDq)32)YOrgo}e z?=3pm^^gj=uu6yaB&vCz70LPgLe+w!Df0H3Kh(nZFd4SXQ`}MQAr~cG5qIXEmv@Dn z6^j!sz4-ER5&rYEzWekcvEYj-=b;RpkDzdLl-@9kGit4P;(It;4(Yja0 zq^7Ib;&K_6JR#!cI=Re0O)L-SmkHkED$$xH6F>G9N#9546^DNi_l*STmCuff%EHy)yk`jmikzFEb`RMCMe3%o?l~_q#U8 zb^Vsg?pYyohJ8e?bC1q@`G|6+p4Jbvyr3S8_)X>))v5yjQ*wR61+o6mcsP2eF79-SZNd9wNo%DlnXZ%Di*wcXQ-!ir3RT*l zAj`sLtFo6uWV!nnRnd4wK6dU)Rk>}he*EM`Q6(?y>h5t-6ZVzf(bgwwtsz}kc0km9 z-KFa@n??P|plpokRE=-FDw_hERMRu9@`&V`b&D)yYBil!N|GdxuF4F;^1xOE&CLmov+JN){X@srm z1kwtm7f3UZZXoSI`hheA=?Kyiq$fyIkggzYLHdF;#@2KOX^pMv4bmK>J4kzw{vZuP zI)tBCWJFy+oR6Yr2WF6X_?? zP^69wtCHqvcd({7~SNW+niBP~aIjx-(VI?{He??~g3&fA*SBfYmZ%}2U# zYub!H!G#@4~GBYu=z#%I$>;M1z zDi|1mWC8=r|NqAiFmnF?zjFfv@BjY?b}$NpL>R<;d_x$5U4VqE3lIkbu?LXh2xK6G z5W-#&0;&glmVBBeJ~9S0uT)f1~3f_3J?tn4iF6r5)cgv76uxI3l}h;Ot=6&*Nzha literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Sao_Paulo b/lib/pytz/zoneinfo/America/Sao_Paulo new file mode 100644 index 0000000000000000000000000000000000000000..552ce7c29228ef36e2dce0ece5e782ba67d2b607 GIT binary patch literal 2015 zcmc)KUrg0y9LMnkl^ZxUxBgkFUt^9DC;Y-8M6)s(0>QD6pN3?nA_!8cME)!Ckm=gk zbY$g5t37k8x!m$`(}^w{IZd5&q@%SMBFRlfu56~KBXxS-kC$E4oj-QY>x=>8;`{yt zHI4Oop?^KMx$p4eX>%_=kBPar4?b%?&^4}XuFqjc!*^z~dDKdz$4qH!)Q3i&G8xr(+KfwUWa{+a?bP0rk~w9ZW*!|fS)nVM z^*eXbw{3ZBr>QtnZ=*|JGxIu2?K5TX%ClSQ zv{Gi6`L!il6?(t~MOhmBR45BGM(e`U_e*u^Wv$*bB8x8dXw5qV^8A@$ySSlSUf6rq zE-BqDFShTqOLM<8%bGgu^6|#hmcMFi6Gx>kdx5Pxx5BKvt65j>pKBVf2HMzJE30}7 zv}seZyma6`eYqx6UfG$@)icv%P3t{&?Sx@zUL3d0f1Z_=S$($U`+c(R!7uE(V`t3z zk&o?$y+6vv{+QkL)(-RfiI4P+oN_crrg@EWU{v+6iOzC22*ZN zCcphAlvWW9LUZO<@fNrXX7n~`j7&V3Xu|#8j&KADv>h1u1=&-ud5U(6{!^|7O55~ z7pWI17^xU38L1g58mSs7+w1B^3irCoksA9<4rD!$1wmE>SrTMTkVQdO1z8qkU66(Gx|Kne#_QGw zSsbrh9b|cs^+6U0Ss`SJkTpUU30Wm%nUHlt7Ru{Z3RxmlIHzGd@kO~pa3+@mI2>f*&H|@?;P9*`+Kt#JJ$QbzRY&qu~ zb8k1MbLPUum~(jc2kIX{<*#PTSX*Pw)ahcSrE@lA;2gU?&u@S9M}PHCe{}44eEBv0 zc|Tu)HJcjptbe>>&3Ab7YBg`3lXjU;M|SyA68udIrsdE0DlzkMS5m@tO^*IflOKMe zDI=%!xgWap`3na$bzo4^dc%_b$)_^CLnUMTNAg0jMP96~lb3t}$t?BA3`e14rDe;^ zXHq0P#;w_-`8w;DES)`^q%U8J)j56R>gfJWU+Mfwb9R5LxmyO*S$|SpHCH9CrBCLT z^-KPWgHn)wR0{Ljq;Mi6MX8-ybYr~~KWWvHLAShitx`*SYPGDtMCa{UsPm7c>4Jt# zUAVhg7L~`SyFOK3&$_K1_k@(ke52mXo8rCyt1ON_CyR$J%aW1L=)B7(%{$4^6uU;ZR)9z_Zl@7a?6?&iTv>(YVzOD))aGUR#g07pMCy-<@WNf2v{ET;Niji+`RY=^I!%3#T}2^ zf5iWeM7U?Z@skR3p_0NDd%6Odg%wgK4(WFwHBK(+$e3uH5p-LN&=f$Rse zA;^v(TY~HfvMI=}AlriM3$iiD&LCTZ>>Qj*e!>DZcagtGuP?xyPWouEACHy%)u=H literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Shiprock b/lib/pytz/zoneinfo/America/Shiprock new file mode 100644 index 0000000000000000000000000000000000000000..7fc669171f88e8e1fb0c1483bb83e746e5f1c779 GIT binary patch literal 2453 zcmdtjeN5F=9LMnkqQH%ZQ;8vb8FWLuL3o9$5k`URY6U)Y(?UE3#rVT< zR*YFDf|Ayni4SWwHq3b&mt~`eO%k}b^FAy8>5u+w>&t$;e%!&IpEvGR z-Zfd`A2->2!ozi$hxe(9ANJ?zJ^i7o`=tck^V$z;Z>?YNYndW?3oq&3_WkO^wg^2m z=l6!8>R53#-KR(Ab%;NrJ^EUhPh1;)Mvi^&5##48Hesdb*xmIy=m9w`H%Z)*G*8CPE>zRQ9WpLBQN{f_SI2)D zt`dgA^o&zKs+or`>sx!ys9C-l^0w`V)a(@jIcM!h;`Zz>FGv zB*zAkG<-@YUv`T-2lnZda}6rB>qVV*v`nQp)#;2^7O2d+7MZninwsxiBNvp7s_euE ze9|x>fuGjy37}>mM5fY_lmETdpuf~XP;K(-=s*-%&&xJFiNiU4~kX2Bl3~q z1ER8JNIp8yCaP+V$<*7-ulRIbVydb;yRY*i1vPNW)$SRR#BI`sJimcRXmWr$uS*+Ep7FjN`USz?@imhhJ$eNKwBdbQc zY+hJ5XBG~uoMY+8+L6U0t4EfPtlw%1fKBc$bvVj{)Q6)$NQJDXL`aRS zrbtMYILd_72`Lm(DWp_Lt&n0N)k4aJ)C(yXQZb}tNX@LKXh_vK%7)a9qi{&&I7)}q zj-z-;^^o!*^+O7XRM2Wlh}6((iilLvYRZVzk)x1EC6Q7hwM2@ER1+yDQct9yNJXut zq)1Jzrl?3&t){FVrON6L@X jUtDkg|1SRy^Iu`1`R|b8nxB@HmXYGh%uLHn%W(V&DI1f# literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Sitka b/lib/pytz/zoneinfo/America/Sitka new file mode 100644 index 0000000000000000000000000000000000000000..48fc6affdfaf7271c2af42ef24ec852d10e90632 GIT binary patch literal 2350 zcmciCeN2^A0LSrr5x8)LdP+z{q$4U*)e|GxhE zmM3#v|2R?RKU_|qxqPQ=H?PyX6V>>C-H|RdiI3{ zDrtPap7Vi6B_D~@x9|T>iOym2C?&)TB=H zz9iBnzSQZL+C;|437vWN1(h|lUuPd(uNHMbr{&8vDyLb=-1c0RSH45uQ5&c7eND0; z_ZL;@xla})%@9Qw7s}$vpT(UYdF5T_J`*K6Rp0&YadA&DN-y5GPu$yjNtf1AbG)UqGX%kr!NQGWK6tccw#Dvl1z)> z>V{pqW^ajFS<`Yd*Nfp{3a4G+989I=EK?T0KU#?CLiPayb%etxaqJB6=K0I+s zH0-=89~l`IYnsO7qeH#ov8v0uvG;&_JZn@x(Y#AF#cI8_yjiWivPU=jDpd2C4&CC( zP%Q@odfmlX_0-;W`Se)2c&2leT(4t9YoJiJ^<5Pk3TDZTtz)7+eo}T+9}yj)nYy!R zRCP}Ls=E@j>KZwxH(lGKHV?h0w|w5Awsya!w;c?#`cP^*jT)tDU@s~Lva~7W*ufuJ8a$T*RKTFpq2p<2yYk-;LPMTU!v7a1@zVr0n3n2|vvqeg~}j2js^ zGIC_-$k>s=Tg~XLX86eXkpLhOKth1T00{yT1tbhe9FRaDkw8L$#KLNVfkeY1qloi86-4FY>?m}(XpEFAn`#0ghU7l5fURLNJx~BFd=b5 z0)<2h2^A76s|gkoEvpF^5-+O>7!olgWJt`ApdnF1!iK~R2^pZtR{F!^sFX) zNc^lOfJg+95F#-|f`~*B2_q6mB#=lXkx(MBM1qM#(`v$r#M5d5ibT|ELW;x`2`Um* zB&sExZnn&<%E`&j I$(G(f0AVLoegFUf literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/St_Barthelemy b/lib/pytz/zoneinfo/America/St_Barthelemy new file mode 100644 index 0000000000000000000000000000000000000000..447efbe2c967cc5642b58f51aff86b67073134fb GIT binary patch literal 170 zcmWHE%1kq2zyM4@5fBCe7@MO3$eC#89ZrJ2Gyfx8HM9?nNnve zyG#aDR*(`ArK`qfH+xddQPYm&Mz@U+Ei@N1B)9WD_Qsl~rkUQg%=&p))Ny?A|Ne5X zEu5X^`qL{$f5MwrtA6v`{{j8W%I*2xo?q3}QRXXotbD_sMHOow4!qzFdtO}8-}};% z4$mt4xc6nN(euj8GXt+?Z1Pl&{UuN}_(jiaXYUKF?y|(Q`q%ovn&50t^%v!V*S9Th zsHravyisj6)V@;YeRJu=hPnqI@V+%Ssp0L}`QEkJu?_1cW_W$W4mPY$NbqhrBgV6_ z$N0d;wgaAbS_cQ}cW?9f%d&6tZ;z~e_wAavO}9wn_g9I1y`tp4ogX=YMq7SSHCHtH^W>M0`j9}&F1Lw=XkCYrM1)c3u6In4>}s`>B{rzJ9=T6XMq4mA1I!P<4s51T90kMH_L zYfZg8R9+ztFE5ur-M?5IDJqqr8!XY5Qy`CCK2iKUB2ykq%6ES0kto}vGo1Eg6V&nM z1gAp{QNKFT&IwyfFd_ri3iPhpzsJENb| zZ&F`%hWlsd%%r0#?)<)@zy5EDk2osg54XtyUn_Cej?d-U?`;t0)UKE3zOYgZoVPu6 zUTMB{{`A_=pj(PR8$9ZX(2&Wqf(iZRg%U3qA51*)xIHv>aByg&ZC}t58NAS+XAj#o z$QoYewv+3+S|dv0?UcvAw^HX^6iU1E6DvI{E;Mr5YHL(Nd+4IHrPjrffslJZRnXn! z4~;(lXmHHtiqIwd<_0gVskg^&%n4q$yxhM0xzymeqEh>cB~z^NIR*9vE5*tfk!fdU z^tLjOEC^){PY!17nh~1Ry=QPz-6f&P2Y(7)xl-DmJw2@KMPuwKYrBgauUk%C(JHRG zG+s`dw?kY#phMwuu#6S4z()pCH$gZb+d+HDW z{dZCS$=`bFzb732^huX191g6C=whCu^|Lb1j_c%eH}gr)aJZ#8qVLI{da`p}Q!@1X zYW<$7-`DWH{=mE*aWq!&mtkZu@tJCJ@DbwiMjAT2?9f;0u`3epy&FGypM z&LFKpdV@3v>5fsi2kDPdHwftv(jufsNRyB*A#FnXgft526w)fBS4gvvZXxYL`h_&i zs5^$V4CxutG&Eh~fwu9|eFGYYbPj19(mSMiNcWKTA^k%dh;-1XTZr@!X(G}^q>V@) zkwzk&L|TdT5@{yVO{ASjKaqwa9YtDd)ICL-igXoeE7Dh_u}Ei;)*`({nu~N7X)n@W zq`^krVWh=I-D9N5NSBc|BYj31jdU7mHPUOO*+{pMb|d{p8jf@vX}MAN9BDezb)@Y` z-;u^6okv=a^d4zG(tV`;NdJ)yVAMMR*#btr2aru*)Vl!L2FN}@HUhE}kgb611!OZI zy8+n_$bLXJgi-GZWJ?(Jo<(mmAo~N^Ajl3u zwun*h5oD7X^)5lSiBazpWTPNE1=%XdUO_esvRjbtg6tP$!yr2b*)m4GXOK-})Vl`R zHb%W~kd1@v9AxVtdk5J($nHV5kLw>ypNLL>SSA0DpT8bIv3ek-k4aC_TWMH!dU9HF P%CPLz)a2CUl-S<@u$syt literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/St_Kitts b/lib/pytz/zoneinfo/America/St_Kitts new file mode 100644 index 0000000000000000000000000000000000000000..447efbe2c967cc5642b58f51aff86b67073134fb GIT binary patch literal 170 zcmWHE%1kq2zyM4@5fBCe7@MO3$eCbxU^AOkY6*VZ&)VM<<vyPpTq@kQO9 zT&Amyy{t{<-nWu+B+Z?`+!i*awf<<@v-fhhcx^gzCEcl0(|xE(KR0ilrYGdNH#9Hp zro7%HX0YFoxB9>ix6dUk&sa$XsgY3Q=QHZuVPC|#vsw^3cVuPU-&voAl*!e6Ecq4P zf^JcFEtX}ynczF)KXm=@-|$!G=nUx%=?>`+ap0*QATA(2AWk4&AZ{RjAdWoM6T}t7 Z7sMIF8^j&NAH*TVBl90FGb(o}^95{L?5h9( literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Tegucigalpa b/lib/pytz/zoneinfo/America/Tegucigalpa new file mode 100644 index 0000000000000000000000000000000000000000..7aea8f9989fbdedf0527a172b41871e70d439060 GIT binary patch literal 278 zcmWHE%1kq2zyQoZ5fBCe4j=}xc^ZJk5+83Dg;{qVD8|eVP^#MZK-s1?z$Lclfy=cM z7Z{ir!SMh8bv6tP|NrmYz{v9d|LO${96r7w49+e<92^2P0|Y`yu=fW<3(&;>|3UVH hxF9!xXplQVG{`L=8sr`j4RRBhCedA7Kqs1U0RT7DJ_!H- literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Thule b/lib/pytz/zoneinfo/America/Thule new file mode 100644 index 0000000000000000000000000000000000000000..deefcc8df5a1111fb1ccacd1d67f44165d9a736c GIT binary patch literal 1528 zcmd7RO-PhM0Eh84LqakwQZJxJdrw&20%>H&4b}#$<{iU_1J&r$4u=#|` zk>>JxV~=?n?rHrQ^{qok2P)Lg`EtE$CROd8ZkNuv!y;z1Ou8ncMQnG9jJpvk+%+ZI z)AUKiXC>)`{MW)8wO#M=+!K34ESsQ3N2tM+B@O0Zh2PJ-*oD;Z0 zs(J0LY)R}BEsK+~ZA+bKn;w+yt2v@$v{iO4xI|ZXiM%`&F1jm|CX$a{EX$k2G zX$t8IX$$EKX$B6Z6W(YHiqmB*&4Dp zWOK;wknJJ+vo#w;c4%w1i0skUY!cZevQ1>4$VQQ!B3s4(Wv`)Tx(Q~&PG7vsU7zP?{nsD;+xp%3Rb81q1{ZSLwb6&?kq|FqGss#0? zOs&-_arUrWo_bjMyhGwMkEcP}#wV$nzxia=`Eiwb_7}Ns_>9Ur`ng>H;!!ob z-7|9@J*cwlel$5-2ld>*DRaZJr}T~KubAAtZ8|slk@$Ue+CTcT=b$iXzQqizURTi~NRb_>$nmA&D z1sip6WWT9SS*oj#wU}k&IePi?`((veOH^oQv#fkKTh*)&No`+(y0g4URy{bTR%fP3 zxb71bo}7?1f!EZUpQf9&S*P{dQy0y;=n-9ic*NX2x?ivFK5p(AYS9}S`pw3Hm0E?~ zkxf0#YI8xK+#3n0hLjFz3>K-z@p_5mrm4th<F=2x!yR+OM~ze`vPXbn5NVAEdpkPqmK@OGieB>KHmCotNs>!vlL| z$Jga*XIDfXc`r+KZK#%A&v+^>eo8|8)c?dQ7JDP?d9m2*FL(*D*on8i#8~X(lX1!J zPIdQ;6``x!5(?aHjObnSBGBu~28!|a$cF6RQ`5_ZTW{6A?nIkeuWR}P@k$EB$ zMP`aj6`8BkP8OLhGF@c8$b^v@BU47^j7%DtH8O2v-pIs}nLF*&k-0nVIc@Tg>^W`vko-Aq0+9?NDMWIJBoWCX zl13ztNFtF;BB?}j>9om2vgx$xMDpph2}LrBq!h_1l2jzCNLrD+djG?|`fPjyHoEzt S`Guv0#rdI#9KL%xx5K0lDV{5HB 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 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Tortola b/lib/pytz/zoneinfo/America/Tortola new file mode 100644 index 0000000000000000000000000000000000000000..447efbe2c967cc5642b58f51aff86b67073134fb GIT binary patch literal 170 zcmWHE%1kq2zyM4@5fBCe7@MO3$eCmnJ5w3NlgS50YOnT({xr$L}ev0!n+jJFzEWqhQ&ivqqmnnp1o21F!!oHpl@V+xnDOm?@_1x$K-UKQD=NL^3(2*jIVZ^{JiBg(_Fb$ekodM&X(rNuNia9 zZ+Yo*E-uBKchA!ode2rZvEy`0`zX~K5~EuiBGtw7etl`*4b^tES^r+qq%K!?%9T|I z)zxyJv~N0Wt`*nG^@Z=7KeDRi&xy~Q8zal4V`!DS*{eWq^(a%fI-b+FTMAU?$$b6S zm(!I0fLjMXh*z$iaXRS5a233+r|z<9sOh>mR=Uj&Gucas{MqemyVm@y$~IxVJ~O1luP$KJl6#vSd{>8HO^PELRydJM{Fn znd;%UYh=cWWhQgOHktX!43o8Bt<2hG%I{Qmb>T#2EZk(Ps z;HsMUMU2k%H>&x&{Q6Pfezl;iSwB|0L**?!q8C=KSBo-zviOBM0`Hihu7N=LW>*jAJ=}S!8JQl}tSR#9-e=%!{_#gP8~Y<3wr|g_0TCFFVv4?3kXyYDIrorq=-lr zkuoB6L<)&i5-FvlttC=Sq?$-Mk$NHpMJkGv6sajvRHUj%S&_OTg+(fhloqM2qb)8{ zU8KB7eUSnq6-G*o)EFr;Qe~vfNS%>FBb9cvrABJ)Xp4^%tOK$T$Vxccr9jrg z(JltE8jf~3ko7effh^!#8gvc5qi-@cuvW&<&y8gfO7-m;9&93M0 U%uxx+35mlqladmW5)#Ay2A}k~%K!iX literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Virgin b/lib/pytz/zoneinfo/America/Virgin new file mode 100644 index 0000000000000000000000000000000000000000..447efbe2c967cc5642b58f51aff86b67073134fb GIT binary patch literal 170 zcmWHE%1kq2zyM4@5fBCe7@MO3$eCsoqcrX+}v(I+~(=*mrc&u&MkLdo|(Ve54N-|w@xjc zCyXK^_AXI_?EERQraTYrnlY&rRA#>cW+Q;}`Rcxi)>^ME`K|${Py@hVy>y9Nt=? ze=AAI_`-g5H?Ubf(6&?0h_6%GwNX8D=@K=opi1Y=Yn0j3a&&HbrR3hJFb{q=OZ>w# zP2l6-WzN}g^U#Uwq7#es+yfuUyjYgbYyU>gue_xnUj3n3ko|?uFHEWYi7``FVpBspSJX=8=o1)uVlXn8)6GOFiE4t$CvNl&q*9GEX+W zDK#a=tgP7~D}Nc$;o^fTJaSIgW^GrsgGcr1u{G+cV}qvdt9FU(J#5yTuao+XyG+B8 zpgg@iZq_E0H2SMebln|^-V2ym<(CrsewkiB=eAn^iC@PjM%0Fr6Z+ZFb82Jn4gK8E zQMIY*vfiB9qqamw&DPfs%eLZ6=K0oL(v;P2n!|Bv9_ux&`PI^TwZ*h$1f=bQRi^z1 zPhL3EthZnDs~w53e(}tN>WCHS&b}M!rKgV($nnczDenm)2C$o2OrNn(B$)Z zUSBe8l0A3&rn>WV_f($uzNF3I?3?Y*fx1Z47q78*qrIQ8cLU$;iw66m!OE59o_`tr z_Z=kdpSvB5|NVcSz4pC!@EEcSWE;pnkc}WaLAK(wdqFmX>;~BmKhJ)U4Iw*1wuI~n z*%Y!XWLr+VFJxoL&XBDkdqXyd><-x;vOi>l$PSS$B6~zO>9o5=@ZHvS(z|$gYuXJMF%ajUzipwvOx_**vm)Wc$eekp>_gKw5zG z0BM5Lb^&RF)Aj*rgwu8cX$8^?q!~yzkai&bKpKK{1ZfG<6Qn6l+ZCiOPTLoxF;3eV zq%}xykmexWLE3}#2Wb$}A*4k}kB}xIT|(OAw0%Mv<+PnbTIIC8LYjqi3uzb9FQj2e z$B>pGJwuv?bPZ{n)AkK%oYQs=X`R#d4rw0JJ*0g||BwbE9Yk8_`@hF9(^fKMD_Im- S94rr(7DdX+f@Q(d%s&C-P%%gV literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Winnipeg b/lib/pytz/zoneinfo/America/Winnipeg new file mode 100644 index 0000000000000000000000000000000000000000..2ffe3d8d8e012445aa961fc53b38934681dd2a2c GIT binary patch literal 2891 zcmeH|YfP1O9LImh8;GK2VuS>y6+;mL#qdH|>KG(~dPEd5H4L$g#~X?l{56@ES8A4* zQKXJqt`$0$;$>uN&aIq7lq8K1m7GdGsavST>HqoH3%A^S)62eR|L61Y49+=k_dv4M>sp);n{V{&OoR@O9HfWpF)^Bt#n76xdGTXgaw?%*6wZW;YEYx4t z&3Eccv-DD)*J&t9)XT|3oGa79^=f3W)0i|ue(gTky%rHB*KYT8ubXdky{g&0(byn2 zYmU23CyvW+8xOm8^2_vY>`eDw*A%_)Um*9JbLGLcOldivEPtLHCao3y#rJur$kssd ztZ9`ti*HHWc_G?vMkj5b-l82wHmP4so%;7atsT1^(E!<_0q#!iRKH0(*M1{`M;2+9 z13RSauJ@(ewpH@Px`oocaF#rommxi-BuP+mg7h33DNjX)NN}Gq`m}$GgtUp!klVr9 ztD&QYR^8WUzP+JgdoF7Dj#JvZpsPIlUb*&}^t<$(^MgDWUoFq4d?hageJv6FHb_Kk zl|}~4m&m%k+V8qo`d5CaQPqwPC|#`4dnf3?qA41)X|TrT7D(KJo;oNgQwC3H*7%5F zG9>ONebFye5__c=wo?leVx8svQkFoAJJEeOZ3&W zojNLKg^t>vUq5n2riljOiOH+kna*q}^&vurUZqjAvQ=H{Ri*!Xrlv6Zqvaa0P#cAWQueR;} zx%vCYM_t=@_-|j2{lG_kiHD#0d}TL9e7*y_J?(tHFSd)nz3*(V-5!2EHq|SmMw>Iy zoXO^-d(FSNh{xlx5b-`<4~NaKT0J!LH)cMwoGZIOfat=~C38E;7 zrXZ@aG`fN)%hG5IqArNOAPR$M45BiK&LB#IXwA~74Wc)Q;vkxXR(0Hlm5 z4E;eA2+<%!g%BM=lnBuxM2(h4j}S#dG|5mUM3)R@GPKE1CqthMg)%hCP$@&F45c!( z3Q;RVua-u!5Y0kV3(+k^xe)C_)XUH>M8OOVGgQpbF+<4=En6BjL-cHE6b;cdL)8#n zLzE5CHbmVJeM1z^&^Scp44p%i&d@qU?F_wJ8pSg-&rm%>_YCDjw9imKME{HgKr#SH z0VD^OCJB%%K+<4o^1w)hrO5;%6_zF!jATHv0Z9iWACQDVG6G2nBqxxhK(Yc!i>1j6 zBr%pIGmO+&n%ppw1IZ2}J&^n`5(LQ*BSnxLL6QW?5+qHKJV6p=X)*;#m8HoQBw3aw zTaa`?^2JCPBx8(}L2|}O8YF9sv_bO5NSvj~93*v?CU=nJS(@xY(g(>OB!Q3&LQ)9H kAtZ_Ne-n*Bjr&Y4hnQ?er4EXYi;js(jg5_tjgATU3t;rI(f|Me literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/America/Yakutat b/lib/pytz/zoneinfo/America/Yakutat new file mode 100644 index 0000000000000000000000000000000000000000..f3d739901c67e857352693dffa07b52acfae431e GIT binary patch literal 2314 zcmciCZA{fw0LSq^2wWg2N{9#PcJcw_(E|!xiZT?UD-sabn-Ezjc88TDDZluJtsF;g^Ht4P&GX;+e=hfKy!(B9 z4J}XSJO4T^^9`3XU@o8Cz2yk+U-Tr!jTQx1&1d%PA3iYFOWTVpQDr)(0}~ zz_7S|?~uG>YoD0g(ktWZH;4r9dU#LCe=`R9-;I{Pujcv|^WBRu``d(wk*r z{_m>D^^o+W&J~_Zi)Hc5Z{prhqUC*4pNkTmrtg3Mgm~c9NWJ{vLGfVgWnH@aJ+-3x zGrh9;fGS(^jxI0TuF8M8AS-ePMa8+((i^)?c#n<9RaY8Ckjgv%f^umIU;poo-c^>eW8KqkMm5X@9{*<^S$sxz-&NYd_AE^|Kd5!$^#LeEPI# z+TDUU5ZuD>~ELPPGpMbI@id}I!3hmi)7otRk5WoSw7!7A=(pWWJmQ;(Gg74ot|;k zIsJ$3O46!pY)Wsvwoh#v8r9ps=ukU)hIRLGzv@}nr*{r|R7mKYkgyv*5#cxS2?o1E z948p;YjeVa!GYe8Nc)bl?>PI8x4$N@uJSqcb>=>1ZjHHRKBu(OzRb7gnE!Jf-+zxO z()`Zlyk;(+-PicboS-?&Po3Y1-Tg%;k&z)ovzoD?9ULDR9mfn07#}h~WQ52Nkuf5J zL`G>f!$ihuH3LOPiVPJQD>7JQw8(Ig@gf68MvM#@88b3yWYoy8k#QpfM@DWnL${i- zBZEgqj|?9fKN0{W0!Rpu7$8AFqJV?}i31V{tBC{>3ag0)5)337NH~yqAOS%lf`kN# z2@(_}Do9w6xFCT+B7=m+YGQ)~2Z;_69wa_UfRG3wAwpt=1PO@}5+)>0NT94HQb?$* zCRRwWtR`AWxR7`u0Yf5&gbaxp5;P=gNZ63LA%U}+$RVM#n%E)1vzq83;X~qw1Q3ZJ z5<(<~NDz@IB4I@0hy)UeBoa!ii6s(DtBEEOPOFJ05>OGB0)u>ii8!3D-u{F zvPfvHCbmd$ttPric&#SBNPv+DBOyj&j072pG7@ITlsPOk{DzM!;wC-OUp5-NG^c z;=OXL&1AW1{?STO*J^Gw*YKaRxpQm%Sh#*~mJO>-Hj8hc=jY%4>aVum?(X5-ZvOLm zzLIU}9hK%Eccc3kKHPry;qME?eT|hCnvVzbHM{JOp6s?lbFI9sXKKZv$(z!h_U0{d zQ_%3BonKR8ZYfz|3zyc*g4rRvFgGj?~b$_GelA?q$98*m+r!S!8c} z;e;&R6xd}uKQXsgePi!f|BhK+@R1FdstHeD(vr|_Q!;T@OD`wQonx1< z`>Qi%&1gvPIdjyk9r{J@J#x^j>;6>l>pvp*H;w88od=|@{3Wfg+bZ?HkK1^p*TgR# zw+(YTOv9-`yZ*{L)A;I}`tWD%lIR`KN8Vd2P3>vjFuX(_UDK$|nOxae9MR;a?QxI=+(bhdKV|d?)|K+n(~j;=c_7-Z=8kk+<%3?;Uyb$h+rfynW>T zb2NZ-z|jKI1JVT2h1a!#^no;jbb_>k^nx^lbc3{m^uy5*(h)~XNKanZ6w;N~wT1M> z(HPPh(i+km(j3wq(jL+u(jd|y(jw9$(j?NQ*R_fC$x^oul% zbd0o&^z3y_BVBu4+eqJD*ErHSN9#!MNb^YdNc%|t$Oa%gfNTM>2VS=c$S!!@HX!@p zbsK@~1jkk&d%>|8$Zl|K2eKa=8-nZzvL(o#Ae(~hiq~xmvM*k@G04t%-PRy`gKQ46 zI~?1C><`BVAv?seMaUj;Y!b3dUbjuiK6%|nAv@)DTZQZuvRTM(A=`!Q7qVgaf7!8+ ZTe#J3+{zLwqm|KES)!sMS`m$f{sy2q-OvC4 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Antarctica/Casey b/lib/pytz/zoneinfo/Antarctica/Casey new file mode 100644 index 0000000000000000000000000000000000000000..614d84cd1a1fb50f2fcda3bc855b7c3a783f6f6d GIT binary patch literal 272 zcmWHE%1kq2zyK^j5fBCeHXsJE`5J)4Ke;mvUbom3y!%gm@LM@Y!Qc7p1O`SXMkZ#U zBp4JlfK<=gz`)7C0AlMJ7%(`72Zt~?I|2zHU4+J1bfM}3I eKs3lPAOLa@hz2HJp4%`rFfcMO0foSzX8}kZkmS%c rFklGq4PkI`2@QcthLB*%52&91Kmf7~M1w2@(Ii>Q1#*C{p#c{F7V9YZ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Antarctica/Macquarie b/lib/pytz/zoneinfo/Antarctica/Macquarie new file mode 100644 index 0000000000000000000000000000000000000000..3529ebe043ae1deb94a37364023734cf46a9fa5d GIT binary patch literal 1530 zcmdUuNk~<37)QUWz8;!GrI#MP-WytVKjLEW!e({^ypf7Oh(Jd)#~eT<%@Hb3Ap;jal-?oaPA^ z+ixz;p=xej&sy~QNbJ`h@9?3iz$Te}*e-KJtujARD+{Lwb+JEBq~@|(-Wc&I91!0V zx#|}bEsi}=>X^w{2+ zrF&FXwX{j7>xP8wYm~5s^Aes@A*+3NOGMlejd+(Skye>T_8-=$=|qk8mTJscfVz$) z=-R785?kA9NRf~#A!Rb^v}p=uRLUroQ7fa^|0LM}GEU9R4EPBl^-h`q literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Antarctica/Mawson b/lib/pytz/zoneinfo/Antarctica/Mawson new file mode 100644 index 0000000000000000000000000000000000000000..a633b545097f40f275caeebd4c94c94e2b853065 GIT binary patch literal 204 zcmWHE%1kq2zyQoZ5fBCe7@M;J$a$n-)ZleX$$^293CIJ3kOT%61_rkP1{Pfd0|sBm d@DP{;31iG`@AUi-@V(sAq*{N&F1po~L7ghiO literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Antarctica/McMurdo b/lib/pytz/zoneinfo/Antarctica/McMurdo new file mode 100644 index 0000000000000000000000000000000000000000..a5f5b6d5e60f15ebdbb747228006e8fe06dd4a01 GIT binary patch literal 2460 zcmd_rdrXye9LMqJpwhVKWemws!@O`gTvUW2LIninl6fQ~qi>S%pdpkbbb(AGa|~%Z3evp;&y&hz^1>^y&*KR)l{ z$}cI3HU4(pV12@yYnS!rJbt5fYi)0HA6U92udV95d2r!*Y0v93-wExLL-8$U$EX(R z45~9bf9%!6!=>htkDBz|!5s6wb8bEQ_7(TB6CY~Vwn2Ay<32sU?uff*^EN$^z03W6 zVY&7?YuqO@>!r_M-2D+{(towuJoVKp$zDN!sMo$d>V0XC_%!^kzJtfrujY*UcQ$H3 zLAT!ca;=U{+O6ZNigkR*GddwJLnn+BX<&S~242`KK~vKusBg6dJHjNmX_4IYov%#V zGD~jmz9=EZJ~H|B0hy9EBvUuG$t}@d8d~y+P7C-!Z*@9ky2k>Y;df4EoSmjKhk9jJ zkEe!x+$7<9LnY#^trA%`Mx6C)C2GwDi7w5On8hDRY;K9p4%;hp;+E)K?|O*~jMTWF zTXf!)0FD2=P7}VkthXI3)!V!LC2>cN-qG-rB(0CpJ8Mo!^2%(PU(hZK5~F2d(o2#u zX`G~nR7vW!UnFfLUlv`h)$}uol5x6N7at3eB^?=>*V3}_OTly7 z_5QL95wk)c$O)HK>A6}MK$EbgLd5#|QpS}#EanPEBvA^Fj+A!Ye zG`tL>xtsH$0f#?l!#Z=%%yJpo`OCQ3rxX{@84ibyb#wju1YfnjW>0YVuZON%*Zhvm zW@M7cERks<^F$_!%oLd_GFN1>w$^Ns=_2z*CXCD&nKCkGWYWm2k!d6IMkbET9GN;Y zcVzO&>}{>-BlG9yk^oyP14s&x93V+RvVf!k$pexIBojy~kX#_iu(h&*q{G(A2a*t5 zD<%kQ^aNLb8OU3CRk=!H6N3xHk-}s-j-phJNK?q5=|}@(B~kF+lT>q>Q8_ZzAV3 zTMgZusBO)h>5saA3tYdY^PyVF9HMhBw;Efm&G|4qg!=dQ{$bs8)lC=u&;I|{f9LF+ zos0kb6I@+io9X@Ih_&xBPZ>W>Qx`Kl@XaOx`z1PdT+f zrZzs%)AlAw(vC6exlp7$KX*jEQ1+`#PrRXK1Uxfi_!~9zPT0)4c0|2+|E!t)?P>ke zz~?6UXs1r;ZZ~swzOPd|8cbTv8(Ot}AnExG4i|W2M`I#qlLGh=iaN-_a zl>U_z-EGv1$A2P=Z$+x&+uLMGZ%8feTPe$WJYCW?PfE|lsIu~%X8FOBx;+1yd8PFu zU6DK_l~r4GaNJc{kvphXochD8ioc*%?fucLzJFY;329R`uv@KN{;_$zd$U@X_O_|+ zC|Bzf_DN0KCS4P5k`2{mdc)OMrB;-#?a7t8qzSrif1=d;_jE(^h;01%ir%z7-n@C? zuG%caCUmS{H6~p*Z?$);E#7IKB}3K> mSu|wTkY&UF=emt8C<$h*NIEHLH*05PKx{Qv*} literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Antarctica/South_Pole b/lib/pytz/zoneinfo/Antarctica/South_Pole new file mode 100644 index 0000000000000000000000000000000000000000..a5f5b6d5e60f15ebdbb747228006e8fe06dd4a01 GIT binary patch literal 2460 zcmd_rdrXye9LMqJpwhVKWemws!@O`gTvUW2LIninl6fQ~qi>S%pdpkbbb(AGa|~%Z3evp;&y&hz^1>^y&*KR)l{ z$}cI3HU4(pV12@yYnS!rJbt5fYi)0HA6U92udV95d2r!*Y0v93-wExLL-8$U$EX(R z45~9bf9%!6!=>htkDBz|!5s6wb8bEQ_7(TB6CY~Vwn2Ay<32sU?uff*^EN$^z03W6 zVY&7?YuqO@>!r_M-2D+{(towuJoVKp$zDN!sMo$d>V0XC_%!^kzJtfrujY*UcQ$H3 zLAT!ca;=U{+O6ZNigkR*GddwJLnn+BX<&S~242`KK~vKusBg6dJHjNmX_4IYov%#V zGD~jmz9=EZJ~H|B0hy9EBvUuG$t}@d8d~y+P7C-!Z*@9ky2k>Y;df4EoSmjKhk9jJ zkEe!x+$7<9LnY#^trA%`Mx6C)C2GwDi7w5On8hDRY;K9p4%;hp;+E)K?|O*~jMTWF zTXf!)0FD2=P7}VkthXI3)!V!LC2>cN-qG-rB(0CpJ8Mo!^2%(PU(hZK5~F2d(o2#u zX`G~nR7vW!UnFfLUlv`h)$}uol5x6N7at3eB^?=>*V3}_OTly7 z_5QL95wk)c$O)HK>A6}MK$EbgLd5#|QpS}#EanPEBvA^Fj+A!Ye zG`tL>xtsH$0f#?l!#Z=%%yJpo`OCQ3rxX{@84ibyb#wju1YfnjW>0YVuZON%*Zhvm zW@M7cERks<^F$_!%oLd_GFN1>w$^Ns=_2z*CXCD&nKCkGWYWm2k!d6IMkbET9GN;Y zcVzO&>}{>-BlG9yk^oyP14s&x93V+RvVf!k$pexIBojy~kX#_iu(h&*q{G(A2a*t5 zD<%kQ^aNLb8OU3CRk=!H6N3xHk-}s-j-l+8`MkaMp+uGQ z$60BfaB=F*#eLy9^Hoh84vg7Ry z*_pj9jkAw6HaQ_pcdqNMR7!SFoY&^Pmvm3EU*lVo>NQ5SrKCw)16#Cp$z#A=e&LuO zd)997{d(U8_Gdx4>pG!u+;dvIkmLA#_VWH>tna`77#PiJhC{|f21G_ghD64+nn96K zt!7wcTx4KmWMpV$Y-Dg`bYysBd?WxQ0we?^2CE4IiNb2aK;l3GK_WpyL1ICIL83vz zLE=FILLx#!LSjOKLZY&ou#mWrz>vt0(2&@W;E?E$@R0bB0Felh5Rn*>Adx7oCQKww ts|gf|6bTiH6$uuJ76}*sOT2zlvP;tCRe@M_MNNfU84SdNuDz@F{{$+&_^|*0 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Antarctica/Vostok b/lib/pytz/zoneinfo/Antarctica/Vostok new file mode 100644 index 0000000000000000000000000000000000000000..cdf78729a8d5e98e22cef9c3d28f364e5d48196b GIT binary patch literal 174 zcmWHE%1kq2zyM4@5fBCe7@M;J$axvj*}%XE5(a^g1O^se0|SOI|KJda013wZ0PA32 Q_zwgGjO7AZplikj0HL`QZ~y=R literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Arctic/Longyearbyen b/lib/pytz/zoneinfo/Arctic/Longyearbyen new file mode 100644 index 0000000000000000000000000000000000000000..239c0174d361ff520c0c39431f2158837b82c6e0 GIT binary patch literal 2251 zcmdtie@xVM9LMqRfk?4(Z-2m9fRIS1cJdqi5tq^l%)GOd(?~^75wR}H%NV3anRBi& zeCt@|$f@O+HN*a(`~$6(+GyeBFXpUVTdb@!xaOz)E$t_w2gJS9I# zM29j*%24E-jtTFMjP=izak;-}eA-n_82h<8qfe`I;9VWxcSP?vzhCb>u~QR|9haoT z9g_UYKAF(0lCtS}NezbNuH~y`qAwt6g~c+-T_EX6F1h=*@#2c{s%tP$Cx4Z$Q+gA0 z>Zw@0r}L(|4}PoDT0hl{tsiUVhGUvl{ibGDT#}qnr{sFNByZ76lApX+3UV5xV7N(U zB(~~|%PVE(uk||XxL5A|tXvD*E7j9AOYhrOq_f+SbWTm07Hyp=_m{+|w>nYgreD!w z@354_e59pmUr1^H*D^2qeVG^TmIwM?lldKQh_B~8^|v(3g2M;&!MZwmsQCq5`0$Im zD7Z$;rUy0PE7ir$1-isNMVAa^X?c8!lwTa9j|@(hrSII(Wxa8-eE(>v=)5K?ng*n@ zH7r$?y|Qxice-l!QCVHlqtz*UWR0goYi@a4*Cwm3{bsk;4u^DIccVUfIiQanTBgAd z*URJEJzCdZCQsC+=#$&>W&OfJ3Dr2|sq6`|q4;NcdbB0=nekd5`BEB24Qa!flhW9K zNuPPET{echbkm*>baTgEeYWwSHnlWqlq1R!J>nnEsF;!e{b^Zo(qE=^^t&CWy=snIbYrWRl1%k!d3Hv^5ju=P*-bs>ocC z$s)5wrfX~Fi%b}qF*0Rj&d8*ZStHX%=8a4onK?3bWbVl1k=Y~DN9J#95`bg?Ndb}r zBne0skTf89KoWsu0!amu3nUpxHjs26`LHz!K{8@%Qi9|JNeYq`BrQl@ki;OFK~jU{ z21yQ*9V9(Sevkwq8L~AgLULqll7wUlNfVMMBvDAFkW?YLLXw4K3rQD}FC<||#%xW> zkeu0?q#;>D(uU*>NgR?nBy~vckmMoRL(+%j4@n@BK_rDp4sA^mkt`x_MKX(|7RfD=TqL{J|FFApCdJdT UiL%?Dn~|T9<@RT1VPi_@% literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Aden b/lib/pytz/zoneinfo/Asia/Aden new file mode 100644 index 0000000000000000000000000000000000000000..c35e42a1216381de994a33b4073ae0090345538a GIT binary patch literal 171 zcmWHE%1kq2zyM4@5fBCe7@MO3$hj(QwuOO_fkFEWNJ`6qfyKu+guyX51jJyt$|A7F%sa!zgb&a_IiUJf_ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Almaty b/lib/pytz/zoneinfo/Asia/Almaty new file mode 100644 index 0000000000000000000000000000000000000000..49a4b4de7b31924d138a6e22aa0a16af1868cf1a GIT binary patch literal 1031 zcmd6lPe_wt9Dv{H{KGOBfzEAOX4YKGoYSr4zkXdJ!D`3|iGqkygn|$mL4|^O>ky$A z@h~ttM3+P_;o%o_^iUvOROn!b4kd&K#dN*Tm%`9fx89HUecrv__QAL3N#7Xgi7dKYozN?2MdwH7yO}<8t=dm^2P$Bzm`Bnr^++*x&E}dgra$)j|$h{T0IQmP6bGe*x6&C!x+(mg; zaY^2X{2T1u#$2wm|Ao1fGIoFGp{vxG^lekNx9**|?8*M`bYDrENHlKeIXe?P#<-l} zY@H?j4^lREe`en$ha89?j*$cr1(D^@3WG?4h=a(32!u$4h=j<52!%+6h=s_72!=?8 zh=$092zO|uL&QVmJG22nB7lSdi2)J>Bnn6vkT@WLKq7&J0*M6@3?v$dHXKMi4sAe? lh#(FTfqVAU6BD7Rndg=qMqLZc7s|U6_e6G5$b__&3f1{o|OYAn6drRBeD|Wm6 z;nF^I(C&8VrgY!c+U`;NMS8B&KxF8lM9ppp^vb;;y(d1fql-^Vp8@CXzR4BRFJg}! z6R}uh9#07Le|lD88%yi~r{<`)e!M+!M~3>UkK1wUizPmPpC%Nii$AqN291l6#HhWJ z6z!J5u8oqsY>Onn+@nJtuh5~_&&jZcLLGi|x1`k7%7`sBGP0&pMs3fL(M5TZTK-7dMgazW?q z+br`h*6D)H2eiCygI1Jp(uFmpx@c0lhKe$Eu`i&NStYWhtzWCW9=0jFD4zH0O+*G;-F+X(Q*2oH%mk$f+aej+{Jl_Q>fY=Z_?SWPqfA9LUKZqLb5{Aax{4%i6NOGsUf)`$sySx=^^Q-I6?G6~2mAk%=%gQJ-UWF{QVR3LMKOa?L=$aEm{ zflLT8BL<5pLFNRR6l7MAX+h@2(M$|7Gmd6zkhwu72bmpYdXV`+CJ6tt8FHId8t7-A YyxD_%NxsB5f1)=#A>MpUic4^R11fmc_5c6? literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Anadyr b/lib/pytz/zoneinfo/Asia/Anadyr new file mode 100644 index 0000000000000000000000000000000000000000..6929a5ccc6eabce66acede3854c7770b0daf87d5 GIT binary patch literal 1197 zcmdVYPe_wt9Ki8sZq`}{p)j3m<)3t!&9+rynY!gaY;zIqR0u!Hg8m#LIs_6J6$BX+ zbSRSwDj5>7LkWd}hY=klJOqIi{2&RsgolExz@G1GfzhdB&&%G=v*+D**zcR!cjR!) z{Iz`cgcmDeU+jwp>}}K^9DaOvaH2RAh^#8zeW%2m&Xvqvjg)@868BH%b7hmo@xXYc ztbVXkg2NtJbLoq$?f)R<$6iat{uff2d?Hm%qq45im)7vLR;@oD(M_i+G}5<1qrEK>JL#9r&E>LX&v)4xERcri zJ8AeaBaLNq+W7XlZ2R^`w~uF~Y5JM&xS!YNr?<7`!icsGoz?iEi<&rhOLle~)wY8J z(q5g?jdtCM^T(am| z>Rt3^@q<72_G8A3^x6N>WG9Trn7q1{88bG;er$^U!ujt#Cqp@&a-QnRm_$0^-1cVp z6=Phig)R5YKg{#%udmJ9#axlua?E^@86$Icw6jL$jm#XGJ2HD@{zwBz2S^J@4@eV8 z7f2gOA4nreCrB%fwil!sq#H-u4$=?O5YiFS64DdW6w(#a7Sb2e7}6Qi8q%AiZ4T+q z(YA;5hct+Eh_s0Gh%||GiL{CIi8P9IinNOKiZqLK>uB3W`gODoBON0xBR%8)(6o={ I!_k=UC#~2Nv;Y7A literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Aqtau b/lib/pytz/zoneinfo/Asia/Aqtau new file mode 100644 index 0000000000000000000000000000000000000000..5803a3d3e3fac98ec8bebf8a7cce414a79e137a4 GIT binary patch literal 1017 zcmd6lPe{{I9Kheq>6jv(+-zyn{w!VUTHBa4ZC#?ngh%`!h=O-0LGvU=9RhIZ zH!Ma*7U$M`vb}Dfaf@@6Vq0`Q6$vfGBRk)pN55{(w{Irm2iI=T$Ck_X(3@MfV|LVb zKDulV-@Rz#6N9$vYOn1s#q5znvpt%u*kiG8_IT50n+P`P#E(6F;>)h-xie>aK77)> zs~bA`?!7+wazXdaywLsSr+Q%OiAi0*Z%$o%>(Y}C-RYsnE_3Oo%XUn^uS k?Lhj0Gz94g(h{U6NK=rmAZ@{Eaq&O)6)s49!+qKCPt^!McW#y&)?TJ*0!+;sitXMfSd(X?gFM+&sN|&zAq}+}X zw;d)UZIk=GcWimt`QXZ%rCMR1f3Lc~W5sKaE_>~NelB)={ZZ{)_q_wFH>-(v6+QTB zR=b|g=%M=)dU)=Fde?^a$Yie`9ZTr3T$>(G*7QW;yPk}HQ9lwF|JPsX-qUzWZ{&*XIFq4eLV$iVch3{EX->iTUxGqRvV<5QaMn$}EeR5P`r zW)qW={nV|)n|V3=KBni^J;}ZBW#nyG@^|;h=#vd8T>d8KD^BO@^|}j%TUuMfc13nI zUAv=AADR!ikJvkTZ12Kl3$E3DMA{8PQA{QbU zA{inYA{!zcA{`<=pvi{>0Er-=g#d{G5(Fd)NEnbfAb~(4frJ8y1riJ-8b~;hcmi5L qkca|WNRXHyK|!K|gawHU5*Q>hNNAAQ;Ji8cuY-%_EXaIcI<^Iu9Nj|z literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Ashgabat b/lib/pytz/zoneinfo/Asia/Ashgabat new file mode 100644 index 0000000000000000000000000000000000000000..f79fe0460d1d0fc208b3c2fa1062ada8cc3d6d24 GIT binary patch literal 671 zcmc(cy-UMD7>6&~YMTljMB5ra;%BTPh@dDqL=fpvAa(%NpBYu^w6E@}O&D^=K+gagw z`J&eFyS&4wJAdWoQkT=Yx98LR!&6ka_1vDDoye&lsNVB!)pt@={YPtRV6UXytpzo> zF`6&~YMTljMB5ra;%BTPh@dDqL=fpvAa(%NpBYu^w6E@}O&D^=K+gagw z`J&eFyS&4wJAdWoQkT=Yx98LR!&6ka_1vDDoye&lsNVB!)pt@={YPtRV6UXytpzo> zF`h5IQ4n?-ShJD-tspnXh&Y&6RFf%}=+xa?v#=Q>Po3uV~MgDNBF+rKY!Cws$J9=4Y3b zxqn9c#-CWr*j)=Qd{XOBt+ho%Y7ZmrZ@p~?>aSbJ<{4#6CY4?KZn=fL4$fV(Lo*lc z@Z?M7pFUFOy#+gRbI!W1rWB40Soh$BdJ4DH+xfxzGOz7uT~fz3EURBROO%wZTxH2M zTvGb6{~$^~RGHKis9eg0iS>Wq7mgRz<4^YqfBK5Nu0$e+imQM5tba59^50heqThbQ zH(q>(nBXxsVtOMGD-bgfI}k$}=;t%Lg#?$}+ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Bahrain b/lib/pytz/zoneinfo/Asia/Bahrain new file mode 100644 index 0000000000000000000000000000000000000000..3e20373990e3da7318761d709165d6ede9ce4332 GIT binary patch literal 209 zcmWHE%1kq2zyQoZ5fBCe7@Ma7$XWPlt^rHeqyr3$ObiSL0U&t`2L=`f1}y^y4ji8KQX#RTZW0ev(m@Ie z50U2%VNuj66?W(nm=JWxBzPezNUBp5R@C!(*C^;x*S-(W^LgLj`|k4Y^GyvN8w$!F zS*a&%(y2GsZl#Z#p7HiK&x_+_zH8al?zw=g=yBM!WVz#hD_PG%L!f;2Le@Kd#aJ_W z&Zw9;ZLA$TVyqkKH`WhFjSUAv#>QBUQQ2H>Z1OvdD(_cgv*VrNvwG6LkM?x+Od?$U z%9g2lx|FGXxR?pNUd(PkIA0n(b-y(DD3h&gxh3_9i_%bWSsH`KrSaQI33*3V=tWYR zz8qCMXBuSJLbqzZ(WhFb{A%}To!WD~M1_aSROI{?Y3=x=+73IVy=q={w0)3H>y(OC zK9T7AXVO)0PrBwFNcYQe>A5{2vDv$-_tII}J9$;@JCT<7*csI~FrpH}11h=WkV?gx z)P7f3_4~a_ECtJQtI+z}T5elWWOq7>oh5&@M7B-q4=l9-Dbyc5Zn24k!d&Oh{DirF zNB<+Cuw~V+lZk%EoaCP7C$Zj?v_^W&Bbk!OAX{G$3*j{H@&~u6e=y_o&mVr*!4QZg zj4=gb3&a?c+8T&C5PKj7K`erp1hENX6vQfsSrEG*hCwWYm39-_oHWOke!BB#w1XE3FTM5RR)YcNrh1g3l7-BKRWQffWqajv9%qG|k zF`QsI#B_q~5aUg1>j~zY)b36M4r8Ubkqp&5{NKpFyR38X2Iw!r_lF?QXo Ht@ZXFj4BKk literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Bangkok b/lib/pytz/zoneinfo/Asia/Bangkok new file mode 100644 index 0000000000000000000000000000000000000000..e8e76276a657ffea33afc25ea56864eddc7f43eb GIT binary patch literal 204 zcmWHE%1kq2zyQoZ5fBCeCLji}c^ZJkqO9~Ij6jh%8z2WnvM?|t6)33N`gjPTLj}D^4`KEoQc^GVP*D|DtxE|7NRpL=4S8N z9f#SOeWo+XnrGsz2@#MXGs9-q@-f0;hH%(R`B` zXK;1x#$4xLM~r=iC&w%H$#ud`dwMriZ4S5Yk|RrZs-wldI+C7Y-pgpyo%dWdotJxL zD07b)8u!Sh$)BoA14>^W9yY^$VYzZ{vl;2QLq@xgs|?z<1w8$?lm*dzonA~)~nL|Dz2IY&k(erTl84NkYvnrAsW+MZ zlXO;Zzsf#xTs+}!<=y?d%-y0-Q$;7EW#Nl6RPmcX$^)T4)PuVny~uw-l~jMPA4)%^ z{3T!Mhhq<^($t799XV+h$L!UM```#Q7qSgkB;C^52ci7a2G z)MJ}GvZ7#-3YJZil{3;*dDbsd{@X-Vaa)3}_-;r&K0c~f_nlQwe0yH6IrNjM?EOfu zZ98qM!Uwdf`oOH)(Ie}N_nGR-uxyysU_wRBvN7&uRg+vHHAD64$?Nl__VhAUH<%<( zb>^r|Ul;27y|=1{NTPna=2!L1oq1s&2>iMrxW7{*@G`3b_A?=kkQ0i3N}*B_ z9K=x^0@V)UqTnKG-yoR5MQ}JMfeuP>u_7HBj#}UMQj6&1=zHAnd%RpS(e=(J!Bh#+(spdS58UUR{&T zPse4;Ls#y&J1BQv@0RA3gxqzmS?(U%BKP$Ckb4u0a$js-w$^=+@!(1(zVtP-|IM^K zu+U{4eEZl;yfdsrk8Yc7GrrY+t6+9al`ZRH&OAIeYbEpJ#Us6UyrUy$N}Vm2y;L$? zO0DF*bZpd4mpi;;ewW?-y58%VGwkCt?QZW&-##%FaZf%d+nGz>-BXj5QeXC?+vndm zMPTEG>JD!DZEp_Mtnb>;A3H2W_M7@IME|e|3UT3TpjHUyJm>2CbyK|$Y}Icz@F{2Y zPQy^%5&a{hdYpDdZa@!*9~A+$^kIEC{~&33?OUsAAqygmYotNMLF8#Ffe?uhkr0^> zp%AGMu@Jcs!4Sz1(Gb}X;SlK%@euit05nwukPsj-K!Sio0SN;V2P6 zL<0#25)ULGO%)L&Buy0)Bq&H!kgy~wB1_=!k8zeYLbejK5c;VcD)0PVV1W~Qu A*Z=?k literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Brunei b/lib/pytz/zoneinfo/Asia/Brunei new file mode 100644 index 0000000000000000000000000000000000000000..1ac3115acd19ba3a36d85ee937df5409d2d6a51d GIT binary patch literal 201 zcmWHE%1kq2zyQoZ5fBCe7@MO3$XVOPy@P>~iGd+|4@f?G{`j|8ss7{4RjTV2DyxZGN*9?U8-wpWo*C&03$>`@&Et; literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Chita b/lib/pytz/zoneinfo/Asia/Chita new file mode 100644 index 0000000000000000000000000000000000000000..b97a48effb687bfe1bd1c5eca2c725fa5cb46440 GIT binary patch literal 1266 zcmdVZO-R#W9Ki8sZN3)uJ5*ZBTJ9ZGK%>Ql+)Q zJgxmPTkE{#Qul63L*H{{{lIIjANwF1?tGGP|4Z3;{*^Rb?~_gY9!lfc=eoJ+szmnO z*Dd}N(iBPQ)|?J$E<2*llgBmc-mcM+o!T-H)YyZN#)r2_>t(MdVlT{&uOmL=a?eO# zo}8>JH!tf$_Jcpy`2}ucy1VQzYLY$1V@#^oRbb2+Wu2ZgJM3rP;i+BE$$mfHnlK%W zF=uK|m}r|_GF<85tTR*MACCLm?=StdgJVaIp26`W2_P9b+7yr+kR*^SkTj4ykVKG7 zkW`RdkYtc-kaUoIkc5zokdz#4PDoNnR*p6;BrhZ}Br_y6BsU~EBs(NMBtIlUBts-c zBu7V^B$B10O%urzNfgNxNfpTzNfyZ#Nf*f%Nf^l(Ng2r*NgB!8(WZ^$?PwE6GDlKJ Uaz~O!vS<9q=@;@JsSXwX0y4=5e*gdg literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Choibalsan b/lib/pytz/zoneinfo/Asia/Choibalsan new file mode 100644 index 0000000000000000000000000000000000000000..f43048dd8af5d190e04d1cf691e35b2e2ec66e3d GIT binary patch literal 1585 zcmdVZOGs2v0Eh8wYNCcODk?LtZ%dt-d{LR2jZu)J3r90ey_#u0(o<VhNOxGZj9iPzObgetqQXS>x+QJT!W~!6^q9VP{I)B1RM+zc z`d#^*_4>YsI#+?SP~Tr@ciA%&^}_fB*MTUza&U166-^6$OIky*Q_n5i+2 zzNwX!PkYp=2LY4mvdDhyZ zc1GJ|S7?#iwGtuEEn3v>&&%@s+c5QlJ6v3RoNDw;E{Wb7A;zW4Gor6s8vRX=gyOTt z&-dS7YyDUCQk2#T^N&^Ph2p0uLg(&tDS?VIV)%scncI9GSmbajWkm%}#eS&7dzCu* z;UCAjiZ%WG{ks+OuqwW?EM#5C!jP3AOGDO%EDl*6vOHvc$O4fSB1=Tph%6FWC9+Jf z<~osuA}d9fimVk`EV5c;xyX8v1tTj)mW-?!Sv0b0WZB5Nk%c2GN0yGP9a%iGdSv;? z`jG;V3Xl>w)PNL$RN>Vu1E~Wk1gQim1*ruo2B`)q2dM`s2&o7u38@Jw3aJVy%d1%z zQW#PhQkscEZAfuQbx3(geMo^wg-D4=jYyG5l}MRh%{q}nkxG$Lky?>rk!q20k$RDW d@&Bqgh`!TynRlr()sbPzvSg<^c7xRx^a~`adU*f< literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Chongqing b/lib/pytz/zoneinfo/Asia/Chongqing new file mode 100644 index 0000000000000000000000000000000000000000..dbd132f2b0bcc8beab08e04b182751795c853127 GIT binary patch literal 414 zcma)%y$%6E6ov01AsdnK0RGwCh(;k=S&0xTQ;84_wi_?7<`F!PCs;~}D7?f(B^vIT zl7ch2`)zh+C+8E>VAZ0p#Q6&b$@1Vmt@shmEEPQ+dAwxQ={D8*Lz@c0P8P$BDh-yh zJRhox=gVq;O|{%Y*PQ{??_KRC8|0oVI%a(=qV1LMrEqU0h@_&_Xe`L@@k|6ZIO2E7 z93L|!ALb9D7bk4{9*EM0TpUDs5CS+32?Qb_WIzakkOCnFLJol-2uVX01tDw5!t~*5 M#r`q2S-#n^-;pXt<8 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Chungking b/lib/pytz/zoneinfo/Asia/Chungking new file mode 100644 index 0000000000000000000000000000000000000000..dbd132f2b0bcc8beab08e04b182751795c853127 GIT binary patch literal 414 zcma)%y$%6E6ov01AsdnK0RGwCh(;k=S&0xTQ;84_wi_?7<`F!PCs;~}D7?f(B^vIT zl7ch2`)zh+C+8E>VAZ0p#Q6&b$@1Vmt@shmEEPQ+dAwxQ={D8*Lz@c0P8P$BDh-yh zJRhox=gVq;O|{%Y*PQ{??_KRC8|0oVI%a(=qV1LMrEqU0h@_&_Xe`L@@k|6ZIO2E7 z93L|!ALb9D7bk4{9*EM0TpUDs5CS+32?Qb_WIzakkOCnFLJol-2uVX01tDw5!t~*5 M#r`q2S-#n^-;pXt<8 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Colombo b/lib/pytz/zoneinfo/Asia/Colombo new file mode 100644 index 0000000000000000000000000000000000000000..d10439af138a65d4aca32354641a757241a75f10 GIT binary patch literal 389 zcmWHE%1kq2zyKUT5fBCe7+bUf$Z4OuSLSq-jK-O%+6yj~Hdq)gW6&@vWKeLif2G05 z#LU9P%ErXN;B^P2(d!8V3j>311jvMt1V$bPhUg4NAUisPK@cPYB0;h~z99_0KqL%JONS;@(73q Xc?Lv-Jj6g#A8`Twt7~dyY`_HokS0oq literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Dacca b/lib/pytz/zoneinfo/Asia/Dacca new file mode 100644 index 0000000000000000000000000000000000000000..b6b326b20eb4cad1587ac068dfa868e276019a1c GIT binary patch literal 390 zcmWHE%1kq2zyRz(5fBCe4j=}xMQ|-~q%= zp+O-Gp1~muE{@JXo(l*Ad8i1i-0oD2+2r}E+_JC-R(?K-I`CuC81rQDL b21q%`D#0B)Lt{E2qh`3W4 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Damascus b/lib/pytz/zoneinfo/Asia/Damascus new file mode 100644 index 0000000000000000000000000000000000000000..ac457646bb0205eabde9526bff8ae41d33df550b GIT binary patch literal 2320 zcmdVaeN0t#9LMn=AVP>}q$?i=q$0+{1+IVv2o@4)7yAVl$Aij`C<^-QiAQCDV9JJKko`<^%M8aX9q4b&U6`&WuNeM3f6$$SyL zd(em}*dp%UHOrot-6ZDM9kdsCKQd!u^Nocwmz#0HaYo$L3Tx3%FUor^&QbAaXUc@5 z2`aIxQYUp5Se`v?GP$i)rPRNtQ!9n?$~3(==b}nWeNv`JeX24dJN1&lSFI((=jFYF z(bj$6_+{qlVwH7bhtBTZZY|w^Qs(UZP~~pEte4g0s{7Y8>IZzAth}YYa(PmZ%8$Gu z9}Lg13gUBQ!Dz8sF=eA(ach;biqh=2vok@Fi6<`?#zbJgaJhzRI@PYrK>YcWSq!Ak&z-pMR%+`Fj&qREyr+?@gf68MvM#@88gSAkx{!k!$!vK z>I@tiImghEu_J>=M$a*PWc(ZfKq9~q0we|;K|rFw5e6g<9DzV0frJ8y1riKbCmKjN zka!>gK_Y^L1c?a}6eKE0Sdh3Nfk7gJga(NX5*#Etu1p(MIwuY7KtqqTqL?kc#-%b0d{pFjD*`%s5D a%}(-C@5I8zo^(%oa!O)hYRavru)hIHh^b=$ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Dhaka b/lib/pytz/zoneinfo/Asia/Dhaka new file mode 100644 index 0000000000000000000000000000000000000000..b6b326b20eb4cad1587ac068dfa868e276019a1c GIT binary patch literal 390 zcmWHE%1kq2zyRz(5fBCe4j=}xMQ|-~q%= zp+O-Gp1~muE{@JXo(l*Ad8i1i-0oD2+2r}E+_JC-R(?K-I`CuC81rQDL b21q%`D#0B)Lt{E2qh`3W4 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Dili b/lib/pytz/zoneinfo/Asia/Dili new file mode 100644 index 0000000000000000000000000000000000000000..8124fb70b2d7522214a8cae502b094653b6ec192 GIT binary patch literal 309 zcmWHE%1kq2zyNGO5fBCe7+bIb$eHv^;>hWlMjtMPy({2;Wl&&wcqRh_BNH!p3YYSom>1ZzyGD^s)SA0lxLg1y<&0V?Nu(0 zt79GhZq%7MPo)!Q`Sk0Rks5RUOLS>2S-9`tDocKR*Q{R|h3=>g#IDZTPVon?wTMmzk2dB5PYtvq-o~ zU(4?ab34;koDXGsaUl-Na4zJwI973E5&q%tFJG5FtZ)GFz!(=09}p)o%?rd0#1F&~ q#1q67#23UF#2dsN#2>^V#3RHd#3#fl#A{4*3;)}1(xi`0BtHQaFL;3f literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Gaza b/lib/pytz/zoneinfo/Asia/Gaza new file mode 100644 index 0000000000000000000000000000000000000000..75d8d97d78e5ebe6435a7087608655eed44d21be GIT binary patch literal 2313 zcmdVaYfM&k0LSse9bsK)vpJ`TiWd|f9t56LOar-yf&R@$CZKQ#flQ5~l0k~l%}r@@ zxHfA!ag(vJYLSiXGA!A;YCiuE+o~7+eUUIOaYVd8Q~H08&NtzD(W}ncIiIt$=Xvw& z`F*_wTgwxTe;gtD4HrkFzIdKouW#SwpHk=lI4gd9|Bi9tn-S?dT&`qmjr{3#Q*|Bs z-nv-UR^Po%$zD&X**g*^`ocdm`!1QXe_+fWXy0KB`s(aIj}99{Z68~9&7AtHjaTg9 zf_&rJ?y1&D%A57qH#Au{A|vW=db;eJ;~B>2lwfQ0@(;$?=o0&{d1)eaUxNz0-6kj9 z=rhAw66Lfrx7755S7qe+adU?Gj);2oBXeeUyPQ>YT+NQ!ETRkC<{V>%m>WK*=Kg#| z&g=K7`CkQynC<~{LF){;@QX4Pd(cnDy_=<6#jPTKZ;W!U`dYesLR7+*Omk6crY$ivCnI69brl;YWdgAdCb8&FGSUg^F>oV#g`_ReVMAB{4iQBZgICIu2>~hIX$4^?DPdzG&_P=2jHx5g)sKP4Q*)5-4o^6$``$TSuTxgXo zy(r2sMz{#xc&UEHDX)KpuPR`Lb2n3&wk(o)zPG)0?R%YK zf3?T1YiJh!e)rD+{|U~Zzz3fG0l}OTed|BGGmI#q|JTL>w_l)POp7w~T|b99_lKM} z5qIC`*m`-=xBHA6Bo9Ie*dEygda}(UIM4pn8!u|$=u=lVAZ0p#Q6&b$@1Vmt@shmEEPQ+dAwxQ={D8*Lz@c0P8P$BDh-yh zJRhox=gVq;O|{%Y*PQ{??_KRC8|0oVI%a(=qV1LMrEqU0h@_&_Xe`L@@k|6ZIO2E7 z93L|!ALb9D7bk4{9*EM0TpUDs5CS+32?Qb_WIzakkOCnFLJol-2uVX01tDw5!t~*5 M#r`q2S-#n^-;pXt<8 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Hebron b/lib/pytz/zoneinfo/Asia/Hebron new file mode 100644 index 0000000000000000000000000000000000000000..188220c30a96676d2872bbdcb7a378075e89a9c7 GIT binary patch literal 2341 zcmdVaYfM&k0LSse9bsK;vzb#w#S6;iLEuTnG?0rJ;NN^?auJRpkg0K0GDs0Bbu-!= z`(*JvOz6sZhUUkmS`JA0S&zon@ z@9W9mTo!Nq;|S7kxH#U{7tfRG^zFO6lj__bXT*;m+%e97Gc3J_%9L!WmOt$?Rp%Su zTNg@O>$|03ks)KS^<&Gfo?Umf;fg(! zpJ!a#ImH@Idb95Ox<>0p*u=VZi)!rQ?G(=x5^1O zdd-mLcscd-Ej8`nRT*|}%$#n%E5cv<$efYcCTA8MRkOl3h=_cbIont+=7bKYIX_>K zbNjq%-dBDiva8>m-!fe;I8~~m4*JOG_cByWaf^uE9jRO^zm~48`(~o_u_xxhODIEE=m(iw8})6I^2b#U?v%C`;y_K4TSh#>m2>$E^(~AC*OW_glpcL((iNw>EC?lFu#6v`W@| zA~%ICuu7L)5M@CbcKMVxQQjSCKR*ml5czj*v*Sy9n% zS+D2G?W@mQJ4%w|&e&F~a>X?H(j#wKyJn8bU4xZYmG5O)<;}IK`|gNWKHFjMKC8r@ zcRY5@i4L*1%5B%yHwj;#`=_7pIA?(W15aPSK+f^L^`G7uMtHaWha2-Y+he4qajo?jnW_5H-aUNo>G}6v9o8Rpc6ICCcgFNl)4u8nWM|0M zki8+BLw1L357{5GL1c%>7Lh$V>P;fMbky5K_K9p1*(tJBWUt6(k=-KOMfQtq7}+th zWn|Bedeg|R9rd=6eIpy^=V0fKdh5vEk;50EAxT|nA^^ubX# z0_ge7xGTH`z)iG`KeIFs-DolG*Dd7oHQeCrbR#|gS` zcsQ%w!@V@=UI*h%*{-2R+nrt}H>3NK_v*H^-QRxIJUCt}534Vko>SN4(TXaYS~yoy z`3jq!5|Z@e8TQHW8+mFc?6X_l(tCEg>ASE&Ki@xYUYzLCFB{_K)t>YE^`fZhZ|;!H z)N(VhvRwvpYwh67!!np!V227j<*hBT@A?{K_~eLv-`T21_TIH0WS#!lc*TA?v{-+x zykkbUmFclrmrb^2RDYS5Fu7@)bw1c)@?)#?*Zykrt+!dmZ*Q^_*Q@0F#Y$T^Ge^|X z*|sPV6yL6Z^=}-IKz+srYXUm7)NhLCXLRv_dm@{J?9^mK(O z+ubV4SLE}%=ifd`?TENPSS5}X1(a$_sxWs|^7CF-A5&|h>v_dgt@HPZ{l$d2Uq36j z!<5LJ$fU@u$h643$i&FZ$kfQ($mE`Gc4T@_H$Rd9k^zzek^_#B!*;$q=w{%B!^^&q=)3^=@LXTL{da@ zM3O`=OD?3zad`rXBAFtoBDo^TBH1G8db)g(ggsrxNXkggNYY5w_#dPlakZD5$PYD~ B5Gw!x literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Hovd b/lib/pytz/zoneinfo/Asia/Hovd new file mode 100644 index 0000000000000000000000000000000000000000..489a1f07283f40f16f1b1f8b5d33f33ee76c9a20 GIT binary patch literal 1513 zcmd6mOGs2v0EW+~5h*bfR8%^SmSyFPbMqDXOf!gdu<&Z7jbmoMQ!7o&*I9^VMBIhg zOJWwHE+Wpt!Xkn|rA5@jlAuKkEii(JOj<;CzoA{L7D4~zo^NKDySm?}m(*4zh(8u$ z{=&_?=FMlTG>^WS9|P8~kNyn{v&P1^VPezsQX~9vri{3oVc3VFWaL$c;phyKQ4JO& zx^!M{&YLr~q)p41xG7_6_?X-lHfqF%Oo`aVN!#}MQL*FIh;8R&zla;ZY;z9R3)euM zExy+y+%5Swtd`=W~0jj7@lO|tmg6?NqOVR`g*gF5!2QItIC z*Glgl636egY8dR4r~9s}#-5v^scBqm_H~Fe1%ukzEU!4{Zr55IS)$ci zqO~qZi}Rn;wYGP`qWxv0cHx;rUYtl(9b*>Rc_Tt~U7C~KZ9i2{^^_Er;GlnY2~qUP ze5XP$=LI)Q%PJu%nng&yM;8YQiUUWX&OZXv|H75;zn@t)hckS|8;Cm)e;5uyJc76c z@d@G-#4Ctf5WgUfK|F)F2JsEz9K^c-P4^)FF&u<=$Z!$jBg09Emkc){eli?|cnWb9 z;w!{ih_?`TA^t)fhIkBd8R9d44D! zqz6V5kS-W)K>A=b0_lX&3ZxfEGXa|2K-z)y18E4-5u_zZPmrb{T`}5%^u=fl(ix*Q zNN`IF{k!*rcRHbe{=SXl@yBq9tXhD_Q- zw8$3H;v;hxtu#Ue5nL2VP)3CW{chTXK}1nj=e?6K)uMIha?gA3xp!tU=b3n-<9NvY zH5S_yPDZ0Wxn7pE(~YIsW5WYeIl2C}hnY_$CllSF*Xa2i;$(7UJW>!tck_Dp) zExhGu(e+v_zErNOyNgv$X6u?mM%OwYw4~;>t}C0;(t-(Hzi3$f-dE!P_((RqeHaXM zoec&a56Q-fK`9%$CYx?vl=7=xviU-XY&o5f;4w$Gww}?@seM{ecTl&rROt4iYOM_A zYUOO9RuzP#>iKuw@pZXWkG|BJ=}%HSI4gA{&tzxs3#soPk%snh+12wz8=D3seDtpF zF71`3aKG;HosdXLw?^LgXf)%nMjy26-Zu^E+>U7TWUIt32Q={%2q+NTS_~8r6ciK~6dV*F z6eJWV6f6`l6f_h#6g(6_6hstA6ijX{C<-bHEVmXH1sDYx1sVk#1snw(1s(+-1t0|> z1tJ9_1*BVxk^;6!At>7K}~_}*5alBcWaST Xpi{6@z*Epu;G6$aeir|Z@~W(#P0|m2 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Istanbul b/lib/pytz/zoneinfo/Asia/Istanbul new file mode 100644 index 0000000000000000000000000000000000000000..4cc29f00a5373bb77b947313241a0b22b5ac69e0 GIT binary patch literal 2747 zcmeIze@syPQX*$YEzPEuVmXIt?4*#AvTik7X46wiX3p$+pK7i8qgMa+y}P{5?$AHj?)&4J zIlnAL{N+OQC%n1c`pxs5Uj0Ko-L<7IG{UTFKV)y8TjJZXa*fe2*=xR(wbyQpi}$@8 zUv2M7NHBMOdeeU8`g-5)_mYj4>dR)!tt0mFiCyOVtzP5Ai6-;pg(Jp?i!S+2EeJMF zZ%;Sdvi*(r{GPs#2CuZw487tz8(eI6_-{5lE@s&uU)gD%J5^+yZ?nzLJsa(BuI@L# zEj?g&m3KG4k4>{h{Q;lff<3ms_jzByr048z^Y@#9quwyOS3GM4rSJ3x-B>1qBOB|3 z&yDegI6-!(Y&AnW1{ysZ(#>9tn~d9PqD;ANiP3xBmgd_FMvFW0Ry2nX==Ao9FKUhm zIPC2kG`2Z%eXS9BzP35~*l9baF5Kw1VU37gwM6t^SSs!+nkMef&lLkQ?hykM6GU8e zq!<($BH{y6z42Xrt%M7~*5I}utszG*Swr`pw-OsZu!hwhvWC~ZW{p@{ZzYv(vXYD6 zc2X8^c1C7yb4C?bIjJ#TXLQOeXY|cEPFhr@mDV}lNxw1E8uQK|=iYM}Rz_pCm3gqA zHFjN`l~pIKab-c)eKpa}{W%w{?2@0H@o^`toNS+yvn9os8+csh4fsUnUH(E&2sk1q zw6@5JpYM>9ns&+jlZREo#!fYP_lxR*iVA6LSgWQy_>?MKI9E+gJ0v~%d1_k3WHo*4 zHZ}cPl9~~oD`%YPtsd%1kTdsPRkPYdWKn&XEZ+OIe7O2MIlH!1nzP&GBdfnsbF$u& zCB-LIY3x=xH?v8V^>|awi&1Lcmz!1j&BbbdOO<-G)1wyboTU~XTO=QQGE-GFPL+?B z$0}=Gs$4WBLoP0hkV}&L$)!2h<+3m#myZZn%bm|;Wv^?h(mpDyE_bLEuQ$q-tq0Yr zt?#PUO)sb?sv1=FGu6s3!2jR8x&{9B@(<`9^iN*_J%azsONgih{q+)2<)WJqLz4V@ z2oc?1^b{g(oL?B9h(3S({P*9V1Zjt!A=_&zb zLh6JR3aJ!QDx_9Ov0QbvILhU!>xC2yshF!S8B#N(Xh_wNvLSUt3dd17q;yE_km4cL zL(1o>>xUE&sUT89jv8_lk)w(nW#p(MMX$x%vbmOkBK1WIj8qsYF;Zis$ViouG9z_H3XN16DK%1S zS6ytR+DN%wb-j^-yXuM~B}ZzG6dkELQg)>7Na2ynBc(@bj}#xNK2m;HU4LW&T=fbd zOMt8avIxj3Aj^QP1F{gvN+3&ttOc?d$Z8NP?Z30Wm%nUHlt77AG@WU0jeQ^lX+&r=nm c$81;%vzAyea(L?Sq!A+%3zC!Er%@q40}aG73;+NC literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Jakarta b/lib/pytz/zoneinfo/Asia/Jakarta new file mode 100644 index 0000000000000000000000000000000000000000..3130bff56a04046f0a21c6a183facde3dc8bfb03 GIT binary patch literal 370 zcmWHE%1kq2zyRz(5fBCe4j=}xMH_&`%8J$pyTtA#oZjEuaVhLw!F8Ks9Jl_fF?`v& zuY-|^nT45^nT>%VMFFT3M6xh2q$_|-$gE)CWnieAz#z!LP|yHkClxU8`uK)0I03Pj zV^|17xTh0?S8xbOClUxD>_ASSaKs3lB3^efx7tn*c=3D^atX-}E literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Jayapura b/lib/pytz/zoneinfo/Asia/Jayapura new file mode 100644 index 0000000000000000000000000000000000000000..a9d12177d57cb8cf43c94b0406536e57c9ffda70 GIT binary patch literal 241 zcmWHE%1kq2zyK^j5fBCe7@M~N$k`=!aK?p*ogcnzU6jGV$i&FN(EI|VsBQvCUF!@6 w4hY-FH-sVFGlap>IXDC)4+bG5SoQ;|=RXjDECtaZi$OG5mU97}qie|p00|~BRR910 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Jerusalem b/lib/pytz/zoneinfo/Asia/Jerusalem new file mode 100644 index 0000000000000000000000000000000000000000..df5119935c5b01676e63d1fb1efd7273b8b4b452 GIT binary patch literal 2265 zcmdtie@sLcU*$tru4i|t=jsdKim4U!|Uu0{$YIH zfs*A_DdHa&W5x9x>J#0c#_99=4e@Wf;>!&oI{qxRiqG#enySL_)z8HB@1*eUOV6e~*uWQiZH(Kn`gTGi2 zO(}MC+mN2L`HCIWK4QgM@A~659w)@mlwYIsU0*`t{Urd+lkL zI`zFrNBQHs`mE{AvG$B3l{#T_h&^-10_`bp_9w27*WR3Cc2dsUI(c@rKPBmq<-7By zof^5_O1;wLpA{OeW_5|bKdes8bL*n7}=@THA%PTd|ocTJjn z$iL6Z%x@I)ath`Agw-M|X3)tVTO_jkDx3vbUF5axbRPb2SmbXR?G$W} zQVTcjkcBnZl)o&~c_eT~J-RYi7Ws~-K>iH**o0lGIN?@Ve076b6cz6*>RPH64~%h2 zTIZ=HUH#7EyDU-K+Ub; zvYuY`)Qw`f{MZTg^!aqT;{6ZQ%HsiN)hk<6byJ%2Ol7r_uioLTUf3X>t-S86@vIUx zS>4Wa;|fKsXIR!=P7-U!os(-jZWHS+e-Ss_D4 z-SX#G=wGk@)teBL-GA@6ArUIXbZ9mR-%Bkxe7JMz)RY z8`(Irb7bqt-jU5CyGOQ<>>p`>tLXsJ0;C5>6Ob+-Z9w{fGy>@a(h8&(NHdUbAnic< zfi%R`bOdRMtLX{S6r?LiTadmWjX^qtv^gKX zZ2fgCFgsiv-R5FlI&5wac3jOoxs#YI^ZD&174cMg@t*PWnJdAHPnYe=sZ6SBqRg&N z*UQpJi>2nKSC(D)D$9pHO6`$1Qn&l1)JMmpq5Yw(Xucth)fc5{;VJQXlj{3&T~|(D z%lc2+S^w)HU6nbi&5z@{`tDW@jC5(s*`TgDQK!NEi!>DPl<@INS=&)7>$d-p^)&_3 z8hS6SKc}UwYDU}My^syx-|EJ6Qrf4U>!y1d?Ra)uJI~$MuEc4z51iNTGq+@OPNS{cfNT*1vNUyG@S)^N6(=O64(lF97{?9F!P#TtM_XWgGAXQmphxKtuE{z?F_yV3@i)`(HV?D(k+02gMlF= zfsq%?7V_~8VekwNVeobg3SkKF2C@RYLqM9~AcO?h{($QG4+J1rgJ_V;K{UwqAR6QY mkTQ@jKs3lFAR6Qw5DoGXhz9uzOapxeqG{thE}(aHO}PL_uvFv# literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Kashgar b/lib/pytz/zoneinfo/Asia/Kashgar new file mode 100644 index 0000000000000000000000000000000000000000..964a5c24b7b86f70f2b83760594e894b263b713b GIT binary patch literal 171 zcmWHE%1kq2zyM4@5fBCe7@MO3$l363R|*3o14EDuNGc?OfyKu+gdxH!1jJyt$|A7F%sa!zgb#^?*;;d&%*}`#K}jI=*NPa?p&;ym{@6j{ zIRwG*P?U9%@K7C=xAag*PiND~G3eB_-^=@a-@SWZ2IKQ24h&-$xArjx5?7v`#`LrK>} zT(2Gr>Y9-zy=J&p*Its^ea5EO_ATjkv3XtBHlscMDeZMV)$7Y1YM=eB^nIC>8#2$` z^%qXN>t`Owjgz;f|M3mkaQ~ugymd-8UG0;b&d25Eqd~dl@JSsw7tvdT-Fn-8uijqM zpqm55y7@=BZgF{J%lk#$`n^c*n0TYxWsMV1CseesT}59-RrkC{#UA-pd^#+8ZZ21Q&lc=U z#9jztD=f$!c1PY(RGjxA{|krRSyGyRlr6Ihak;|$ts<#}xgNe_D-~i;bDdp(-{F4t znbf##1y2g|UUp55=dN>a#d{LsU^r$iy$Nw39?q@_en{A?A=bw~OX43Se9gV}(+nag zDi~x?bWns?HA*N_C|W3DC~7EjD0(P@D2gbOD4HmuD5@y3D7q-ZD9WrFX%uY~aaN5w ziad%wia?4&ibRS=ib#q|icE@5icpGDid3scD@CkTqn09gm y&7hkioIyE7I)iqKcn0-WjeLrJt7ZpKb^&E4P<8{uj-c!c`v2_=C!49U)%gpKKM;2S literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Kolkata b/lib/pytz/zoneinfo/Asia/Kolkata new file mode 100644 index 0000000000000000000000000000000000000000..3c0d5abcb545d917cb596de202268c3bfda34405 GIT binary patch literal 291 zcmWHE%1kq2zyPd35fBCe7+bIb$T@YpZNnMXLWwg|jaFPL5t_ls#LU9Xzz}o;q%!CN z0}BH~bOr+l1A}h_122fp$m`=9!r%eKPN6{|44%OuAeB%MLfCdTpi+G{`j|8ss7{4RjTV2DyxZGN*9?U8-wpWo*C&03$>`@&Et; literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Krasnoyarsk b/lib/pytz/zoneinfo/Asia/Krasnoyarsk new file mode 100644 index 0000000000000000000000000000000000000000..893b3ab2e808862b0689029d90a662a30a6c2922 GIT binary patch literal 1226 zcmdVZPi%`}9Ki9X)-fyN!bX)^P3<2)#WrfRo0+Yf!@MH%C&Zs+Vu{6{aByg1NJON9 zi@3-daggOFxX4b3I4mS092Q|Q5(gvVU=f+;`__`;O)(YIM!1`bH;`D%3%?}EmYGa++%bF;3A zld@i9zwzff&uh$<0{decXP2?-?xbh3F}u52XXf!8_Q#+3{mGVA$0XX~?zG9_yNo9@ z+;wJh{^4-H{rcRP9UL-p&}?(q$bmCBbXR-u$l)UaFo*yN0f_+#0*L|%1Bn9(1c?L* z1&IX-28jj<$JNGz1cXH7YC}R|LV`k~Lc&7gLIOh~LqbDhLxMx1L&8JibF~2?5xUwC zkrdF!@;Wy0uI|f zU^u+(@`a-c!VO1fum>DxbZ0nTX?5Ym<1-8=qxWApb>x4;X`9ahrzb`*T=K~MAU5$G z0|O&76AENuW@TVVF92G@kXgaN!oW~!z{ttKP|yHk*G*s$0JBAWd_x$V{DUAwa0r7J z5c@`kfV9Cu2nqiB0oC;%2tfV=(I7v9Xpld_G|;ag8suLv4fHdJ2KgII1N{!7LH-BR yz%T&Opl|@wz_0+(pzr|EpfCZ^pl|`vps)ec!0-XlpfCbCi`L=91q?V{3oZcaNVZ%6 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Kuwait b/lib/pytz/zoneinfo/Asia/Kuwait new file mode 100644 index 0000000000000000000000000000000000000000..c35e42a1216381de994a33b4073ae0090345538a GIT binary patch literal 171 zcmWHE%1kq2zyM4@5fBCe7@MO3$hj(QwuOO_fkFEWNJ`6qfyKu+guyX51jJyt$|A7F%sa!zgb&a_IiUJf_ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Macao b/lib/pytz/zoneinfo/Asia/Macao new file mode 100644 index 0000000000000000000000000000000000000000..b8f9c3696ac7532d45d4b7b4c395d9a7f64af28c GIT binary patch literal 795 zcmcJMJuCxZ0EWNn53S#p*ffIhCDKGJE`AbpuqcBj5=m7;1VeRVk>)0m5D^0=lgKd` zD7ndqNn$bDFe=)r-};`0$->~h-1l5Ax#6BCI5aulEPl+U-f*)w1#dCTi{T)cWgu*zI8pnKAtG3j0>mZOghu2n(Jm) z7GCaXMJG$L_-Iip*^bE4wRTZ9?@hR8yuvfx7A+6A>J|M}Q7vQIG>A=>};B=?7^D Y>Bwja>B(pc=?ZBJ|GTeC#rA2gPZB8gP5=M^ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Macau b/lib/pytz/zoneinfo/Asia/Macau new file mode 100644 index 0000000000000000000000000000000000000000..b8f9c3696ac7532d45d4b7b4c395d9a7f64af28c GIT binary patch literal 795 zcmcJMJuCxZ0EWNn53S#p*ffIhCDKGJE`AbpuqcBj5=m7;1VeRVk>)0m5D^0=lgKd` zD7ndqNn$bDFe=)r-};`0$->~h-1l5Ax#6BCI5aulEPl+U-f*)w1#dCTi{T)cWgu*zI8pnKAtG3j0>mZOghu2n(Jm) z7GCaXMJG$L_-Iip*^bE4wRTZ9?@hR8yuvfx7A+6A>J|M}Q7vQIG>A=>};B=?7^D Y>Bwja>B(pc=?ZBJ|GTeC#rA2gPZB8gP5=M^ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Magadan b/lib/pytz/zoneinfo/Asia/Magadan new file mode 100644 index 0000000000000000000000000000000000000000..6ece3930bac9834018b5c1a95bc193a1a6ac1783 GIT binary patch literal 1241 zcmdVZO-R#W9Ki8sZ8l#HMUXG8m9}h|`LbnZ`I5Fw%#DT(A}a`bf!gIqbdb6P)gjWl zM28_IRA{lHgNcNP9fA%?gh&VJAXEnl;zxL>2<-X(m$2&8vFFeK`8<2}-wu1eOZ1&N z9X5ZBBD=%Qh}fI;ic5BSRMt5B?B3|y>fnxeacMGBl7IG1$+x@hrSo^;0ozb1SB`SK74he4W;xEZ5MnsD#f2Wm{{lH1rn8cK=Fg z41JQuA77-&=hdcnGqUshyzZJDm*&}5+VWspTc1DHwyR^hJ9SgrPu_T{x`SD;tAJ|C8DcY}1lZkGM;i>2p@U!qfCjSVhJq9;9f$Twt+%e^dn zdGd0u<=&hZxo`Zr&i8tZ89Z)(Q8O@X?0PigDljJXly!Dq+F^g`ncts`#u6sh(dA4B z6MUC(WrwrQPKkdw;jh0ww`d0^jhr^yoH%mo$jLj}(?<$GDnLp=YCwuWszAy>>OcxX zDnUv?YC(!YszJ&@>T$FMAr&zw$G*%uUdaEUCKM|C3CT$yJ^%m! literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Makassar b/lib/pytz/zoneinfo/Asia/Makassar new file mode 100644 index 0000000000000000000000000000000000000000..0d689236dbd55f2ec72468fc855e292d3dcc5b8d GIT binary patch literal 280 zcmWHE%1kq2zyPd35fBCe7+bIb$XWO)cET>Ps}oLl$TnOGdso1~$i&RVz>xm|q!LK7 zFfbG}FmNz1)JLxIa1Q~|;uzzxJ8w%`vC4+#DPfyl!<0wB6t-hKjz2DubOgIo)uK`sW-AXkHEkjud| o(DfiQKt2G`AYU*rGBYu=05KEu|Nrt}X)=Aoz`zCcqOJuO0DoX$@&Et; literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Muscat b/lib/pytz/zoneinfo/Asia/Muscat new file mode 100644 index 0000000000000000000000000000000000000000..415e443ca90d894167dec0f605b02dfd57f340cd GIT binary patch literal 171 zcmWHE%1kq2zyM4@5fBCe7@MO3$XWPl<_ZQz1_t9BASnw61{NRR5C-?)5D=Fkgap%m UfORl1{09R3rg8y|*EQh+06@JK!~g&Q literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Nicosia b/lib/pytz/zoneinfo/Asia/Nicosia new file mode 100644 index 0000000000000000000000000000000000000000..3e663b215327d8899a4b3fbe4623f066630b97b2 GIT binary patch literal 2016 zcmdVaeN0t#9LMoP$d(r$zG#Sgc`(Toy1)g*#K4CL@PVtxxEZO$QQ?9`lqdwI;wG}@ znER@1&Q)7YVy!vU%^o&;nC6^rj?PxDwZ=MWtLB8YnX`1ve($sOSAV(nPv`8O*V)~@ z|NY*d==!a(0_$H_g87CI*Ix7CeIhUKzn=c-_>q%dVEC|`c(>l0@Wn-YVt=tS>A+9! zOP)0;>}G+wCCOq zIP-oUv9rFt>11E{+J559kQ3@ZZRhlza&o(m*m*k+JK_2^JHK|&D~KF&3rp3TpR?U9 zN^A8N6m-afu`XE{?9+wAo22+&yDs{?OrH9oMoR|jwDjyEUEH%wm%Np#OJkY3th-pA zu1L_b`k*{B=T|K+8&%vhwxd*-IR*mX5g`|7o>Cad);|zK;9TStGkY!*WH8f=$_7g?K;?{) zl^u>7XIZJUtnvRm`KBrowaUw@c|`eDT%7-iKEMJ0lmD6PzPUK)ymQ!*1CJbfGtz^ho%=CVpf9kP$$J02u>h5Rg$oh5;D|WFU}{ zK!ySt3uG{S&1fLQ;cLbN84zSdkRd_F1Q`@$RFGjo#swJ|WMq(`LB<9d9AtEm;qf)& zgA5QdLdXyyV}uM6GD^rWA>)J$6f#oCP$6T53>Gq4$Z+|Z@j?d7*Nhl4WXPBygNBS6 kGHl4W;s18v0%q@W3Ru2Sq%gNAH=I`(isXm=xA}p;0b|0?X8-^I literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Novokuznetsk b/lib/pytz/zoneinfo/Asia/Novokuznetsk new file mode 100644 index 0000000000000000000000000000000000000000..ed4b248276dbabd6b9424bd5f7252729419570f0 GIT binary patch literal 1197 zcmd7QPe_wt9Ki8sIm?`cmvXgM%VkTa^=s8!O>Jt+{1+7KV1Fq3BL+g!A1VkOWCani zs4me>iHL|_RG08DDx!lFMASi|BndiX9Xb>d>-oMWEIM`T8Sndf_q^{0+wYs&cAz_A z{#rBb4hO5r9$c5E?dhgBki9=R7MLA6n3>}pGG#@BrDfk=r@bFvW#*20%)F898Q*Y^ z&cD^A{%dWz;Cx&co~+hDuU{AKn5E_IISt0Y=;H90R`_1%63-(Ixj#$j>pNLG{x(s0 z{A{A~_Bg+Pk$?_vTBKx{z#m)hZ9NMKT>$`Q;mPTFe->A_@ zP@_MqH0Dc4>`jTT`B5%whbJ^X>Xy3e9;tuuK^jhfl66;~N@D+WX*@NqP02gby!VN& zuec=1<{P@9@Tjx|&uPoVMQttU)z)W+we9^TZNI%$J4Q|O8gMvOAN{aJQo~Wx^7*N6a3z ze1UPXoGVVLf0*XC-=DHSD92Qh$+FFKkqNVyvZI|eGHqnyET)c39+^H;08#-`0#XA~ z1X2Z322ux72vP}BileOsDF&&=(UybMgA{~Rgp`ETgcOBTg_MQVg%pNVhLncX=4gvU zs&lmEA@v~zA{8PfA~hmKB2^+~B6T8#B9$VgBDEsLBGo$Da*=u+ZNW&zNXbaeNYU7D RXaE0JU0i2tZ>Xs){sqhn1EK%` literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Novosibirsk b/lib/pytz/zoneinfo/Asia/Novosibirsk new file mode 100644 index 0000000000000000000000000000000000000000..a5d39dffc110700f3f423b7ddd2f525dc09b50bc GIT binary patch literal 1255 zcmdVZPe{{I0KoCLoNmkr2}e8j6JQP;zeSand9in6J$NPQX9={E?_gP}^vBN>} z$MBdPCL?Ml>#~%&jpn^I4>D6#i|S6M7guCOxjR!<{`F<5;@w2rn=ciWxqWHh*ip6Q z&K~8z*`=0Vj;Lkl8&uVCzgphAK&^-sRCVN|stHV~THgz`vh=B{bAGVure9mD-oBFc zXD-S5@h8^mXZNhY{j3%E(IXnN8QC~8BG+6TmTL!2OY7hf*|h(v4xT!p*R>Al^*eXy z4gOs^6l~I=?_nMG^~msKrQSGW$xUP5bR@q}w%qp0)<@H_ZFoj*zA+)?p-H)A=#$Nbu#5}3(=Pp^XKk!I}Wom z`%GVwHP3X%6Cz-R%nX~^%*P0a8Ny*N?OWm>4*AQkx0&x&;IJtN&NhcmId}$#Z`S~z zAfP~CfPn&nf`S5rf`bBtf`kHvf`tNxf`$Tzf`q(t5-E!zhL>NR?A{0c3R1_5EEh54o zB4}cCiXbZwA@l^DLZm>th!A9l4k?s}!mQr^w}e%vj=djyfA7A1yX^VTKG=OcX#KTv z%pG2=I`iVZ@}k)WAIZp*q1nJH--Tp;;c#w2*2B_*ukWuFewa>rCOx@DW8F#bXs;IE z@6wXn2Xyt7sIEC*t)(aYy0)WO*Tq(7SW-5A8VXiv zXd$d&?>-4n73t3TfK-ou)0)XV*>%q&wNK|{cmKTXx%Ecm*p%$;`=oV|XHwrep$+AO z5~&~2#>_rxD!ZvoGj}waaZaP-m$dm^hqgTE)Y#ZriC>MV-SRnLxiXfdE_Y_ywRBn9 zoAeLUmtWueVHQJ12F-1TjSL(ax}zC9GJGTeBmyJ^BnBi1Bnl)9Bn~7HBoZVPBo-tX zBpM_fM-vYc5E7B22?>b_2?~h{2@8n}2@Hu02@Q!22@Z)42@i?S(FBM@=x9PjVnl*O zqC~<(;zR;PB1J+)Vnu>QqD8_*;za^RB6c((BQZOgppmGNu#vct!12F|Je$8kWhnb6 DLedeU literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Oral b/lib/pytz/zoneinfo/Asia/Oral new file mode 100644 index 0000000000000000000000000000000000000000..f7e2ab50946d3b4e05ea5c4b1a0590b9fa3b69c2 GIT binary patch literal 1031 zcmd6lJ!n%=7(j2@J`J%*7n{UbjanPq*cxMBNHwi-DIHP>@}M9UzCjEAOhwT_s9+F8 z2T><+P$~{05|b#N59gIlfK!NtL)B3NpO-+3)q(8bMrx!-x*{6KO}aQyUC-u$s* zdc$G)dU)=*qT@;O&c~Otjq;Yvje2L|O*$TZo{lendyx3DR8KBs(p%qMtfyYr?6#*D zY}frMyZz>b-En!$rq2!8os)fbS0!b4m)dQ2wqf_Ae!8AbUtPvaO6Ge^_I_TG-b=I6 z`{7fy@9m;wU%Z!nkLIQSZe0dy4`u)P+mbtZRSukZ=JM0m-NE5oZt&Py=XXuJLVny8 z8i6aO&PZ{w;D%Nza%e8$4lfKy>9H@vuR3JpT3n9YTaxmrWjR{g>}HzHrirw)wzanC z_BO2TjZwC@ioZJRTDKPkVrez=v;p@T8-$dzu#FI4@@>UsK?h+ z;A@PDuvQZKth4U0tp5ZO-Ky~ q5>H4C2oez_BuGqPb>&M$5g<;$i&RT$iPtg z1f;yYgMo#Cp>6^L2bkmqlRy!WxQ}lLgLiNUgO@Xi0AgeiLV{C%KsEjc0+5qHG{{*X Z8ssz(4RRhx85Nz#1$4Zwg_W@Z7XaRRLBRk3 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Qatar b/lib/pytz/zoneinfo/Asia/Qatar new file mode 100644 index 0000000000000000000000000000000000000000..3e20373990e3da7318761d709165d6ede9ce4332 GIT binary patch literal 209 zcmWHE%1kq2zyQoZ5fBCe7@Ma7$XWPlt^rHeqyr3$ObiSL0U&t`2L=`f1}y^y4jH}-Ow|DhMJ@Kxp`(7>R z;FEdXfB&K$xP4B&tCKo3GpYxt6M87uqlc3XJ(BpYN8?}AkHp3Q@mq%1w<;qyAIZok zEslQpD9P6=a_srCj6HlR$Ey$I#PzC-&n?Kw*_x)V-O^L}yE<`UR?~xXnn_J*rcu&t zVn(u`hjntRAgABQ^vs$kxfj0V--e~I6qTvR>r%Y@P0m)GE;gG@7YcWDc7*MUbhTZ( zBGLAbJND72bNPz>7cN_Loz9iSbvswCgnC$=t?efz3EAD&ldZcvIeotDlH(IL(>61F znRB6FwD!ST{s%cfx8Jkh)I<_Q6vxPd2!luqXyPF9AOay0AtE6%AwnTiAz~qNA%Y>2 zA)+C&A;KZjA>sp?d`JM02m)FNkQg9AK%#(z0f_?=2qY3nD3Dkn!9b#cgae5upalep pD4>M|i3t)EBq~T)khma$K_Y{M28j(Wnv?%JxLD3&ER1Dhe*khm-6H@1 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Rangoon b/lib/pytz/zoneinfo/Asia/Rangoon new file mode 100644 index 0000000000000000000000000000000000000000..934ca7ef09a61949b36604378d738a05fd49a5db GIT binary patch literal 285 zcmWHE%1kq2zyPd35fBCe79a+(MH_&`!cWB!r$7CXxHv2Q10xeNP%cUXC=4Qj?C1;z z4hDw02@JeowxEx12tyDMJB0>?Fn9%rF!%yF2oOTpa+pIze?YbU2ZFF|oi{)<$T1)q Xyt$|A7F%sa!zgb&a_IiUJf_ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Saigon b/lib/pytz/zoneinfo/Asia/Saigon new file mode 100644 index 0000000000000000000000000000000000000000..c14226570b1de09573c3340af718d12dac021c39 GIT binary patch literal 373 zcmWHE%1kq2zyNGO5fBCeE+7W6MH_%bM~`#E#KqcNXHB0qT#P(daLL;4!&Rf*0#CL* zX?UwYgMrKTI0FMC6Eh1FGY~Q`qyY6WFeHCtU}0cLDq!GbU?^x{;ALQ_o4_Cl5%KX2 zVF&;bp3Xq*62jmW90Jw^BSJ`U;t!~%|3Cn8Du@O-7es@c45C5K2GJm=gJ_WRK{Ut< TAR6Qi5TJoqxPX4tHRl2Vh{9hr literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Sakhalin b/lib/pytz/zoneinfo/Asia/Sakhalin new file mode 100644 index 0000000000000000000000000000000000000000..cd4ad762626a582e7d07a1d7a2717cc181601d29 GIT binary patch literal 1257 zcmdVZO-R#W9Ki9PZOdhNDRQf&X==+%-K@-7nmS*YQ<7XAdV!!fY?p`V5C!r;Sws>Y zIt{T7i3JfM5i)idDAd6sBsxf!-VR;jIY?*_^?d&}D568het-VYcYDUh*z;N9(7>sB z`C|&~4mZqlVVBx)abA@sKdQ3Buhqu*Q&k?BR29|tRb?QhHm$s_g6=0KI6rPS ze;Ajl^ZTUg)itwa`hux`oHSeS9x*kydQI)+W>a^r&V){sn()ycRev_9wl&qN?fZRt zM{$X62rue}Z=xFmMbh}@o!<3zL3U@Rb!2W%_KdxirgTP{ho)q2YE)WIj!EmKv~KIT zD$(O3y1jBhI--NR(-W7j@?*N|^JyJ(wdvT4nC^aGq2mv$b)BnwVf&E`3YQo`yA7*PA&Hw-a literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Samarkand b/lib/pytz/zoneinfo/Asia/Samarkand new file mode 100644 index 0000000000000000000000000000000000000000..65fb5b03de72200233f74962f865e3e9e9e85aaf GIT binary patch literal 691 zcmd6kzb`{k6oBvR52}?|N?T8Pe!e0Skq8ozb`e7*FX1>@9aOz+Bw z=_}f%f40>OjMmMd{b+^~x5kYoJon|@%bj04xw{8%xNplfi8|m?w*iT9pcoQqoEnq%4(5X@amUtI;&7{)3;_ zuZJHJc!IcMj4y~Yh_`^^4&o2u5aJQy65>!}*0sg05#AQ=slkrc$RETl_ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Seoul b/lib/pytz/zoneinfo/Asia/Seoul new file mode 100644 index 0000000000000000000000000000000000000000..fd91d5b729aaa78253bd439c36a103fe88ce33b2 GIT binary patch literal 571 zcmWHE%1kq2zyRz(5fBCeaUcewSaLHNy!y|vq4^OhU|9C1a zk?|~vx#GE?&x;rO1r;xzf5~{oA5`(`__d7J?@cP+EZ>pw_PkidyY^WbA504?6c#5; zP|Qo8pw#R%LD|o90s|uxGYcat5@cZmLI#F%4xp_JkLLg z28NymjDkMCAq?KZAq-y5AOeWJT|z)Qkw6Fue*FQ}_a6vAeg@GXe}ia{-$69U{~#I^ z1|S*~4j>v779biF9v~VNCLkIVE?^oMHXs@lK42OcMj#p#P9Pc-Rv;P_ULYD2W*{0A dZXjoY!VW}(!Vg4)!VpB$D;&9i;jC-P1ptE4#?=4- literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Shanghai b/lib/pytz/zoneinfo/Asia/Shanghai new file mode 100644 index 0000000000000000000000000000000000000000..dbd132f2b0bcc8beab08e04b182751795c853127 GIT binary patch literal 414 zcma)%y$%6E6ov01AsdnK0RGwCh(;k=S&0xTQ;84_wi_?7<`F!PCs;~}D7?f(B^vIT zl7ch2`)zh+C+8E>VAZ0p#Q6&b$@1Vmt@shmEEPQ+dAwxQ={D8*Lz@c0P8P$BDh-yh zJRhox=gVq;O|{%Y*PQ{??_KRC8|0oVI%a(=qV1LMrEqU0h@_&_Xe`L@@k|6ZIO2E7 z93L|!ALb9D7bk4{9*EM0TpUDs5CS+32?Qb_WIzakkOCnFLJol-2uVX01tDw5!t~*5 M#r`q2S-#n^-;pXt<8 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Singapore b/lib/pytz/zoneinfo/Asia/Singapore new file mode 100644 index 0000000000000000000000000000000000000000..9dd49cb7a72f1e0708e92fa53b7e0b4fa001553a GIT binary patch literal 428 zcmWHE%1kq2zyO>;5fBCe7+bml$Z2bCUA!yZZ^8ktCkdxEKTSA2F`na+NA8F3yL>yu zCVu5$WMXDvWn*RMU|>j$1?dKoEDQ`u1q?uubOlCU5D8*uR)EO52@Jwuwm1VrK?8%h zk8cP=FcAAX`hbbx5C$(G4t5U#nS};I2)msNs0HMH=^s$N|AC;+EO;@92KfahbKjKhy5!6Af zk3k%QsG!m+Q5o1z=X=Tg&%ZH>&?iv(rXg%jO)PSh~7Rw zqUweYsk)h~ddKVYx_&IJcRo6*8*V3bh6cbIRpjnaLn=c`Lux~cL#ji{L+V2c zv^5nXCEA)Aks^^Qkus4wkwTG5ky4Rbkz$c*k#doGk%Ezmk&( literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Taipei b/lib/pytz/zoneinfo/Asia/Taipei new file mode 100644 index 0000000000000000000000000000000000000000..4810a0b61420871f7b2f39749e10fdf7244b76f7 GIT binary patch literal 800 zcmci9Jt)L+9LMo5&chuBN?8;JMTtxXQ62_5lRu(tQnsIml1RVBfW_otR4mF!7TthS zV(@t9oacx0{ELA>@q1s&U|{mQe*f2X-3|A7JI(EFMe^gs+E2KgTzh$+rtM?7zFKcN zO?rEzPw$k^ncb>v+4K6$eu+=~acwG)@vH;aljh(fM}lh`>hPpVhi1hbb#}?|e5*R? zAC%LvadXzPsLy-W)kW#OToz`ktE>*WPMuNV=xH5(@td1-zufL7sk_xgeZNp<9$w$& zabm?h1q!t3eN*x84U+IMtlXg??b%#1DZwe7>V#BOv@7OMFOiP0{Xe3#xI_j<#mzG+ zIr2%0x7LxG#yb13x1!Qs>-TYfUoFpmJF?o_*Uvue>E1Ny$co64$ePHa$g0S)$hyeF z$jTAz(#YD#;>haA^2qu~0i*&_0;z!%L8>5SkUB^qq*6p%3aNz@L#iR=ka|c#q#{z1 Zd8o;uC{h(Ei_}F5%l{v3Vp;$I literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Tashkent b/lib/pytz/zoneinfo/Asia/Tashkent new file mode 100644 index 0000000000000000000000000000000000000000..1f59faa5344c42393ea7ed4d8dd2c749d409131e GIT binary patch literal 681 zcmd6kJxjw-6ozj!Y8w#?qD@TI`k6`*ir}J4Tm+#)!3a_uii1*c=;WjzxH|X)90G3Q zqTnWae}IdlxH#0oLAwa*;KzB=3WAfH=W@?;c)5Y_oS;}-M(89{V(rjGd&DZ}${N!gYZ_=6SV`02>kyA!tXLR3O@LX<+ZLexU^LKH(ZLsUa_LzF|bM-=rC{Sjpa N@Sm)~k|j+{SzlSIh6Dfr literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Tbilisi b/lib/pytz/zoneinfo/Asia/Tbilisi new file mode 100644 index 0000000000000000000000000000000000000000..0d7081e975983fbb2425df33c552d0885ca14664 GIT binary patch literal 1142 zcmdtgKWGzC9Ki8+nrbcyPHOX~@lUI!sjWV18&7TZwNOi;!l6e%QOIBmfg>B}n46onEzj=Q z{DVom=kA!@d#h~s-59p}uXwg~v}oJo*l4v+Vb*Lp4t)Oz#fu+-gF zEB*39FK4t@&xR*gTJ@>9)$sIEO!qy>nEu&M`b>4joSk{2%~;)-`s>=jRLk<<(3c5k zOKfZ7ZrZl#-tNW|E_W)KO3G*R?Z#6|71!hsVT~!(p_QxDIp2|g$}{X6>&6M^@|~TW zJL!$Ryp_FtbNzhue4v8CXc=KQaxqZDLp-vHE=R7$?vFM2_ZUye527*tSpVgkT;&(D z4l-6`w7h1#$cT|KN6M&?aU&x~#*U0089$N$k^zzek^_afNK!~vNLolYWmNz-K_NQ`b<|XwM@%rsXf$6v-FTrq=%w| z(i;pUI}}BK38jO5-i)t#Z#vg~5 z`Gk|B!aTVTXg4pt``Yxg$pF3J!F9Q?G1BheZMXQ(B-$6{SLuK)4i%U%t%D*LtFVw} z9X5GMts1+iR}U{!;RE9`;!1&t?Do)6?Wa|ALxQxF4T+eXT5V1KsA8?NI&MXiS`)Nf z#?S8;@m~sb!iU#Nyf`D*j{1wl!G&_&%?o0EZ?aB0tJQ|qW@)SYF6<@!dSiC9O14Gm zO)+;>>ibbCpJ$7-M_JNwe?p|+=+GHGUMlm{J(<73$vwKcs?=O%qpc@fv7 zGdNV_`%UNqqevCZddtFh-D2C*F1dXqP!!#HsEhkjRLS|zaz|&2*x3}SORH|FU4;X> z%wbjK;;q~rUMco04b&CBJ*whcs;r!OBC6gzmeu3AqGtGquDyLy?Y$Z+_njLQbsd$u z{?N2)DDRc~^FzdeEy40&LZ3LaGFLY)d8wMbI%U&WU(q}@s1Hxt)RD0b`smPzY8f~v zTQARvV_ki^tvy^FuYV;^l$8p@&E3<((|z7Q{TYTunEyRjPs4~2hPPp)BhzU(%`+`GkIQB!ul;s7|6*=)zux;{9?TAz9*>zHGC^d9F3l+-b3`VI%o3R< zGEbN0M3I>yQ$^;AOct3fGF@c8$b^v@BU47^j7%DtH8O3N=Dd-KBQr;)j?5jIJTiM^ z`pEo|1dt4n6p$Q{B#|-yM3797RFGVdWRPr-bdY?IgpiDol#rZ|q+FU=A!#9b zA&DWGA*ms`A;}@xA?YFcAqgTGA}Jy{B1yV5vqaKF@IyvUX{vjpU6aj%1Fcj^vIck7SRekK~X4;U~a{Z$o5kVyuPlLxe+EqAd{) KYkXX^#pfq{h>?5% literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Tel_Aviv b/lib/pytz/zoneinfo/Asia/Tel_Aviv new file mode 100644 index 0000000000000000000000000000000000000000..df5119935c5b01676e63d1fb1efd7273b8b4b452 GIT binary patch literal 2265 zcmdtie@sLcU*$tru4i|t=jsdKim4U!|Uu0{$YIH zfs*A_DdHa&W5x9x>J#0c#_99=4e@Wf;>!&oI{qxRiqG#enySL_)z8HB@1*eUOV6e~*uWQiZH(Kn`gTGi2 zO(}MC+mN2L`HCIWK4QgM@A~659w)@mlwYIsU0*`t{Urd+lkL zI`zFrNBQHs`mE{AvG$B3l{#T_h&^-10_`bp_9w27*WR3Cc2dsUI(c@rKPBmq<-7By zof^5_O1;wLpA{OeW_5|bKdes8bL*n7}=@THA%PTd|ocTJjn z$iL6Z%x@I)ath`Agw-M|X3)tVTO_jkDx3vbUF5axbRPb2SmbXR?G$W} zQVTcjkcBnZl)o&~c_eT~J-RYi7Ws~-K>iH**o0lGIN?@Ve076b6cz6*>RPH64~%h2 zTIZ=HUH#7EyDU-K+Ub; zvYuY`)Qw`f{MZTg^!aqT;{6ZQ%HsiN)hk<6byJ%2Ol7r_uioLTUf3X>t-S86@vIUx zS>4Wa;|fKsXIR!=P7-U!os(-jZWHS+e-Ss_D4 z-SX#G=wGk@)teBL-GA@6ArUIXbZ9mR-%Bkxe7JMz)RY z8`(Irb7bqt-jU5CyGOQ<>>p`>tLXsJ0;C5>6Ob+-Z9w{fGy>@a(h8&(NHdUbAnic< zfi%R`bOdRMtLX{S6r?LiTadmWjX^qtv>vnPzuD=m$xbahL!p+k^8g8@83fx|O ztKrVG{{nZr_cSmvGeIE(L)`?RCJ+fUp=SXjCq%?6IE2B=8AP~*FfalYfN%(Qr?3L0 zKo|sgfEdIU`~l(t!G9n~J+!0%M3IO-+hKpzhwbg3T2hY%w~N~#B6EXoH%Vx9jrVboKPoy)oZv$GG_&Tq*>Cwqe8 zui@4^Oh!yk)+K3u8~nWQ-P56|ie>)OndN0!QR*5hDgE&_T{bUbE&FK-?>r~p|5~3?5iWl#T zI}W|G@S3g^YhKgVo)iHY(le}QJs%?+dI*QTv~S6OIOMtCZ`0o`$6-?roNW%Ba_|fe z->wEgK|q1P00RXC1qB5L1qTHP1qlTT1q%fX1q}rb1rG&~U5$tWiGs vDTpbMDVQms?P}B%*mgB;3UCT?3Umr~3U~^7+NVwY7x3Lt{g-I0t9Snb_fHt= literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Ujung_Pandang b/lib/pytz/zoneinfo/Asia/Ujung_Pandang new file mode 100644 index 0000000000000000000000000000000000000000..0d689236dbd55f2ec72468fc855e292d3dcc5b8d GIT binary patch literal 280 zcmWHE%1kq2zyPd35fBCe7+bIb$XWO)cET>Ps}oLl$TnOGdso1~$i&RVz>xm|q!LK7 zFfbG}FmNz1)JV0tI;*7EB-A}dorO$|e>=IkXord*poJi=8H4;0Qh2FSi zB$dsHt%qlgI%o!XAdU|ik z+*T1h5NMHk{$s&|1%)!-?G6@fOP7bNg)znJhh<4bwJ7=4C6CYNixabz^5m;3Rr;h; zFMF7$%I{U^6$8ntvO8C=YK~B+DwFhT-)B|h3DZy8U#Ng}UO%&8LDa6c$lC8SqHf`% zJUe$^)IWbF8z%cjJd8W7;M=$CgCb&^meb+N|hqSF)#WN@$j_RsZazX#uzS zooY3LFSt8sS)*yf(89ewzgFzc3q6Yb{72~gf6>a1-=A4Ak7oFlZjg46evpQcj*ym+ zo{*-Hu8_8nzL3U{&XCrS-jL>y?n0XFarB2Y$k8FvB1ex%lN?UYJw2JhK zG>deLw2SnMG>mkNw2btOG>vqPw2kzQG>&wRw2t&1(rg~-9%&!xAK3u117r)x9*|8S zyFj*q>;u^dvJ+%0$X<}mgfw@9YzNs7vLO?V9U)sn_JnK-*%h)aWM9a}kewl0L-vMj zE~L3TWP8Z|kPRX`M7D_R5!ocNOJtk)zwI-U&D!^x&mzCgm+r`LWZHcD!0C$o1^8`f Ai2wiq literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Ulan_Bator b/lib/pytz/zoneinfo/Asia/Ulan_Bator new file mode 100644 index 0000000000000000000000000000000000000000..c9a1a2fac62407a1d9c231c2ec650f8de2ef2f50 GIT binary patch literal 1513 zcmd7ROGs2<9ER~TsYFV7fugd}V^&tqEghv&$4px_Q<$Tb*R)CVl75wDsp(mWT`-x2 zgh|A=5QUO9iMohZ6$Vj@(nUm@(r{BBXwf3D^9=1;wFvqTbABq$YM$3$T3?%{{c+*u zUwCsB=9{0R4fE0W=8HEv>V0tI;*7EB-A}dorO$|e>=IkXord*poJi=8H4;0Qh2FSi zB$dsHt%qlgI%o!XAdU|ik z+*T1h5NMHk{$s&|1%)!-?G6@fOP7bNg)znJhh<4bwJ7=4C6CYNixabz^5m;3Rr;h; zFMF7$%I{U^6$8ntvO8C=YK~B+DwFhT-)B|h3DZy8U#Ng}UO%&8LDa6c$lC8SqHf`% zJUe$^)IWbF8z%cjJd8W7;M=$CgCb&^meb+N|hqSF)#WN@$j_RsZazX#uzS zooY3LFSt8sS)*yf(89ewzgFzc3q6Yb{72~gf6>a1-=A4Ak7oFlZjg46evpQcj*ym+ zo{*-Hu8_8nzL3U{&XCrS-jL>y?n0XFarB2Y$k8FvB1ex%lN?UYJw2JhK zG>deLw2SnMG>mkNw2btOG>vqPw2kzQG>&wRw2t&1(rg~-9%&!xAK3u117r)x9*|8S zyFj*q>;u^dvJ+%0$X<}mgfw@9YzNs7vLO?V9U)sn_JnK-*%h)aWM9a}kewl0L-vMj zE~L3TWP8Z|kPRX`M7D_R5!ocNOJtk)zwI-U&D!^x&mzCgm+r`LWZHcD!0C$o1^8`f Ai2wiq literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Urumqi b/lib/pytz/zoneinfo/Asia/Urumqi new file mode 100644 index 0000000000000000000000000000000000000000..964a5c24b7b86f70f2b83760594e894b263b713b GIT binary patch literal 171 zcmWHE%1kq2zyM4@5fBCe7@MO3$l363R|*3o14EDuNGc?OfyKu+gdxH!1jJyt$|A7F%sa!zgb^dJQx^ampQ z^AJ6Z=noYZnDk&0!-qW-JtPq#Jy<e>C5YNfANic1sel7i!JOMc#IFP**JT{bh7UN!0M zE}!tr>XAzE+*&SchMcnYOhzgaU!-#XJ6RWfCEn)evcBfARFx-XL(ygNxyH3GGpsj$ z9#+)@dsX%HCB5mzX9|(6u+>y6$|Nu0K_;{f8@b;9yLGCw;P|wN4s(+_KfP zOd11UrSbQ7X)4dxO&_LZ+pk%@ePUdiXI|@;hf}&W^+dN_7}GnF*L3@ln>uuEM0R!z z=am>FUYyby|HlZE-X^&VyF2}QjgM(r3=^W4Bef-%WR%p zVegok=VNh8^@XCAiiaZh)N84Iv5>_#DCNkG`K#<~{lkC%Bm0>-GcZ7Lz`z2<1I2`0 zxbEMe)VJm|f$HVvXXBVvgdD zVvpjFVvypHVv*vJVv^#LV$-hiNik~IIHg#nc%_)7xTV;o_@x-8IHp*pc&3=9xTe^q l_@)@QYn)T8+cn-P<|*ze_9^};?*RQ@-h)EkliGm4@DJ|dE*k&< literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Vientiane b/lib/pytz/zoneinfo/Asia/Vientiane new file mode 100644 index 0000000000000000000000000000000000000000..e8e76276a657ffea33afc25ea56864eddc7f43eb GIT binary patch literal 204 zcmWHE%1kq2zyQoZ5fBCeCLji}c^ZJkqO9~Ij6jh%8z2WnvM?|t6))ye~7o}V1JM=R74=r zp+kv8U{VK*4rwrU(>#fIsLSwR<)upqbeR8%*zi#df^YoJLioMgCjv1}>zScVTGp#Rus2=AV@qC?>hNX$J#(`v6 zTYjeNeS(ZY~M=c0P-W39$scr`v7l*HYQYQ@sa;wUW0y_`jPuXXG5zR3T^ zpZCR1k!z#ok12!q#M}?RbZihAddz+9y7q+UYoGc3lktQlC*wi;a>C+wi6b}rK6kPH z;c!=e{oD^T4w-V$Jm#<|2TnP3yXN32hfe`OK|p~(!9W2)K|z5*!9f8+K|+B-!9oE; zK|_IK*Wh6Qq9C$sATcm8Krv7;U@>qpfH9CUpi!_ev=q1uycEC;#C8p23TC?oGzB#UHU&2WIQ_4Xm+)`U_OJ?KRYQIrrN^jr+_ zEs7vo^bSJWSS`$*3KbGmuB?S%i)vvKEs}^j|2qj&ty*?2_x{e@xigFT{^M-hzc*z5 zT6y*kC#%Vx?C18_%Z)c5cRac^Z1RI0iFt+R#|v`KO%+T(*;)9ZKQVu7a(ux^L&7%@ z*M+?iExJ~%i;~4!d{WeZ$fJw9KI@X$gqGBeYH7u=27HgTEbpEMy{{$sWk{C38}yf- zIOs1Qy(`Oxu1Lkh3sQNzTdFP{km@sCvixXVR_u<*%I*6!bR?>)B5k^QOF-8YRccKr zTWh}0(OO@r)V`h4@V6{kJMc>D#@GpC9Ir9mH|>vU5o_b21+j_GWSxt9)y?=qg$ za`&l=^AE%Q`s;H)>|)5spjiwX88|X@S37uQ_(%Xq1V{)-3`h`26i66I97rHYBuFSo zEJ!d&G)OqEHXbA(BqCQE5)u;<6cQB@77`Z{7!ny08WI~4919iUf;9i-e2Biv)~B>}o?sVs^DbBT*w^BXJ{v<9`)-E`Nin GaPChIt^Q~L literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Yekaterinburg b/lib/pytz/zoneinfo/Asia/Yekaterinburg new file mode 100644 index 0000000000000000000000000000000000000000..f830191b90ae54d3ca56253a2504b20bc3c7f496 GIT binary patch literal 1302 zcmdthPizcP9Ki9nZI}JSh0w0mTB@dhlv-`GrGJ*STh(pyVkd;Ov59IzT!@B*gUAL6 zA;JlVQt8Q`ZNdprNsq4NO|0B@;)p z!ABWcdV5gHuMbGY`JJ-t#8wF%Y?0-?wXz}^l*-n5va&8GRl#Xl<$o)d+pn!J-*xrW zOuFXSaJuH@8(lm8Lf73N)2nZd>iR1;^_t9Oz4k~(H}ntcb$vq;K73r(x1Ey4?S0Zz z-Y?DJ4r$IMBoge^k=NDIGSjX%Jod@P$&hXxv2@$RBHe!4t2?ev>FBb0H;m(iK&%qLSkL z;hyu`G1ues{?+04DHVBTzNl(^s!GgtRC$!L(=PL=6PoM%{Bwo%U(YOb?gn^Xnb|xU zNcPxDn=`c|?o26L?TUBjXPduK%2gQoUxnHJhXB47-kCLn5Re!c1i@{hK*B)ca5RA+ zkszTUu^_=9(IDX<@gM;q5g{QVF(E-AQ6XU=aUp>@n#hpQkk}kea7c7Wcu0ImfJlT$ zh)9e`kVuqBm`I#Rph%>SCR8L=M-wa(EfOvgFA^{kF%mKoGZHisH4-)wHxf7!ITAV& hyQ2vniQdtKkHn8`0Av#&8v*~T&EPXz#;$Mj{Q%2(Bs%~A literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Asia/Yerevan b/lib/pytz/zoneinfo/Asia/Yerevan new file mode 100644 index 0000000000000000000000000000000000000000..de7f9fb9e34900698255449574b4b33551d1e859 GIT binary patch literal 1275 zcmdthPe_wt9Ki8s>B{{ngQ#sT`)4+1YGb*vN^4W+vbGW%LDAufGU(6YC4@Qz1zD$v ziVBjV4$&c`I(P`o*r7|H9>P;I_(4Qa6cH3p#XAzRBpa5RmMU4=;E~$kXIbWXB_U@(hu*n$-Q@dZ z-7}XJo|v-gAH1}d4^3JP*T<~J^Y^W${@d1yzH3%w_gO3Y&?>BKJtNIM`z2O=P~y>? z#J}Vv5!|N}PvWxbQ&z7Y@ynWGlWw^Y)2+j^_1cp@y>8&GPWFD(ss35gmM-e{U2mkL zc0{M!A4#Y4s?O95N#^yibd_C{uJJ3f;pt)7c7BA^@Q~gdok%K2*|gFw zcmB4gyJl3Bw%hA*|80Af3g0z9rmByqa-}-E9WJF3Nv=!hj|p@0OeJ&2oL?ss^Nc-F zmDyZgZA>5=RS$2&siZF^YiZqHgia3foiad%w zia?4&ibRS=ib%UgB}JxPqmv?(qLd<)qLm_+qLw0;qL(6=qL?C?qM0I^qM9PxuF*{q cZr3QMNT+D0h^MHh$fy5@ez*CDG&Z}x0Www_(*OVf literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Atlantic/Azores b/lib/pytz/zoneinfo/Atlantic/Azores new file mode 100644 index 0000000000000000000000000000000000000000..1f5325324590a123e9ec7143c20c9fac1e471928 GIT binary patch literal 3488 zcmeI!dvwor9LMqRT4aQ`w4{+=Cae~_*%7z zzV5YHDwQ(r>zdh&Xq8+lb0c{Y{nzhze!s`gZ@>NH9Ixj)Wxylp zan4^JHO(iyctK%-gcOc!Lxyb>$szgsym|vAjF;S$S{Fo%(*}B3;=h zpdZC$=&ITWbXBliKmKu(7H!KEi^wi>09dyh7EGhY5w3M9iozm)`*oP_etqFxch}Jc?w*e)xO?C8{Cx{v^uK-SN&mYi$NAr9ruqAa_4h0Kb@LB& zZsQ+}YwjOvT;D$&k?0<&(b_$7v6*}H`1S6w-C^$WEx))YJ~{6GkiW-0`TAD($LBtE zE2q5Uo_f@Ce|o6IKb>6YpXsvPKN~;K|2gsn|6JW{|9t3J|NQA;e$Ct{srCE~QhR!$ z%J|k=C#{)YlhV|y+ciwDy}g-F{H>}U|A__|a z4VD!K8oseSaAVHAK%=QI1Og+o12+vE8))2XSRk@Pa-d0c*TBsUS_PV3-89gwN?)(p z+0I_`gYjNec@yuJjp5#{E6;26qN94->~FNi^b&13zEES*mTT;wT@shMQsNU<%kBMM zkyZ`oO6#~u()v=Cw2hdpZTAk9b{8jV`!!wUj@_x+VaX6pSlwRloY6@;<~C3_JyJVO zZzr9*RnabK5z_VM! zESs;rM~#v`IZtWd`<~N&BOlh}HX}8qS9k4S?;gE3I!f<77o(}+-6Zv^YxMrJ&1Jxc zXY_&c>N3!)BZF3+kil7}WytI@d2mR%44rmNhjsi&9vW1tX^rN{!wChNUhM-N-cWV; zkykb2Ql>t#d9psbH$_Lh`GAhxG*%vaHbF-%NtV$WjdaY6Rx-A42gyvYC*xvol<|od zWI`QBCbkUMiIw|hQmu13Y5NA5d~%mgS+PVOFI%ls=d9Cd1#|U@$%`~=R+ff@UJ-g_ zm4ErHYQA^*>tFp{*j3g3_F28g)&JEq7(86*IKkk-=FXMD;Hk=xYQbQ|cTTO#e>R)r zgw(a~=C`LRfB&shi%*>Tmw(DgV5H z`^@+40-pcl4}<10I3YrjMMPH7YL*dMM`R(9l|+^jSxaOwk<~<&6IoAWL6H@;nk7Zn z6j@YcRgq;y))iS;WMz@1Mb;KsT&r1KWOxA@ky0YHM2d-26DcQBPo$toMXjc!NKLJ#s7O_jvLbaw3X4=0DJ@c4 zq_{|Rk@6z-MGA~m7%4GQW2-4LQe~?tGg4=y&`70`QX{oSij7noDK}DYq~J)!k&+`d zx0<3ORkxb5BXvg#k5nEhJyLt5_(=7U@+0*}E&${TKrR8~8bB@rkShbZG>~fpxj2xk u1Gzkq>%;l~{4oC#|LOTr-JB~avG!((PKs~Qszpr8nCPU~82eLf_1^%04Ky48 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Atlantic/Bermuda b/lib/pytz/zoneinfo/Atlantic/Bermuda new file mode 100644 index 0000000000000000000000000000000000000000..548d979bd1ece82ce76c18fff8a4d9a919ba531c GIT binary patch literal 2004 zcmdVaT};(=9LMoPG)E^fDoGPCu?NK92nSCgXlP+)7$?5U!8j`Ttsn#~k^~`%%7>CG z+X^jnY%Z7UqO4)gYGW9gH$D8!hw0kz=Nw$L+)Ov;rt^|Y;+3a3^p7@sgc5parEM>-k-jTLbf`L8_Uh0%P?M9t=_5+hTl+a1v zbeOw7Yqx11)tb9|pR@OLm6&^*=h?}LOp{)bVecy*H&bTav{Pqh$o(nj?6jntGVQM$ znsNS|WF8;UtRqKc`d35xz}`<}M*C%({q{DQS##1p*s|9=6ggxcUb4kJlK!F1ncZk| z#=q9wVASM}?9$nPU zlVu+Ze<_bo@N99$Po{Y6yq$Ob3sdsrur2-lJv0A+)dkjvvheM7HZ-M`Ri>{EUI-8y+8f4jceR3;6nE!r5(md1;f+LV(lO+SaUdBUhP zf1ai-W5;Ce&OE#B*9+$5j!E{F14m73%_aNlj{RnRt&99H|^B-PhHQ6z}V*N6Png^&<;_tN^kE$QmGvfUE+t49Gel3xTWz zvJ}2P>L6!tr6J$}4RY8^oSr=qskd;A}23Z?qaeUqCAj{+H z)(2T2U$;WY5+Q4ZEE2Lx$TA`8ge(-YQpi#vYlSS9uUjo-xqRJvAq(c~Rt#A(WX+I8 lLsku0He}uK|FdvGH+Xa1;N``NLg7$BUaYV%R2V7<-U7n(2}A$@ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Atlantic/Canary b/lib/pytz/zoneinfo/Atlantic/Canary new file mode 100644 index 0000000000000000000000000000000000000000..007dcf494240a4b4516ce6104197028f6871d6e6 GIT binary patch literal 1913 zcmdVaT};(=9LMqh5zu1gzG{dCh>3*O5e^{u1R0%xsT@o>DJqC2;zNjuiclK0m}`x> zj~lDGa_V%)2j`yEuxci0|&vy6X^XS*zTW4%l|AnG~31cGp-XpnxD}Mq z?&@(pdj5bO`(lrhPM)&lqg|Hr{(c+ZE=%3EG7n%eQbGTY85YwJmcYL6+q`l97Dc3W;? zk4;>A$ErJZL3x->5Y0M=QPYv(1h9%;xrQoWE^uEoJAT09U^WkQKnem7c6Z%wvkAN{H2 zeeqUxV3bvN|86Tk@5C_ITS`{FiMT*yH#FbSWIl(J^vXR`a_=Q z-ut~+cU_+Mpy!RWz{7WcE{jCHa8Y^GTT;xcBFZlVfxy2+|HlE}_WvyZZ)k`^Mvj@U zIcOe^8aZs_xRC?*bw`dII&$pD!6QeH96oaVNB~F#NC-#_NDxRANEk>QNFYcgzAh9b z79%v9iMFK`5MnXnnMuJA7M#4toMgm77M?yzp_jSP| z(fhjak@%4TKt=!=0%Q!3K|n?U83tq=kbyu(0vQTqERexKM#I+)2QnVWfFL7+3<)wO z$eaEpI;U|?ioWd8sE#xYv#~w%-NbPEoLph_ur)}H#YzF@AdRtboG6IoXhibBW!;>{mnPLJSFDk z^Pt`4*P+eznO=dPb=c6C>h1bSy}PdI@HZE9#FJAx^44MXx!NkejZNZr;-vUjs{~Z+ zkx>Q3GJ54Y8I$Uiz}O@iYmb&7-(VRxaJU4!C2DYYq>g_Zq#^CYbi$nhIbdL|LY%`!QzMIsj;ktn}9iH<0f=-w)s>Qk#zJJ!gwpQRep znkds>WNK_fw#K!@=#2dd8h_kZXXXZK!oF!TE7?sGb9`iW(0ffv?3HA<`V!C z$sE@kGN#{ZlI+?xS)JW3YbrnK+W0H7 zF6*J@1RRs~aZQ@*en~g@sc!giRP%a^HUD0@ZtQUCrn4)w;BJv@J`ksc4e7EaFF?2M zkCLKAu~MAtE!)EVr6lQxZ1=QDX_%Lmetj)vgL|~>@og#Ze5N}tHptGl7OgmTQ!AV5 zbXR%3R@GFg&845~zy9g#`*GHs5s$g4!Q$fn`*UiV)3!8;H{EHzadF{w{>5>AxBidK z)@L4$ls`FCOa$N?iqj2tp@%*a6_M~xgda@@#)BS(%LI&$pD!6Qd+ zX$~Jbek1@S0we?^1|$e13M3394kQpH5+oEP79#xYv#~w%-NbPEoLph_ur)}H#YzF@AdRtboG6IoXhibBW!;>{mnPLJSFDk z^Pt`4*P+eznO=dPb=c6C>h1bSy}PdI@HZE9#FJAx^44MXx!NkejZNZr;-vUjs{~Z+ zkx>Q3GJ54Y8I$Uiz}O@iYmb&7-(VRxaJU4!C2DYYq>g_Zq#^CYbi$nhIbdL|LY%`!QzMIsj;ktn}9iH<0f=-w)s>Qk#zJJ!gwpQRep znkds>WNK_fw#K!@=#2dd8h_kZXXXZK!oF!TE7?sGb9`iW(0ffv?3HA<`V!C z$sE@kGN#{ZlI+?xS)JW3YbrnK+W0H7 zF6*J@1RRs~aZQ@*en~g@sc!giRP%a^HUD0@ZtQUCrn4)w;BJv@J`ksc4e7EaFF?2M zkCLKAu~MAtE!)EVr6lQxZ1=QDX_%Lmetj)vgL|~>@og#Ze5N}tHptGl7OgmTQ!AV5 zbXR%3R@GFg&845~zy9g#`*GHs5s$g4!Q$fn`*UiV)3!8;H{EHzadF{w{>5>AxBidK z)@L4$ls`FCOa$N?iqj2tp@%*a6_M~xgda@@#)BS(%LI&$pD!6Qd+ zX$~Jbek1@S0we?^1|$e13M3394kQpH5+oEP79aOz)E$t_w2gJS9I# zM29j*%24E-jtTFMjP=izak;-}eA-n_82h<8qfe`I;9VWxcSP?vzhCb>u~QR|9haoT z9g_UYKAF(0lCtS}NezbNuH~y`qAwt6g~c+-T_EX6F1h=*@#2c{s%tP$Cx4Z$Q+gA0 z>Zw@0r}L(|4}PoDT0hl{tsiUVhGUvl{ibGDT#}qnr{sFNByZ76lApX+3UV5xV7N(U zB(~~|%PVE(uk||XxL5A|tXvD*E7j9AOYhrOq_f+SbWTm07Hyp=_m{+|w>nYgreD!w z@354_e59pmUr1^H*D^2qeVG^TmIwM?lldKQh_B~8^|v(3g2M;&!MZwmsQCq5`0$Im zD7Z$;rUy0PE7ir$1-isNMVAa^X?c8!lwTa9j|@(hrSII(Wxa8-eE(>v=)5K?ng*n@ zH7r$?y|Qxice-l!QCVHlqtz*UWR0goYi@a4*Cwm3{bsk;4u^DIccVUfIiQanTBgAd z*URJEJzCdZCQsC+=#$&>W&OfJ3Dr2|sq6`|q4;NcdbB0=nekd5`BEB24Qa!flhW9K zNuPPET{echbkm*>baTgEeYWwSHnlWqlq1R!J>nnEsF;!e{b^Zo(qE=^^t&CWy=snIbYrWRl1%k!d3Hv^5ju=P*-bs>ocC z$s)5wrfX~Fi%b}qF*0Rj&d8*ZStHX%=8a4onK?3bWbVl1k=Y~DN9J#95`bg?Ndb}r zBne0skTf89KoWsu0!amu3nUpxHjs26`LHz!K{8@%Qi9|JNeYq`BrQl@ki;OFK~jU{ z21yQ*9V9(Sevkwq8L~AgLULqll7wUlNfVMMBvDAFkW?YLLXw4K3rQD}FC<||#%xW> zkeu0?q#;>D(uU*>NgR?nBy~vckmMoRL(+%j4@n@BK_rDp4sA^mkt`x_MKX(|7RfD=TqL{J|FFApCdJdT UiL%?Dn~|T9<@RT1VPi_@% literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Atlantic/Madeira b/lib/pytz/zoneinfo/Atlantic/Madeira new file mode 100644 index 0000000000000000000000000000000000000000..3687fd66e3aac0f1271ee64958b0af1187e29112 GIT binary patch literal 3478 zcmeI!X;77A7>DtPkTf)Vlw1gxl1wbpSKLi9LUb%~fs^7w=DvicgpO-Grdg@u+%jgl zC9XA$(yLjnXy%FwqJ~?drR9>Q$JE3aqvv|3X>|IKU+PmYp7Vn<@X`Nu`??Pv5T*Y1 zl(V1k;wiK*zOQBMTgJJMljglV&dmG0K<3XcHVblRnvc_sS(vp$W%lZ07ELQMi(}54 zCBr6|rQu;}S;ti>E9j2Ny0Jj5%>7bje-foW%S<-zyN{|>?~hfhhdbu;)Y)cDr;286 zRClxPkt1eZ$u6`0>N>M&_fD0wZmrt9aH!ex(H!;F+!D2Q^f>kPpcJ(&DOqiA6=HTY zYo&I!Sf+L*Z7{oz|7>ytqD}6#dS=g=5o+%jz17~!tNi;+H~+qqtJMAvV%7d_-G=9- zy8gT!`^|xowbg+YBmMaa8UFlbpP7TNlvW3)cl95NO7kCjXQnya?Xdc$-F8*b{IqkV zZoYFgbgOghq1Dc@+e@6|7iT#q*AH|GS7*4V7Ef|dXQa8`z1`paKDCQ`rcYbXJs;N8xllI3xlkPHT)Y(Q{B)w&xwPl9b9qCd^K(|7b7k%p=jv3~ z@sC~PTpN<%{L(kay`Gru-iTf3-fSrDui+EjTOp}#QD9%U=(^8+cwU$)Kdqd4WO7rZ z(;`fTexatKud0N^7Mn*K{w9^eFG=N)lTsyczf`%tS*o7R$qYT5DUWTNDPfy(bhQ=P zy88Tuy2fV)(NRMd9Tz@+aylEmC_*jxQwV)Qu8m>&Dd==q6F4 zb(1^kx>?vPX;#=b9l`0*iOJrT?a?6pVN^Nw~(TdXTW`yqk@Kch#Nza^vdx9c%ij>}kgxgM9dQO3{tS|(&KkhjJxmGl|u5)k-6V5y+{{Cd#- z-rcYJ`n!ipm$~aJxa@!URZ`-QP|ABRWw%8Ilqo5>=2zwK{l2^o2vN$uhw{0qaql~y zw~zO!Hue=C(>l?6_ulLWUE}P}UE_S-p9JtI`|qzOAi(#}^LNVrx;KACfBs#GeO`?Y zNkZljnM6-Ji^w!0^N36&GLy(uB6EpMCNi7IbRzSKOsJ=wQDjPyIYlNFnN?(3k$FWX z7MWROYLU71w3Ca>E;7By{2~*K%rG*=$Q&b+jLb4J&B#0>6OGKYr=4nKu08E!BeRW6 zx2K(NWWqh|j3ZO-Y3Cf7bWc0$$h3Rfc}FJR)6P6H^`3U_k;(V8vyV(aGXF>dkPILx zKyu(|lYnFaNduAxBoRm^kW?VKK$3xE14##x4|yz5{G0CNga|qBzZ{okn|z>LlWp|Gl--R$sv+NB#THIkvt-a zL^6q_63Hc!OeC8~I+1)L3H7uYMN;Z%bBZJt$tsdoB(F$fk<22gMRJQI7s)P?UL?Or zf{_d(DfYBEMw0Alvy7w}$up8@B-2Q$kz6CmMzW2h8_744a3teM$~|q)k)(UttRrbh z@{S}P$vl#JB=<=2k?bSsNAi!H0LU4DoC3%>fSd%L_AEe71LQnFP6XskKu!hZTtH3+ zfPbLuyUjBnuZUGN{C6APXI literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Atlantic/Reykjavik b/lib/pytz/zoneinfo/Atlantic/Reykjavik new file mode 100644 index 0000000000000000000000000000000000000000..5bde34a87edf86908601310ecc8a8aaa0dab4485 GIT binary patch literal 1190 zcmd7QPe_w-9LMozO$Ql;5hxkdH%bk#}(PBl^4)F}4E{>=mDX1vA)v$!<59y&! ztGp_SwO6%kahpEc zaYnlBzMfyGC*U3ak zoGHHFr$6tX&V0`sj++109KJly8y#_`=B~Lr_QCXx;fS-|b-6^Gb>;)#_WA5XC-N67 zW^+GrJae!nvM91DvMjPLvM{nTvb5E#jVz9=ZZ*pz>sw6$NCj3?0#XA~1X2Z322ux7 z2vP}B3Q`MF3{nkJ4pNWR6ogb{H6|?UAq658 zT1|;ajYyG5l}MRLok*cbrAVnrtw^y*wMe;0y-2}G#a2@?QZrICQZ@cRWfz##mlXU0 Dr`cN3 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Atlantic/South_Georgia b/lib/pytz/zoneinfo/Atlantic/South_Georgia new file mode 100644 index 0000000000000000000000000000000000000000..b1191c9fb693a185a34996aeab8fad9281672113 GIT binary patch literal 148 zcmWHE%1kq2zyORu5fFv}5S!)y|Hls)7~F$HfSeHQ`j~)HAPfR9HpdSLpW#0cWVZc1 dz`*$b|J?%&Kt9ks79ZabsF@55TtLH(xBzeV8Z`g_ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Atlantic/St_Helena b/lib/pytz/zoneinfo/Atlantic/St_Helena new file mode 100644 index 0000000000000000000000000000000000000000..6fd1af32daec193239ab6b472526fd3d6bdb2f76 GIT binary patch literal 170 zcmWHE%1kq2zyM4@5fBCe7@MO3$eHwPk_Q9h|Nnn1KvF=!;^P~_;10wf5JG}!KfpQ| Q82$qRep9)C#v5<}0M)@5+W-In literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Atlantic/Stanley b/lib/pytz/zoneinfo/Atlantic/Stanley new file mode 100644 index 0000000000000000000000000000000000000000..aec7a5d3665abb9372435e5ae285d94b62586e63 GIT binary patch literal 1246 zcmd7RK}b_^9Ki9nv|5V}I|NQsXQeo^eAAriX8p}E*ED?PF0Ml}A~cAoTc@m`BnYzZ z9V#R$=wFu(4SD2jZ6&=5p)6t~9SVZFnL)4r_tC-VP{;m{|Nryn!DENtcgfVqp=Rxm z59Niz8>Q9;3P>DX>6fqyI{h;T{21U+x$;S&}k$*QY3$H50lgVlM z^u8@-LZ@_}_lNMk%*gVuS%1aNgZjGX6aLEcF}>=>K3RP@B>ZEYvL;a`)(=<94S_|m zG47JJtKN#bV3l6?aZ=QKHNF1DoEiA?UT?UUF*jLRz46i&bF-Y#w;Ufen=X#&`rZR( z@Wgf596l*p2G7c^6+@!6eOR`B?-p&oglv0LE4F=Wly{M&tnZRfL^=A5OrJ!`q#ww*JzHMTupt=7mnZw47PGHzt#$k>t5Bja~e2_P9D zDIhr@Ng!DuY4Ee;;iwWpGC@*7azT9azc_qvT{^uA$d8f#E{I8 z)R5ee#hcz9juzmF#>=xf&*QB8Tz$G2N;Qq)uamE)Uz1*(Qzdx_b_iJT#7Du6<*L*%s z`Tu<R0gAQ*YybcN literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Australia/Adelaide b/lib/pytz/zoneinfo/Australia/Adelaide new file mode 100644 index 0000000000000000000000000000000000000000..4f331a87df4ed78be0d00b1a82b5c66c773069c9 GIT binary patch literal 2238 zcmd7S|4&tQ9LMo9)5Qhd39IWWYFS5lHIgf{~M(p2z56rtf2P3g-W z?_zUiP4Aprr4iWbhg<`7ZjHI5qGFo%ZEcORjIGVAt*ou+^E|UHSAT%#?A*t>=WciR zhx>X48iFl_)_)F{dBVl9%Us;Y_L`RiE8l$ez=^EOB4K8oZhaK?|DJYGGHY7A^AW{MuB#Gi9zWD719JpD|iI zCq;_Cn$nU#re)!YalPxyNhuxpK^7f9DP`dgWbyt1@osoS%AX$9B^A5Gx9*TG&3j!d zd||!YRV&LfTXorQhh_PN{Zjc^zuYsnT~>^ANY!Ao`1e)I%091DZz+(P&PKg=jbCeP z%5;@CUjv>ry)P|6SI>;n)ziP|{TI(`-Ph-|e&UoiyfdN?9Q{@rht5h<*qDfhGf6AB!slp5!BX84Z3l1g$7TTYTIb8w!f9C55E$x z9nV|(NbeSh}>Zhfv@+a9;GAWz0&&cC9os@3(+tU5}fNYuCE1@s?Wb6AO z={XjZZAV_z?FYm9#GY>5@l>ns?5fi!$Cc9=eGQzJwPUyWBU>*FIn2L09J%_w+_x%V zmHU(yPm#yg+ z(lDfBNXw9(Ax%TNhO`ao8`3zWb4cru-XYCHx`(t6=^xTSThl?Lg-8#PCL&!#+KBWK zX(ZA~q?Jf7k!B*@MB0h;6KSZe=_t}tq^C$zk**?bMf!>~7U?X~TFc>#x^hOlu7T6C zp8V1Njk~RAySZ+=xmVp+`AP1-y8BOftymuCmMkptkmMYHfhVsZ&y(Yy5BWv0e*=T+ B3P1n= literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Australia/Brisbane b/lib/pytz/zoneinfo/Australia/Brisbane new file mode 100644 index 0000000000000000000000000000000000000000..a327d83b7696f39c01a9b5cdff1d4f0fd4b1f94d GIT binary patch literal 452 zcmWHE%1kq2zyPd35fBCeK_CXP`5J)49KU6A=Il}Ua5`i&!|CJU1!uO0HJn{;S#WMa zF~j+G=>p~g%LW!+83t9)vka>5Uoog_u4hm`e}+Mmb0UN0`gIIUj8MqT0)Y$+{S`oS z8D?!@WMN?FS-`-F%=YmOVQ_SH0TIC=AZ3haW(1d-8mr9BP%}jyPXn zQ=SG*kC))mI1T=7iH5j?G~}~b4GsT6L;C_XZ0vo#{^b~%cIkVWzB@o>oEVhwn#(fN ze^erJ&&n*{UYQ-;D|5;lWzOGE%iOFIxnbHqjf`#3$U)V4E|1RZsn_`yk5>wHxv27PMZs}o(ulq%AiQ6LyMHeJtY+MqP`Xq7qQ%MT-OVY7-ESt(e5M3<$$ zriBIVdRK6nERV0%<-Z@56+a%7qR;or-Ge)2Wq+d-_tc2zK#8pC$di(7=~CKMrT47$ zXjy5luFgwSuRBKXjfv1TGXr$Z#IJha*kvvM`l410pVi8D`}O`4-$_;P1*!JGCpFq9 z5BPdy?PkBMD}PEJT+u4)vl?W>tyQuy(j%K9d|K(1q9{XmK~ycw-q zUJ2L6=N)~hZCoF2`c|9jXUHQJ6VhDtvuw>Ckw=rx%VRg5k(SW6rR9%q**3agd|!0P z_78m0da_P-9Dh-F9&XpiJ6m+u6Sca#xm*KW|DJ(CQ#@T$eQ>hp9B0=)^J{iq=yjQ& zcDw)D`}~5{UMIg`nU{}UE?yn)^uV^&}j zG9;@R6EY~P85J@tWL(I=kdg7f85%M+WN=n9I%IfOGd^U1Rx?6mh{za`K_a6>hKY<5 z87MMRWT?nkk-=KcXp!L}<3$E+H6uobY&By>291mw88$L*WZ=lik)b1FM+T3K9vQyX zj2{Vr)kFXZfz`wS2?7!YBn(I#kU$`jKth4U0tp5Z4I~^$Jdl7`O+=88SWQf~wB1_=!k8zeYLbdc~M@j(KFLvA+bY(heQtv9}+(#fJg+95F#-|f`~-X zYQl)b5eXy`NhFj=ERkR$(L}X_iNKBESB2l%Pup)6q0*gcz2`v&^B)CX) zk?8x literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Australia/Canberra b/lib/pytz/zoneinfo/Australia/Canberra new file mode 100644 index 0000000000000000000000000000000000000000..aaed12ca284d69e3a8ba25891701790bde7f6743 GIT binary patch literal 2223 zcmds%TTGU99LK+J!U*z^#hcz9juzmF#>=xf&*QB8Tz$G2N;Qq)uamE)Uz1*(Qzdx_b_iJT#7Du6<*L*%s z`Tu<R0gAQ*YybcN literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Australia/Currie b/lib/pytz/zoneinfo/Australia/Currie new file mode 100644 index 0000000000000000000000000000000000000000..a3f6f29a49617167750848c71e463faf6f3974fc GIT binary patch literal 2223 zcmds%YfP1O9LK*$V8lr!%PAKnw317B058ZXB{e`$NsPlaMMC6anFm27%hPXWo?c{j zag$|Bq%nHqRJv#zi;K@otZtKXZ5NVy={G-J^#-Rg3;O!D3?1Tg>afoA<(?U4JNE<3IgU6GB%s@#Ncztv#n3I=eL~ zZ$LM8?AA?5hc&sXQIr38TvKw3G&N$C;$}2h+&9@u@Dy4??|MrdO|@y^0-HYQwWOvL zyZJz$lB+{D!$xf8(u2CC<$K*abEj@A9@eaJ>y(mqR4Ko{q0}EoE$zcjr4OI7+h5zE zj3YfZd;c2w_J%F9Jx^JiS}c2Qjm@dpqq&O~+Ps`*&7YoRIa8J^=c;VM#SG=1{o4G! zV|GXXJ9g(lx-IM()uKb=E$@j_x-0aPE#AzPQe#ENJ3|P&;F}v^NS*>|xSZh1qQtgvRwXUN}bVntmy>=Fxm>`Cz_n9Gqnj9G_|r9=^^tJ#*O}vhQqj z@CyrWj8<#)C2c7lQ=9*DwWkefYka@9#T?PL%P(pB*gkc9W_tMDR_%DRUXS$cwMV-{ zw)45o7TQ&3k8N3Po^gL&5t09aOWO05^GDWGU5b=mIOd7@`{c>Wl7N;JlyT$-c+KPC zRN&utvd?+V-N_~Q8`3q0c3)&NW;dAaVD{tM*$`$&m@Q%UgxM57$F4Bj0`}$F*%)SL zuAQx6_U78z9Au*eS48V6U#7%>ui1?Q9pb zU(ALvJH~7ovu9w_m|bJG4eT4(IIweI>%iV!JDUe~kJ&!3e@p{_4q#dU^Z?TYpbMBb zVEOk>&?BHpK$n0v0e!+W3ezb}t1!L7Gz-%$*G{`I{lYX1(=klTFg*jB z26PQ*8_+kPaX{yQ)&ac(ng?_bXdkA3uAK&AI*4f@riYj&V!DWFBc_j-Mq)Y%v=Zng z&`hA4Ks$kcx^@~0bQEYQ&{LqPKvyws#q<@^SWIX2e+aFY`p(YIqQ4m>*;&49UsguR JJd`=t`zK#J`gs5V literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Australia/Darwin b/lib/pytz/zoneinfo/Australia/Darwin new file mode 100644 index 0000000000000000000000000000000000000000..c6ae9a7ba253089d4fcdb9668b70aaad20dc94ad GIT binary patch literal 323 zcmWHE%1kq2zyQoZ5fBCeP9O%cxf+1P9KW?o=Il}baXMrd$LZs76=$}`cAQ=AP;qWS z703B@r3xlSC}d!$n*dbLFnI+dD+5F83@{~NQhi4^Fa{F^659Vp4MWO zxnS86ZH(SHkS^NhBC?G&0&DA@=BTztH*0IAL!|RLt5?0~ZR>M({-3k6^Spb$A8%=G z)ja)!Q0EOdyx`nCPcY{=@=24ubY}Xm{odEq-?!2C!Koq}=*aL5w$r}8W!$QW#D70Xjgak(?KbD|CM7oqY;HrQQg+l@>gH0LSM-GD zFI{2_(rUCYHqO$ftXA5nY|-T;rJw)CGCGFst~2l1;-1;IqW|~f{r-97eRfc*`*v&1sVc4Q*r@!L zT-_7M(7HXdRp8rT>&tWO-hxF|xIDqUDN(jzdW02C9I>LYpKRl$3s!t_&`QqrSZPm} z-FN!DHoZEa&8=^%?8#1TX=+n>&2zfHc)u!g>$Nq#Qk4lCv@J46Rg>zh+EZcGzZF`| zP?ptxw9vNq&awwiPPGS*-C#SOy=o8H54O|ymHD=ZsjlRTcI6GLKI2O@B=&1})EPB~ zpHSn~m$hg388v-jdiec1?R~34k90TNqsRTW@6b;3?=QELipVwb=+fqh~&3hdOivsKJqT|1k_?AEoj zUCe$l8wPd^Y#G=yuxVh|z_x*X0~-f+?%LTpuy~-1Je+oBbb%|J;5{u=nAGSKwmJ8!E^>_4W>6h zb1>a;?X(BeAD}^)4q;k^=@F($K$kFW0{Vn$6woP5tAJi%nuX~Wrd>e4TssW|ItH{1 z=o!#7pld+efW85Z13HIk9j14f=3%;rX&=p$v=itj&`?ZAT{|ts^c2%nOjj{&#q<@^SWIUzt;O^fXfDuQpuIqUfd&H| zcI~tn=rPb_pvyp;fj(mzjp;O|)tFxE{}k*9Dn2JQg^nlXr=}#QCZ{CjFFBw30W2sWfHLWsma-AL&eP#v^T%(8N{$+-|e5_Ma8%@gH>pIoD+oYa9 zu7`E3G{YNOR9f3ENta{FcX5S`D5+8YgCPl&h1AGOpNz`%snLZ!<){8V)tJC*8T0nbvK*o<68lroTO;bDr-txewRtyw=rb#+A7`)Hu`RAIZ=KwE;7;I#JJ31u}ba zP!-PdOHo#W3j2G@oTT@vxW^kQ?)+EHefdC2{=1<{?>5W4KToOo&G*fMGk@r^hRbH* zt`mBZG?>MaZF)(`Ci8R7Qe7TgV3rP@rkBM}FcrPZ)pE~#S^g?pMcOkZdM`z-xS1p? zFL>3elO9=p;DuUK^GtqGca(~Dnzf}Jx-z%jRAt=O>r!u-^*@}`8@#8@hIjjQbw{m{ zf7a@ae@D%xt3~?Pi#z4FQ%Y?<7?Ca83f0!iJn_VI`Sj`<^Nn7PQ$N^VkW+WU>FPKq zn>}8~IdsN}b)2KWd%U6iurn#UDC~rCrt)FGeSX4UztVN~uiYy(pZ=}WK2>qmPxz6m zMK0IXUN3UNuJ($NOLn!_j9fHw)yQQd*Nt2_a^=XSBiD{xJaYBO<-6MJM+$JY6(A+J z+8U4|kSdTekUEe;kV=qJkXn#pkZO=}kb01UTx~^2Nv^ggq$s2+q%5Q^q%fp1q%@>9 zq&TEHq&%cPq(G!Xq(oO+BT^(%B~m6*CsHUEQ+gL6=YeEbwL&eSs7$$khMV;2U#6td7STSdb%@3=>h-P XQGS*wJrGFC5BPlnpFb^sG<5$6FIDiR literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Australia/Lindeman b/lib/pytz/zoneinfo/Australia/Lindeman new file mode 100644 index 0000000000000000000000000000000000000000..71ca143f29f2e5799b865478d05a0e88465d92f2 GIT binary patch literal 522 zcmWHE%1kq2zyPd35fBCeF(3x9`5J)49KU6A=Il}Ua5`i&!|CJU1!uO0HJn{;S#WMa zF~j+G=>p~g%LW!+83t9)vka>5Uoog_u4hm`e}+Mmb0UN0`gIIi0T~apUKTTG&p6ef zbE&^Uw_;5L6C)Hdvp^sdh+<&qUIVm{Vb%slAiHM)11B=u$2Ww*(bWY+1c!i>F*1Tk zh7iL35eF&*`{xH(2Lr=@ASimf=n9Ai`43D3{RpB#{shxNzk+Cxe?c_J&mbD)Zx9Xg zJIFYY|3Ne;3_t)B4qzG>79ao$4=@c36A%D}3z!Cm4G4h32TTLQ2n0ak1foG<1)@RW Q#X!vf;{pYsuAu=J0Hh0uumAu6 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Australia/Lord_Howe b/lib/pytz/zoneinfo/Australia/Lord_Howe new file mode 100644 index 0000000000000000000000000000000000000000..a653e5166d29fd9d586719347d52ae447bfbe58e GIT binary patch literal 1859 zcmdVaTWpMJ9LMo@l#6ju$28p*-8!U7J7%ylMX5t+Yg)9UTGU}n%{c9&MgQ!gA=IHk zNNHR+B~p=yMMFvL64^8x5zz=)WOvJjG%h?u;*p4YzHcNhT)2~XCo`XE)875Rzwo?h z#YpFirBw30W2sWfHLWsma-AL&eP#v^T%(8N{$+-|e5_Ma8%@gH>pIoD+oYa9 zu7`E3G{YNOR9f3ENta{FcX5S`D5+8YgCPl&h1AGOpNz`%snLZ!<){8V)tJC*8T0nbvK*o<68lroTO;bDr-txewRtyw=rb#+A7`)Hu`RAIZ=KwE;7;I#JJ31u}ba zP!-PdOHo#W3j2G@oTT@vxW^kQ?)+EHefdC2{=1<{?>5W4KToOo&G*fMGk@r^hRbH* zt`mBZG?>MaZF)(`Ci8R7Qe7TgV3rP@rkBM}FcrPZ)pE~#S^g?pMcOkZdM`z-xS1p? zFL>3elO9=p;DuUK^GtqGca(~Dnzf}Jx-z%jRAt=O>r!u-^*@}`8@#8@hIjjQbw{m{ zf7a@ae@D%xt3~?Pi#z4FQ%Y?<7?Ca83f0!iJn_VI`Sj`<^Nn7PQ$N^VkW+WU>FPKq zn>}8~IdsN}b)2KWd%U6iurn#UDC~rCrt)FGeSX4UztVN~uiYy(pZ=}WK2>qmPxz6m zMK0IXUN3UNuJ($NOLn!_j9fHw)yQQd*Nt2_a^=XSBiD{xJaYBO<-6MJM+$JY6(A+J z+8U4|kSdTekUEe;kV=qJkXn#pkZO=}kb01UTx~^2Nv^ggq$s2+q%5Q^q%fp1q%@>9 zq&TEHq&%cPq(G!Xq(oO+BT^(%B~m6*CsHUEQ+gL6=YeEbwL&eSs7$$khMV;2U#6td7STSdb%@3=>h-P XQGS*wJrGFC5BPlnpFb^sG<5$6FIDiR literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Australia/Melbourne b/lib/pytz/zoneinfo/Australia/Melbourne new file mode 100644 index 0000000000000000000000000000000000000000..ec8dfe038c2d10aed29763ef8f664c8f0cd35c8c GIT binary patch literal 2223 zcmds%TTGU99LK+}!U#&qa>zjmwG<3Fs2G%z2S7+Ml$T?v1c+h>UqA&b>6eGmMM_$m z%$Oq0=%T`CO>-<_wXs5Ebj^bSvMs!v;XH=7j0d1+xk3v{-0;>p7*_azaM{j zZOsDxgJAawHym;|&y&p^?Q36eZ|{x!dC>o^1_w$4=g$<|P*+CaLPvv!TVete0~r=H zX}W?7Vl4RAbPGwoVIf~cTWI)Y3w`f*3%lBHx1Na7ZC`z>NzKbt zW}oh8+OIofPiksuji&ywPZ8<4inwyZB4<`xdm<~O}*Nj-IzydzU7M+z-fQc53yR8m;LnQU1|ft!>HB!;SM)5Gb;B6*;!P;65u{7H|HP zC@YE!v*PgUR($g(E4g~fN-tlqvf(}}?>lXeoV}<=-x$({why%Ng>G$X>QKej!+NZA zuPSpJRFz(>>i8mUj?7WblsenutF$e@6x!C&EUW!2&9?Q=vB%$;W>1{F#h!d=+@7)@ zY*>25yE9|-YbvD8G*EKQdKX6Gc-@8Auj-B=eNiTLN^zYAW^8H$#oyAe;=QW>? zQ~rP7NvnI!+sQTW8`4cjL&Skd%x*lp?O^uf*=-23Bg~dCd%|prpJP{;Z2|l8>^6qk znP;~(%-%e^&0%(j*&eVzV1vL8fh_`i1U3om64)lNPtR_nz)n58tz!1-*=-iHThDI0 znEhfljM*_}%a}a_o5t)K*fy|lVB^5ffvp33_v|(g?B286KCpkF0hkV8T7c;RrU^h7 zFm1r}0n-RfCorwR^un`i2BsUHT{|%Sz%&HY5uhbNPk^QXT>;tx^aaxxpfi}(V0wdT z4$vLXu0241fCd2_0$K$02xt<}C7?|}pD>NWbPCfdOs_D_!gR~CYZsUB*HECNKudw10!;#hcz9juzmF#>=xf&*QB8Tz$G2N;Qq)uamE)Uz1*(Qzdx_b_iJT#7Du6<*L*%s z`Tu<R0gAQ*YybcN literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Australia/North b/lib/pytz/zoneinfo/Australia/North new file mode 100644 index 0000000000000000000000000000000000000000..c6ae9a7ba253089d4fcdb9668b70aaad20dc94ad GIT binary patch literal 323 zcmWHE%1kq2zyQoZ5fBCeP9O%cxf+1P9KW?o=Il}baXMrd$LZs76=$}`cAQ=AP;qWS z703B@r3xlSC}d!$n*dbLFnI+dD+5F83w131_w!EjYV8bOI;; z?**LOBo;_9CM}R!UcW$7HD-b4`cn$7h5HrUSko2Um1`EbziVFL$sD)9^IYlzCPpx1 zWl_ zF#HFCl4W8~Ks3lhU>fKt5DoGemp~g%LW!+83t9)vka>5Uoog_u4hm`e}+Mmb0UN0`gIIUj8MqT0)Y$+{S`oS z8D?!@WMN?FS-`-F%=YmOVQ_SH0TIC=AZ3h9)5Qhd39IWWYFS5lHIgf{~M(p2z56rtf2P3g-W z?_zUiP4Aprr4iWbhg<`7ZjHI5qGFo%ZEcORjIGVAt*ou+^E|UHSAT%#?A*t>=WciR zhx>X48iFl_)_)F{dBVl9%Us;Y_L`RiE8l$ez=^EOB4K8oZhaK?|DJYGGHY7A^AW{MuB#Gi9zWD719JpD|iI zCq;_Cn$nU#re)!YalPxyNhuxpK^7f9DP`dgWbyt1@osoS%AX$9B^A5Gx9*TG&3j!d zd||!YRV&LfTXorQhh_PN{Zjc^zuYsnT~>^ANY!Ao`1e)I%091DZz+(P&PKg=jbCeP z%5;@CUjv>ry)P|6SI>;n)ziP|{TI(`-Ph-|e&UoiyfdN?9Q{@rht5h<*qDfhGf6AB!slp5!BX84Z3l1g$7TTYTIb8w!f9C55E$x z9nV|(NbeSh}>Zhfv@+a9;GAWz0&&cC9os@3(+tU5}fNYuCE1@s?Wb6AO z={XjZZAV_z?FYm9#GY>5@l>ns?5fi!$Cc9=eGQzJwPUyWBU>*FIn2L09J%_w+_x%V zmHU(yPm#yg+ z(lDfBNXw9(Ax%TNhO`ao8`3zWb4cru-XYCHx`(t6=^xTSThl?Lg-8#PCL&!#+KBWK zX(ZA~q?Jf7k!B*@MB0h;6KSZe=_t}tq^C$zk**?bMf!>~7U?X~TFc>#x^hOlu7T6C zp8V1Njk~RAySZ+=xmVp+`AP1-y8BOftymuCmMkptkmMYHfhVsZ&y(Yy5BWv0e*=T+ B3P1n= literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Australia/Sydney b/lib/pytz/zoneinfo/Australia/Sydney new file mode 100644 index 0000000000000000000000000000000000000000..aaed12ca284d69e3a8ba25891701790bde7f6743 GIT binary patch literal 2223 zcmds%TTGU99LK+J!U*z^#hcz9juzmF#>=xf&*QB8Tz$G2N;Qq)uamE)Uz1*(Qzdx_b_iJT#7Du6<*L*%s z`Tu<R0gAQ*YybcN literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Australia/Tasmania b/lib/pytz/zoneinfo/Australia/Tasmania new file mode 100644 index 0000000000000000000000000000000000000000..07784ce5d751f040ba7ab43713f32cb92ce9afb1 GIT binary patch literal 2335 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 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Brazil/Acre b/lib/pytz/zoneinfo/Brazil/Acre new file mode 100644 index 0000000000000000000000000000000000000000..788d0e9ceb073af24f064c34e1458979afd10903 GIT binary patch literal 656 zcmcK1KTE?v9Dw0#Z3iPNf(RmN?Ke;n#OcJPgW^>)iGx$Y%|#HG)!$*Ti*t0EYF(824p z2-j0OlG+r}@{No>dQ|MPrY91Xvb>&Oy&UKE(6St-_Tp)GocoH^H9ccnld}ulZ1X2M z_8-DDz8^7P={N*JBDtDSNGv2663x|wL*lubfJj6nBoY$|ibO@iB5{$xNMu(N8j0;{ zf+Nw9@cew@BLg5KAVVNyAcG*IxSC;*aa_$n$VkXg$XKpsFl03R_u+hI!;tR_2W=Xp literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Brazil/East b/lib/pytz/zoneinfo/Brazil/East new file mode 100644 index 0000000000000000000000000000000000000000..552ce7c29228ef36e2dce0ece5e782ba67d2b607 GIT binary patch literal 2015 zcmc)KUrg0y9LMnkl^ZxUxBgkFUt^9DC;Y-8M6)s(0>QD6pN3?nA_!8cME)!Ckm=gk zbY$g5t37k8x!m$`(}^w{IZd5&q@%SMBFRlfu56~KBXxS-kC$E4oj-QY>x=>8;`{yt zHI4Oop?^KMx$p4eX>%_=kBPar4?b%?&^4}XuFqjc!*^z~dDKdz$4qH!)Q3i&G8xr(+KfwUWa{+a?bP0rk~w9ZW*!|fS)nVM z^*eXbw{3ZBr>QtnZ=*|JGxIu2?K5TX%ClSQ zv{Gi6`L!il6?(t~MOhmBR45BGM(e`U_e*u^Wv$*bB8x8dXw5qV^8A@$ySSlSUf6rq zE-BqDFShTqOLM<8%bGgu^6|#hmcMFi6Gx>kdx5Pxx5BKvt65j>pKBVf2HMzJE30}7 zv}seZyma6`eYqx6UfG$@)icv%P3t{&?Sx@zUL3d0f1Z_=S$($U`+c(R!7uE(V`t3z zk&o?$y+6vv{+QkL)(-RfiI4P+oN_crrg@EWU{v+6iOzC22*ZN zCcphAlvWW9LUZO<@fNrXX7n~`j7&V3Xu|#8j&KADv>h1u1=&-ud5U(6{!^|7O55~ z7pWI17^xU38L1g58mSs7+w1B^3irCoksA9<4rD!$1wmE>SrTMTkVQdO1z8qkU66(Gx|Kne#_QGw zSsbrh9b|cs^+6U0Ss`SJkTpUU30Wm%nUHlt7Ru{Z3RxZ~gA-NvGxFsiX%W9 zEl#Vbd?OoP-84=+bTjNzANjlt>xmB%g1#96a)$c1tYElp`gTd zFccgL5Cw?>MZuzgQP3!G6uh_&kb)T3K~gX&pd24m3M>Ve0!%@sKvS^kzkz$se$x8_ Dipc^V literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/CET b/lib/pytz/zoneinfo/CET new file mode 100644 index 0000000000000000000000000000000000000000..4c4f8ef9aed8bf567ce727c33ba1b97da6f6ee7d GIT binary patch literal 2102 zcmdVaUrd#C9LMoP#8PJTMTJ8GViBQre&hSvH!T1Zx74a>FV%Kpu{nX^A*^?N^8ZC!O&zq4nrXXm+jE}qXj zylz`lf$tyZYWEKpXP3LUpV~Lgzp-!p%*Fi^QS}cT*MT>sgWY>IGPPBs=U3XPSNs}# zF=(GWUu37B&azJ<$@W?G5?wpcpoC{<*>&9^SzCz`8?!Y%oT3?3%WP)h?@G%2Ny#(5 zl0Wv8{FmNR%DJPu{_{hc_1<$zJ#o^~jzlee|3RDGBg@$Sl+9_5*bN&R?8eHlWtN8Q zra*~hrDfaA(^4!uE~xCwMVk9y{6$(XB(jDlqVa=J%daPWQ*kZ9Ad7#@Ccz zH(>>lAuB8!wxTsJSaEv4l@xSX$z+!;NbS{vvzu(;AMILnGHADdS*y~)dX)_?(j7aO zYH?qhmNaE*Y4<|Avpi10##CFDbzY(1q?N~gq>9Y1t>VIWwmkM7TRt{oE6%-SE2FPk z<>=e0+S6mzM-J<*mKIyp^Nd#Cvs-JLH>>8hW`!#&bhp1+YXkGN_DY^=lgh33i|M-e z@?2Z@`Y&2P9&Z~CC0gCk&vsweC9CfpvyJuRwrR(Yx_|K-)=)R9#*BToxh$%tDaW-X zUE1>fUTvL>Xxm7q9ylA;gD1`I3R&QB7uYgiG`;N1`-WV7Y-yI zNI;N?AR$3wf&>ML3KAA1E=XXI$RMFXV&mz8gG9&Eg$Icb5+Ec(NQjUaAwfc-goFu+ z6A~ySQb?$fSRuheqUGtrg~SU97!olgWJt`ApdnF1!iK~R2^pZkl-QF^K{`u v;^*lCh(r(xAreC*h)5KXFyj9*j`6OP^YdwDpsFyZI43Vqm7j;Xh4Fs@!4?eK literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/CST6CDT b/lib/pytz/zoneinfo/CST6CDT new file mode 100644 index 0000000000000000000000000000000000000000..5c8a1d9a3ea46457985198597d90f95462a70168 GIT binary patch literal 2294 zcmdtiUrg0y9LMqJAjKa!NEU@iP+BtNfPkTBQWh|FCY1QEJ@bm3u8lI+uGXvZOMWwP*028h zBHaWB(pBhnuTkAz<>?$VVOz%3q)jmrUOQP|SN^M9zj#zfWPK|UyHa&j+}jd$_*E5c zo|nnzyL8O=M~(MnvyMHn$4q%+kBZyhWNvu2Nlk67FgG?-sGF+tOuRo&-Mk>t+>(~4 z5@yVoX^|5uF>IP7{+^(xUl^C9p=swUL=17@aT&eC_c3E;$7pi$VU(5W6B$YS)lF7RmR13zxGz&jJukJqgmRWRULg&B# zoVjQBh`#qFF^d~d>igPv$^B)o=z_XNDV)=;iwc)Y(I4-s;*5=^czD0^d&`W!f4eFf z%{C9b{DOY)%n~Wx(W;jm&yup5YF)l>sw`cUua`Ank>yD#I02#Hzm3u!XpibeR{*ipXITAe)agNklEOhuAVq@!8BHQmF)h+Y|0%| zPd2`0HpdUCrm{}c6dctpd419{a!PMa=#Z_0$8_t}^|Gy}OK(40B0Jie^-}{rX1FB%TeJkxN4=@f7FYqr$6tc&V zkTD^HLPmuQ3mKQw4h$I?GBjjt$l%b8jt_>%+3|4<5E&uI5Row=gG5G&4AW`Hi44?f zN6Il&WURpM@Ekf9~nOq z03-q&AwXil5dz!3}j9!L0)_;Cafi6BP^kr;9W z5s4xaMkJ0%AdyHSp>*0Zs+IS)XMIy=(QY5AvK}Dj<5mqFw9Dzk5%Mn_q zjV%&fr;RQWUZ;&O5@004NQjXbBSA)@jQ^W3N84J@v(@&M&dtop%<`3HXJ=+-W<~!E D%injH literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Canada/Atlantic b/lib/pytz/zoneinfo/Canada/Atlantic new file mode 100644 index 0000000000000000000000000000000000000000..f86ece4c4032634b3526187c5f86364077b9a9b1 GIT binary patch literal 3438 zcmeI!X;76_9LMpCm=UE?iki4l7HWtOD27Y%SQ?{(oMcf_@MM~SrDWogggR--OsP$o zWk!pJOQn}ELruKyj%FPo4NLK;p=MfQ8*bdr_q^>z<4iBR%yU0?81C@y_x-0nmi=Um z=O3?|%x`#j)tZOTE$5iGIdvbuzwE~v-#dp}I7Mai<$Ifti4Wgx?XGZ2oR!a~yB~#h zbc$2n_Z43o?p@t~tGoJWFYnrR@40Ia_H{nKHrM@R+iT9Jzf`;HUTJXFe>uqY&Q5bm z)-88G8=C7aU0C35=)A@Ge3EoGhWfl;4135e3u^7%)cGghrZbnlTN)qmZK-JGZ1rTi zTi=cLmS5W7Zd?4lOJyZI-dqc)L`+86E?Ymsy z-QP<1_8*bn0}D>d%DaEht&|s3Ro-F!t^18Slvbt>cPdfe#V*s;p4Zip(0qMF=c%JL zv*fWgQ$GXsEhUKSWcHHKqOtr{-XtnT6SqR%>}(K0ol4~` zA#aLc&k`AYafY~6PnWkHc|$ezWyofmrm5y@@^r}CBh~GNBlI0J`>Gb%eRRu=b}Dpm zm~Iud0MZ1a`*?#+W(V@gAJASZ2bjrJ=!{^Qy zccp!+@6P!^b&lPr?-}xwhW+6Btg zw9O**YOPFzEjZqQScC#tCp6>?hK0x_+oRL*FVBW9E@ku&QP z#q&ke<*e!`kzbG@UnmO^1zG*%?4_54r%}KS{scC@!7tqCKltze-tXTfJs!XRkP2w* z_wV(2g6!wp?0ZOJQmSXbK=Y)SXM}k~su?PeC&0d?-oU`s+wbw8{CE7a3h-c#-i%1{fJ(WQdV5Mg|!fWn`F9d zh8h`bWU#Gfw2|RP#v2)MWWL<0#25)Z2h2oez_BuGrq289nqg_j8n z5EmpcNMw-EAhAJ$gG2`j4-y|FKvokWBt%GzkRTyZLc)Z^2?-PuDI`=#tdL+K(L%z7 z#0v=+5;3a@84@!jXh_tMupx0n0*6En2^|tUBzQ>lknkb#vzh=R5ww~RA~8gQh(r+y zBN9g>kVqtvP$IEJf{8>E2`3UyB%nw{ttO;MOp%}>QANUv#1#oF5?Lg)NNkbdBGE;{ zi^SJz0*pl1YC?>}*lL1|L>UP)5@#gPNTiWaBe6z;jYJy>Hxh5F2{;mQs|h(0bE^qD z5_Kf(NZgUYBauf!kHj7cJ`#N-{7C$f0{}S!tmY6vjsdGV2#}+|Y7PVBI6w{r{&j4hH0CKn@4wct8#a@IWUkT135I1V*@!j@c*NO gGvr^6j$m_(^fEU|WKz$lm?$SQDLOhTI?4(D8&gR`p#T5? literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Canada/Central b/lib/pytz/zoneinfo/Canada/Central new file mode 100644 index 0000000000000000000000000000000000000000..2ffe3d8d8e012445aa961fc53b38934681dd2a2c GIT binary patch literal 2891 zcmeH|YfP1O9LImh8;GK2VuS>y6+;mL#qdH|>KG(~dPEd5H4L$g#~X?l{56@ES8A4* zQKXJqt`$0$;$>uN&aIq7lq8K1m7GdGsavST>HqoH3%A^S)62eR|L61Y49+=k_dv4M>sp);n{V{&OoR@O9HfWpF)^Bt#n76xdGTXgaw?%*6wZW;YEYx4t z&3Eccv-DD)*J&t9)XT|3oGa79^=f3W)0i|ue(gTky%rHB*KYT8ubXdky{g&0(byn2 zYmU23CyvW+8xOm8^2_vY>`eDw*A%_)Um*9JbLGLcOldivEPtLHCao3y#rJur$kssd ztZ9`ti*HHWc_G?vMkj5b-l82wHmP4so%;7atsT1^(E!<_0q#!iRKH0(*M1{`M;2+9 z13RSauJ@(ewpH@Px`oocaF#rommxi-BuP+mg7h33DNjX)NN}Gq`m}$GgtUp!klVr9 ztD&QYR^8WUzP+JgdoF7Dj#JvZpsPIlUb*&}^t<$(^MgDWUoFq4d?hageJv6FHb_Kk zl|}~4m&m%k+V8qo`d5CaQPqwPC|#`4dnf3?qA41)X|TrT7D(KJo;oNgQwC3H*7%5F zG9>ONebFye5__c=wo?leVx8svQkFoAJJEeOZ3&W zojNLKg^t>vUq5n2riljOiOH+kna*q}^&vurUZqjAvQ=H{Ri*!Xrlv6Zqvaa0P#cAWQueR;} zx%vCYM_t=@_-|j2{lG_kiHD#0d}TL9e7*y_J?(tHFSd)nz3*(V-5!2EHq|SmMw>Iy zoXO^-d(FSNh{xlx5b-`<4~NaKT0J!LH)cMwoGZIOfat=~C38E;7 zrXZ@aG`fN)%hG5IqArNOAPR$M45BiK&LB#IXwA~74Wc)Q;vkxXR(0Hlm5 z4E;eA2+<%!g%BM=lnBuxM2(h4j}S#dG|5mUM3)R@GPKE1CqthMg)%hCP$@&F45c!( z3Q;RVua-u!5Y0kV3(+k^xe)C_)XUH>M8OOVGgQpbF+<4=En6BjL-cHE6b;cdL)8#n zLzE5CHbmVJeM1z^&^Scp44p%i&d@qU?F_wJ8pSg-&rm%>_YCDjw9imKME{HgKr#SH z0VD^OCJB%%K+<4o^1w)hrO5;%6_zF!jATHv0Z9iWACQDVG6G2nBqxxhK(Yc!i>1j6 zBr%pIGmO+&n%ppw1IZ2}J&^n`5(LQ*BSnxLL6QW?5+qHKJV6p=X)*;#m8HoQBw3aw zTaa`?^2JCPBx8(}L2|}O8YF9sv_bO5NSvj~93*v?CU=nJS(@xY(g(>OB!Q3&LQ)9H kAtZ_Ne-n*Bjr&Y4hnQ?er4EXYi;js(jg5_tjgATU3t;rI(f|Me literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Canada/East-Saskatchewan b/lib/pytz/zoneinfo/Canada/East-Saskatchewan new file mode 100644 index 0000000000000000000000000000000000000000..5fe8d6b618e34c4c87a7eac43f7a27af41161d02 GIT binary patch literal 994 zcmc)I%S%*Y9Eb7Wl%-5VyqJMViy|}(1r3t+8kQv%jsz`aOcZA2p+6uFEegTK3$7jA zL`0A)FT<2XUdjsyW0`kP-ZCvYM2iUO_&%@gbmPi1yytT`%rJ}R8@(TIz9RdsljaSF ztIQmpb6s zu9t}GFYyQN%A;F)^=5^;R$r{w3k%$h$}06WyIeLe6{*di`Ley?tMAiO@?#{ep>QT XtO!|>)vO6w6tXHj`elX9)XKuUTnF}q literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Canada/Eastern b/lib/pytz/zoneinfo/Canada/Eastern new file mode 100644 index 0000000000000000000000000000000000000000..7b4682a39e2fc97450c99eed4576d2a4614bf294 GIT binary patch literal 3503 zcmd_sX;76_9LMpiA{wHIikTw0q=>RgxKd&+gnGpVOmRCJdIvQ*xgZo`3u-tuOrt@i zgSl@RqGFJSpr$rWiQ=B((UcTH5AL~eJKyJRFB;!9)8jn%bH};7{eAy2aS7AA+y3#? zH~+)SbHluRZ}EZo$SGJZSO0KRe6uw0=$fzdBG#^O)$3xnM66#jQE%vyEH+N>r#HC| zSDOd7*PE+?)mHDH<sWb@>Y$MI~_yBuGCPu zJJMg|Pw^}*;Qbtrza{wZjzI&4psM?CtdqXCoTFP~_6qT@YzLOfAr^RMcY5f{~| z*sZ0f+pQ};6ZUE8S=-{`b6&Gc&xa;OoUh#^FEpPgE|h1;i(5Vt&aT-BA&_mBb0EBxFj0{9}o@O zmB<&Gt`}~$b<#~Q5slPh>3(jlYFzA)O$yVM$Ci(E)32s0&x~ohS<0KLc|xRaF|Mof zit^Jfd%LR_{Tk_39sI;g4XbtQx{XBZJ8rVgb+$rJ68Y`Xo2 z%SDISE4t&1T=h!WA>C=n=c=>UM(x{muJWxtDE-`Gm0$S=*|oB#>Q=N=`j^FsfSd#w zxT}WX!RqIS*FL#jKfp{p|Fu+tI3o;p(w-_t=vPq51oSuSE^c#s@5ze0@m_LMQP zM@7t&yK+p}Rx#$9haT&5SdBeYqsP^5R&ndg^!V~+YC?Lxo>(+XO^VOflXHeEVc#vM zES)K)24u;%9d;4lI9X1M3=-3-f_&pKA4-bwP- zvvbQ-Vr;FJnfdD7Fs0`tW~;eg2lTw?6g98*l1%EAC6dZZWOA!ykzBM+raX!h@8v9( z@1G49sc8zO;$Db)M&6J(uVC^?&NOPG|lKo6YGwQe4Ny=`7q~YiNCU zw?3N=v&Yy54K(j)^S))?5iw@GY_>YqN6f#EUZwe=HF}Tu3-dV5Gv`)v6*7Xz5F%rU z3?ed$$S@+~hzuk$lE_dZV`*sy6B$iQGn~kHA_IzyC^DqTm?DFUj4Cp$$haZ{i;OHX zw8+>ZgNux=r5Rpid@aoYBO{CqF*3%;AS0uU3^Ov$$Uq|_jSMw1*2rKZqm2wVGTxSE zz>yJ0h8!7lWYCdOM}{34cVyr#&B!A|Z)wIJ8GK~)k>N+i9|-^w0VD)S43HooQ9#0g z!~qEe5(!Ha3M3XtFpy{<;XvYn1O$l)5)vdPNKlZdAYnn`f&>PM3=$ek6B{HrNOX|! zpcNm!5Fj2CAs|FZjF2E9Q9{Cm#0d!$5-B89NUSVPu#jjW;X>kt1PqB75;7!aNYId| zAz?$}h6E0Y91=Ptc1Z9nP4tlPA@M^3h(r(xAreC*h)5KXFd}h80*OQt38kfpB@#?a z6HO$XNIa2%A`wMGio_HNDiT#BtVmpuz#@@FLW{%}39hAyE)rfOzDR(P2qPgzVvGbC zi82yqB+f{nkw_zH`aJQ8^%^p+;} zNboI9^pWsen)o9J0CEH%hX8U6AO`_*6d;EIavUHB0&*lEhXQgeAP0k`IU10|!O|QL z$N^z#jtJzCK#mFIpg@iaf*c~q xF@hW<$WekECdhGu94NNuyCVLl7mAxXT*Ax&<8KcQ>>e2GZx0Cx3<(T&`x_HwlD7Z= literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Canada/Mountain b/lib/pytz/zoneinfo/Canada/Mountain new file mode 100644 index 0000000000000000000000000000000000000000..d02fbcd47f845bd101a7ec97150df7821b826357 GIT binary patch literal 2402 zcmdtiZ%oxy9LMnkp}>tlrxHU!BP|I6Kk2@lt49^Pju^YP-?iSu291NzOOVAZ|rW!>%DuJ*iiN$+i)DfZQWqI;c3 z)mx<(WnWaU>d*LC_D_8zK5Y-vzJA0`OpA*l>$x9VtYA{Rs`(s5= z^&CB;_^O(jGpU19$5cq%Ssf}5D~A}-j`2O}+Ved+?97M=Kir}tKI{>ZZ+A=idW*QO z{RMgbmRfOxr$)|NoiCya?w7N(62y%Ox5?-Qd1_9mL(UD1S95<|q+`AfRk6MhJ@3em zYX19|^-Vp;Rh)O8y!rV7wV=!|7uJ6!ZgGAiZ(Z@8SQK?s#wThKKXpzgI5vocu_HS1 zvRm9fyjLfkYE;Qx+jYvp61BLwPN%-QM5WcW%Jhx1RYv|gxuj%5IpZIYccg!*mIf!v z%$Pq!=EX3XHF-v4ANyI}`PGnEw%?)e8rm(E@AygI-MLNVG@Q`)w05d{i}vgLYPPD} z#johR+_ft2w^5m&+$8c(^~r+pDp7E-U9Py2BMRT>)hka|DpymRe(;0ks;JVVi#y`f zL(2+vi8oM{#wKfb*>}o)HBy&5kE!zSlVrvG3!-8)Lav?~6>Ij5%ZJDML}jZ_J~G@c zs%j3&wO#AQqpp*>x~)w;mV7`zUguFY;X8G0exa(p;?;HW$*S&nh4utTD$l#wy8ee> z)cTH9@`;lX;z@6od}?4^G?d54#vMNKwDT{yq2Z9&7ozY ze*Zh&0YQHMZY@IWdzk%{D_w5k$~8}^c~+UH*llJbM1cKp|BJaz*uUdH`TfienI1Af zWP(;RLu87`9Fa*PvqYwe%oCZY)yx!`Dl%8AnJh9}WV*gUcX6ne?k;!w+9+^JJ{E-B3WB^G4M-GrAaAW~V14kZ^L?D?!Qeic@K$3xE z14##x4OvUQe!o_L6XCf9V9(Sevkwq8A4KoO!AORY6m#SlNis*4ku-DU8A&up zrjb-zO|Fq-TTQl+bX!fnk%S`|M^cXD97#Hob^ITv-C>Hq)RaHTm64L3lA7d7OG`;h HNp<`UV`q_f literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Canada/Newfoundland b/lib/pytz/zoneinfo/Canada/Newfoundland new file mode 100644 index 0000000000000000000000000000000000000000..a1d14854af6b82bfe814f2c64aac01bc053d5fcb GIT binary patch literal 3664 zcmeI!YfzL`9LMp+3%4}yh1kVX0ZWmK)@oU%AV*uo4Cz>#89ZrJ2Gyfx8HM9?nNnve zyG#aDR*(`ArK`qfH+xddQPYm&Mz@U+Ei@N1B)9WD_Qsl~rkUQg%=&p))Ny?A|Ne5X zEu5X^`qL{$f5MwrtA6v`{{j8W%I*2xo?q3}QRXXotbD_sMHOow4!qzFdtO}8-}};% z4$mt4xc6nN(euj8GXt+?Z1Pl&{UuN}_(jiaXYUKF?y|(Q`q%ovn&50t^%v!V*S9Th zsHravyisj6)V@;YeRJu=hPnqI@V+%Ssp0L}`QEkJu?_1cW_W$W4mPY$NbqhrBgV6_ z$N0d;wgaAbS_cQ}cW?9f%d&6tZ;z~e_wAavO}9wn_g9I1y`tp4ogX=YMq7SSHCHtH^W>M0`j9}&F1Lw=XkCYrM1)c3u6In4>}s`>B{rzJ9=T6XMq4mA1I!P<4s51T90kMH_L zYfZg8R9+ztFE5ur-M?5IDJqqr8!XY5Qy`CCK2iKUB2ykq%6ES0kto}vGo1Eg6V&nM z1gAp{QNKFT&IwyfFd_ri3iPhpzsJENb| zZ&F`%hWlsd%%r0#?)<)@zy5EDk2osg54XtyUn_Cej?d-U?`;t0)UKE3zOYgZoVPu6 zUTMB{{`A_=pj(PR8$9ZX(2&Wqf(iZRg%U3qA51*)xIHv>aByg&ZC}t58NAS+XAj#o z$QoYewv+3+S|dv0?UcvAw^HX^6iU1E6DvI{E;Mr5YHL(Nd+4IHrPjrffslJZRnXn! z4~;(lXmHHtiqIwd<_0gVskg^&%n4q$yxhM0xzymeqEh>cB~z^NIR*9vE5*tfk!fdU z^tLjOEC^){PY!17nh~1Ry=QPz-6f&P2Y(7)xl-DmJw2@KMPuwKYrBgauUk%C(JHRG zG+s`dw?kY#phMwuu#6S4z()pCH$gZb+d+HDW z{dZCS$=`bFzb732^huX191g6C=whCu^|Lb1j_c%eH}gr)aJZ#8qVLI{da`p}Q!@1X zYW<$7-`DWH{=mE*aWq!&mtkZu@tJCJ@DbwiMjAT2?9f;0u`3epy&FGypM z&LFKpdV@3v>5fsi2kDPdHwftv(jufsNRyB*A#FnXgft526w)fBS4gvvZXxYL`h_&i zs5^$V4CxutG&Eh~fwu9|eFGYYbPj19(mSMiNcWKTA^k%dh;-1XTZr@!X(G}^q>V@) zkwzk&L|TdT5@{yVO{ASjKaqwa9YtDd)ICL-igXoeE7Dh_u}Ei;)*`({nu~N7X)n@W zq`^krVWh=I-D9N5NSBc|BYj31jdU7mHPUOO*+{pMb|d{p8jf@vX}MAN9BDezb)@Y` z-;u^6okv=a^d4zG(tV`;NdJ)yVAMMR*#btr2aru*)Vl!L2FN}@HUhE}kgb611!OZI zy8+n_$bLXJgi-GZWJ?(Jo<(mmAo~N^Ajl3u zwun*h5oD7X^)5lSiBazpWTPNE1=%XdUO_esvRjbtg6tP$!yr2b*)m4GXOK-})Vl`R zHb%W~kd1@v9AxVtdk5J($nHV5kLw>ypNLL>SSA0DpT8bIv3ek-k4aC_TWMH!dU9HF P%CPLz)a2CUl-S<@u$syt literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Canada/Pacific b/lib/pytz/zoneinfo/Canada/Pacific new file mode 100644 index 0000000000000000000000000000000000000000..9b5d924173e6e71c2c0a73cf2aca368d3af002e6 GIT binary patch literal 2901 zcmd_rT~L%&9LMnmUl4>mnJ5w3NlgS50YOnT({xr$L}ev0!n+jJFzEWqhQ&ivqqmnnp1o21F!!oHpl@V+xnDOm?@_1x$K-UKQD=NL^3(2*jIVZ^{JiBg(_Fb$ekodM&X(rNuNia9 zZ+Yo*E-uBKchA!ode2rZvEy`0`zX~K5~EuiBGtw7etl`*4b^tES^r+qq%K!?%9T|I z)zxyJv~N0Wt`*nG^@Z=7KeDRi&xy~Q8zal4V`!DS*{eWq^(a%fI-b+FTMAU?$$b6S zm(!I0fLjMXh*z$iaXRS5a233+r|z<9sOh>mR=Uj&Gucas{MqemyVm@y$~IxVJ~O1luP$KJl6#vSd{>8HO^PELRydJM{Fn znd;%UYh=cWWhQgOHktX!43o8Bt<2hG%I{Qmb>T#2EZk(Ps z;HsMUMU2k%H>&x&{Q6Pfezl;iSwB|0L**?!q8C=KSBo-zviOBM0`Hihu7N=LW>*jAJ=}S!8JQl}tSR#9-e=%!{_#gP8~Y<3wr|g_0TCFFVv4?3kXyYDIrorq=-lr zkuoB6L<)&i5-FvlttC=Sq?$-Mk$NHpMJkGv6sajvRHUj%S&_OTg+(fhloqM2qb)8{ zU8KB7eUSnq6-G*o)EFr;Qe~vfNS%>FBb9cvrABJ)Xp4^%tOK$T$Vxccr9jrg z(JltE8jf~3ko7effh^!#8gvc5qi-@cuvW&<&y8gfO7-m;9&93M0 U%uxx+35mlqladmW5)#Ay2A}k~%K!iX literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Canada/Saskatchewan b/lib/pytz/zoneinfo/Canada/Saskatchewan new file mode 100644 index 0000000000000000000000000000000000000000..5fe8d6b618e34c4c87a7eac43f7a27af41161d02 GIT binary patch literal 994 zcmc)I%S%*Y9Eb7Wl%-5VyqJMViy|}(1r3t+8kQv%jsz`aOcZA2p+6uFEegTK3$7jA zL`0A)FT<2XUdjsyW0`kP-ZCvYM2iUO_&%@gbmPi1yytT`%rJ}R8@(TIz9RdsljaSF ztIQmpb6s zu9t}GFYyQN%A;F)^=5^;R$r{w3k%$h$}06WyIeLe6{*di`Ley?tMAiO@?#{ep>QT XtO!|>)vO6w6tXHj`elX9)XKuUTnF}q literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Canada/Yukon b/lib/pytz/zoneinfo/Canada/Yukon new file mode 100644 index 0000000000000000000000000000000000000000..6b62e2d3c39a8406cdc087b387fbdac0709f9141 GIT binary patch literal 2093 zcmdtie`wTo9LMq7Qm4zo2XZ>soqcrX+}v(I+~(=*mrc&u&MkLdo|(Ve54N-|w@xjc zCyXK^_AXI_?EERQraTYrnlY&rRA#>cW+Q;}`Rcxi)>^ME`K|${Py@hVy>y9Nt=? ze=AAI_`-g5H?Ubf(6&?0h_6%GwNX8D=@K=opi1Y=Yn0j3a&&HbrR3hJFb{q=OZ>w# zP2l6-WzN}g^U#Uwq7#es+yfuUyjYgbYyU>gue_xnUj3n3ko|?uFHEWYi7``FVpBspSJX=8=o1)uVlXn8)6GOFiE4t$CvNl&q*9GEX+W zDK#a=tgP7~D}Nc$;o^fTJaSIgW^GrsgGcr1u{G+cV}qvdt9FU(J#5yTuao+XyG+B8 zpgg@iZq_E0H2SMebln|^-V2ym<(CrsewkiB=eAn^iC@PjM%0Fr6Z+ZFb82Jn4gK8E zQMIY*vfiB9qqamw&DPfs%eLZ6=K0oL(v;P2n!|Bv9_ux&`PI^TwZ*h$1f=bQRi^z1 zPhL3EthZnDs~w53e(}tN>WCHS&b}M!rKgV($nnczDenm)2C$o2OrNn(B$)Z zUSBe8l0A3&rn>WV_f($uzNF3I?3?Y*fx1Z47q78*qrIQ8cLU$;iw66m!OE59o_`tr z_Z=kdpSvB5|NVcSz4pC!@EEcSWE;pnkc}WaLAK(wdqFmX>;~BmKhJ)U4Iw*1wuI~n z*%Y!XWLr+VFJxoL&XBDkdqXyd><-x;vOi>l$PSS$B6~zO>9o5=@ZHvS(z|$gYuXJMF%ajUzipwvOx_**vm)Wc$eekp>_gKw5zG z0BM5Lb^&RF)Aj*rgwu8cX$8^?q!~yzkai&bKpKK{1ZfG<6Qn6l+ZCiOPTLoxF;3eV zq%}xykmexWLE3}#2Wb$}A*4k}kB}xIT|(OAw0%Mv<+PnbTIIC8LYjqi3uzb9FQj2e z$B>pGJwuv?bPZ{n)AkK%oYQs=X`R#d4rw0JJ*0g||BwbE9Yk8_`@hF9(^fKMD_Im- S94rr(7DdX+f@Q(d%s&C-P%%gV literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Chile/Continental b/lib/pytz/zoneinfo/Chile/Continental new file mode 100644 index 0000000000000000000000000000000000000000..6542b6106617f4633545d37c8224e5e4a637cc6d GIT binary patch literal 2515 zcmd_rZ%kEX0LSrj0f9g=q!dt-EJ=gl;g13)_=q5o{J90>KQtsqKm-T^BPh`qNv%aP z8#ybowMMS#16DwT`K&dRqT;RyT{>GcTdl>&O3d{3e2=+a^rE+Iox5{BXLpzJ>i2yL zHkFsgS^v0v%{Sa!UFPOJu+==;MaJ5LMc+ERTD}=RWbM#uYvXWFW3udBZH*nhER5A&VG(LZN}lw#0+f&cp!7L6seG>m$(xS5l;7E3 zrGNKNV&>3<3}_n@H@`9@*ftmZo?9x6Rw4_1Yy7qv+EwDq)32)YOrgo}e z?=3pm^^gj=uu6yaB&vCz70LPgLe+w!Df0H3Kh(nZFd4SXQ`}MQAr~cG5qIXEmv@Dn z6^j!sz4-ER5&rYEzWekcvEYj-=b;RpkDzdLl-@9kGit4P;(It;4(Yja0 zq^7Ib;&K_6JR#!cI=Re0O)L-SmkHkED$$xH6F>G9N#9546^DNi_l*STmCuff%EHy)yk`jmikzFEb`RMCMe3%o?l~_q#U8 zb^Vsg?pYyohJ8e?bC1q@`G|6+p4Jbvyr3S8_)X>))v5yjQ*wR61+o6mcsP2eF79-SZNd9wNo%DlnXZ%Di*wcXQ-!ir3RT*l zAj`sLtFo6uWV!nnRnd4wK6dU)Rk>}he*EM`Q6(?y>h5t-6ZVzf(bgwwtsz}kc0km9 z-KFa@n??P|plpokRE=-FDw_hERMRu9@`&V`b&D)yYBil!N|GdxuF4F;^1xOE&CLmov+JN){X@srm z1kwtm7f3UZZXoSI`hheA=?Kyiq$fyIkggzYLHdF;#@2KOX^pMv4bmK>J4kzw{vZuP zI)tBCWJFy+oR6Yr2WF6X_?? zP^69wtCHqvcd({7~SNW+niBP~aIjx-(VI?{He??~g3&fA*SBfYmZ%}2U# zYub!RoI`@NpAv2(-c z?Oz*g$o2kqV(f2tI4|0Vds3Hu4SyirzlD~_m7ZU8_|(V7Yxz?9+Nw>2l*c#opOGunKMwJum7}GZrD3V-*~i0 zZfgEj&)uCWsoNvf%}o(<%c9Hb*2=Htwv@AKUV&%kT{^DPewZ@1pLt!)zxbY6@b0L- zWBg5%{>A~FG1zVH-0`f=>}@nz^^a=RwNtW-OLb0NP;v{$)m^ee7RHyTyo4dij~>$n z-V7=DC{``{CfzJP^sT!4WP(}p!YNhQKVga*kEo^HAtN;(>Scj@`(slHn~;GN1D`qp@(F}kf&D;ES8G*V^n4J4pa5&5nWw;#@xSc zkA5KiXQ`=e(f;_;vO52~T7C38vu5@QwPyDxX6?m8YF(2ywd1?g`l=rD@Ze_kNY)lp z*ITVNB=42_u1&grs#P}DRqBnWS4o2?-7u6dfz+8g@JfmV!$0cA_RI3vxzF{c4YSST zCoZVXa>+FHkE!O=FU%9&gQ~?FHLZa@)%w)|(^l50+D?v0dv>pGf9o~rNbJxZ&v(gF zlk0S6uwJ%>3iZ?FCGyO`T)llkn)sq3BLDF-E&9Lwgu{JLdY*eng~Nvr`eMW3{d>IW zf4vVMnX(s7*q-3dV*91`OYC}( z1)*CJ7na1aYXTO9tO{8cvMyv{$jXqVIqlkz#UZOhmWQklSs=1PWQoWckwqe_M3#xH z6Im#-Qe>%4yH;eePPaWfK&k~15yX15J)AEQXsWJih)!EDTmY611Shn5u_wYO^~7>RYA&v z)CDOFQW>N)NNtefIBj*1@;GgMkOCnULP~_x2q_X$C8SJ9osdEyl|o8|)CwsUQZ1(~ z7g8^$Ef`WUq-03VkfI?~L&}EK4JjN_Ij1chQah(D9#TE0Egw=pr!62-L8OF84Ur-u zRYb~&)DbBpQc0wgNG+YVm`F99wwy>kowlGzMV+>!NKKKVB2`7oiqsV;toQ#+Y@Cg+ ZKhG67qoN=)Co?ZACnuv~;h(p--vPZhNBRH& literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Cuba b/lib/pytz/zoneinfo/Cuba new file mode 100644 index 0000000000000000000000000000000000000000..1a58fcdc988ea6ec1bb660ceabe85ea19e5b0774 GIT binary patch literal 2437 zcmdtjZ%kEn9LMp)-yCXL{y`%Nlf+6;u^XxQwI zbvPPo9rB!}K@Dp->4n#JX~fn+H?s75iSkYHqTLg6)3h9ST*4t4H&XA#I1Li>Q>8op zVo)Z0yVslO<;u;+H+#3Vy)Bb=9dvKa|50x%Z}%prcI%WC2fV38&+D`~^6!^z1v6UYTUUE?j8LxI`c@T8^5DK?rcnO6AFDYt2*4hYgxX|UUkV$oV`%* zPC4bynfkIO#SVH&W34iGq(|==*eCb)9n{rtX>~&akbR{hCJ3#EE|(|$m11DrEKB`*_1s?HeJq?ilhjs_$ony(LYG=gK()F zJ}q1J$Lka4hO}zCqfZ_=snu%+b!%g*KIQAuZPokq>8bB&&FU>$Gj>9@r@tiI2M$Ty z^h&AgY>;QK<;jkgpwwSTk)6A9Wmm@}*&o%ulVG-f~_KXbw%NZ5<-<_dQ+Zo3( zch89og-&~6<3ge1N1X|O-uWcYA8>NawJghA1p%`j#|aCwIDvoO-CO3Hc6ZnQ_=)+q zP$<|iw*%QBvPEQ%$R@33m&i7)W}nDLt!AglR*}6Tn?-huY}ab`i)`3xc8qKp*)y_f zWY=i7%>(=9FdGMUj%*#-JFu$mqqO+dPUv;pY@(g>szNGp(D zAk9F!fwTkZ2htFvBS=fErYA^KkggzYLHdF;2I&ma8l*Q!bCB*J?Lqp3GzjUC)wBrd z5z-{2OGulLJ|T@lI)$_f=@rr}q+3Y4kbWTzLpo+PEkk-{HBCdhhO`ao8`3zWb4cru z-XYCHx@R@*L;7bm4MaL>891R6X~bbG!*Hm z)wC4pDbiG=t4Ldsz9Nl9I*YUx=`GS+q`OFak^WjugOLtfO^cBpTTPRZE+cJ5`iwLh z=`_-6q}NEZk!~aHM*3|v4M#d|H7!SaZZ%Cux{kCR={wSRr1MDYk={H1=itYfH-OK) Z3Fi41rlh4Tn7?42KQ%Qa)jXxf{0?B7_b&hd literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/EET b/lib/pytz/zoneinfo/EET new file mode 100644 index 0000000000000000000000000000000000000000..beb273a24838c96e81f0469e3827bea20ff930c3 GIT binary patch literal 1876 zcmd7ST};(=9LMoPj+LzFi-wRqS%fGa;qaIcM1}{Za#Y}Gq#_xJQba+-z$DgU&J}Z? zHdb@x)XA80dh!D60;%~pTgKcRYgW!JSK7l|n>wGy=I{N#?W(K#pPjw_JKMSYzCYo$ ztu1-Je>@MlU-^>999;l&O8B&feUTrnj~iT1QQ(b+#nf+qtRM6})Tj z#QCf{Ctlru|6)C{x7Bn0l=WV}sI5mv?A?hmZQFH1eUaUIuXkAeJNxB}`p-VTtU#1I zwd6Uz=wPre>^BWI4BI&$vF$s=cvoIY~?NCHR(ND4>}ND@dEo-Pd}4COnR~j_k=&8wk?fK5k^GSf zKxP1$0%Q)5NkC=+nFeGYkcmKM!qZI!G8f2XAhUr?2QnYXgdj75ObIe4$fO{%f=mlC zFUZ6oGvn!|2ALaAH#x}cAk%})4>Cc>3?Wm5|I;~&al5oIkA?Dw^0N!G13CHrP;S6` HD~Ndj&PSQE literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/EST b/lib/pytz/zoneinfo/EST new file mode 100644 index 0000000000000000000000000000000000000000..ae346633c1690d49530e760f8506218bfa9feef1 GIT binary patch literal 127 zcmWHE%1kq2zyORu5fFv}5S!)y|D78c7+ixxfSeG*`e0_T{D7H)YycO~98)d;2yPBR literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/EST5EDT b/lib/pytz/zoneinfo/EST5EDT new file mode 100644 index 0000000000000000000000000000000000000000..54541fc271644e44973989a27f3846a16800caf5 GIT binary patch literal 2294 zcmdtiZ%oxy9LMnslIR5zDhd^;pkg5Z?J6P_CXB9jh4f-bre6)bLnuyaHz>oJDCyQ* z)1ZH&EHi6!WMy%7`BeL=@QuFW_VkvO@cuBz2CzT&)!FFGdi&rMbnlXuI+eLIcU zY>@=LStWk+hE6&XQdb}D(v#lVWRhQ6ty8u(nQJ=k(bqOto9mY5>QsM@xqfz{z9A>U zq-EyF>eAug&FryHblHhBX3lqgy1f54b;rj~ z>pQo9sqT7Zm9A)eU(M~>D0kQFRP!2FN@ZbKRaMTDs?oisI)8<(9^7X9NprRTK&zQQ zlBE~Cx>eo#b%g{rw5Ww2W=hSnfU50@ll#gG)uP9SWpR3n3f7&J;Mk~I;(J$?{5Z+f zXPnUW$1j?tk-fTM_n>)TXq#Tvb!a3$+A3P%FDzWL18TdMFf-#-w)D zR9z@dBMmB)og$%A<*Ir7s5I}(P-}+2l9rw_(|Y=%emI2!s9mmjkuf8KMn;Vc8yPn;aAf4j(4BVd$l#IDBg03=j|2dT z01^Tu21pQ)C?H`#;(!FgX(NGz!f9iH1Otf%5)LFDNI;N?AR$3wf&>ML3KAA1E=XXI z$RMF{+Snk$L860%2Z;|7AS6Oah>#c|K|-R0gb9fg5-6vQ6cQ?@jTI6sr;Qd8E+k$^ zz>tU`Awyz@1PzHA5;i1mNZ_0{a!BZ$Hg-txoHlw$_>lM^0YoB*gb;}#5=115NEneg zB7sCAiGh0lNKlceB4I`1iUbykED~C$jV%&fr;RQW uUZ;&O5@004NQjXbBSA)@jQ^W3du^?Kw%U1t83iQ;MR|eZ;)3FWBJbZZQm>H! literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Egypt b/lib/pytz/zoneinfo/Egypt new file mode 100644 index 0000000000000000000000000000000000000000..ba097504459673e254831edea689c2f8143990df GIT binary patch literal 1972 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 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Etc/GMT b/lib/pytz/zoneinfo/Etc/GMT new file mode 100644 index 0000000000000000000000000000000000000000..c05e45fddbba6a96807d30915e25a16c100257e5 GIT binary patch literal 127 ucmWHE%1kq2zyORu5fFv}5SsBac1T%gB)x!Wb Nv$$-)rrH^C0RSIb7xn-E literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Etc/GMT+3 b/lib/pytz/zoneinfo/Etc/GMT+3 new file mode 100644 index 0000000000000000000000000000000000000000..71384da49977fa4e63575776cec4f12aa4ab757e GIT binary patch literal 154 zcmWHE%1kq2zyORu5fBCeCLji}*&2XE{r~^}85sWmzj}dz!QD4R+ZZSoLV_7Tfa+lY Nn^{~oU{mdkxd0K^7rp=h literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Etc/GMT+4 b/lib/pytz/zoneinfo/Etc/GMT+4 new file mode 100644 index 0000000000000000000000000000000000000000..99bf0e935f4e33d6d951eb2834485af93283a130 GIT binary patch literal 154 zcmWHE%1kq2zyORu5fBCeCLji}*&2XE{r~^}85sWmKYoCL!QD4R+XN^ULV_7Tfa+lY Nn^{~oU{mc(xBvuJ7lr@; literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Etc/GMT+5 b/lib/pytz/zoneinfo/Etc/GMT+5 new file mode 100644 index 0000000000000000000000000000000000000000..4d62462fca18ac80d4fab5fdb95fa68ca67e11c4 GIT binary patch literal 154 zcmWHE%1kq2zyORu5fBCeCLji}*&2XE{r~^}85sWm-?@Q-!QD4R+Y~4kLV_7Tfa+lY Nn^{~oU{mc(xd8UX7ft{G literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Etc/GMT+6 b/lib/pytz/zoneinfo/Etc/GMT+6 new file mode 100644 index 0000000000000000000000000000000000000000..80fce3526a696bd0620e6ab28a8d70becbf372ae GIT binary patch literal 154 zcmWHE%1kq2zyORu5fBCeCLji}*&2XE{r~^}85sWmU%h~V!QD4R+YBfcLV_7Tfa+lY Nn^{~oU{mePxB%%x7Zv~j literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Etc/GMT+7 b/lib/pytz/zoneinfo/Etc/GMT+7 new file mode 100644 index 0000000000000000000000000000000000000000..a286d847398fd8eb91e0c92db18b4b2f6b656d08 GIT binary patch literal 154 zcmWHE%1kq2zyORu5fBCeCLji}*&2XE{r~^}85sWmpF4qp!QD4R+Z-qsLV_7Tfa+lY Nn^{~oU{mePxd7Y27Ty2= literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Etc/GMT+8 b/lib/pytz/zoneinfo/Etc/GMT+8 new file mode 100644 index 0000000000000000000000000000000000000000..bb153d7b9158504e21784cc6a65fd52c18a64adb GIT binary patch literal 154 zcmWHE%1kq2zyORu5fBCeCLji}*&2XE{r~^}85sWm?+0?+eM7V@fMOvenDGOs9tN

4pNV OhH=?I%(VlW%>@8lBNP1q literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Etc/GMT-12 b/lib/pytz/zoneinfo/Etc/GMT-12 new file mode 100644 index 0000000000000000000000000000000000000000..81ada016448c034a36b0fd08c91b11c66f0cfdf8 GIT binary patch literal 159 zcmWHE%1kq2zyORu5fBCeCLji}*&BdF{r~^}ffU1v0}KrAz9G7XAk85p81e(88w#)* N#$^LB*A8el7XWLR6g>a{ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Etc/GMT-13 b/lib/pytz/zoneinfo/Etc/GMT-13 new file mode 100644 index 0000000000000000000000000000000000000000..39c8f9c2d9eb7de2dda210c8b1f752db9e9e3be5 GIT binary patch literal 159 zcmWHE%1kq2zyORu5fBCeCLji}*&BdF{r~^}ffU2G3k(eIz9G7X#z0O835NUt>4pNV OhH=?I%(VlW%>@8^4HSI< literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Etc/GMT-14 b/lib/pytz/zoneinfo/Etc/GMT-14 new file mode 100644 index 0000000000000000000000000000000000000000..d19a66df988a85ef4ddf14dbe0f20d34d52e772d GIT binary patch literal 159 zcmWHE%1kq2zyORu5fBCeCLji}*&BdF{r~^}ffU1$2Mi4Ez9G7XCO}RI35NUt>4pNV OhH=?I%(VlW%>@98f)u>~ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Etc/GMT-2 b/lib/pytz/zoneinfo/Etc/GMT-2 new file mode 100644 index 0000000000000000000000000000000000000000..e0c8e1974c68a593f748a31cb66d836cdd0fdbbb GIT binary patch literal 155 zcmWHE%1kq2zyORu5fBCeCLji}*&2XE{r~^}ffR#`0t17)Z-_2PZwLuy`~Yc&0&He+ M*?>*8(>3A(0EUGT9{>OV literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Etc/GMT-3 b/lib/pytz/zoneinfo/Etc/GMT-3 new file mode 100644 index 0000000000000000000000000000000000000000..02331c9ec91211eb36f540dd97b1c1dbf74eba71 GIT binary patch literal 155 zcmWHE%1kq2zyORu5fBCeCLji}*&2XE{r~^}ffR$50Rw}(Z-}ljkR3vT89zXpp#Ym% MTsB}+?R1T~0F@#UUjP6A literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Etc/GMT-4 b/lib/pytz/zoneinfo/Etc/GMT-4 new file mode 100644 index 0000000000000000000000000000000000000000..f2ec837112e095da92abaa414cd71400f5f36ba2 GIT binary patch literal 155 zcmWHE%1kq2zyORu5fBCeCLji}*&2XE{r~^}ffR#<0|SG*Z-}l5kR3vT89zXpp#Ym% MTsB}+?Q~7J0HePVp8x;= literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Etc/GMT-5 b/lib/pytz/zoneinfo/Etc/GMT-5 new file mode 100644 index 0000000000000000000000000000000000000000..5f3b4f97ce36106a9a7b6b360df17a259a35af17 GIT binary patch literal 155 zcmWHE%1kq2zyORu5fBCeCLji}*&2XE{r~^}ffR#V00V=&Z-}lbkR3vT89zXpp#Ym% MTsB}+?Q~7K0J2;W-v9sr literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Etc/GMT-6 b/lib/pytz/zoneinfo/Etc/GMT-6 new file mode 100644 index 0000000000000000000000000000000000000000..2500abd77649b56dc68bdce832e66808f13bfe02 GIT binary patch literal 155 zcmWHE%1kq2zyORu5fBCeCLji}*&2XE{r~^}ffPeX0t17)Z-}lLh)seSKR}wH0GnA{ LHegfjbj`Q`!1)p% literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Etc/GMT-7 b/lib/pytz/zoneinfo/Etc/GMT-7 new file mode 100644 index 0000000000000000000000000000000000000000..4fa1492e90181118abef5a5320d857689229f74b GIT binary patch literal 155 zcmWHE%1kq2zyORu5fBCeCLji}*&2XE{r~^}ffPeh0Rw}(Z-}lrkR3vT89zXpp#Ym% MTsB}+?R3q#0MC{ZUjP6A literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Etc/GMT-8 b/lib/pytz/zoneinfo/Etc/GMT-8 new file mode 100644 index 0000000000000000000000000000000000000000..0f2978799b9f3ef38c212918e7ebe776c11c9617 GIT binary patch literal 155 zcmWHE%1kq2zyORu5fBCeCLji}*&2XE{r~^}ffPdlkmK$fqH6(Uhmc^#50GXkz-AVg L4cJsWT?;M%-ZK)P literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Etc/GMT-9 b/lib/pytz/zoneinfo/Etc/GMT-9 new file mode 100644 index 0000000000000000000000000000000000000000..64a00d87094c4d438cab1b5481f5e9b9d4e45a73 GIT binary patch literal 155 zcmWHE%1kq2zyORu5fBCeCLji}*&2XE{r~^}ffPgC1O^6o-w<6(AUlKvGk$ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Etc/UTC b/lib/pytz/zoneinfo/Etc/UTC new file mode 100644 index 0000000000000000000000000000000000000000..c3b97f1a199421d6d9625b280316d99b85a4a4e8 GIT binary patch literal 127 ucmWHE%1kq2zyORu5fFv}5Ss5kyH%QhG!qfl!}_6ucy&7TF^b!_u%qYjx(n zIhHv!ZwTrT(eO6F`-P^G)hIPxo389)_l-OWZMoqS>q7T`dr(CwTbl7NbX`N(ky|Tovj=p47pO|HD`##^Q zsY=3H#ACk zb&d2`y;dS@m7WVSgeRcVtM9HIg`}L=xLd zWoY+u9eQ!P4EwoQhc~+Aq0h5*MCDXXsvoWoFHP2wtHO0uexxRs4ULpouF90s z>oT>xS*A^Gk?D)R)u%`9kr}zCG_U7MnVD3h`5kxZtRAYfzFwiT+X{6~(*k|wqDPUJTO>`uU(RofSX!! z=BO-aJ*O|$R?17w^}2B7VO> znGbIB;O4;`KISkt{{D2BPoBR|$ZqouCn2|f|LQO1XcsiT07;6Y$qJGdBrix}kjx;d zL2`p62gweS9wa|Vf{+X$DME7OXp)3v2}zTq$rF+&BvVMLkX#|jLb8RV3&|IfFeGD0 z%8;BPNpmz=L(=AG@`fZ1$sCe8BzH*iknADpb2Rxw5{P6FNgpaN0VwK*GRIFY$NGL@{J@M$vBd7B9%m6Y4$Q&S(fXo6i4ahto6M@VGG8M>NIGV{oX2a1; z2QnYXgdj75ObIe4$fO{%f=mlCFUZ6oGlNVGGB=K9a*)|^G}D934>Cc>3?Wm5%n>q4 z$Sfh#gv=8%QOHaoQ-#bGGFixMIhyH0<_noHWX6ywL*@*bG-TG0X+!1>nK)$Tkf}rF z4w*b;_8iUhA@k>GCJ>oHWD1cvL?#iLMPwS0d3621k7hRm{?$JEn-v`p&y2>TC&Uhk Ojf+W-kHdip{=WiRC6!qK literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Andorra b/lib/pytz/zoneinfo/Europe/Andorra new file mode 100644 index 0000000000000000000000000000000000000000..b06de7a5904dd87bc1c43c023418bf2829c01df0 GIT binary patch literal 1751 zcmdVaT};h!9LMqhQB7-R-)v;l1Cqkgb5TlioLUsBKjk5b9>ftPtvtn;nYH%4Xv{E7 zYi4OS;UZ=XW30K*3^N<^I5Qg-v&QfJcj>~N&A*-VI&0_LecoStd2Mx~^~V!n{=6C#nI`!6Yo!0wJ-JS1rddCxu-FHvp8n0-4QJl99M_>UpH)cOk0wpO>XBJbOEsgbTr>O9b@u*j%{m&YbE+dXdtaK& z%?VIX#&{py#aQ-@m2>?QOEK`;;!K ztCPiTd$q9SpceV6w0MS3?fhI_60%U2x~J&U!FVklog<}>M(MJzF|z#97hN$BBr8t_ zOIhy+S=IVk$~*dHb@_l)?0m0lvM$Tovin*YaYU*zd$c<6qSl0|*1SEe>xLS%_D+kg ze`f23Gb_}0yIwXP$ke*7V%fAVLO1VEk@~_6X{Zj7EeYY$=>0BRgDq)_8?8;BUP$xE zL2Z6;Q(8Vg)@|pzWP5*~?l^KoclI3DT`is3+TNd&%V?1abPvPOy(Xj!4- zT_b*f&M&a760dD}oL8~U*IX{=&HnoUH<~Xx1N_GC%=6PcyHYQ7AcN##l*llVaUugn zMv4p-87neaWVFa|k?|q}b~GbKhK!6E88k9#WZ1~Kk%1#4M~04!9T_|_dSv*>_>lk{ zO$0~?jwS{q2qX$53?vRD5F`>L6eJcT7$h1b93&njAS5CrBu5hy5|pEf3JD8|3keK~ z3<(X14G9j34hav54+#*75DC%I#E1mxXre^IMB+pOMIuE)MPfyQMWRK*MdC#QMj}Q+ zMq);Sb~I5VVIy%Pfg_P4p(C*)!6VTl;Un=Q2LL$&$RR+E0df!=%~3!OgQGbP$bmqP s1ac^lV}TqD2SN07ND(-S=2V%uGi6q^zo?=DD)$GD`RU#;eS#{d8T literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Astrakhan b/lib/pytz/zoneinfo/Europe/Astrakhan new file mode 100644 index 0000000000000000000000000000000000000000..90d7c2a810846febe4c2a6c60e8c0156505d4d91 GIT binary patch literal 1197 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 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Belgrade b/lib/pytz/zoneinfo/Europe/Belgrade new file mode 100644 index 0000000000000000000000000000000000000000..79c25d70ef09aaeec21f0a10a029650967172a80 GIT binary patch literal 1957 zcmdVaYfQ~?9LMqhL0H4S7)2!{xg6a~D7WL3s9ZY8CAlQGB%zgCF3rrEeOY4-b6vxT z2jM}?T<4O6HN%WC*O}Qcw>5t6|7Np!;F-<;od5sTPMse8-XG7D`8ko+A6EEVo(VE+*5*~(W!yj&Xc zDO!6y57yod9ktKp7TUM^i#iX!)_&y=G_>@FhAlgz;n~MDBJ;jP7F0`ALXAX^-!3r$ zyCpWVNMajHB+jo~;~veF0pAOC;8~XpdYGZ{m06llGf)R_9Hv8d`s>h~ARSgZK!zuJ zsVm!0Mg+f9x2sVSy{>6e&|^t@_d=4Jo|ojht1{}@0U2F&L{e(cY3i0TNjthv$K>V7 z*s={eZqjBQpF2m>`{$}BB}pgvr0GOwZ=Lu#Tr)Z(O2)l*I{8yCnR4o*PHpg(X?xpB zX7yW{Uh+Y*%IjoCR)fr3{YGaEIW4m@Yc)HtLgpk?X->mKC0k0=(X2^R^KzKCSMz`QvaI%T=6qRg z#A^2I>EG4S(z1Sk^4pYDkL7Z6r+ds791h-G4u|LOr+J0>L;Ey;vA<(kKg=~f{{2Yg zbR#DmIpxSnM@~C(;%&{TM@~L+`uVpMU~4KsN|?UAqCo+3Xu|RO^ryANR>#L zNS#QbNTo=rNUcb*NVQ10NWDnGNX1CWwx(vJXj@Y?QZ`aIQaDmMQaVyQQan;UQa(~Y zvH-{mAWL9t)&N-qTeAwtG9c@KECjL=$WkC{fh-2H8pv`W>wzo?vLeWmAZvmwimh1{ zWLc1PK^6vC8DwdYwLumKSsi3~ko7?p2w5RyiI6oy7RlDE60%ITW}T3QLRJb{DrBvY k#X?pKSuX4Uo-S`QY5gMDG-qm5XiR9hGc_U{!=k)@0!L5Jf&c&j literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Berlin b/lib/pytz/zoneinfo/Europe/Berlin new file mode 100644 index 0000000000000000000000000000000000000000..b4f2a2af6de4526f909f743425c0858d32cd14ad GIT binary patch literal 2335 zcmd_qZ%kEn9LMo<`IExPeZ}CKfKWF=>}F`LEmveU$7W8dvHHDFTebC|XFciMd(P|JGk9>f z`+57;Y^q7O{&9qvC!8F6&B=Y_4s+>>aIWtPT%0&C)~DS)$MuzWR1dax>R?!d4viPd z+1H#pe8elC?#q;OFD1%|KUzjkbXcQhr+17VULm8GGAGVg#pq{6E)C?2Bm`>5HE?u` z^?7o?TyW2kFTy%xEa;4mU2T%c;m(O!B}?VDj9)a$^@B#w`cj?2XVrQAw9dZrrrv)3 zkj{C3ug07_C9%i)B<{dLncJokzwJdysPoGm>#F3=VxPEj^W`pgwj{81b*e9Lox1YTmvvR$1}(j}PJP9N`iOJ6u68Hu>YE-diz<+^3z7QRjd`->#80|55H9Nu z&6M)~ALa3u>r&A^EbA)*Qn~$mePZ$3QdK^r)$#jfLtdZOOh2x*ajLc7b?U|`zit|A z)+aCf^r@q3weF(^d3txA*7ugm=8f_C%&shHSeYyS8mDYYn=4!Mf0k!wTGE&rrHvC` zOVf;-+H~#%X}&h5&%M_ocC$s)70HPf{<^F=0%%ov$6GG|*eX}%`2My8F-8<{vVb7bnaX70%3 zk=Y~DN9K>}w!@@s1njAYo>q!`IDl4K;yNScv6BZ)>bZT*ir9c~)FAdQ;4OEOZjQatXG KG!Ld`g#Qj|*MPME literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Bratislava b/lib/pytz/zoneinfo/Europe/Bratislava new file mode 100644 index 0000000000000000000000000000000000000000..4eabe5c81bd1eaf255fe09cfe72f10f61762fd5f GIT binary patch literal 2272 zcmc)Ke@xVM9LMoH&J$tE-e`Cv2UtW%o&1K-AhQz~dgm`LBNfp+QR^ZgV^A8lm~)M> zcaG^C;*Vmino)mXt)aDkjuxV6m!0L>a%EaMH*->r+2{G)T3h7be!u(P<8!e47MLb+Z{f8WnZLUdwP%P{`XW5wC~ZOm_{AGut<)- z?$VK0ymDe!ft;*gqhGe(kW+`2$m#8F{i^bmgnh;Gb>@Ja@yw8KVs=Z!-XM{SEh4`K z8{&f*IyI1})BFqMw){UeA?+8PKJ7boIgYFA>ie2_{w=-z^g*5R@ynWY^q9C0_e=7= z1Cr9AlDhQ;nHg%5J65lkJADC3D=Cw^JVlc3&XBt&CrXCXs~Oh{bk>jQni-z1_k0?y z_YRDzr}v`H?mDYk?O$m2mZO>zd{c94B9hlMAo-<(Qm}lt6ejmbQC^D_jkQT}QkNE= zTPJh=YSy{OymJ4y)mqY5tEGc;^?@DpbzZkyAFNB$`R#M$p>n5sgGsU={eqTx$E4i( zxmKioFBO-6l1j&iQaLgt3(vnQi~8RX-|z?O@9dDphY#tJ`g&Q~@uDt!V$HsJ~LGxy*5i$zVo}T3dhRogYi-`@T;t8yDGI^BeJ$O zEbF#i(#Ph#E9+~9HJG|rHk9^j-J~PBF9>)LYi6KTC1(P!W8 zljlYTb?e@bbX$LqKHu7_ZJlizWsh=97=K4OC*F$N{E&B=AF|Co(>}pwixXSS&CW~x z0h_n1ikASNu$v3bA@KjRnPmRS!=>io96!oCbKNjkO69Im44t@S$((r4q>x!5(?aHj zObnSBGBspw$mEdOA=5+VhfENeAu>f|j>sgDSt8R!=4ojr%6DL<$W)QJB9ldCi%b`p zFEU|EGh<}R$efW$BeO=Pjm#UFI5Kl&>d4%Y$s@BzrjN`YNdS@oOOpa52S^f-EFft> z@_-})$pn%LBo|0BkZd67K=Oek1j&e{NePk@OOq5ND@a<9yda4|GJ~WB$qkYmBs)lY zko+JCLNbJ;2+5J9NfMGJOOqxfPe`JWOd+X4a)l%d$rh3>Bwt9vkc=TILvm(ml7?i> z(xeT^8n}zs~WuV`B8J zxc>>T$*>8q$*`$poYtj>n&ygW379e*0GJ=t!qc8u2aQSSDi^~C|P5S$k!r6 z${bW(Mwzv4E#_VsosBX!k&rRlV$Wv6wlwy8KOz#g#D9LL&+|H`d7A#yzCURrCTGPs zo;Z!nceptF%*FeFx#qT_SKqnCjYD&bYcE-=E|%%)k_!EFuj-nj<+`TkUX*9-25aq{ z%G`Ak&8_t_Q>>EsdDe!}A-ScY@z%z$Vrx?er?t8MY-{taxZEu_##oq_I_)pO7ok=hk)U>wQT2)>KQsYwM+d*%nDT zbx>26ES3RV*XqEW92vCu106j4BOQ`GL5IGYt!XKJ^o_s)IxM`s4!awr>HfVX{X%nn z^G-V%vFlIGsP&bRo@O$t{8t%Wcw5FStC6u|YGvH)pY^S7yJh^SQ<~X!rA$aH)2s#+ zIGm8j5t3zX4imYkG<_73nI{R-~^; zW0B4xtwnl^G#BZvt!XdPU!=iEhmjT|Jw}?0bQx(g(r2X6NT-ojBfUnNjdUAnx2@?n z(r~2XNXwC)BTYxTj2Jd5oAkj&7L5eg6s;iEy%tg8-wf&vNg!wAe)2i z4zfMS{vaD4F**9e4kex%e4%s_o^N`&`wh!4qWCM{MM7Ge@>>;v=wq_TRZAA7F*+^t3 zk*!4b64^|L)62V_w~x!m)v$hpr+)FgPd#ofZ{J4G>h*9n&32mAG{>x_pRikI7v=Hy vPXC9`Jb3caGbv^}|93y17*OWa*UW6k=p-|-;i<6^@extssnJmw8SDEm0cgd8 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Bucharest b/lib/pytz/zoneinfo/Europe/Bucharest new file mode 100644 index 0000000000000000000000000000000000000000..e0eac4ce33159ec614c51379c6c48935a114b470 GIT binary patch literal 2221 zcmdtie@xVM9LMp`1y}6)u@4e~0ivRTcEACmXy7jbvN%OKja1}oA!41BsO(7eZt0v; za_@|3mTtHlvu4B}lo=YSWVE@Hez?{e^Sf--nzJ@?)*P$P^IQKk*ZQZwdf)CIx8uk7 zgV!^#d|gAny5-``Cp@{`=E?i`hT>rdQju|4S6ur}FNis#7eoj3qgP(nk9EJPD=+kme{Z{9c>IVgYHHF|?b~JX zsOM3OzALYq8C-hUb7oGIspLcL*ev2Jci(i`)}=}l$7>CN#D%g^8F&^e|lf(52*R(SyoofOThf7%k}4zU*mEG{(UZc%r`o7 z`IR3r_q(~^MLQ0e4>BP~Gb3b5$efT#A+tiJh0F_?7&0?tYRKG>$sw~triaXrzljMV zGeo9{%n_L+GD~Edj%J?7M3I>yQ$^;=FN%khCCqK@x*x21yN)8%L8IBs-2KJxG3#1R)thQiS9PNfMGJ zBuz-3kVGMwLQ;j~%F!eX$(Ex@7m_a|VMxZ1lp#4ol7?grNgI+kBymXQkklc$Lz0JN z&(Wk0$sdwHB!fr_ksKmPM6!sa5y>NxNFM~Kl{xFK1W@GhxpC_&Lpl3bkoZa&}oO|z+J3eps ziuJ{D)<2FZ<_Ry32J_$UGjBA zyPTf=hI})1hYWZg(}BxXGWb)po*B-Q3;Pd@4`u&ScyY_wvP;ge^TQS2jgR;pE*y3D zS))I9>Wr*J>lWvA^$-0)XU;gQ4zH8ynD|g<4ZW+gPc`eUU9W1uk)slLuuXz?@0B@q zD#4pxl8};exozcYxjoY@p~%96wjjH`zqbrVROwl_Un?E3N5%wkJ0u~fNfP6#ByqAv<_Fa4{Bx@$ z>Gw)qaMUIDp2^kZ)&foGSfKZ9U8D;e1NHvmP+e4;BoCzdsH-SI9t<1NRM(`W`JB-7 z&~GJuY*;e9j!8z(ad~Lyby?i@wq$mHq*>eRWXZvO`fzEfEUnw3*^h41WhHAg=bjRE zXQt~TjwQN0GD4SMjnQ2HG|4@Evp#lZuBe|trx^A*u*B`Ie4d>kYw>jxYl3XdPL}dwhddKIM=DZ(lV|-bsf_m5%JB)@9&kg_iX<2?3&Huj@7~St+tqWUa_zk=5Fod2kzDR+Q3L_;(YK#;asWMV#q|Qj8kxC<_Mrw@|+tySY zDYvbuH&Sq<;z-Gnnj=L=s*aT1vQtjI|Ced^HMO4?OZOwQoKXo;F_BrZF&ORi{S!K& B&MW`` literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Busingen b/lib/pytz/zoneinfo/Europe/Busingen new file mode 100644 index 0000000000000000000000000000000000000000..9c2b600b103dc4d1f49b5f087055e19d3e031129 GIT binary patch literal 1918 zcmciCUrd#C9LMqB0S*~U_N9i$0t7oE{yFj=LW4|?z^DVIoRk#AKL~0>K}Mh$G#PV^ zxvv|mxnj{|%sHYiP%rS$(sHK6+KM$S=cY5wnsZYI)>!@CPdBW(_IY-m*K>diE`IM% zaQ%+zbn~CfZGXat>mB>yeP)||T=eWT7q8WuOA`Sze74j?dw-|-ibY0fu_Dh!hYueWqy@W0Kx5C>eP} zlDXys$%^Zi?DQtdo@$kxm@dt^vRRh?*{I7-`Q_Q4$~3pHQuBtE>2n<`boocI`h2xl zSF|scl?86~SH;Mx#G9J$pOOOiH(KbuDus7`k)qHqrD)`Wym0-nyf|=F0>fvt_&}$W z^na=^)z!(%o%?k4y7zTW?KUlardET2LVd+kqHBE%b?ro|mPHpx*^iIwtK$n~{qg&{ zVKhR@d!nRb@ORnRdQU35Mr2dvsBGSQTemDfAzLekwJQFQY|9(a>KVthCQh~H)`z-% zszG;LXx5!qg8JH#4O)A?US8jyr*(a$^2YXfeX}D=>R0DVL$ycVN}D6Q@*l|CQAQe5 zqP6kvHED{R(5COclIA;Oy8DYh*)uYvEr-tP-hpm?x4Bna5438C%if`35BoMI{11Do zOl*QH%$P_qk4}GISsXO}{8Ao4{>tTY9>M=Vv*Grae7KtJhxe#SzS-+9d(FFhyAA7q z2=747vZFoE$eBjYH5X?aIp4?`ceLjmIqS%IN6tKQ?vb;PoPVSNqywY{qz9x4qzj}C zqz|MKq!UNm3epSG4AKqK4$=?O5YiFS64DdW6w(#a7Sb2e7}A-eZ4K$o(Kd&4hqQS&uqx^=YeBK;x_BON0xBRwNcBV8kHBYh){ zBb_6yBfUG?=8^6lZTm?7$Oa%gfNTM>2goKMyMSy1vJc2cAUlC<1+o{&W+1!aXtx8| z4`f4-9YMAP*%M?_kX=Ex1=$y5W00Lewg%Z7WOI<+akSfm?2n_}AY_M-EkgDP*(79_ zkZnTt$+$v8>>cKQ*tan=_#fCQyHIwg?AJ&!GpD}?>`wiAtNs})`;4&TwIq!h^A%?# PXC8ruiy)E-o{|s+EmRB>@HgieO#>5a zR;*ZSDw{G~j8f33Oj!|7W2=VN*_ve!)3eIyGFQL%Ay%zFT7UFkpSyG4c!y3mzc2FF zY%EQZzs;dP;bD#X;p=Fn-(D_%CE$&YkNr+9_|Z6Zt;IO~#WP0tV4cy^*Jhr1^F{OQ zv3=%ShilBN)y3vJWh=~g3)9VW40$lNL*YHGR>bjV zt;m)=)};O0tjRSc)|84>);()8t*Gp|*3|j2*1gV9Yg&ZA6+Qlz6`hf7#(1ZwnCsCh z_HwYAZd@^@4}WjWI5+5?**Rc1UpwiZb*RIL+uQ7p-+s_YD5-KM7PXs6TXzj5r=5`5 zD;p#wvPtG7ZIU^+DuCyShfLtXQq`<`%2`?0ITcaJnjRhO2@bQK~Q~RSG}xQV(4ZlQmsm zsfUMuk+rR!Qq=jm6z{$)>kjpbvF?IAQhQN7y0A^w7oAllllRGEX|1Z%@2J`kxkqid z^0X?uU7|Mjm8(scGFADp9940Cy=-oXS6hy_WTUosmzU&t)=5+TcSg@yS|eu z#}Be2-dF9ghNU|28&y5jB|EQvpq}bDEV~9ysG1i#Rc(8ds@wUz+TB>GJnr!J^!n?| zXPmE}uitq8(O1BPKVCliJH37W!s`_aG1$y=9;1)_ z1t0u*`Tu;EP5S%oyS(}PZ~RrSpsVjDtZgrra~- zrYUz#xoygQQ*NAc=agHg+&kswDR)n~eaih)44^o`KMM;e9#BlMt6iYjK=FZM1jPx8 z6%;QhW>DOq*g^4wVhF_%iX{|JD5lueu25{Tt9_vuLvhBgwua&j#T<$|6niNCPz<6t zM6rnC5yd2iOAMPBKH1eqF`TlitzvjZF^l0A#V(3p6vHTvQ7of)#xRZI8pAetmMQANGF_yTAT%Fe`~449=Y7xRkgA MXHH@QjZgOf4F;`^qyPW_ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Copenhagen b/lib/pytz/zoneinfo/Europe/Copenhagen new file mode 100644 index 0000000000000000000000000000000000000000..be87cf162e1a1a8470574ae2c62b92f61589b903 GIT binary patch literal 2160 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 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Gibraltar b/lib/pytz/zoneinfo/Europe/Gibraltar new file mode 100644 index 0000000000000000000000000000000000000000..a7105faaeb14ccf0a5d3588e74be709fab224275 GIT binary patch literal 3061 zcmdtjX;76_9LMo{L(&+>j!u9H>M=va5CNCm$P|$%AeWosuBoU=q+|pxQIlEIIL^O@ zB1gz$5;_LBg!`5oxFCuMDQ24H?wDncnxdWW)A*`p8sGGy=b4AknL9l1?*0Be!zL$3 zy8d?6x1aEEmD-1Mvv=*Eg>8z=!WwU#dobMOTfPy(}iUzx@hlVUA#0=uP~Wr z<%i*V)u)Hd>Z$SO+qBiDq<@%M6E{q+4OeDeWV%`Z_-|%IlO(g@mm_B5MVH=m^jE$4 z_z=BieU;w2>Ymy5#TxzH!T`NJBS-I;QKxq%W$Il6^3Cq9!*yx*?Yb5D zk$pKsWq)N0DSx|%99ZR&iZMy*pq!RNsiUMa%}-U{iByLt-_up&Ld=o4Q@XlED^uO4 zPO49yQZd(?|(mZ+DCm#g^lZIUp5o=PlSEH9^~ zs{ZrdmjOdQmVqe~WYDuI;)#!ySNs!YaA=4Oz8Nk_zWr3v_f2Hzjkapo+TUe(wT~KM z8mo~dSJbGi>uPj%g&H%uT8*83NnY)>PK_H`F5_D+P!pnxCAq;Gnb=%p;)NWURF@`` z_hiazCpFiIou*#@C`wWb2B|kDwUnuIJF95}daAT!fAwZW3pG9FwtB0vOQm=4 zmGo<;RYs$ml5uF4%Dj3^W~?kwGb=X9tOYw{c5$A(lbJ7B^Rwg;_ru;^?guw-di~S; z^}HYbZ}0o}|F~;^;I2l>T@PIiT&_UvZpbID#?IOIuXB8Y$JJ+$#}$ix?IAjb#~xg6 zx7$9>>u$H_-`i4V|J7;BE$1DV>%P5)RQl9ITH|PYgER-}4$>Z^KS+a+4k0ZUAm8j5rjX(`fE zN841St4Ldsz9Nlvw4HUdtwnn4Xq$_4*U`2Y>93=0Fw$Y9#Ym5lCL>)&+KluWX*AMl zq}52Tk!B;^M%vBSmVP_hh9ezET8{J_X*$w%r0q!Gk;WsPM_P~c9%(+(eWd+J|B(%F zv^#)o0kQ|kCLp_jYy+|n$VMPLfouh`7szHHyMb&6vLDEXINBXSw#3oy39>23t{~fj z>>RRn$lf8FhwL7*eaQYH8;I;6vW3VV zBAe)FcM;h}WFL`@M0OI{N@OpQ%|vz+*-m6Xkqt$56xmW_PmxV^w7ZIItE1glWMh$? xMYa~%TV!*Q-9@(7^{~^++&;Mf&*ST3N4b3js~nopF|2b~cxXaIICkjh^C#k8TKNC~ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Guernsey b/lib/pytz/zoneinfo/Europe/Guernsey new file mode 100644 index 0000000000000000000000000000000000000000..4527515ca3f249a44599be855b3e12800ebe480d GIT binary patch literal 3687 zcmeI!dvwor9LMqBn$hO=nHU-N(OjC={5BD438AqqmtXotj4)(rmX?v0Q>h%sdF!Yp zo})#oKr`C_xqiB{Lb&^cR0@Re!e`th9*Y2 z?s+_D-{FVH75l^M!1wGg(;6)@)Asu5>D%3A#+-HLtLZb$%#7N`e7IWAO1))f51OvO z9<$NRiC<~HX;Y%-HteV8HO|wSO~Q5NnPM~FwcE@usG%1WUDOLVB!qLWFw2r-&GM9GCcA5d$%*NuzjG_IA}ZCata{n3s^>F6=R@i(EQ)-zEM1 z{+IL*D|hQ3mzJ5IzR1yQrUmP@qcZf*qf7NVZ<=1;ZI1b+WpAC=dad5z-D@@!`kT!` zjbwAi%d%x>J=yy9Q?hNTOY-}9)pj{5JBIg_ohd%wmNFScE z)f`EA-W(k^QXlKy#QfnAb3Ce&IT5``p9~Jur>c9*sgjDisC0xrU3gBPInYC&UAQ1Fzp+dQT#VNh zm(@0vcDQxr$+t|ECDnA*5eJQ$8esyvtufWolzAv}wyEyDY-)s_k)W1&Qqy;v)T)&! zwT>;8hl?jj?RAqS_{cm}XJMAAyY>@RZ=$G>S;Lf0N>TO4#i>VPJu0++Q`I26g=*Nj zi!`cKOEqrtxHP`@goFiDm9T;!X;O4a9?LG4@J+kr@hOE8@okPY9r?YuKgkgH$p)^- zKEJ7`lx)>3I#)f>{d3j4?hMr;YLseGnyy*~Pmz`f`m0tYsnYs~_UftqUU_J<~H`edI~ebcX~gem!|UqXTEKlZe|+Gd3s&}XX* z44JA1MQ2IkgE=y|uE^k188W0aMTTxnlh+P-WLRczNy;0cUjH~+hR^Mx-WU=h$>W== z5#63vDTy`Jo00X@$PPEuTY)Z>+O&qGUOcKsRk<#scC1%v=YNyYOXjLE`ML7W)SqQ+ z)(m+!ZH}Z*N|y(G?)T~IbN9(NeedJ@<;vgtoBhiF)3d@qefVELyM6n1j=f;6D$1uE za@6W*pGv&rvhV!;eLjti^SIje@VGkRbM}SH$H&M1INwFjzu(TQcm5bxVDX)Ax$Ix! zcI`g?Taa7oXzwXZ-+9n`fK-z%x0cix%38WQBFC1+%kZvIDK>C3+ z#L;%d(Y6HXiKA@_(iKPB7NjqZwlPR&kk%l*L7Ibf2Wbz|AEZG@hmaN_JwlpHG@ z8|_2-hcpoBAksod+e4&@j<$C?SSkDWJ4f30@)JCo;f$R=sdm#G**&xUcLAD68N03c|>=I;~Ao~Q_D9BE6v|9z)E68R+ zb_=pyko|&e7-YvFTL#%P$fiMd4YF;JeS>TqWal{At%K|xN4t5D-Ggi&Wd9%=2-!i% u7DD!r>wf1D6X@>q|3PH`740Ajuv5uxCsTM_vxw#q?xvC9aglCb1^fkK<6HXx literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Helsinki b/lib/pytz/zoneinfo/Europe/Helsinki new file mode 100644 index 0000000000000000000000000000000000000000..29b3c817f4637e98623c5f76a6078f18157b5cfe GIT binary patch literal 1909 zcmdVaYfQ~?9LMp064tP9EC-b$$>pfi)vbh_aw(*PTvDjq5<<$YW15*Y``Q{a4AYt! z@gQts?#8q;n>E9ljk(UuhGEwDz5kxrJn+osoSpycteu{H-yhGs{}r#}<5_R-=V!FfgQME_#$FA%bXh`A zHA>i_Bhs%{C49?vi6||X{tK4KfGm$hrnqIGGg+cSqh(On-Vz;c8BK7*{w56 zi#2ydsd}<9b(UkA&UOyb*7Hxg2i_Fj9I`I1pR9L(lMO+ZRKx~r#fN87+5L-F-oGhT?;q)= zvkkJ@*Q{F(T-U9Qhjm+3y;kq3RzLp^_Pb-izkFMkqu3l2&yJQg)aBR3vO*)QZohxe z%Jx{3%*XA{<>BG?mY?6Rr|0jdyV3m8KHabUi+TMpuiT4+4kD+FoHKIL{D!keP8&II zTXW*bnIor;oI7&z$k`*OkDNb}0FnWc0+Iug1d;`k29gJoh^@&4Nd?ITNe0OVNe9UX zNeIaZNeRgbNeamdNejsfNzB${hNNa|azm0svP05C@-$Vw2{1##F5OA)NM`fNb^PVGEiv#Xi)pZk literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Isle_of_Man b/lib/pytz/zoneinfo/Europe/Isle_of_Man new file mode 100644 index 0000000000000000000000000000000000000000..4527515ca3f249a44599be855b3e12800ebe480d GIT binary patch literal 3687 zcmeI!dvwor9LMqBn$hO=nHU-N(OjC={5BD438AqqmtXotj4)(rmX?v0Q>h%sdF!Yp zo})#oKr`C_xqiB{Lb&^cR0@Re!e`th9*Y2 z?s+_D-{FVH75l^M!1wGg(;6)@)Asu5>D%3A#+-HLtLZb$%#7N`e7IWAO1))f51OvO z9<$NRiC<~HX;Y%-HteV8HO|wSO~Q5NnPM~FwcE@usG%1WUDOLVB!qLWFw2r-&GM9GCcA5d$%*NuzjG_IA}ZCata{n3s^>F6=R@i(EQ)-zEM1 z{+IL*D|hQ3mzJ5IzR1yQrUmP@qcZf*qf7NVZ<=1;ZI1b+WpAC=dad5z-D@@!`kT!` zjbwAi%d%x>J=yy9Q?hNTOY-}9)pj{5JBIg_ohd%wmNFScE z)f`EA-W(k^QXlKy#QfnAb3Ce&IT5``p9~Jur>c9*sgjDisC0xrU3gBPInYC&UAQ1Fzp+dQT#VNh zm(@0vcDQxr$+t|ECDnA*5eJQ$8esyvtufWolzAv}wyEyDY-)s_k)W1&Qqy;v)T)&! zwT>;8hl?jj?RAqS_{cm}XJMAAyY>@RZ=$G>S;Lf0N>TO4#i>VPJu0++Q`I26g=*Nj zi!`cKOEqrtxHP`@goFiDm9T;!X;O4a9?LG4@J+kr@hOE8@okPY9r?YuKgkgH$p)^- zKEJ7`lx)>3I#)f>{d3j4?hMr;YLseGnyy*~Pmz`f`m0tYsnYs~_UftqUU_J<~H`edI~ebcX~gem!|UqXTEKlZe|+Gd3s&}XX* z44JA1MQ2IkgE=y|uE^k188W0aMTTxnlh+P-WLRczNy;0cUjH~+hR^Mx-WU=h$>W== z5#63vDTy`Jo00X@$PPEuTY)Z>+O&qGUOcKsRk<#scC1%v=YNyYOXjLE`ML7W)SqQ+ z)(m+!ZH}Z*N|y(G?)T~IbN9(NeedJ@<;vgtoBhiF)3d@qefVELyM6n1j=f;6D$1uE za@6W*pGv&rvhV!;eLjti^SIje@VGkRbM}SH$H&M1INwFjzu(TQcm5bxVDX)Ax$Ix! zcI`g?Taa7oXzwXZ-+9n`fK-z%x0cix%38WQBFC1+%kZvIDK>C3+ z#L;%d(Y6HXiKA@_(iKPB7NjqZwlPR&kk%l*L7Ibf2Wbz|AEZG@hmaN_JwlpHG@ z8|_2-hcpoBAksod+e4&@j<$C?SSkDWJ4f30@)JCo;f$R=sdm#G**&xUcLAD68N03c|>=I;~Ao~Q_D9BE6v|9z)E68R+ zb_=pyko|&e7-YvFTL#%P$fiMd4YF;JeS>TqWal{At%K|xN4t5D-Ggi&Wd9%=2-!i% u7DD!r>wf1D6X@>q|3PH`740Ajuv5uxCsTM_vxw#q?xvC9aglCb1^fkK<6HXx literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Istanbul b/lib/pytz/zoneinfo/Europe/Istanbul new file mode 100644 index 0000000000000000000000000000000000000000..4cc29f00a5373bb77b947313241a0b22b5ac69e0 GIT binary patch literal 2747 zcmeIze@syPQX*$YEzPEuVmXIt?4*#AvTik7X46wiX3p$+pK7i8qgMa+y}P{5?$AHj?)&4J zIlnAL{N+OQC%n1c`pxs5Uj0Ko-L<7IG{UTFKV)y8TjJZXa*fe2*=xR(wbyQpi}$@8 zUv2M7NHBMOdeeU8`g-5)_mYj4>dR)!tt0mFiCyOVtzP5Ai6-;pg(Jp?i!S+2EeJMF zZ%;Sdvi*(r{GPs#2CuZw487tz8(eI6_-{5lE@s&uU)gD%J5^+yZ?nzLJsa(BuI@L# zEj?g&m3KG4k4>{h{Q;lff<3ms_jzByr048z^Y@#9quwyOS3GM4rSJ3x-B>1qBOB|3 z&yDegI6-!(Y&AnW1{ysZ(#>9tn~d9PqD;ANiP3xBmgd_FMvFW0Ry2nX==Ao9FKUhm zIPC2kG`2Z%eXS9BzP35~*l9baF5Kw1VU37gwM6t^SSs!+nkMef&lLkQ?hykM6GU8e zq!<($BH{y6z42Xrt%M7~*5I}utszG*Swr`pw-OsZu!hwhvWC~ZW{p@{ZzYv(vXYD6 zc2X8^c1C7yb4C?bIjJ#TXLQOeXY|cEPFhr@mDV}lNxw1E8uQK|=iYM}Rz_pCm3gqA zHFjN`l~pIKab-c)eKpa}{W%w{?2@0H@o^`toNS+yvn9os8+csh4fsUnUH(E&2sk1q zw6@5JpYM>9ns&+jlZREo#!fYP_lxR*iVA6LSgWQy_>?MKI9E+gJ0v~%d1_k3WHo*4 zHZ}cPl9~~oD`%YPtsd%1kTdsPRkPYdWKn&XEZ+OIe7O2MIlH!1nzP&GBdfnsbF$u& zCB-LIY3x=xH?v8V^>|awi&1Lcmz!1j&BbbdOO<-G)1wyboTU~XTO=QQGE-GFPL+?B z$0}=Gs$4WBLoP0hkV}&L$)!2h<+3m#myZZn%bm|;Wv^?h(mpDyE_bLEuQ$q-tq0Yr zt?#PUO)sb?sv1=FGu6s3!2jR8x&{9B@(<`9^iN*_J%azsONgih{q+)2<)WJqLz4V@ z2oc?1^b{g(oL?B9h(3S({P*9V1Zjt!A=_&zb zLh6JR3aJ!QDx_9Ov0QbvILhU!>xC2yshF!S8B#N(Xh_wNvLSUt3dd17q;yE_km4cL zL(1o>>xUE&sUT89jv8_lk)w(nW#p(MMX$x%vbmOkBK1WIj8qsYF;Zis$ViouG9z_H3XN16DK%1S zS6ytR+DN%wb-j^-yXuM~B}ZzG6dkELQg)>7Na2ynBc(@bj}#xNK2m;HU4LW&T=fbd zOMt8avIxj3Aj^QP1F{gvN+3&ttOc?d$Z8NP?Z30Wm%nUHlt77AG@WU0jeQ^lX+&r=nm c$81;%vzAyea(L?Sq!A+%3zC!Er%@q40}aG73;+NC literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Jersey b/lib/pytz/zoneinfo/Europe/Jersey new file mode 100644 index 0000000000000000000000000000000000000000..4527515ca3f249a44599be855b3e12800ebe480d GIT binary patch literal 3687 zcmeI!dvwor9LMqBn$hO=nHU-N(OjC={5BD438AqqmtXotj4)(rmX?v0Q>h%sdF!Yp zo})#oKr`C_xqiB{Lb&^cR0@Re!e`th9*Y2 z?s+_D-{FVH75l^M!1wGg(;6)@)Asu5>D%3A#+-HLtLZb$%#7N`e7IWAO1))f51OvO z9<$NRiC<~HX;Y%-HteV8HO|wSO~Q5NnPM~FwcE@usG%1WUDOLVB!qLWFw2r-&GM9GCcA5d$%*NuzjG_IA}ZCata{n3s^>F6=R@i(EQ)-zEM1 z{+IL*D|hQ3mzJ5IzR1yQrUmP@qcZf*qf7NVZ<=1;ZI1b+WpAC=dad5z-D@@!`kT!` zjbwAi%d%x>J=yy9Q?hNTOY-}9)pj{5JBIg_ohd%wmNFScE z)f`EA-W(k^QXlKy#QfnAb3Ce&IT5``p9~Jur>c9*sgjDisC0xrU3gBPInYC&UAQ1Fzp+dQT#VNh zm(@0vcDQxr$+t|ECDnA*5eJQ$8esyvtufWolzAv}wyEyDY-)s_k)W1&Qqy;v)T)&! zwT>;8hl?jj?RAqS_{cm}XJMAAyY>@RZ=$G>S;Lf0N>TO4#i>VPJu0++Q`I26g=*Nj zi!`cKOEqrtxHP`@goFiDm9T;!X;O4a9?LG4@J+kr@hOE8@okPY9r?YuKgkgH$p)^- zKEJ7`lx)>3I#)f>{d3j4?hMr;YLseGnyy*~Pmz`f`m0tYsnYs~_UftqUU_J<~H`edI~ebcX~gem!|UqXTEKlZe|+Gd3s&}XX* z44JA1MQ2IkgE=y|uE^k188W0aMTTxnlh+P-WLRczNy;0cUjH~+hR^Mx-WU=h$>W== z5#63vDTy`Jo00X@$PPEuTY)Z>+O&qGUOcKsRk<#scC1%v=YNyYOXjLE`ML7W)SqQ+ z)(m+!ZH}Z*N|y(G?)T~IbN9(NeedJ@<;vgtoBhiF)3d@qefVELyM6n1j=f;6D$1uE za@6W*pGv&rvhV!;eLjti^SIje@VGkRbM}SH$H&M1INwFjzu(TQcm5bxVDX)Ax$Ix! zcI`g?Taa7oXzwXZ-+9n`fK-z%x0cix%38WQBFC1+%kZvIDK>C3+ z#L;%d(Y6HXiKA@_(iKPB7NjqZwlPR&kk%l*L7Ibf2Wbz|AEZG@hmaN_JwlpHG@ z8|_2-hcpoBAksod+e4&@j<$C?SSkDWJ4f30@)JCo;f$R=sdm#G**&xUcLAD68N03c|>=I;~Ao~Q_D9BE6v|9z)E68R+ zb_=pyko|&e7-YvFTL#%P$fiMd4YF;JeS>TqWal{At%K|xN4t5D-Ggi&Wd9%=2-!i% u7DD!r>wf1D6X@>q|3PH`740Ajuv5uxCsTM_vxw#q?xvC9aglCb1^fkK<6HXx literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Kaliningrad b/lib/pytz/zoneinfo/Europe/Kaliningrad new file mode 100644 index 0000000000000000000000000000000000000000..bb8f70d94c063e618a717b7597578a7351361ff0 GIT binary patch literal 1518 zcmd^;OGs2<97q4-E1gE22pb=xndT!OW#c0&t*LP|btKDa(*s;sz?wh2%8=)1+uiTE$gzM&^+{#;X0bMwV}bkzJKrRZSlC}Z0{=idl9UGR?>Jcg1eOk)X&r5~t zuvC2Sl*+UoRr$I_Hhw#(HjS6d=5T|m8s4R<$BNXJo>H~7FG0E6lhn5ELfP*9tUPV; zQj;^Iyq=Fz8$G7#vL~hP!wad8yd(7!52WF3uQZPKi!XRvHJv*peqUinge4*}YVnGR zj)`3|f5llBuBEnrzv68o%PaN2A8M2$y!b7Boh!2q;5&$FuNC=P^ zAVEN)fP}$_gAoWL5=JPDSWN0*7}1#2;V|NX1jL945)vdPNKlZdAYnn`Vgv?>j1d|n lHb!ue=uGPH81b3Z0WuUfJ?)}IC_bpikY literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Kiev b/lib/pytz/zoneinfo/Europe/Kiev new file mode 100644 index 0000000000000000000000000000000000000000..b3e20a7e3946dd522e50db39a81c0e5f4f1bd619 GIT binary patch literal 2097 zcmeIyZ%kEn9LMo<1d6UkUt4s&0YZ|Bc7+RwqCsNU3p2QSl`D}-TbGbY|}X1tvDb-{PuU9&#F8k>FYv&j8}iI~6d?Z}+o zQ?bH5`y)l$&T1fjQj41|N=f^mlvWPO+?B6NS`8qdynO>N7v-nhPFTdw8-m4PKSUx_^}B-h{-OFUY!`SM>2k z@5mEP!y3;$AnPj!v?cwtZpcyH@WX4majac8o$t~oFGcmKqieMFqb>6Ei6SG+ zU`?{D46%ea_Fd!m@+#Xm{^|I$ox>aMe77zfwQ9{33Pr7OeXSKV21E7yu*AGH4;;4b zUhvmp+tGiY#CG%R?j(Ns^LxLWqv6cQabzOMOpvJ{b3rD9%*NGBhd;x7kO?6(ay3&z z=7dZNnH4fEWM0U`keMMyy6vqz?n%pXYrk^v+I zNDf?05|AvonlvDJKoWsu0!amu3nUpxHjs26`9KnaWCTeGk`q^x6eKIICM`%_ki;OF zK~jU{21yQ*9V9(Sevkwq8A4KosX}svBn!zFk}f1)NWzee zAt^(0h9nKinyX10k~deAI3#mO>X6(a$wRV-qz}oT^?(0tkBR1-5+dmjmll>428v4k L;o^Y%G}rS7d^Gc? literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Kirov b/lib/pytz/zoneinfo/Europe/Kirov new file mode 100644 index 0000000000000000000000000000000000000000..81186c4ad52e92829f1c548ad3ab6ef7db8ecfb5 GIT binary patch literal 1167 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 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/London b/lib/pytz/zoneinfo/Europe/London new file mode 100644 index 0000000000000000000000000000000000000000..4527515ca3f249a44599be855b3e12800ebe480d GIT binary patch literal 3687 zcmeI!dvwor9LMqBn$hO=nHU-N(OjC={5BD438AqqmtXotj4)(rmX?v0Q>h%sdF!Yp zo})#oKr`C_xqiB{Lb&^cR0@Re!e`th9*Y2 z?s+_D-{FVH75l^M!1wGg(;6)@)Asu5>D%3A#+-HLtLZb$%#7N`e7IWAO1))f51OvO z9<$NRiC<~HX;Y%-HteV8HO|wSO~Q5NnPM~FwcE@usG%1WUDOLVB!qLWFw2r-&GM9GCcA5d$%*NuzjG_IA}ZCata{n3s^>F6=R@i(EQ)-zEM1 z{+IL*D|hQ3mzJ5IzR1yQrUmP@qcZf*qf7NVZ<=1;ZI1b+WpAC=dad5z-D@@!`kT!` zjbwAi%d%x>J=yy9Q?hNTOY-}9)pj{5JBIg_ohd%wmNFScE z)f`EA-W(k^QXlKy#QfnAb3Ce&IT5``p9~Jur>c9*sgjDisC0xrU3gBPInYC&UAQ1Fzp+dQT#VNh zm(@0vcDQxr$+t|ECDnA*5eJQ$8esyvtufWolzAv}wyEyDY-)s_k)W1&Qqy;v)T)&! zwT>;8hl?jj?RAqS_{cm}XJMAAyY>@RZ=$G>S;Lf0N>TO4#i>VPJu0++Q`I26g=*Nj zi!`cKOEqrtxHP`@goFiDm9T;!X;O4a9?LG4@J+kr@hOE8@okPY9r?YuKgkgH$p)^- zKEJ7`lx)>3I#)f>{d3j4?hMr;YLseGnyy*~Pmz`f`m0tYsnYs~_UftqUU_J<~H`edI~ebcX~gem!|UqXTEKlZe|+Gd3s&}XX* z44JA1MQ2IkgE=y|uE^k188W0aMTTxnlh+P-WLRczNy;0cUjH~+hR^Mx-WU=h$>W== z5#63vDTy`Jo00X@$PPEuTY)Z>+O&qGUOcKsRk<#scC1%v=YNyYOXjLE`ML7W)SqQ+ z)(m+!ZH}Z*N|y(G?)T~IbN9(NeedJ@<;vgtoBhiF)3d@qefVELyM6n1j=f;6D$1uE za@6W*pGv&rvhV!;eLjti^SIje@VGkRbM}SH$H&M1INwFjzu(TQcm5bxVDX)Ax$Ix! zcI`g?Taa7oXzwXZ-+9n`fK-z%x0cix%38WQBFC1+%kZvIDK>C3+ z#L;%d(Y6HXiKA@_(iKPB7NjqZwlPR&kk%l*L7Ibf2Wbz|AEZG@hmaN_JwlpHG@ z8|_2-hcpoBAksod+e4&@j<$C?SSkDWJ4f30@)JCo;f$R=sdm#G**&xUcLAD68N03c|>=I;~Ao~Q_D9BE6v|9z)E68R+ zb_=pyko|&e7-YvFTL#%P$fiMd4YF;JeS>TqWal{At%K|xN4t5D-Ggi&Wd9%=2-!i% u7DD!r>wf1D6X@>q|3PH`740Ajuv5uxCsTM_vxw#q?xvC9aglCb1^fkK<6HXx literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Luxembourg b/lib/pytz/zoneinfo/Europe/Luxembourg new file mode 100644 index 0000000000000000000000000000000000000000..6fae86c53176e605311e09823fee55d07d157405 GIT binary patch literal 2974 zcmeIze{{`t9LMo{&0@>uZP;YPt+j?`zqb$#GmdP2-dKLi3|Vt6?QFt0?TG9+ZyhIT zv}^W_{f zBQw_ax5MAO!;52&d2t`O&|C^jx7HMQESgl@aNe`#TE)e+Wvg9p?@=u&T%{!!YhCV1 z8$9b4Tyd9126)!bogrlji#!`9Bx!kAf~O*Uvu$HnyJu6gw`9}xc-Q8u*|vAimb$ha z9cJ5ltin@S5o_D#9_rfuY8%_TOJ{oCb44$FKWB-nYFMOu$DlEeozddn6`Skc-SS8G z?mL&=d%i#I{@~0qNA=ks95r>99D8@4a_lQv>fZn64#$VZ!HxrYs~iWXFL4}7&v(=& zMY#`mAL}^M^MK=M`Wg4p^FHpne$kHOR|m_9O+i{;nk*l`9xo?nZI@4S0_D>oee~3d zK5}|+sQPtnborG{QU7J_rDb7?%A7=Pl@YE1&UV^5t-rL1`$gM^eyf44ztAAB6B=}5 zpSHWaO&>bt*7k>1XmHJ53E5I99oCdc$0C(Z^A?FCD@Pt4H$@&vbxLTj6nQivQNlvP z<*^p+B-}e$!*9lG=PO~_r6Ewe9&Vo4tD$ruLCluzD}OLyj})ZZkE*J z`!#KOkqp_gPKRb^%dnzXbol7kbVSxv9r;9-I#UPgGeJXiR74jYbt_ua+YXTQ&jR$> zo1JCM&YyH_gRhKpx03Ny-^ql68!~Zay-b?eAd}}`)8~?Q$&~TOHKWsNncBNjGn?UR19IIJJX3GmpdTVz1NSQUgle!is$n4?0BquXSUX1A| zb5eemms;5*H>$1XdM-(x|1HfsSu6S1&*|Ll~`lr$jR-y58g2c zSwYfbY4U<32FVPP8YDNCCOJrUkn|w=K@x;y2uTr=BP2;kmXI`Anmi$iLNbM<3dt3c zEF@bC{^=iBKbuUjAR%|F_L2>$w-!wG$VON5{+aUNi~vdB-u!|k#t*{d?N`*GLEDi z$vKjAB3D39?3nDd?fow`YlcVkqNLgGk{D1G6%>cAhUo>12PZDL?APP zOa(F*$Ydb1flLQ7AIOAQni)Z+#L~bA(J1GE2xbA@hVx6f#rDR3USPOcpX*$aEp|g-jSSW5|?QnmI!z4Vg7$ z+K_oeCJvc7Wa^N)LnaTIJ!JZj`9mfUnL%U=WX literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Madrid b/lib/pytz/zoneinfo/Europe/Madrid new file mode 100644 index 0000000000000000000000000000000000000000..af474328e580d731316faaf016037d4de332872c GIT binary patch literal 2619 zcmd_rdrXye9LMoE3Eju4n+bOdGs-cCy1I4Yth*&~s|Qpss%j@Y-x zY%WbqQfG=*ST4LQ@1~Natf(xOOUs%)O$oa&`n?}(Ys;-a`=jUCIj`rO4cORz?~ix# zyrM+cKd#Q^8(v&B=EZZ!Gv;mmHQU;7pw)Wyy`%QV>LGS@fKnpYylhe15+DmNn3NyJWRhH@2g7Xj`jwI6u!ml6KHKni_8(8@ARy zJ|NdR-co6wYWdQ4dhH(HnZu)f4X*_^f4DiuclL!(eIKpp?)%uc&N?^qC*S#u1IIf640n^A%s<`BLll`q1VsZ-m%gYtnq(*0kB(pDk{d(!N%Y!YJ+O z4c1<{Bjt{yU$u9{_u8k|7aHVuMuV;$(BO-^^v-kD+V}8_8nSP{gzl)7e(N_%ScOXX zlI7CBxI_j_oh1Wvyb>`yQ|^jRk;u>}xw}iSMEQF(s%5AS`X*8bH}=sXM?2{~bvHD+ z<~xn4`b=Y2p3=C|eHvf5Qxm2&Nn%NzB&FBO(D7>}x!(p!Ni36;wsJ`gsnXO7GbHV| zMLKN1NACMPUx#lg(DeFYdjF~n9q~%2K2Q{)87tG|!7P9E6o$yi$jh4PX_GAflbRjz zm1JMNB%}P^mr)HTRB>$71`bf(lnf%UmozfU6Q>%N(w7MT;digaesA>>jL8HuA zdPQfBcvogkJFSJ`>tuF%tri9B(K-E8=Y0FJ&TT8vc_$X@qZhn7f7=u-KDJOETb-^8 zwoH)6=Z34bDp?ke8!jb9LGnaGn3QJzB2V^k$)dR4y2$=o%DS~`+1Vqq_-d0rwR?*^ z-B7Pf)*aHNwHtKV;u;Ie|A`=97m{9`niNcDv25ao+fSZnyW}kMQd^|FA3M z20vo1c5^LD*;|SnY2;WVM;kfb$Pq`5Idaq;&2dMLJaX)jqmLYaBmqbUkQ5*}K$3uD z0Z9Xr2P6?lCLB#FkX#_iK(c|P1IY)H5F{f=N|2l&NkOvWXwt&}h`czO#2}eLQiJ3M zNe+@7Bt1xekOUzaLQ;g}2uTu>B_vHqo*Yf0kW3+|LUM&93&|FeE+k(_!jOz1DMNCG zBn`pYNOB!bc9HZV`9%_pWEe>? zl4B&vNS2W_BY8#=jbs{0wWG;3l59tlZ6w`DzLA6@8Ano%_g-)fN02@SgXvG%+0uHJWgoA&?g4IOas zkOc3mk&w!*GH|`hprtEha8a?`pFKw&NcTu+LW&HD7$af9L*>D4{bZJ zbXaqs4nOLzBWkZ}#IB!oWcfLbTzy!2; zc_i$TrX+XBWWO&oHS{}4z4C*k`FtvAjmPBC3p-^>&0a}w_(U@{te2_#w(DaH7s})7 zSLw7TU)SkHb2T%*NImJP`b5xFoe?oiXS7A>%)XOl=GVRSscYdf>%ecC)f^z%+j>e) z?Jx3l*;UCcZzDS;1m#7P?Gv)dDgVb6ZCyS;fNO571ybwK57N^{h7kj#-WK>@*vA>tn z9&K8B@`xuK)BoJ;UQlPRZnp$K`Un|9qQ2b-O+Pe!Y9mFFMzIo&RQ@ z+vc$joi0GG+0k4ya@ELXBiD^wICAC4r6bplTs(61$mJu~j}!o@08#>^21pT*Dj;P* z>VOo&(NqE{1yTz~Qw*dUj;0()J&=N+QxQH;5*||%peRUHkg_0kK?;LZ1}P0v8%I+d zq&i4>koq76LMnum2&oZLB&146nUFdmh2o)7NU4xoIhtZ2)k4aJ)C(yXQZb}tNX?L< zAyq@lhSUuy98x)?bV%)x;yIe?A>~8rhZGR0AW}l4hDZ^SDk5b>>WCB)sU%WLq?SlA z9ZfZnaypuNA_YY%ij)+oDNM^kU4;Etx^NXe0!BSlB5j+7m#J5qS0@<{2C z+9SnBs*jW(sXwv+j%EdrB|z2ySp;MikYzyD0a*xSC6J{+)&f}!WHpfGK-L3U5J$5j z$dWjkH9-~ySrueikaa;823Z+oX4n<_dM8-u%MPx)r;i#B^ FKLB)<^?LvS literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Mariehamn b/lib/pytz/zoneinfo/Europe/Mariehamn new file mode 100644 index 0000000000000000000000000000000000000000..29b3c817f4637e98623c5f76a6078f18157b5cfe GIT binary patch literal 1909 zcmdVaYfQ~?9LMp064tP9EC-b$$>pfi)vbh_aw(*PTvDjq5<<$YW15*Y``Q{a4AYt! z@gQts?#8q;n>E9ljk(UuhGEwDz5kxrJn+osoSpycteu{H-yhGs{}r#}<5_R-=V!FfgQME_#$FA%bXh`A zHA>i_Bhs%{C49?vi6||X{tK4KfGm$hrnqIGGg+cSqh(On-Vz;c8BK7*{w56 zi#2ydsd}<9b(UkA&UOyb*7Hxg2i_Fj9I`I1pR9L(lMO+ZRKx~r#fN87+5L-F-oGhT?;q)= zvkkJ@*Q{F(T-U9Qhjm+3y;kq3RzLp^_Pb-izkFMkqu3l2&yJQg)aBR3vO*)QZohxe z%Jx{3%*XA{<>BG?mY?6Rr|0jdyV3m8KHabUi+TMpuiT4+4kD+FoHKIL{D!keP8&II zTXW*bnIor;oI7&z$k`*OkDNb}0FnWc0+Iug1d;`k29gJoh^@&4Nd?ITNe0OVNe9UX zNeIaZNeRgbNeamdNejsfNzB${hNNa|azm0svP05C@-$Vw2{1##F5OA)NM`fNb^PVGEiv#Xi)pZk literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Minsk b/lib/pytz/zoneinfo/Europe/Minsk new file mode 100644 index 0000000000000000000000000000000000000000..e940363a352946292d00cf3b84ddb3582b40d3d8 GIT binary patch literal 1368 zcmds$Pi%`}9LIlMSE{z@!E~>!%%(P5$LybCqjYVvwN1v#L69Aq1#uX26nP@c;voJz zSrAz!7M6%V2eZV%L8hh-l1VvPluo$%~-J zneFm?o_D`wrYK`%L&1gVGnvwRm&~$jr%dnA5p&V8esl4mlv%!StGQ%H#H@&~HY;1J z&82?B^p&|x--Z6Js`n**)vrBj`7@`gdGJZq-kMSV;jF4Vn^r3ZCe+G{e?hnq^(KQ?-t4R&C>cwSKTs zZ8%?~g1yCR<3O!!3V%?cRH3x{o~v-^okSetDq8teqHm|A!+ujbrtV7Tt8)??8Ei)R%~!5SxvyV?E`LhD@!eEj*+H=S*FCaWQyKwN?N0&xc74a6OYKM;rbIXr^61o6qDb_(JZ#4U(l5XT^% zL0p6Q25}DJ9mG9|e-H;D9ztBSsC|Su3Gou*Cd5yOqYzIau0ni;I1BL>;x55og2M!l z2`&?Swy2#Zcx_R;P4FAyIKgv>>k!`|&O^M1xDWB4&;dvf2wi~mfzSy^FD&YA5c*+J bcZARrLRScVfpmt@8~GoLq=i literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Monaco b/lib/pytz/zoneinfo/Europe/Monaco new file mode 100644 index 0000000000000000000000000000000000000000..0b40f1ec9321e0b521a0d36a8e6ca9a9de08282f GIT binary patch literal 2953 zcmeIzYfM*l9LMqVS5d^<7fmohF$qya?vR?KhDatL>OUnF!9>&~JCZrH3|-FDocr3C zWoV)z-Vm+u3f^ycBdeKdxtcER;_TPVX*IL+KFjr>2hB%4>71Sa>zuPcJYl>)-cghD zW37K2&73z}9J`&1`;a-#$I{%)A*HEBru2M-y`pxhz4E}*=KY0#*sIFAo3h+>X7!xr zW=&*kvvyXRDNmSd){PCdE5Z`Y`tVY-A*+kMvB_++@kYG8=~|B2d_L1u9`A3qoLFzF z)`yy{Wkc+3Z~B-I7EUoA+MVr>3K!VbnT_o2gQCoisH^tQ*fe`rt2%qvz1{ZipElWh zKF>8ZUmP>Fbvw=8T^r24RXO(lcNduh?-_HjsK6YWlx+@YWtbyqs_72%gpht zO8fZ5re!AsN1KzEz2BVLGTEHIHdxMV4AlBH$@1~r@p5+I&*qcD0QoedpEj%MWi{U% zWLlJu*OqU!msayqRHi4Ye_pt@_O{bD=>z1UxZkvG=#LuE<|_?sct!(n?$dTxw(7&5 zm1+CKOEsu=uLM_CNrx4yq~l_hkk{r)r-DLxWXyQ!oaU9#J}L5OM52TRhf9~{?IheM zS;KF|Yu9hXwA;A=?S8b0K3084Bg((m9wiqwa^5M8nqI5Xd0R9l`+~$4R!dw`jl>UI zCJ7x@N@8r0B;GBSocd2et+#-8m#^DL$&|B zUh>pHA5G2+k^y1YG$r}24D>mnsi9v>>W!;1sNq2wR9`30Tv;oFt2Rm6>HV6%WU*va zuGS$_r%LAHH+1O8MLMitf)0PYK)q?H`fOl^j)>@{BW_1)R@;G+b-uMecdM(6+VP8y zKIbQ6%KRm}`nrrQz9~5+^^%)&PR7mtL7(rtQ^seX*1VAAG9jr-^L@AL#15(xzk5d~ z-7VC~bu;yaOJ1F_VYC(;n=FqfsMRV~_Jiw;y-hAGfS~&M~Dfr3C2-(iB&xD@a?A zz95Z3I)k(Z=?&5xq&rA^kp3VILOO)B26xq3G^A@t+mOB?jYB$zv<~SV(mbSlNc)ifAq_-2h_n#tp{vtGq>HXj z8<9RDjYK+$v=Zqh(oCeANIUs+(@zc>igXldDbiDYW20b~o1JwP@A*#%@9kbOWl0@(>i8I~Y~d@NNi$!QmX9*6QKy_y%$bs$3am&7cBw}f@ooZ9D*p79_M>Avs&~AbcZva>vaYfet*7(mgYk7 z*A=UuaJaVX!+oY-zx5ojjb1MQ(B5mGp6UHm+H$31&rILT)~S9GAJy*|bOvIN1OsJ- z!vk@LhX=|+gF`lV-JL*EV_eqIczoidGa+)KE@5_AF!9~e@uZ1L=Zdil9$H%VorSX5^8oXRq1$*hlwGW%_UKd0@X zKj+1)v_F0?*W8|zxq)Xg@8Scww&RvuccM?`H+9K^{UfUIShp%F>s9M_wyO5o+P^b=JR8c;RQuc>WsI#un>bILPzReH}KRX&fk(G(gI8Ws{3 zZVrzKH%FSayrL|NUePg&epvjAKkt`B36Wl^{}H^02~lvy6shk|a$nJHiV?z|FO~~Y z;xxqxQB`M35+Ws4Sbu+R&o`z0d|u-G^?APQ@%n_9Q?HMUxB6OrT>5y0+wIdwKU}y> zKdyzJ=Wl%f?rMkrsL|Eu`R{zw*Y3N)QKU1ZHKaE~-5k;#(jL;Ep>7cA&``IC^k}G? zM7l)UP5(kRlYp>7rF6=@df7HJph7ik#j7-<>l8EG2n8fhEp8)+Qr9BJK9_l`7= zbZ@BJNBT!Lfb0O-0sU$bOIwAv;30gzO2~ z6tXL1TgbkUjUhWjwubBt*&MPvL%ls@e};O4$PSS$B6~zOiR@DRkHfU+Ip-Bwz5^ln BkBa~R literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Nicosia b/lib/pytz/zoneinfo/Europe/Nicosia new file mode 100644 index 0000000000000000000000000000000000000000..3e663b215327d8899a4b3fbe4623f066630b97b2 GIT binary patch literal 2016 zcmdVaeN0t#9LMoP$d(r$zG#Sgc`(Toy1)g*#K4CL@PVtxxEZO$QQ?9`lqdwI;wG}@ znER@1&Q)7YVy!vU%^o&;nC6^rj?PxDwZ=MWtLB8YnX`1ve($sOSAV(nPv`8O*V)~@ z|NY*d==!a(0_$H_g87CI*Ix7CeIhUKzn=c-_>q%dVEC|`c(>l0@Wn-YVt=tS>A+9! zOP)0;>}G+wCCOq zIP-oUv9rFt>11E{+J559kQ3@ZZRhlza&o(m*m*k+JK_2^JHK|&D~KF&3rp3TpR?U9 zN^A8N6m-afu`XE{?9+wAo22+&yDs{?OrH9oMoR|jwDjyEUEH%wm%Np#OJkY3th-pA zu1L_b`k*{B=T|K+8&%vhwxd*-IR*mX5g`|7o>Cad);|zK;9TStGkY!*WH8f=$_7g?K;?{) zl^u>7XIZJUtnvRm`KBrowaUw@c|`eDT%7-iKEMJ0lmD6PzPUK)ymQ!*1CJbfGtz^ho%=CVpf9kP$$J02u>h5Rg$oh5;D|WFU}{ zK!ySt3uG{S&1fLQ;cLbN84zSdkRd_F1Q`@$RFGjo#swJ|WMq(`LB<9d9AtEm;qf)& zgA5QdLdXyyV}uM6GD^rWA>)J$6f#oCP$6T53>Gq4$Z+|Z@j?d7*Nhl4WXPBygNBS6 kGHl4W;s18v0%q@W3Ru2Sq%gNAH=I`(isXm=xA}p;0b|0?X8-^I literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Oslo b/lib/pytz/zoneinfo/Europe/Oslo new file mode 100644 index 0000000000000000000000000000000000000000..239c0174d361ff520c0c39431f2158837b82c6e0 GIT binary patch literal 2251 zcmdtie@xVM9LMqRfk?4(Z-2m9fRIS1cJdqi5tq^l%)GOd(?~^75wR}H%NV3anRBi& zeCt@|$f@O+HN*a(`~$6(+GyeBFXpUVTdb@!xaOz)E$t_w2gJS9I# zM29j*%24E-jtTFMjP=izak;-}eA-n_82h<8qfe`I;9VWxcSP?vzhCb>u~QR|9haoT z9g_UYKAF(0lCtS}NezbNuH~y`qAwt6g~c+-T_EX6F1h=*@#2c{s%tP$Cx4Z$Q+gA0 z>Zw@0r}L(|4}PoDT0hl{tsiUVhGUvl{ibGDT#}qnr{sFNByZ76lApX+3UV5xV7N(U zB(~~|%PVE(uk||XxL5A|tXvD*E7j9AOYhrOq_f+SbWTm07Hyp=_m{+|w>nYgreD!w z@354_e59pmUr1^H*D^2qeVG^TmIwM?lldKQh_B~8^|v(3g2M;&!MZwmsQCq5`0$Im zD7Z$;rUy0PE7ir$1-isNMVAa^X?c8!lwTa9j|@(hrSII(Wxa8-eE(>v=)5K?ng*n@ zH7r$?y|Qxice-l!QCVHlqtz*UWR0goYi@a4*Cwm3{bsk;4u^DIccVUfIiQanTBgAd z*URJEJzCdZCQsC+=#$&>W&OfJ3Dr2|sq6`|q4;NcdbB0=nekd5`BEB24Qa!flhW9K zNuPPET{echbkm*>baTgEeYWwSHnlWqlq1R!J>nnEsF;!e{b^Zo(qE=^^t&CWy=snIbYrWRl1%k!d3Hv^5ju=P*-bs>ocC z$s)5wrfX~Fi%b}qF*0Rj&d8*ZStHX%=8a4onK?3bWbVl1k=Y~DN9J#95`bg?Ndb}r zBne0skTf89KoWsu0!amu3nUpxHjs26`LHz!K{8@%Qi9|JNeYq`BrQl@ki;OFK~jU{ z21yQ*9V9(Sevkwq8L~AgLULqll7wUlNfVMMBvDAFkW?YLLXw4K3rQD}FC<||#%xW> zkeu0?q#;>D(uU*>NgR?nBy~vckmMoRL(+%j4@n@BK_rDp4sA^mkt`x_MKX(|7RfD=TqL{J|FFApCdJdT UiL%?Dn~|T9<@RT1VPi_@% literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Paris b/lib/pytz/zoneinfo/Europe/Paris new file mode 100644 index 0000000000000000000000000000000000000000..cf6e2e2ee95355039a90146a7f77d14224551b65 GIT binary patch literal 2971 zcmeIzeN0t#9LMo{6$BCSi-wq>n1rYy&ybp=hDa(P>P<;SFcCG$j${r^Lzgq3=Ds#( z8JehwPl#5i82J2zOUY_xS}x0_Jd&eK_zCWJP zQwrlqy(PdGVh?UVbkdG=*Re)iI`^b%8cKFV5CzrtF3=uz|9;-9T`<=str{wA}2 zp1;`;-P&xNonb1H=9^99!mY}PB(piP%xuZ&Vr})AYqnlbw6 zP4(t*v$K4twd+N1^ZMec<_)W}^=9!Rt0vpa+C3=7?1{N*?Tyc{YFjl}wRiVf`@Y>~ zz4bx9sr&GRsc+b8_SbGP2iE0T2VYrY4!vs3;gTYAWOA-Knv-RY_4T%n_lz|sdap7k zbE>S97n_$i6h&S>eQk)G*&3{k8&c(+mlEad&`&R)UHqMSx45mmm(@>O)b(=tZx1mo zD<){b()QA7L7K{pWDP8c)YhJM+9q>=+>`L528DmEZQFdT!A;L-@Qnl7?#fQR_x*Bh ze{_Y0)bE$js%q)5W}S3grV=)1zH}-omixv|kj@z%3Gb68_eUj5L};XR@oy)Q-l-aS zGf}&K9--aNwbky&ee{8v+Zt8zrS@2PQKJ{UtuZs|HMU@f#^qj+_~IH#NU4*=;j1L6 z!&*s>FOlRsrP4EGrS`luUV8mBQ+w}Em4`mc(LR-Vno`$WA70pB`<8`jzrt|szo3^q zGSFL73qoW-#5GMzy(0s?PicDiCz5{sstjs+SOzsV$lxm*Wk~fl$vAybGnX%utg7`o zblNn@UiN|x8?{7-7fsX=4;HB>BV8X0&eD-l-E`!wSj`C*F`O%IH1c>zH$X zGPXQWa%;YkaiupTZ)Kz8=be-BbHCCj`tFqpxu>-tY_&{Gsn$Z@-8!j*>ZC7T*2#B@ zbxOl5ee#k=r*0XeMJJ}qQ;Sk`TIC3NdUBXr3zKB}us%{;7%b1kb(9%tKghFzE}0n< zq%+NDQW9`WOU@pXS=TS<>|K@eTw|TiS$#z3R(|2nzk0b`P2%jICRZ<)D?r@7yyG|f=X+P6%N5$m9rTB5dp`5~bM7-TJ+5r~ z9F;bLi^rAfoX#8jvCHLl|9Uz%&R^o^j=% zMe>Uz7|Ae_VkE~%l94PUX-4vlBpS&yl4>N^NV1V^Bk6Xu^Nl1N$vBd7B36jAk4%80Jp;%TAaj6B0x}E8G$8YUOaw9$$W$P6flLN6 z8_0AZ^MOo=qdg5t6|7Np!;F-<;od5sTPMse8-XG7D`8ko+A6EEVo(VE+*5*~(W!yj&Xc zDO!6y57yod9ktKp7TUM^i#iX!)_&y=G_>@FhAlgz;n~MDBJ;jP7F0`ALXAX^-!3r$ zyCpWVNMajHB+jo~;~veF0pAOC;8~XpdYGZ{m06llGf)R_9Hv8d`s>h~ARSgZK!zuJ zsVm!0Mg+f9x2sVSy{>6e&|^t@_d=4Jo|ojht1{}@0U2F&L{e(cY3i0TNjthv$K>V7 z*s={eZqjBQpF2m>`{$}BB}pgvr0GOwZ=Lu#Tr)Z(O2)l*I{8yCnR4o*PHpg(X?xpB zX7yW{Uh+Y*%IjoCR)fr3{YGaEIW4m@Yc)HtLgpk?X->mKC0k0=(X2^R^KzKCSMz`QvaI%T=6qRg z#A^2I>EG4S(z1Sk^4pYDkL7Z6r+ds791h-G4u|LOr+J0>L;Ey;vA<(kKg=~f{{2Yg zbR#DmIpxSnM@~C(;%&{TM@~L+`uVpMU~4KsN|?UAqCo+3Xu|RO^ryANR>#L zNS#QbNTo=rNUcb*NVQ10NWDnGNX1CWwx(vJXj@Y?QZ`aIQaDmMQaVyQQan;UQa(~Y zvH-{mAWL9t)&N-qTeAwtG9c@KECjL=$WkC{fh-2H8pv`W>wzo?vLeWmAZvmwimh1{ zWLc1PK^6vC8DwdYwLumKSsi3~ko7?p2w5RyiI6oy7RlDE60%ITW}T3QLRJb{DrBvY k#X?pKSuX4Uo-S`QY5gMDG-qm5XiR9hGc_U{!=k)@0!L5Jf&c&j literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Prague b/lib/pytz/zoneinfo/Europe/Prague new file mode 100644 index 0000000000000000000000000000000000000000..4eabe5c81bd1eaf255fe09cfe72f10f61762fd5f GIT binary patch literal 2272 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 CpeMQj literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/San_Marino b/lib/pytz/zoneinfo/Europe/San_Marino new file mode 100644 index 0000000000000000000000000000000000000000..5cc30403c37c759bf04a23416dcfccd7fa919333 GIT binary patch literal 2678 zcmciDeN0t#9LMoG(}`2SjtV!hrlP)B07?hmWt&==A8Rh zPUn1nVwFm*VXc9-N}Ek2!mzNMcbQq)+}X?_DcbLStocy>>p463b-2KvzxT&CVRm63 z>pxeJ`G$vUw|RJPx7d7a=wI$^XgJ|)Jaoj_w6EIP{Ki##%jQOVYr!sO+oCFa`=tK% zj+}V=a8asLb9SU0eK%5Tw`a)LZ}pYBp!|Zm;$ikTB^{+cr`|a>I9b2Vu9t?GCi{4g zb?J#JS*hdgxy;|X_-#9=?M#1g=0GR-T(&*|&_B&xK zTbz52w%9VavmL(olpT?G#g3?5=d{lqF88MVr5)nVX~*_IYGlAsjl6I`JDq-C?>n|t zJAd(}Mpf^Z=sgt@vvG@bS)~%Y;8p2bR3i6JnkEnA_#|#nraYL?Pr5~Smxn?-Nq29C zcE8wHDN*w1ESXGfRj@s?Q*FO+@B$j{4ibzmFH`E)j%D*e5elD5Ur0E#_7b^aI04){#6YY)p~r+3K6iuWX^=2OjGy-G&y z*`|*d7t0f?mgwklD|JlK49)9bq`sUieKK;Cj!o#HW1Et6e1{P-{<{c$>SDZ1_~=ia z*bpL6l?@ZL9FXzZ}E7G;NJWrmV6|460RGBk+kdzcg$_vR|WNv1&ycljt zY3~kN>ii`0!kTnm-9eduzENNPpj=+5tgINqzgzJTumR4Mj)L)T7mQeX$H~_SJMupA4o%7O-GQHxSF0IO+mVXZd-VvFI=WE zKxdHFAiY7FgLDUJ57Hl`L9V7lNQ+!ekB}z0nl2%2Li&U>3h5NmDx_Dgrdde0kai*c zLK=p2%+<6E=^4^Aq-#jqkiH>}Lpq1F4(T1zJfwR_`;h)24MaMKw9wV`5NRUPMWl^L zACX2PokUuR^b%<%(oLkDNI#K=A{|9q>S}t5G}YB~6=^HdSER8>XOY$-y+xXfbQfta z(qE*(NQaRYBRxi%>}tAe zZFe<&M;ecG9%((&d!+eD_mTD^{YN$c*#Tq=kUc;)0oes)8(hskARB?~1hN&#ULc!+ z>;|$O$bKLjg6s&gCCHv2n}X~LvMsJ=UyzM)H9LcB4YD`L<{-O+Y!9+O$Oc&+R_ErM z>AC(zp!fFs#vgiH2i^Vq-xV@jWLC&*k(r7xvD)3~J;!X(t$TFyAer|NGg7^hnX81{ Rl*H7;q=ek$B5t6|7Np!;F-<;od5sTPMse8-XG7D`8ko+A6EEVo(VE+*5*~(W!yj&Xc zDO!6y57yod9ktKp7TUM^i#iX!)_&y=G_>@FhAlgz;n~MDBJ;jP7F0`ALXAX^-!3r$ zyCpWVNMajHB+jo~;~veF0pAOC;8~XpdYGZ{m06llGf)R_9Hv8d`s>h~ARSgZK!zuJ zsVm!0Mg+f9x2sVSy{>6e&|^t@_d=4Jo|ojht1{}@0U2F&L{e(cY3i0TNjthv$K>V7 z*s={eZqjBQpF2m>`{$}BB}pgvr0GOwZ=Lu#Tr)Z(O2)l*I{8yCnR4o*PHpg(X?xpB zX7yW{Uh+Y*%IjoCR)fr3{YGaEIW4m@Yc)HtLgpk?X->mKC0k0=(X2^R^KzKCSMz`QvaI%T=6qRg z#A^2I>EG4S(z1Sk^4pYDkL7Z6r+ds791h-G4u|LOr+J0>L;Ey;vA<(kKg=~f{{2Yg zbR#DmIpxSnM@~C(;%&{TM@~L+`uVpMU~4KsN|?UAqCo+3Xu|RO^ryANR>#L zNS#QbNTo=rNUcb*NVQ10NWDnGNX1CWwx(vJXj@Y?QZ`aIQaDmMQaVyQQan;UQa(~Y zvH-{mAWL9t)&N-qTeAwtG9c@KECjL=$WkC{fh-2H8pv`W>wzo?vLeWmAZvmwimh1{ zWLc1PK^6vC8DwdYwLumKSsi3~ko7?p2w5RyiI6oy7RlDE60%ITW}T3QLRJb{DrBvY k#X?pKSuX4Uo-S`QY5gMDG-qm5XiR9hGc_U{!=k)@0!L5Jf&c&j literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Simferopol b/lib/pytz/zoneinfo/Europe/Simferopol new file mode 100644 index 0000000000000000000000000000000000000000..f3b42b004dcc2af1d69949ff18f35fdfa4cf6088 GIT binary patch literal 1490 zcmd_p-Ahwp0LSrXZq{6;&qbw6m!{c^so6B0rZt;W%*~ctFGMd3%m~DbjOZdt%DM=R zr;=`Zvl1hbD5!2MdO;$|bQj%OBm@Z&aW12fdcH^WrVIao&f)BHcE&{U`-|*3((D%h z9Lf3#7e`QE+-J4xmwsn&=96A$^qs9MHZoZ+-``JBqj!9A>~gUjyXBc!yy{+TN$N*$ zihVqk@+bInrbKK`$I&vkJ_N>Q9AGl<=uAecMb+#E9C!37SmL10Oy){Nwpw!5& zSZ%Dxa~e764kPDgTWDohfwAVp_h|0WSZM9z(P&=pqfmbL!)X5NH?e|_bKZ5wIzoj_ zhrR3f^~Bsq`-FS=RII3SP!=~{l^a|)WQqHPESWkjJ!##_^XZ^0`+Z!MKljOvxrHK8h$JZ_Pb`aOUOirm zbLP{Tdy9)FyiR}DMlwcHMsh}yMzS{5X(M?fi6faKsUx|Y>g18^ zk@S)LkqMaU86Z$sw~triaWAnV|SjHt5j9%`bBN1rVfCY5)KL literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Skopje b/lib/pytz/zoneinfo/Europe/Skopje new file mode 100644 index 0000000000000000000000000000000000000000..79c25d70ef09aaeec21f0a10a029650967172a80 GIT binary patch literal 1957 zcmdVaYfQ~?9LMqhL0H4S7)2!{xg6a~D7WL3s9ZY8CAlQGB%zgCF3rrEeOY4-b6vxT z2jM}?T<4O6HN%WC*O}Qcw>5t6|7Np!;F-<;od5sTPMse8-XG7D`8ko+A6EEVo(VE+*5*~(W!yj&Xc zDO!6y57yod9ktKp7TUM^i#iX!)_&y=G_>@FhAlgz;n~MDBJ;jP7F0`ALXAX^-!3r$ zyCpWVNMajHB+jo~;~veF0pAOC;8~XpdYGZ{m06llGf)R_9Hv8d`s>h~ARSgZK!zuJ zsVm!0Mg+f9x2sVSy{>6e&|^t@_d=4Jo|ojht1{}@0U2F&L{e(cY3i0TNjthv$K>V7 z*s={eZqjBQpF2m>`{$}BB}pgvr0GOwZ=Lu#Tr)Z(O2)l*I{8yCnR4o*PHpg(X?xpB zX7yW{Uh+Y*%IjoCR)fr3{YGaEIW4m@Yc)HtLgpk?X->mKC0k0=(X2^R^KzKCSMz`QvaI%T=6qRg z#A^2I>EG4S(z1Sk^4pYDkL7Z6r+ds791h-G4u|LOr+J0>L;Ey;vA<(kKg=~f{{2Yg zbR#DmIpxSnM@~C(;%&{TM@~L+`uVpMU~4KsN|?UAqCo+3Xu|RO^ryANR>#L zNS#QbNTo=rNUcb*NVQ10NWDnGNX1CWwx(vJXj@Y?QZ`aIQaDmMQaVyQQan;UQa(~Y zvH-{mAWL9t)&N-qTeAwtG9c@KECjL=$WkC{fh-2H8pv`W>wzo?vLeWmAZvmwimh1{ zWLc1PK^6vC8DwdYwLumKSsi3~ko7?p2w5RyiI6oy7RlDE60%ITW}T3QLRJb{DrBvY k#X?pKSuX4Uo-S`QY5gMDG-qm5XiR9hGc_U{!=k)@0!L5Jf&c&j literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Sofia b/lib/pytz/zoneinfo/Europe/Sofia new file mode 100644 index 0000000000000000000000000000000000000000..763e074795b3c7143984c9b334bd6f2f5a50445d GIT binary patch literal 2130 zcmb`{ZA_JA9LMqNC@3Bo`=cQ$AQ%v6N1pL1h>U=dU`II+sl+i6v4{|rL28H8xz?Eb zN37<`P0O)rj%Xu$L9GW}vyBd?m20hBELygv)@IHg#_Ias?95H;o!7nld~VLYF<$Wd z`Zn%p&NH_hxBZ5j6Re-mTxG9eUB5y}Qq!)3nE%+b}qu*ReO0UpyiO8(xyaq+_x? zuS=Fs24rPIzplKnMOOXYsjELIm3zLe*P?+&Ego5|_a0uOC9fpvea)%5=Flp+zdTY) zn-b)K^ov?nIw|FmpJ_$v_fm1?C#jtNu~Y`n$%7NG%i6)Wq-yj-tv=E#>rS1}huYf2 z+j~&gKm5FIXx*kYD_Yf8RiU-<>$J|ZMC-2SXnkC{)PFrkAGww(8&ChPo6fss^YK_| z7``Nr2ChnDe^C65=ViY6e0rYroyF>2QB zzKls|vHyK0F~vj}6C);yXIFIid1;O-HvD$#`NlVu)jm^J<};85A-qWLS=NT*$zXks(7v#>QcA97e}scpS#ZVSpS)$YF>a#>ioi97f4um>kCG zXb0+OM~Vy;87neaWVFa|k?|q}Mn;Sb85uJ&Xk^sLu#s^i19!9|M~3cb$Bqmh89g$5 zWc)|~kO&|lKw^Ld0f_<<1|$whAdpBPp>VXZK!V|Dqk)72i3bu8BqB&ikeDDrL85|$ z1&Iq17$h=CXdG>9kl;Al=pf-i;)4VTi4YPZBt}S(kSHNxLgIu33W*dFDkN4&upDi) zkZ>XKLIQ?F3<(($GbCt8)R3?taYF)!L=FiZ5<4V#jy8Ho_#AEgkN_ePL_&zf5D6j@ zMI?;ImNCL!k<(^OT{EL@y239UXSr|pWwY=de~b;JO`{E@O=FB0n?@T*2|wE$#)aQb qJ>U4I$_DcPB6&+C?H6ua(`9*7)Ki_GRhX5No$sm6&2gRz-2Vcz8|p{^ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Stockholm b/lib/pytz/zoneinfo/Europe/Stockholm new file mode 100644 index 0000000000000000000000000000000000000000..43c7f2e23f3c37c24d39e78f8822b12c5a74b5eb GIT binary patch literal 1918 zcmciCUrd#C9LMqJ0H+uu_9f+y@y{Yc^2lEyHOTaMU@FId=aC3S=N7B1m}4U*)mZ)BkL#wo_Bnf=*WsLV!Nu?W zu`6~pucpr|)kQy~X+|(spZ)StT|6|ao>M>TlD=`xJot@fwO`ciy0e;7c|&qrha|6P zSe9=2K=PB0NkML>6wLL=vV=ZecDq`Z|Jk7{E_vnoo8?+KP^Cq~EA)j!t8`_5qQ2OW zs;dqzm(|5?_0}cGnzWzP=be*c_t#pIdPhp`{U~cgzmTrPrQhxn$eR*b)RDANA zZVN`p_7l-kIW#FddZwkSZ%lSp1*Ll5FIuzmQ>m>S)w+};QeQNv4dEBGF-f)Y?uXhm z*Q&cly7ZOXw(kCTn>K&7SN6PHq%8vhd9^7;Uptg9dp8$KYeSs0kYPXa#M@;Z0G=2tG4^RWN_%syhirm zkUo$`kWL&;D@ZR$Ge|c`J4ioBLr6zROGr;hQ%F}xTS#9>V@PL?rZuEDN7EeA9nv1s zAJQPwA<`n!Bhn<&CDJC+C(DJM-i}Z^$jC72&jP#5&jdYE)jr5H) zj&zQ+j`Z$mnn${KH0>k(BO8G10I~(h9w3{5>;ke4$UYz&f$Rjb706y7n}O_xquCB* zKadSUb_CfHWKWPyL3Rb%7Gz(LjX`z>*&1YTkj+7M$I)yLvOkVygOD9Uwg}lHWRs9x zLbeInC(9KQ8WQGy_%F+nN&X45Q)Z!}#Cot$kbGr}y`k{quu UV0-*|nfaO79)C_YX5~fv4Z~=$r2qf` literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Tallinn b/lib/pytz/zoneinfo/Europe/Tallinn new file mode 100644 index 0000000000000000000000000000000000000000..18f903fa6fd864237a679dd06c6a55eecce89d98 GIT binary patch literal 2187 zcmeIye@xVM9LMp`fk$-7`Js(Y;t-M)!~>3>T7$$8m~m$)C;5x$2cj0C0y!v%?}|Cs zn7u1D<|=;_qaQQoA8Kp%d(Kf_bpNo{sO4&9W6gcHa%LN=&-0ttKd$vpfA+b3zmG4+ zF`VP|jBMG}UZSo$+PuTX={Fb8i!F0IytyEH_+61BL!)v`E#EWNy*o5{;?#xD&W$!k zFE;4U-}K4Ut2O$I7s_<3=lq4V+}C5bEd09Kmps$x`+dPj3unEt^qHFKTca<=GTu9C z`;R|wXTJQjy=b`G&gyTovpY80w{5Gl7l&5ZIhA?#?SXWAi9cN}o$pb(?s6;l@=`1B z2cNZUI@!uUd(~Qga@Gor%~%B^QLAw1eXFQv!V0z>v5H&HtCFs9Ra*77D%)^Cm1jPu zDv~~EtSIT#6?21nWyXk9j<-tHnLFjK{i|iwOMao5JN*Cu|f*G^69d%k~7H%z>xL(vZ=?d;Tz!_Ub2`<|5z z9owa8MTbN}^|H~oPMQPDr1?rvHl@|+O<&$Dn=j|-EvJ8#tyX}FH6iWEr({Q_$c~>zW#?R%?3(P8N4|;3qi<}L zj&pnUV+X3FbG%9K-kBwP_Lu9u>nn9vyH9r)FVa1=SM}qmO7AO5lYRDgy4QO}dShpG z-=(kQi4)`c$*D8af9Mk#n0Q5=>Kl{6gM;FlmyqakC*6>kkeHB^{MYM7&$ZW0^RIg? zNb$P8DgVt&DPNiSbK^cwDSx&rSt+kpDe=2MTcs+MA5>}a@2;$NrN`fiKf5ydE}x8l zo_F$tuFOz4q9W$1scqsGQMKj@H#L}Rjd?b2D&=zVFEDVN$G>mp>&U+^XTW^kSmb$O0YB3XvruYeW`_ ztP)u!vQA{7$V!o=B5Oq!i>ww|F0x(@3+Aw5N3&#P&B&sWRU^wr){QJ2Svj(FWbMe} zIjo+;@;R)ZLjgEcz|oYz(bNDb0#XH}3`iZ2LLikuN`ce@DF#vvq#Q^+kb*dxiXbI% zG&Mnrf>Z@53sM)PFi2&P(jc`#ii1=KDGyQ~q(F|QLP&`mO^uKuAyq=kgwzQs6jCXq zR7kCmVjV^~!sT@)|q;^R0km@1jL+XbV5UC(i zLPt|Wq==5DibxreIwFNcDv6X5sU=cO^?x$?ulT2AdQ4;sN~mifTv}LO7%VCcgo}gD HQ<>*aTU8Lp literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Tirane b/lib/pytz/zoneinfo/Europe/Tirane new file mode 100644 index 0000000000000000000000000000000000000000..52c16a42bf1ab1b5db5c1e3d4b808ab37384ad18 GIT binary patch literal 2098 zcmdVaZ%kEn9LMoPdKbGPeZlZ*fLKJJUV+QML_yOVpb46CHT**y6A=^XK*XRlYC3F< zx$lEJ%ayB^W95uoBmWGYe`XCAGS|kOI@9S=agOd*PFu42z0aez)`On3b2=#2)XQa2}g|#7AI{WpbBF%9eLzN<*_ev1Xk-Sss$q zq7r$^Um$5o>GE{UL`nAqHT`a$X8e?z#v~M5Q>Am;Wzjs(?gfD95_U|>T<)~)Y zeyM@#3zE~^E4jselDBM^Y zI;V4<&iyb+pRG&PdD{zReyK-;wTbdv+D$D9j!LQLjFzQdk+P8+vT)2vSvc4)&tLyc z7WM3t@`2-8v9n7S@BdVnG&af$UE6f&i|^^OhV@$cOoN8X%XGPKv99n>)fM-$wJM=h zs?Nvj%DWk|>fo=sddMqlK8cg+-aGPA$1hS79u&J~NY-w>tuN0#BU8Ey)6ybouJg%j zfyvTR@|(OKXGv>Tg0@DkNn7kaZ98{b+D9(v8wa}O&A~q1vip>7?b)MmweQuAogHdL zJ@ilKn6dxaX<6|fm=Dy76>F?zB~6Kn{_AsjMaT-4a8-tQD=Nyph5p6of1m%E;}3H% z17r%w9FR%4npyBJ({MHOKqlg9W`axwnF}%*WH!ijkoh1JLS}?a37HczDP&g2v|P=+ zkcqjPnITg{=7vlTnH@4cWPZp5kr^UWMCOQ05}743O=O;~W}?VUk*OkcMJ9{P7MU(G zUu43_jFBlLb4DhO%o>?CGH+Kiab)JMX6ne?k;x;oN2ZU=A4vd`0VD-T4v-`uSwPZ& zB_vHqo{&T#nL<*92 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Tiraspol b/lib/pytz/zoneinfo/Europe/Tiraspol new file mode 100644 index 0000000000000000000000000000000000000000..2109b52a734c1eadbc8ffa4fbdd5e6a53fbbb60c GIT binary patch literal 2445 zcmeIzeN0t#9LMo5@hBo)*NA5|OhCQzD2gRY;>8ruiy)E-o{|s+EmRB>@HgieO#>5a zR;*ZSDw{G~j8f33Oj!|7W2=VN*_ve!)3eIyGFQL%Ay%zFT7UFkpSyG4c!y3mzc2FF zY%EQZzs;dP;bD#X;p=Fn-(D_%CE$&YkNr+9_|Z6Zt;IO~#WP0tV4cy^*Jhr1^F{OQ zv3=%ShilBN)y3vJWh=~g3)9VW40$lNL*YHGR>bjV zt;m)=)};O0tjRSc)|84>);()8t*Gp|*3|j2*1gV9Yg&ZA6+Qlz6`hf7#(1ZwnCsCh z_HwYAZd@^@4}WjWI5+5?**Rc1UpwiZb*RIL+uQ7p-+s_YD5-KM7PXs6TXzj5r=5`5 zD;p#wvPtG7ZIU^+DuCyShfLtXQq`<`%2`?0ITcaJnjRhO2@bQK~Q~RSG}xQV(4ZlQmsm zsfUMuk+rR!Qq=jm6z{$)>kjpbvF?IAQhQN7y0A^w7oAllllRGEX|1Z%@2J`kxkqid z^0X?uU7|Mjm8(scGFADp9940Cy=-oXS6hy_WTUosmzU&t)=5+TcSg@yS|eu z#}Be2-dF9ghNU|28&y5jB|EQvpq}bDEV~9ysG1i#Rc(8ds@wUz+TB>GJnr!J^!n?| zXPmE}uitq8(O1BPKVCliJH37W!s`_aG1$y=9;1)_ z1t0u*`Tu;EP5S%oyS(}PZ~RrSpsVjDtZgrra~- zrYUz#xoygQQ*NAc=agHg+&kswDR)n~eaih)44^o`KMM;e9#BlMt6iYjK=FZM1jPx8 z6%;QhW>DOq*g^4wVhF_%iX{|JD5lueu25{Tt9_vuLvhBgwua&j#T<$|6niNCPz<6t zM6rnC5yd2iOAMPBKH1eqF`TlitzvjZF^l0A#V(3p6vHTvQ7of)#xRZI8pAetmMQANGF_yTAT%Fe`~449=Y7xRkgA MXHH@QjZgOf4F;`^qyPW_ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Ulyanovsk b/lib/pytz/zoneinfo/Europe/Ulyanovsk new file mode 100644 index 0000000000000000000000000000000000000000..82247f07e0ced3e54fa0691ff0b1ea1275d13ffe GIT binary patch literal 1281 zcmdVZPe{{I0KoCL+}zqabg;H`Gt1`OboFa)vTE9D(_u}J7#^%Z`XdBEkMLj+ILJIz zPy`W06pb$ZJ=7_y5nUqn)Xjn)M28CEU7}EGz3*@H)TNHSAMf}5@pxnG_dY9(92<*? zKgKG(!enIi4KFs=4JIIr@vx8>l46RMC8j1GTqkdu{4 zMcC?AR4==ucGWxUovxMo_BWT^X}1dz9o4T@L=2&y`-f~UA(Cm{clEx!V$&~pa#sI|u#e!As zfntKgJOi@gkpu_g<^){hGK`}hhm80h+>K2$*ML*aYeCZRr{hCqd22jqj;m3 zqqw8kqxhp3q&TElq{9q#U;2R7zL9C}mlPWqxtD%%AF&^2~lMKes^^ z{??_7-Ve&X6AfB1*rb)Ci}b#|OLXzeKCNoW($%+$4^?|lFiS#|ID<6DbSG8```UR~T zt*g=1-W9sWKS$SG31~xFwKRNri#~LDwyb^kCtY{OBkKoJrE%nvJly-EH1)?N)^tWT z?7FCrEPhWOZ5-F;oI|p)a!6Z}-_cE3s+%snq?@NYbjw(eZao*($KF_{t)H~ZB?D=Va<#Vegf*|IJ4i#(NTNmpT-b~)clcghv*PMngS$+NnBcu;o4 zM|J0+k9F73VST#inD*}LRr|VW=A3TNNV66Xf2)NA*vZ+y8{8gJ~3Yj@t%g`-w5#8n@)!u89{RcnRJix4j? z%eMc#xet6VhiymyeG@y(AG(|P+5I2O`rRB`Cx_FKjUYQgwu0;h*$lE9SF;^tKYSb; zLUx2~$<^!$*%Y!XWLwC-kc}ZbL$-$O4cQ#BJ7jyv{*VnKJ9IT$MD~bm64@oPO=O?Q zMv2 zn!X^7K{|u92I&pb9Hcu)dyxJh4MIAEvK}Mh$G#PV^ zxvv|mxnj{|%sHYiP%rS$(sHK6+KM$S=cY5wnsZYI)>!@CPdBW(_IY-m*K>diE`IM% zaQ%+zbn~CfZGXat>mB>yeP)||T=eWT7q8WuOA`Sze74j?dw-|-ibY0fu_Dh!hYueWqy@W0Kx5C>eP} zlDXys$%^Zi?DQtdo@$kxm@dt^vRRh?*{I7-`Q_Q4$~3pHQuBtE>2n<`boocI`h2xl zSF|scl?86~SH;Mx#G9J$pOOOiH(KbuDus7`k)qHqrD)`Wym0-nyf|=F0>fvt_&}$W z^na=^)z!(%o%?k4y7zTW?KUlardET2LVd+kqHBE%b?ro|mPHpx*^iIwtK$n~{qg&{ zVKhR@d!nRb@ORnRdQU35Mr2dvsBGSQTemDfAzLekwJQFQY|9(a>KVthCQh~H)`z-% zszG;LXx5!qg8JH#4O)A?US8jyr*(a$^2YXfeX}D=>R0DVL$ycVN}D6Q@*l|CQAQe5 zqP6kvHED{R(5COclIA;Oy8DYh*)uYvEr-tP-hpm?x4Bna5438C%if`35BoMI{11Do zOl*QH%$P_qk4}GISsXO}{8Ao4{>tTY9>M=Vv*Grae7KtJhxe#SzS-+9d(FFhyAA7q z2=747vZFoE$eBjYH5X?aIp4?`ceLjmIqS%IN6tKQ?vb;PoPVSNqywY{qz9x4qzj}C zqz|MKq!UNm3epSG4AKqK4$=?O5YiFS64DdW6w(#a7Sb2e7}A-eZ4K$o(Kd&4hqQS&uqx^=YeBK;x_BON0xBRwNcBV8kHBYh){ zBb_6yBfUG?=8^6lZTm?7$Oa%gfNTM>2goKMyMSy1vJc2cAUlC<1+o{&W+1!aXtx8| z4`f4-9YMAP*%M?_kX=Ex1=$y5W00Lewg%Z7WOI<+akSfm?2n_}AY_M-EkgDP*(79_ zkZnTt$+$v8>>cKQ*tan=_#fCQyHIwg?AJ&!GpD}?>`wiAtNs})`;4&TwIq!h^A%?# PXCG(}`2SjtV!hrlP)B07?hmWt&==A8Rh zPUn1nVwFm*VXc9-N}Ek2!mzNMcbQq)+}X?_DcbLStocy>>p463b-2KvzxT&CVRm63 z>pxeJ`G$vUw|RJPx7d7a=wI$^XgJ|)Jaoj_w6EIP{Ki##%jQOVYr!sO+oCFa`=tK% zj+}V=a8asLb9SU0eK%5Tw`a)LZ}pYBp!|Zm;$ikTB^{+cr`|a>I9b2Vu9t?GCi{4g zb?J#JS*hdgxy;|X_-#9=?M#1g=0GR-T(&*|&_B&xK zTbz52w%9VavmL(olpT?G#g3?5=d{lqF88MVr5)nVX~*_IYGlAsjl6I`JDq-C?>n|t zJAd(}Mpf^Z=sgt@vvG@bS)~%Y;8p2bR3i6JnkEnA_#|#nraYL?Pr5~Smxn?-Nq29C zcE8wHDN*w1ESXGfRj@s?Q*FO+@B$j{4ibzmFH`E)j%D*e5elD5Ur0E#_7b^aI04){#6YY)p~r+3K6iuWX^=2OjGy-G&y z*`|*d7t0f?mgwklD|JlK49)9bq`sUieKK;Cj!o#HW1Et6e1{P-{<{c$>SDZ1_~=ia z*bpL6l?@ZL9FXzZ}E7G;NJWrmV6|460RGBk+kdzcg$_vR|WNv1&ycljt zY3~kN>ii`0!kTnm-9eduzENNPpj=+5tgINqzgzJTumR4Mj)L)T7mQeX$H~_SJMupA4o%7O-GQHxSF0IO+mVXZd-VvFI=WE zKxdHFAiY7FgLDUJ57Hl`L9V7lNQ+!ekB}z0nl2%2Li&U>3h5NmDx_Dgrdde0kai*c zLK=p2%+<6E=^4^Aq-#jqkiH>}Lpq1F4(T1zJfwR_`;h)24MaMKw9wV`5NRUPMWl^L zACX2PokUuR^b%<%(oLkDNI#K=A{|9q>S}t5G}YB~6=^HdSER8>XOY$-y+xXfbQfta z(qE*(NQaRYBRxi%>}tAe zZFe<&M;ecG9%((&d!+eD_mTD^{YN$c*#Tq=kUc;)0oes)8(hskARB?~1hN&#ULc!+ z>;|$O$bKLjg6s&gCCHv2n}X~LvMsJ=UyzM)H9LcB4YD`L<{-O+Y!9+O$Oc&+R_ErM z>AC(zp!fFs#vgiH2i^Vq-xV@jWLC&*k(r7xvD)3~J;!X(t$TFyAer|NGg7^hnX81{ Rl*H7;q=ek$Boi zb4=$De;{Mk?CKA!HT*HN8Z9K$E<4I$yo{JpOPwt;{O*N>YJa?sMiza(s&1KY6;OM7T8NdXCQiE?HB9F*@ht zN&3LRO?CGDsB^n6Xj=Pcn!f3%X4Ji{nN?$wPdzDsfwdL%EaRq`hMGB2)6 z=UrMO`G2(N{9`UzaIr!Q`m42YaK1jYW05ZGj@O6llXOvgzC2PCp{}|(S)6=D-L45K ziuhEElfIGStKUmW*hwiF8ImQJ56RNNTT(iFLOq=wvh46deYCMr9_x5n%N~DKmp81{ z@&_B#TUx9u9Lsd2GgVjK$k2-DBB?lkmp*ZQwyb*ZH?0gt$?5}BrE1_8dD4GPs=G#{ zraCBVw*90}Eqq^UtA@2MagVGm3~2rBM|53+>bf6x>-q_wZWwCQr!RT+nKvr6;ge>0 z_LV|y>@Sy%>l3wUN3JxN6^O6iAgW`W2GktHH)L>7sx5?Lm)PJRvxMOKO|6~5qWortCRLs_t z45=AXG^A=s*^s&+g+nTbln$vKQaq%3NcoWZAq7M#XlqJ{)DS5mQbnYUNF9+vB9%l+ ziPRD)CQ?nLoJc*9f+7{QH6=xAYHNy$R23;JQdgv~NM(`IBDJ;tf4Pk^1)iHpi=CeA QwA{1|rzbN5)3c-g0&7TFt^fc4 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Vilnius b/lib/pytz/zoneinfo/Europe/Vilnius new file mode 100644 index 0000000000000000000000000000000000000000..da380af0ed2f4f6eb399ab4a3bf3a0d9b6a7ebc0 GIT binary patch literal 2199 zcmeIye@xVM9LMp`1*g|V=Nk+U0z@JK>4f8#+9rw}Kc;}9ocNQZ!V`-~(H!_AzAJOC zG54w1%B9O+qjJRj!|ac2S#yo*!uyA{My*yW8*A>{%9(AfKF=>utNv(h{n_XCy~lUo zJK!H)&+x|Wkz)0?lVqN7arT;v`y9)>9b1*zaPsLDFP{1#XrGRBwG0hh+413q{8;pA zt$h5NUk{%O$(83yB^E6IGCB8^*sPS#D*T?&2LCTJE~Sk5VyUB{iaVpv$I>pIu+s;g zwKI-AY0vK6WoPbhwdb_2wX-%?+jrG1w6hoI*>?w0?YZfxDks6Ka@}QC?)4li?;F20 zZ^UEeU%qMGbAHSUoEf#|_eHIOgKt}fy9cdc>&sSA^GB+uF{;(0@F%g}n;cQ5F+@lL&cs9Qh$d00R4>L%U({!V%H zaJla2Zco-woXryDZ(;KGl2A z^~=8DxAgv_@96`B$MqB4XLQez9__j%E@JW24 z{1-2!{1?qXnVNY{#Va+dO?i~^iAqo^eU1{P@`LJ*Kc2W!c+UHx3RlL|r&IT?tf`-x z_|Bhyk1MOLKCIT6tJYkhs<5guSAAoxxo_mA(mXIX6UXIJ$~Ac=AN~G`%N73T4ec{u zcQ*9%HVzLAY1J4d#T>>b%W zvU?8O=dgbc4RACaKw5zGz|k}T=>pOQN7DzS5lAPHRv^7Vnt^l!X$R5|q#=%`BS=de zO;3=fAYDP)g7gJx4AL2-HArue<{;fc+Jp25X^^Ao5Yi$?(<7uwNSBZ{A$>v`g>(vO z71ArDSxC2#b|L*j8isTXX_=$x8PYVQYe?IWz9Ef6I)}6l=^fHMqlZSC@TmSmIUgHg3ev3 F_cv^;2-^Sv literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Volgograd b/lib/pytz/zoneinfo/Europe/Volgograd new file mode 100644 index 0000000000000000000000000000000000000000..d3aba3af5dc67df49bd9e338ed2c9a18800e21cf GIT binary patch literal 1309 zcmdthPe_wt9Ki8s>HM=rr^=a|Wj5DLYt58Zv!zc*((@DV3c066Z%$2Gi8Y}crM14gPHm z>!vT18m6u~{s-rsz^zfI@#1l3{kcJB!^w=(bSUO*w8Bnve6!lrRv@aXJr|ep`$^gTtWoYM1m)hFLMBG4WzV=@_4a*~ z$)i72D)>hBB^{M^Ka`o~mn!r1wd$`Zs{YvtweLeg4LrJ}tm%6)d-;^It-!Ewt*CHU zE?rgC=BlaXs`7aM=340$B3#serf7|bN;7MPh$V!c>6}ad*ZO&Nd6swB*YBHsSG{=- zn0NHl`vEI!3p?Lqi@dGJ;C?G_rY*Ahl)eY}J-uAZYw1&Y+W(Njx8*PW(u*9BB#FC;M}GbA;m&J9Tp$qq>m z$qz{o$q-2q$q`8s$r4Eu$rDKw$<(M*MRGOjWRYx-$Vw2{1# m#F5OA)REkcI(Z~}qfQ^mA2|ZZF+h$2{-?*mqt8owhvzqkaxNbL literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Warsaw b/lib/pytz/zoneinfo/Europe/Warsaw new file mode 100644 index 0000000000000000000000000000000000000000..5cbba412eef406b4baf89100f2c4a8e1f5d12798 GIT binary patch literal 2705 zcmeIzdrXye9LMn=AgP4(#T$xTG$NG{K@=4sGXiIVc{$$jhK8s`hL;FU;#o4+jJavuo*5 zQ&YGh>qP!na`N(I`D{;+HoTD{pO=o5MrTh}WAR~gYHMlU>CN?7XO`T~J3Bc-n-=bu zb3^Ood~~pU(Y;)ny^m{iYk{^l{;;{%T3$icgzoatIgHzTg{JW zGfn&Y=gqacB=b||T+>k&X09iWGdBtoou7k4O^>L~ydKpvoq$*T&3(nA9a%fX3C!;A z^z`^Sy)qI^@Ax*SPsBy1Z?6U?$mf_7)N#P+cWIZ?|4gY9{J}&92$iAH>bjPbE ztmGvVzG00Sn44_|&7WxoT{zc%f4WB^l2YY?=md!j87vR__mjcCDLVMZNFDNBqz-NB zt5F|y)rabCX>@g~4lBE$F~y(i@U=%YHhaIuEohbztLr2_xn4$2FPBlFRgy5GKoUBO zWXymv9dmK9jQurV6OX3IxG(2uQq3Ywu20m5H%-v-l_B~_PJ~V<9xIQg`D#k`0C_C( zvZkhVN}BH{Ix*sFnRxYkndEa^CN-Rp$1lAplWX@%`pILOv86<&?AxVJtXwHmOE&7X z*_(BG?oypGI#)gE6Ln_L6rB}4RA=3c)j56AWX}1XI`_s9$vkvj=Qa7s{GEZapsr08 z7Iny?vIfao)Fg`wujrET@5+-4PHJ{|g)B|3)tqhzby=wDvX*VSymPg#II&Kjy6DlT zchA$@k5|bvFDL8Dni=x!@^H=DG)h)YOOn+&L9!+;OxC9UBF_aH$sgWF^V`3bf`FS^ z(DF)R6zl`a1z&=V`yBHHP(5ss<0b+Xm^*$=rE0AwY-#@Q^{4zbmV`kfTO6m+Q z9+S#Vs=eWO*<&y6{hiOAe}BsN*k8I&`K{mociWy>hZ?6MPd)PFyV|E8DF9Ldqy$I} zkRl*eK+1sB0VxDh38WNAEs$ck+G-%>Kt)D}$5< zsSQ#bS6dyVJV5N zA(2WVr9^6p6cec?Qck3vNI{W`A|*v?iWC*8s;ez4Qdd`7SfsK@X_49@#YL)%lozQl zQedRQNQsdeBSl84jFcIvv#TvMQfXIPYNXakv5{&c5t6|7Np!;F-<;od5sTPMse8-XG7D`8ko+A6EEVo(VE+*5*~(W!yj&Xc zDO!6y57yod9ktKp7TUM^i#iX!)_&y=G_>@FhAlgz;n~MDBJ;jP7F0`ALXAX^-!3r$ zyCpWVNMajHB+jo~;~veF0pAOC;8~XpdYGZ{m06llGf)R_9Hv8d`s>h~ARSgZK!zuJ zsVm!0Mg+f9x2sVSy{>6e&|^t@_d=4Jo|ojht1{}@0U2F&L{e(cY3i0TNjthv$K>V7 z*s={eZqjBQpF2m>`{$}BB}pgvr0GOwZ=Lu#Tr)Z(O2)l*I{8yCnR4o*PHpg(X?xpB zX7yW{Uh+Y*%IjoCR)fr3{YGaEIW4m@Yc)HtLgpk?X->mKC0k0=(X2^R^KzKCSMz`QvaI%T=6qRg z#A^2I>EG4S(z1Sk^4pYDkL7Z6r+ds791h-G4u|LOr+J0>L;Ey;vA<(kKg=~f{{2Yg zbR#DmIpxSnM@~C(;%&{TM@~L+`uVpMU~4KsN|?UAqCo+3Xu|RO^ryANR>#L zNS#QbNTo=rNUcb*NVQ10NWDnGNX1CWwx(vJXj@Y?QZ`aIQaDmMQaVyQQan;UQa(~Y zvH-{mAWL9t)&N-qTeAwtG9c@KECjL=$WkC{fh-2H8pv`W>wzo?vLeWmAZvmwimh1{ zWLc1PK^6vC8DwdYwLumKSsi3~ko7?p2w5RyiI6oy7RlDE60%ITW}T3QLRJb{DrBvY k#X?pKSuX4Uo-S`QY5gMDG-qm5XiR9hGc_U{!=k)@0!L5Jf&c&j literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Zaporozhye b/lib/pytz/zoneinfo/Europe/Zaporozhye new file mode 100644 index 0000000000000000000000000000000000000000..49b568e773a742c490d8253621e566234d7b19e0 GIT binary patch literal 2111 zcmeIyZ%kEn9LMo<1nPD*`r4w)4G@wHv@2Xd6b%x)UYNnPt6Ydw0t-=#2+bYICh$g=ef_C+pzy=@Wi0M<5eD;=4GMoPeZSxGe)`4KgnuGbdB^y{M8>HjPUf)}ovc@%bLRAKcd~c4Iyvq2 z&Yc^ooVm42oZRw!=dOU?nV0Ex?w)zg$xF%W%)64_ng9Jy(fMCoYFTjR^XNUJ@s_~g zJJE#$$6E^a9gG(4IHkeXx3#G0ycBnhN=e0-EL!`Llx7{4#l=0cc&bmzG6uBl!bVwo zty`C!4#~X}jaoj`tQBL+^uGNoboncpTG^JXEA}mw`>Rqk)S4kH=S^xjG$mCjpJ;XN zH&T812U(T$fvk$3l?T2%Dm5d+Qak>hMh^7L>SM3zgB=|b?cb|w9(qC7wr|q9CG8rk zt=4+qYHbM2*M_S>ZA`0@#;KLPSk{7|HOsP6#S-4ww@u&6DsBJtSErxtEZ%VEXKN!dD^wq|!r_<|sjIO<#!$G9 z4=c?}^T1)-?gf7xwjKNTUFa*&nh&WQWKWkv+PaO(MHQwu$T$ z*(kD8WUI(tknuBx)X%EsLq(MlBkQO05LYjnh32773Cs)%bq*F+%kX|9pLb`>t z3+WfqFr;Hh%aEQSO+&hdv<>N-t7#n4Iakve^qcrI literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Europe/Zurich b/lib/pytz/zoneinfo/Europe/Zurich new file mode 100644 index 0000000000000000000000000000000000000000..9c2b600b103dc4d1f49b5f087055e19d3e031129 GIT binary patch literal 1918 zcmciCUrd#C9LMqB0S*~U_N9i$0t7oE{yFj=LW4|?z^DVIoRk#AKL~0>K}Mh$G#PV^ zxvv|mxnj{|%sHYiP%rS$(sHK6+KM$S=cY5wnsZYI)>!@CPdBW(_IY-m*K>diE`IM% zaQ%+zbn~CfZGXat>mB>yeP)||T=eWT7q8WuOA`Sze74j?dw-|-ibY0fu_Dh!hYueWqy@W0Kx5C>eP} zlDXys$%^Zi?DQtdo@$kxm@dt^vRRh?*{I7-`Q_Q4$~3pHQuBtE>2n<`boocI`h2xl zSF|scl?86~SH;Mx#G9J$pOOOiH(KbuDus7`k)qHqrD)`Wym0-nyf|=F0>fvt_&}$W z^na=^)z!(%o%?k4y7zTW?KUlardET2LVd+kqHBE%b?ro|mPHpx*^iIwtK$n~{qg&{ zVKhR@d!nRb@ORnRdQU35Mr2dvsBGSQTemDfAzLekwJQFQY|9(a>KVthCQh~H)`z-% zszG;LXx5!qg8JH#4O)A?US8jyr*(a$^2YXfeX}D=>R0DVL$ycVN}D6Q@*l|CQAQe5 zqP6kvHED{R(5COclIA;Oy8DYh*)uYvEr-tP-hpm?x4Bna5438C%if`35BoMI{11Do zOl*QH%$P_qk4}GISsXO}{8Ao4{>tTY9>M=Vv*Grae7KtJhxe#SzS-+9d(FFhyAA7q z2=747vZFoE$eBjYH5X?aIp4?`ceLjmIqS%IN6tKQ?vb;PoPVSNqywY{qz9x4qzj}C zqz|MKq!UNm3epSG4AKqK4$=?O5YiFS64DdW6w(#a7Sb2e7}A-eZ4K$o(Kd&4hqQS&uqx^=YeBK;x_BON0xBRwNcBV8kHBYh){ zBb_6yBfUG?=8^6lZTm?7$Oa%gfNTM>2goKMyMSy1vJc2cAUlC<1+o{&W+1!aXtx8| z4`f4-9YMAP*%M?_kX=Ex1=$y5W00Lewg%Z7WOI<+akSfm?2n_}AY_M-EkgDP*(79_ zkZnTt$+$v8>>cKQ*tan=_#fCQyHIwg?AJ&!GpD}?>`wiAtNs})`;4&TwIq!h^A%?# PXCTQD3oO8rYcnB=cOv-mKK*N yB&8}8r)p|xB#q`KA4fC~Vm)j)Ru literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/GB b/lib/pytz/zoneinfo/GB new file mode 100644 index 0000000000000000000000000000000000000000..4527515ca3f249a44599be855b3e12800ebe480d GIT binary patch literal 3687 zcmeI!dvwor9LMqBn$hO=nHU-N(OjC={5BD438AqqmtXotj4)(rmX?v0Q>h%sdF!Yp zo})#oKr`C_xqiB{Lb&^cR0@Re!e`th9*Y2 z?s+_D-{FVH75l^M!1wGg(;6)@)Asu5>D%3A#+-HLtLZb$%#7N`e7IWAO1))f51OvO z9<$NRiC<~HX;Y%-HteV8HO|wSO~Q5NnPM~FwcE@usG%1WUDOLVB!qLWFw2r-&GM9GCcA5d$%*NuzjG_IA}ZCata{n3s^>F6=R@i(EQ)-zEM1 z{+IL*D|hQ3mzJ5IzR1yQrUmP@qcZf*qf7NVZ<=1;ZI1b+WpAC=dad5z-D@@!`kT!` zjbwAi%d%x>J=yy9Q?hNTOY-}9)pj{5JBIg_ohd%wmNFScE z)f`EA-W(k^QXlKy#QfnAb3Ce&IT5``p9~Jur>c9*sgjDisC0xrU3gBPInYC&UAQ1Fzp+dQT#VNh zm(@0vcDQxr$+t|ECDnA*5eJQ$8esyvtufWolzAv}wyEyDY-)s_k)W1&Qqy;v)T)&! zwT>;8hl?jj?RAqS_{cm}XJMAAyY>@RZ=$G>S;Lf0N>TO4#i>VPJu0++Q`I26g=*Nj zi!`cKOEqrtxHP`@goFiDm9T;!X;O4a9?LG4@J+kr@hOE8@okPY9r?YuKgkgH$p)^- zKEJ7`lx)>3I#)f>{d3j4?hMr;YLseGnyy*~Pmz`f`m0tYsnYs~_UftqUU_J<~H`edI~ebcX~gem!|UqXTEKlZe|+Gd3s&}XX* z44JA1MQ2IkgE=y|uE^k188W0aMTTxnlh+P-WLRczNy;0cUjH~+hR^Mx-WU=h$>W== z5#63vDTy`Jo00X@$PPEuTY)Z>+O&qGUOcKsRk<#scC1%v=YNyYOXjLE`ML7W)SqQ+ z)(m+!ZH}Z*N|y(G?)T~IbN9(NeedJ@<;vgtoBhiF)3d@qefVELyM6n1j=f;6D$1uE za@6W*pGv&rvhV!;eLjti^SIje@VGkRbM}SH$H&M1INwFjzu(TQcm5bxVDX)Ax$Ix! zcI`g?Taa7oXzwXZ-+9n`fK-z%x0cix%38WQBFC1+%kZvIDK>C3+ z#L;%d(Y6HXiKA@_(iKPB7NjqZwlPR&kk%l*L7Ibf2Wbz|AEZG@hmaN_JwlpHG@ z8|_2-hcpoBAksod+e4&@j<$C?SSkDWJ4f30@)JCo;f$R=sdm#G**&xUcLAD68N03c|>=I;~Ao~Q_D9BE6v|9z)E68R+ zb_=pyko|&e7-YvFTL#%P$fiMd4YF;JeS>TqWal{At%K|xN4t5D-Ggi&Wd9%=2-!i% u7DD!r>wf1D6X@>q|3PH`740Ajuv5uxCsTM_vxw#q?xvC9aglCb1^fkK<6HXx literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/GB-Eire b/lib/pytz/zoneinfo/GB-Eire new file mode 100644 index 0000000000000000000000000000000000000000..4527515ca3f249a44599be855b3e12800ebe480d GIT binary patch literal 3687 zcmeI!dvwor9LMqBn$hO=nHU-N(OjC={5BD438AqqmtXotj4)(rmX?v0Q>h%sdF!Yp zo})#oKr`C_xqiB{Lb&^cR0@Re!e`th9*Y2 z?s+_D-{FVH75l^M!1wGg(;6)@)Asu5>D%3A#+-HLtLZb$%#7N`e7IWAO1))f51OvO z9<$NRiC<~HX;Y%-HteV8HO|wSO~Q5NnPM~FwcE@usG%1WUDOLVB!qLWFw2r-&GM9GCcA5d$%*NuzjG_IA}ZCata{n3s^>F6=R@i(EQ)-zEM1 z{+IL*D|hQ3mzJ5IzR1yQrUmP@qcZf*qf7NVZ<=1;ZI1b+WpAC=dad5z-D@@!`kT!` zjbwAi%d%x>J=yy9Q?hNTOY-}9)pj{5JBIg_ohd%wmNFScE z)f`EA-W(k^QXlKy#QfnAb3Ce&IT5``p9~Jur>c9*sgjDisC0xrU3gBPInYC&UAQ1Fzp+dQT#VNh zm(@0vcDQxr$+t|ECDnA*5eJQ$8esyvtufWolzAv}wyEyDY-)s_k)W1&Qqy;v)T)&! zwT>;8hl?jj?RAqS_{cm}XJMAAyY>@RZ=$G>S;Lf0N>TO4#i>VPJu0++Q`I26g=*Nj zi!`cKOEqrtxHP`@goFiDm9T;!X;O4a9?LG4@J+kr@hOE8@okPY9r?YuKgkgH$p)^- zKEJ7`lx)>3I#)f>{d3j4?hMr;YLseGnyy*~Pmz`f`m0tYsnYs~_UftqUU_J<~H`edI~ebcX~gem!|UqXTEKlZe|+Gd3s&}XX* z44JA1MQ2IkgE=y|uE^k188W0aMTTxnlh+P-WLRczNy;0cUjH~+hR^Mx-WU=h$>W== z5#63vDTy`Jo00X@$PPEuTY)Z>+O&qGUOcKsRk<#scC1%v=YNyYOXjLE`ML7W)SqQ+ z)(m+!ZH}Z*N|y(G?)T~IbN9(NeedJ@<;vgtoBhiF)3d@qefVELyM6n1j=f;6D$1uE za@6W*pGv&rvhV!;eLjti^SIje@VGkRbM}SH$H&M1INwFjzu(TQcm5bxVDX)Ax$Ix! zcI`g?Taa7oXzwXZ-+9n`fK-z%x0cix%38WQBFC1+%kZvIDK>C3+ z#L;%d(Y6HXiKA@_(iKPB7NjqZwlPR&kk%l*L7Ibf2Wbz|AEZG@hmaN_JwlpHG@ z8|_2-hcpoBAksod+e4&@j<$C?SSkDWJ4f30@)JCo;f$R=sdm#G**&xUcLAD68N03c|>=I;~Ao~Q_D9BE6v|9z)E68R+ zb_=pyko|&e7-YvFTL#%P$fiMd4YF;JeS>TqWal{At%K|xN4t5D-Ggi&Wd9%=2-!i% u7DD!r>wf1D6X@>q|3PH`740Ajuv5uxCsTM_vxw#q?xvC9aglCb1^fkK<6HXx literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/GMT b/lib/pytz/zoneinfo/GMT new file mode 100644 index 0000000000000000000000000000000000000000..c05e45fddbba6a96807d30915e25a16c100257e5 GIT binary patch literal 127 ucmWHE%1kq2zyORu5fFv}5Sse7xGTH`z)iG`KeIFs-DolG*Dd7oHQeCrbR#|gS` zcsQ%w!@V@=UI*h%*{-2R+nrt}H>3NK_v*H^-QRxIJUCt}534Vko>SN4(TXaYS~yoy z`3jq!5|Z@e8TQHW8+mFc?6X_l(tCEg>ASE&Ki@xYUYzLCFB{_K)t>YE^`fZhZ|;!H z)N(VhvRwvpYwh67!!np!V227j<*hBT@A?{K_~eLv-`T21_TIH0WS#!lc*TA?v{-+x zykkbUmFclrmrb^2RDYS5Fu7@)bw1c)@?)#?*Zykrt+!dmZ*Q^_*Q@0F#Y$T^Ge^|X z*|sPV6yL6Z^=}-IKz+srYXUm7)NhLCXLRv_dm@{J?9^mK(O z+ubV4SLE}%=ifd`?TENPSS5}X1(a$_sxWs|^7CF-A5&|h>v_dgt@HPZ{l$d2Uq36j z!<5LJ$fU@u$h643$i&FZ$kfQ($mE`Gc4T@_H$Rd9k^zzek^_#B!*;$q=w{%B!^^&q=)3^=@LXTL{da@ zM3O`=OD?3zad`rXBAFtoBDo^TBH1G8db)g(ggsrxNXkggNYY5w_#dPlakZD5$PYD~ B5Gw!x literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Iceland b/lib/pytz/zoneinfo/Iceland new file mode 100644 index 0000000000000000000000000000000000000000..5bde34a87edf86908601310ecc8a8aaa0dab4485 GIT binary patch literal 1190 zcmd7QPe_w-9LMozO$Ql;5hxkdH%bk#}(PBl^4)F}4E{>=mDX1vA)v$!<59y&! ztGp_SwO6%kahpEc zaYnlBzMfyGC*U3ak zoGHHFr$6tX&V0`sj++109KJly8y#_`=B~Lr_QCXx;fS-|b-6^Gb>;)#_WA5XC-N67 zW^+GrJae!nvM91DvMjPLvM{nTvb5E#jVz9=ZZ*pz>sw6$NCj3?0#XA~1X2Z322ux7 z2vP}B3Q`MF3{nkJ4pNWR6ogb{H6|?UAq658 zT1|;ajYyG5l}MRLok*cbrAVnrtw^y*wMe;0y-2}G#a2@?QZrICQZ@cRWfz##mlXU0 Dr`cN3 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Indian/Antananarivo b/lib/pytz/zoneinfo/Indian/Antananarivo new file mode 100644 index 0000000000000000000000000000000000000000..750d3dc14cabc52517d6be5d76da4080f213f4fc GIT binary patch literal 283 zcmWHE%1kq2zyPd35fBCe7+bgj$l3Vr)}JkhW?eWw(f!6-{fAc=7@3$E85opWKq|Ei z7+4q>lrlr|3HA>R4$pvEe!vGAZ*)w2@nmkiGet)xPZ3mnsNaEj^QA> literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Indian/Mauritius b/lib/pytz/zoneinfo/Indian/Mauritius new file mode 100644 index 0000000000000000000000000000000000000000..66ecc8f51a7deeca7a35f605b075a57515686a52 GIT binary patch literal 253 zcmWHE%1kq2zyQoZ5fBCeHXsJEc^iO4XFcl-3D&m`61R&CJej9G@I2Rlfq{t;2pJem zUjP*_xCJn>Ffdp+FmU?#hA{Ys27`zYkPHxnkYL>ph!%$bKmf89#06Omrh(RjXpj@Y OG-=M@0=h`ogbM)9_$J5z literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Indian/Mayotte b/lib/pytz/zoneinfo/Indian/Mayotte new file mode 100644 index 0000000000000000000000000000000000000000..750d3dc14cabc52517d6be5d76da4080f213f4fc GIT binary patch literal 283 zcmWHE%1kq2zyPd35fBCe7+bgj$l3Vr)}JkhW?eWw(f!6-{fAc=7@3$E85opWKq|Ei z7+4q>lrC` S4hDw*K!D#=E}-$cCR_kiCKHhW literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Iran b/lib/pytz/zoneinfo/Iran new file mode 100644 index 0000000000000000000000000000000000000000..a69eb264baa7cfdaca2f852cdc85cea62228fe0d GIT binary patch literal 1678 zcmdVaOGp%P0LSt1QHp4p8blYRC@o*>YWmNz-K_NQ`b<|XwM@%rsXf$6v-FTrq=%w| z(i;pUI}}BK38jO5-i)t#Z#vg~5 z`Gk|B!aTVTXg4pt``Yxg$pF3J!F9Q?G1BheZMXQ(B-$6{SLuK)4i%U%t%D*LtFVw} z9X5GMts1+iR}U{!;RE9`;!1&t?Do)6?Wa|ALxQxF4T+eXT5V1KsA8?NI&MXiS`)Nf z#?S8;@m~sb!iU#Nyf`D*j{1wl!G&_&%?o0EZ?aB0tJQ|qW@)SYF6<@!dSiC9O14Gm zO)+;>>ibbCpJ$7-M_JNwe?p|+=+GHGUMlm{J(<73$vwKcs?=O%qpc@fv7 zGdNV_`%UNqqevCZddtFh-D2C*F1dXqP!!#HsEhkjRLS|zaz|&2*x3}SORH|FU4;X> z%wbjK;;q~rUMco04b&CBJ*whcs;r!OBC6gzmeu3AqGtGquDyLy?Y$Z+_njLQbsd$u z{?N2)DDRc~^FzdeEy40&LZ3LaGFLY)d8wMbI%U&WU(q}@s1Hxt)RD0b`smPzY8f~v zTQARvV_ki^tvy^FuYV;^l$8p@&E3<((|z7Q{TYTunEyRjPs4~2hPPp)BhzU(%`+`GkIQB!ul;s7|6*=)zux;{9?TAz9*>zHGC^d9F3l+-b3`VI%o3R< zGEbN0M3I>yQ$^;AOct3fGF@c8$b^v@BU47^j7%DtH8O3N=Dd-KBQr;)j?5jIJTiM^ z`pEo|1dt4n6p$Q{B#|-yM3797RFGVdWRPr-bdY?IgpiDol#rZ|q+FU=A!#9b zA&DWGA*ms`A;}@xA?YFcAqgTGA}Jy{B1yV5vqaKF@IyvUX{vjpU6aj%1Fcj^vIck7SRekK~X4;U~a{Z$o5kVyuPlLxe+EqAd{) KYkXX^#pfq{h>?5% literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Israel b/lib/pytz/zoneinfo/Israel new file mode 100644 index 0000000000000000000000000000000000000000..df5119935c5b01676e63d1fb1efd7273b8b4b452 GIT binary patch literal 2265 zcmdtie@sLcU*$tru4i|t=jsdKim4U!|Uu0{$YIH zfs*A_DdHa&W5x9x>J#0c#_99=4e@Wf;>!&oI{qxRiqG#enySL_)z8HB@1*eUOV6e~*uWQiZH(Kn`gTGi2 zO(}MC+mN2L`HCIWK4QgM@A~659w)@mlwYIsU0*`t{Urd+lkL zI`zFrNBQHs`mE{AvG$B3l{#T_h&^-10_`bp_9w27*WR3Cc2dsUI(c@rKPBmq<-7By zof^5_O1;wLpA{OeW_5|bKdes8bL*n7}=@THA%PTd|ocTJjn z$iL6Z%x@I)ath`Agw-M|X3)tVTO_jkDx3vbUF5axbRPb2SmbXR?G$W} zQVTcjkcBnZl)o&~c_eT~J-RYi7Ws~-K>iH**o0lGIN?@Ve076b6cz6*>RPH64~%h2 zTIZ=HUH#7EyDU-K+Ub; zvYuY`)Qw`f{MZTg^!aqT;{6ZQ%HsiN)hk<6byJ%2Ol7r_uioLTUf3X>t-S86@vIUx zS>4Wa;|fKsXIR!=P7-U!os(-jZWHS+e-Ss_D4 z-SX#G=wGk@)teBL-GA@6ArUIXbZ9mR-%Bkxe7JMz)RY z8`(Irb7bqt-jU5CyGOQ<>>p`>tLXsJ0;C5>6Ob+-Z9w{fGy>@a(h8&(NHdUbAnic< zfi%R`bOdRMtLX{S6r?LiTadmWjX^qtv|7Mp_QWarx!Z zxaKzY^iAr2JnNPDMOv9%>*{1^f~US-9i5xC%Oky>9GZ>Omfk!LO|9+gdgz(0W*9e0 zpJqGf#ZE5&%Vq7Gqf~Yltew58lC|%1$3N*tsv~>QliiQxpS~vg+oUdUW+sd8Z>&sm zw{rzC<1uy+!;E4HF@@Mdj3L$#bBH~p0Hgw>1f&L}2&4+645SXE5Tp{Ml=`1kuC&{8 Em)X2_LjV8( literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Japan b/lib/pytz/zoneinfo/Japan new file mode 100644 index 0000000000000000000000000000000000000000..024414031e18e6d8832336887b00a2220d4715fd GIT binary patch literal 355 zcmWHE%1kq2zyK^j5fBCeE+7W6c^iPl;ZW;>>vnPzuD=m$xbahL!p+k^8g8@83fx|O ztKrVG{{nZr_cSmvGeIE(L)`?RCJ+fUp=SXjCq%?6IE2B=8AP~*FfalYfN%(Qr?3L0 zKo|sgfEdIU`~l(t!G9n~J+!0%M3YHJ`OImJk57onkU5{bt^(oWAP25I~WOa>97K}6ET zAO?%6iNq#Co+cUzi5v^D@O)2ACWBx5Jm0%Z+FU-5vyfZ0#jmL`PgqRUEUudiX4`)~ zkKdjiTX(TTSzf!c$`32LGB~Cx2POTKxo}&yCS<7gO@%)Cb?alF+jg@g+e=4o$JxCM z7uVg+y^!wOu2RCIYm_hc_sEEUl4q~A>>MrH5#iEC$GL$pZ5t=`+di5p70f-VbQ#&2uFP8rJF2K$F*pjo^ixvdY;V@X|sOD`GdfF z^+%s(kf3N#L?|j=jSNM{s}Z6o@i$0Ow7eQIiW)_ZqDK*=C{iRTniNrrDn*u}OA)3h cQ=}={6mg0=MV_M1a02vyP9bQHWWWx70c9krqyPW_ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/MET b/lib/pytz/zoneinfo/MET new file mode 100644 index 0000000000000000000000000000000000000000..71963d533e444362250dec5465ec58517ab6c09d GIT binary patch literal 2102 zcmdVaUrd#C9LMoP#7buLMT0{EViKZtFV%Kpu{nX^A*^?N^8ZC!O&zq4nrXXm+jE}qXj zvTj>*k?$Ypa`z7xXP3LUpVmL!zp;Pf)cFIGF%1kJ)pKu32YdEubXuFn&aSc(FZnh8 zLeM^Wro>J@nPZ2%?dOLy>%FIye(bnq9En-xfrB=?SC+N?37gXrwd*!C+T7}hWtWHS z`aqfGWaQes>1mdm5LE8P63zcMM++uWb;Ac&=*Hn+6&U^h zpR}UruoYK~Sjn1atu%AM%8ELzY^vK9rT1yk=}oryj}9$49<-aktW)_=gDOUr=$4(! zwX{D&%bK&byl1i9TA83=Q@X9lIjc}`$|@5+QdRcXR(0+>TN(e3tsEb<+s?dbt70!( z_1N1A@9njkBhTyh)>gZt_bIKuYq!?4Y*y_}Es9iE=}v!*)&>@6?WF?MrBqto7c+GC z#rd}G^~ou$^cy4<48etWoZwzY?T zvqzGB){&p0j`QDGXVN8go_ycB&Q0pk*M{t|@eys`|E_k#2K0E>pt|>V%NKW9{D0x+ z^JUD5b02Jy`4awq9}d+}77)UfcT{w_< zAOS%lf`kN#2@(_}Do9w6xFCT+B7=kmiH)ZV4iX(t7ak-&NPv(CAt6FygaiqR5)vjP zPDr4TNFkv@Vub_?iI%4e7ZNWdU`WJ}kRdTcf`&v52^$hOBydRNkkBEqLxP7y&(nnu viJzwnAQC|&gh&jLARnA#=>*{s&7cX4}0QGc-|jv;l>pCYwQs<{zIKioT*il zA9!WzNU@5%nJ%(3O+|H2N%W(WYTEi#9n(0|TvRooFD@B3v3Vmp_L)Kxr;h2ky$6(M z^c8){7Xv2#>`_TL)@c&o8<3>8`jvX2Q!ed!QeC#CSuPJYsVi3cB)R-{HKRCFuFSkn zrOYkUGvhoeH9AA5{x;vFeHEwE!_&>I<3H)y2hN+T22ScZp;_wcC-&*NDKk^sP~gs>gI;#vSU0f=~70*eq3)_NNqmAFqnX&x-fNFY3n624%^9kGW}Z zw=CWMv$=WKHYsWS*xb^!OW#_#-`v);RhKS!)|8d5)@8pBD_>5#_)hOpFL-xXH(4)sVw(_yu`Z=KxdKV=%byY>A!2h9U5LEV(F z!!-LUbn}IfY01dZEhp9_Kq^Y*;VOd`| zsW!A8mW|2h)TYW_*)%n7LPZC4XykLVIc105Jap7-84Kyh`UcG7XXLxzTo4H+D|(ec6XI6FRIfE*)4hKP(286+}FWSCAnPGq1? zJ5pq*$XJoVa*P%kF2{J00dtHP88XM1kwJ5e8W}dnxRHS)BS(hrv|~pGkBlA}J~DnJ z07wLo5Fjx?g1`|4Bn%vJKmy^kkw8M>w6Q>f!4VB497sHnfFKb;LW0Bu2?`PwBrHf= zkia03K|w_ff`mi~2@?`0Bv4KpDI`=*8!IGOP8%&G zTpaO20)|8k2^kVIBxp#~kgy?fLjvctkwZe~w6Q~i=d{s7!p9LmB!CNx0EJtLK&^m2w zk>EOQbdm5nZG4dcBN0YIjKmlTG7@F{--Ov?YrWW3JKMi7w;(q!+n=AGo1dHK`5U$l BL=yl2 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Mexico/BajaNorte b/lib/pytz/zoneinfo/Mexico/BajaNorte new file mode 100644 index 0000000000000000000000000000000000000000..1387475394bc24653c36981b9310eb165ce3e4aa GIT binary patch literal 2356 zcmdtie@xV60LSrzP!c7dRFvSbC#7y6o*chC!G0NaVqBn{#F>#9KL%xx5K0lDV{5HB z9&}Q!q9On+5H{kw_6aVjP>^V!s)w&B&k z)DItfzy6!Vpkt)-?U@U$LH&KfHg&N)PhU#OQscfdIk9A`m~`dJ$xx=4igwDW;W%-5 zd`|w*_nVkLGbVrRJSP^8_3B0EhD7XOr@rRBUa`36O(~9biff-$a!GT8SX#4JE(>lK zaRmXne8YONA|*%0uPRa3Er^#1k=ZICl%*3dtWeJ3#S$+Mh=ap<)BX2nH zky=$6D_7TkE0VK+k~ePoP}~&vrF5ls3)kGVPKjv~DWjk3)T!NK%|M?{JKL((b|2C1 zle^Tq*2i`Fkxj}|eOP8RB&$qcqs%Iqud-dGGACnFt&jFfuXCR8P9(?;e@=+pGgoBZ z`A@~hx8n89AG|JZ>G(t6`r;vRTitj1_VymNsc1moQSqG0U#In*`Fqq|iw|mFa*^`Q zz9I{vJgQ*ifZTF%sk-~6le+NhTIFv!s_*G9R7E@Y>EbT8+PX2Qw>1e>;>^>5?I9Jo zlB7$szfz@_a%I`dpGDaxP8pm#D|VcillP6jBX+ir$@>SM7v&YFhHpkVxk62`H zVee&y{(!?@5^xlA^3A!|oZ^7liFqRaz61YaVYBut{AxJN(vY9vOr{o zRSt+tqWUW@SSY)+Uvs`4o$byj-BTMG*ux4b@$f}WLBkM*M zj;tJ6I7qDS_4004V}e1*8l}9gspGl|V{?)B-66QVpaWNIj5( zSWQKcl2}bmkfI<}LCS*E1t|~B8&WrMM`QlHARYQHC08* zYBhC53X4=0DJ@c4q_{|Rk@6z-MGA~m7%8#U)EFtU)l?ZNv(?lYDKt`Pq|`{Qkzym& e#{Yl0V@%e)ChKYbOm~JmJIh;V}G;lj~TZAhX0IRZM0$AQ=|xcrbM}x z2uqXfl1q6dmk?UHq$JsrvZiH7$MZRq7hZYch41M(pVO&xUVT2^++u%}{IS9I4Tt5~ z!}ADjZ)e-OD_VNXUbp#I_}Y`7_&S1T`Z~Vv>AC;D()X?YYGDg_t>Qk0t(ckePe^gd{Y6F!PQz$o%q$ zCUN&Mos@CeB(Ja2DdC6Af|Pu{a9FiTosy_i`ufDya8JVOpVDmlrPUr=_S33B$!7;xk3#KS@z< zlG*sZQ;MHVF`Hhs%jPSCP08)2y0od=l$~qU<(2nL#hxR&GPg@@@z?6AxVx%);cC5g zY_r-HUL)JS9#A#Ia;4@)xvKpbFWawWsvVCe$j&pRrmjV#epiNRIQT{+V1RoK3<&%O zm*X6d7jc{uMgkqD`LqmmoJK9dJO`+s@6$bA@nm}?*`8(gcv8I9h2Qi3g+=|pK6C7_ z31Sq)Du`JSyIfksAeOb3-kq|2xWVLZfohWQZt83jNp zV3Yu=m(pAkqZC- literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Mexico/General b/lib/pytz/zoneinfo/Mexico/General new file mode 100644 index 0000000000000000000000000000000000000000..f11e3d2d66a2d7c21f498df96c3fd1db3a0d8817 GIT binary patch literal 1618 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 u#107_5b8FWLuL3o9$5k`URY6U)Y(?UE3#rVT< zR*YFDf|Ayni4SWwHq3b&mt~`eO%k}b^FAy8>5u+w>&t$;e%!&IpEvGR z-Zfd`A2->2!ozi$hxe(9ANJ?zJ^i7o`=tck^V$z;Z>?YNYndW?3oq&3_WkO^wg^2m z=l6!8>R53#-KR(Ab%;NrJ^EUhPh1;)Mvi^&5##48Hesdb*xmIy=m9w`H%Z)*G*8CPE>zRQ9WpLBQN{f_SI2)D zt`dgA^o&zKs+or`>sx!ys9C-l^0w`V)a(@jIcM!h;`Zz>FGv zB*zAkG<-@YUv`T-2lnZda}6rB>qVV*v`nQp)#;2^7O2d+7MZninwsxiBNvp7s_euE ze9|x>fuGjy37}>mM5fY_lmETdpuf~XP;K(-=s*-%&&xJFiNiU4~kX2Bl3~q z1ER8JNIp8yCaP+V$<*7-ulRIbVydb;yRY*i1vPNW)$SRR#BI`sJimcRXmWr$uS*+Ep7FjN`USz?@imhhJ$eNKwBdbQc zY+hJ5XBG~uoMY+8+L6U0t4EfPtlw%1fKBc$bvVj{)Q6)$NQJDXL`aRS zrbtMYILd_72`Lm(DWp_Lt&n0N)k4aJ)C(yXQZb}tNX@LKXh_vK%7)a9qi{&&I7)}q zj-z-;^^o!*^+O7XRM2Wlh}6((iilLvYRZVzk)x1EC6Q7hwM2@ER1+yDQct9yNJXut zq)1Jzrl?3&t){FVrON6L@X jUtDkg|1SRy^Iu`1`R|b8nxB@HmXYGh%uLHn%W(V&DI1f# literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/PRC b/lib/pytz/zoneinfo/PRC new file mode 100644 index 0000000000000000000000000000000000000000..dbd132f2b0bcc8beab08e04b182751795c853127 GIT binary patch literal 414 zcma)%y$%6E6ov01AsdnK0RGwCh(;k=S&0xTQ;84_wi_?7<`F!PCs;~}D7?f(B^vIT zl7ch2`)zh+C+8E>VAZ0p#Q6&b$@1Vmt@shmEEPQ+dAwxQ={D8*Lz@c0P8P$BDh-yh zJRhox=gVq;O|{%Y*PQ{??_KRC8|0oVI%a(=qV1LMrEqU0h@_&_Xe`L@@k|6ZIO2E7 z93L|!ALb9D7bk4{9*EM0TpUDs5CS+32?Qb_WIzakkOCnFLJol-2uVX01tDw5!t~*5 M#r`q2S-#n^-;pXt<8 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/PST8PDT b/lib/pytz/zoneinfo/PST8PDT new file mode 100644 index 0000000000000000000000000000000000000000..6242ac04c09fd4e4952cd16503e954dcbdacec2e GIT binary patch literal 2294 zcmdtieN5F=9LMnsqQq039#A5%lbXa8u7HA9u?H1*!9*~wBxWYY!ypY6xs*V+C5^A4_S zsLS*GA)oF}HG?yM-#S=5TU{P|N?*BHr^e6J z>c2iNRud-!I`W2Bc@AXisAm&ZbZdg1wCy&Dsm?HySI5hgC2=M;=O>BXv&_V)&m`{X z`#S!YW0Ek^V-mj^P)Yq==IVEP)HO%m((1)7b?t7^*R?gP>l?P~8>-f*mv*$IQ(K&x#Js(YHMLp3JCB(lZ;s zRkQMc*0-*BSItiTQfGL>Dq~{QWXA7OnZutO?+=^QoWA2GYp7ka!+VXdccaX0f5hbM zT`IZtFX+7HSu!usqUTpkk^GEGU66NC7R36sKW(z|Ur5ypuUt@zJ{s4BXFpMkkENK~ zPra$`=)7$1e0h($tLZzlq~nMzE$cJOYMz&(xyCFn+9Jz;8`6R7=TulLG`)ZMT2nw4KSO6ksSv+C`YQnr4FDc|Rl)r+glJs~9(X@w@Z=8^=*(@kamS5kRy zkzPCfSGD%TG+i|@q}Cmt(Dx0WQ0qHJ^!*WU6V+Q6a-Z#^tmFLq>)S4H+9UICP`q!SFbCe82#a5h6oG#)u3O86`4IryVCU zP^TR!GE`)&$Y7DtBEv<-iwqbUF*0Oi%*ddTQ6s}f#*GXd896d^ryV;ocx3d*@R9K& z0YD;vgaC;F5(Fd)NEnbfAc1h&NFbqb+E^gLK%#+!1BnL`5F{chNNAikHb`)g=pf-i;)4VTi4YPZBt}S(kSHNxLgIu3%4s8ogvx1Sg#^oKqlJVE zi5C(uBw|R&keDGsL!yR+4T&2PIH!#q5;~`i9TGgJjUEy{Bz{N$kq9CoL}G{p5s4xa zMkJ0%AdyHSp>*0Zs+IS)XMIwrX6p1MkR3xfMSdq9Qfkh&Vgw|O_vVkE{$kdY|k|0c}ww$^@I?X1#yzC2$}R%vdoFV~k7|2MIyR0IG3 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Pacific/Apia b/lib/pytz/zoneinfo/Pacific/Apia new file mode 100644 index 0000000000000000000000000000000000000000..cc5d2cd2d44390a587c5198a4588c2dfdcbfd24d GIT binary patch literal 1102 zcmd7QO>9h27>DsQI#W?b!b)veAzD+_Vj31*lvL7b%iNi2OZ%GYbn2_6qvNZTgb)jq zq|1s}uyR>cETkeLc4{Svcq3tl*wyE8o*NsnXkz6|=KgMGayR$?cx}DeRpzfV)BVDi zv(A0FpFiv_mm=TI%S<@lFt*fBjFxHR&|7KzasFykA*#*UpSoF=%a)C*$=W&MEqSP^ zMIR+yd|lIaQd-`h(XDUpNbBRAwoP1-_FJcA+YMj0U+9sJvm@Hsw@D(4+?)JaQp3&R7_u^~WSGcTw{S(qJ zzU*&(r3Y$9WT580<`?JXVCk3+nzRglIjIGW%b^!tdicRYIdX4<9=*9nk6p{i(76SA z{8XKs$bHq&jBru7s5tTuA7gy?rmXFBugltwdK0#GKti*u?QS*^W5y><*qBEeiZ&!X z(~?YjCRxXgyZm{)>Bm{`o(RU7`u(VNC-vmrFftZ07=JSwG8{5qpc@bw5g8I06B!g4 z6&V&87a2Ivjf@P9jExMAjE)SCjE@9>M1X{V#DD~WM1h2X#DN5YL=xyiL1ICIL83vz zLE=FILLx#!LSjOKLZU*#LgGRKLn1>$3v{s|!6DHh;UV!M0U{A1AtEs%L7M-f$P#j0 aQCUT-<%ycu>e$MPs`5m2tkT_7m;3_o)Ge<7 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Pacific/Auckland b/lib/pytz/zoneinfo/Pacific/Auckland new file mode 100644 index 0000000000000000000000000000000000000000..a5f5b6d5e60f15ebdbb747228006e8fe06dd4a01 GIT binary patch literal 2460 zcmd_rdrXye9LMqJpwhVKWemws!@O`gTvUW2LIninl6fQ~qi>S%pdpkbbb(AGa|~%Z3evp;&y&hz^1>^y&*KR)l{ z$}cI3HU4(pV12@yYnS!rJbt5fYi)0HA6U92udV95d2r!*Y0v93-wExLL-8$U$EX(R z45~9bf9%!6!=>htkDBz|!5s6wb8bEQ_7(TB6CY~Vwn2Ay<32sU?uff*^EN$^z03W6 zVY&7?YuqO@>!r_M-2D+{(towuJoVKp$zDN!sMo$d>V0XC_%!^kzJtfrujY*UcQ$H3 zLAT!ca;=U{+O6ZNigkR*GddwJLnn+BX<&S~242`KK~vKusBg6dJHjNmX_4IYov%#V zGD~jmz9=EZJ~H|B0hy9EBvUuG$t}@d8d~y+P7C-!Z*@9ky2k>Y;df4EoSmjKhk9jJ zkEe!x+$7<9LnY#^trA%`Mx6C)C2GwDi7w5On8hDRY;K9p4%;hp;+E)K?|O*~jMTWF zTXf!)0FD2=P7}VkthXI3)!V!LC2>cN-qG-rB(0CpJ8Mo!^2%(PU(hZK5~F2d(o2#u zX`G~nR7vW!UnFfLUlv`h)$}uol5x6N7at3eB^?=>*V3}_OTly7 z_5QL95wk)c$O)HK>A6}MK$EbgLd5#|QpS}#EanPEBvA^Fj+A!Ye zG`tL>xtsH$0f#?l!#Z=%%yJpo`OCQ3rxX{@84ibyb#wju1YfnjW>0YVuZON%*Zhvm zW@M7cERks<^F$_!%oLd_GFN1>w$^Ns=_2z*CXCD&nKCkGWYWm2k!d6IMkbET9GN;Y zcVzO&>}{>-BlG9yk^oyP14s&x93V+RvVf!k$pexIBojy~kX#_iu(h&*q{G(A2a*t5 zD<%kQ^aNLb8OU3CRk=!H6N3xHk-}s-j-kW)djLZxSogYAodKNISGBDIl zVBln6n6-g{H^A37gdxB^guyE~guw}jVITy%g+R?91Hga{$`<_r75EPXVcUWk+xA=1-e!1qB2{vhh^Vv%ZrBQYGrBI@BP2+qRZBwo&W2<|Nh+lKJQ3V zTdc_Y$2G>i;m5Vj{dgX?)!oi~ec+vhjK3`5*kMb&bXZBf*DU$Vla|tb&Qjlc+0t5u zY}^YyHoo$ZP3Vf-jafTw;>voPI1;n;vK&jlutOQs>Xh-}T4e^Zm3d^bZu&l1lb@NZ zn};qcE1sk&FP+xZ+F?!GdR(^@B-r$}Pi#ioPc}0c(5z7lZFb5JntgtT%^7}Qb5D)6 z?2nHqr*FD)U)!a;-D4EovtIe@E~ubAtimN9sVLfJ^RoL?T)Nas68ESyJjRTcXi?Y7>ZRk^9qZtp&$s^(>?Zh2D+D+;uz@_<5}Kne>QGQ-pkU`fqHA`^%OpsW6QRjS7T?2-4PqHJC&`wYR#5c zB`Y%Pl&zR@QPHulSoHd7-TmX!w(`5O)%uNyEjVr0n3 zn2|vvqeg~}j2js^GIC_-$k>s=Bcn%#kBr~f1ptWv5&|R!NDz=HAYnk_fCK`G1QH4) z7DzCVXdvN0;(-JNiHNTY2@(?|C`eS0upn_k0)s>b2@Mh(BsfTPknkY!K>~zC2nms| zixCneBuYq_kT@ZMLL!BP3W*gGEF@Y;xR7`u0Yf5&gbaz9uL~LyH6(0E+>pQ_kwZd< u#107_5!RoI`@NpAv2(-c z?Oz*g$o2kqV(f2tI4|0Vds3Hu4SyirzlD~_m7ZU8_|(V7Yxz?9+Nw>2l*c#opOGunKMwJum7}GZrD3V-*~i0 zZfgEj&)uCWsoNvf%}o(<%c9Hb*2=Htwv@AKUV&%kT{^DPewZ@1pLt!)zxbY6@b0L- zWBg5%{>A~FG1zVH-0`f=>}@nz^^a=RwNtW-OLb0NP;v{$)m^ee7RHyTyo4dij~>$n z-V7=DC{``{CfzJP^sT!4WP(}p!YNhQKVga*kEo^HAtN;(>Scj@`(slHn~;GN1D`qp@(F}kf&D;ES8G*V^n4J4pa5&5nWw;#@xSc zkA5KiXQ`=e(f;_;vO52~T7C38vu5@QwPyDxX6?m8YF(2ywd1?g`l=rD@Ze_kNY)lp z*ITVNB=42_u1&grs#P}DRqBnWS4o2?-7u6dfz+8g@JfmV!$0cA_RI3vxzF{c4YSST zCoZVXa>+FHkE!O=FU%9&gQ~?FHLZa@)%w)|(^l50+D?v0dv>pGf9o~rNbJxZ&v(gF zlk0S6uwJ%>3iZ?FCGyO`T)llkn)sq3BLDF-E&9Lwgu{JLdY*eng~Nvr`eMW3{d>IW zf4vVMnX(s7*q-3dV*91`OYC}( z1)*CJ7na1aYXTO9tO{8cvMyv{$jXqVIqlkz#UZOhmWQklSs=1PWQoWckwqe_M3#xH z6Im#-Qe>%4yH;eePPaWfK&k~15yX15J)AEQXsWJih)!EDTmY611Shn5u_wYO^~7>RYA&v z)CDOFQW>N)NNtefIBj*1@;GgMkOCnULP~_x2q_X$C8SJ9osdEyl|o8|)CwsUQZ1(~ z7g8^$Ef`WUq-03VkfI?~L&}EK4JjN_Ij1chQah(D9#TE0Egw=pr!62-L8OF84Ur-u zRYb~&)DbBpQc0wgNG+YVm`F99wwy>kowlGzMV+>!NKKKVB2`7oiqsV;toQ#+Y@Cg+ ZKhG67qoN=)Co?ZACnuv~;h(p--vPZhNBRH& literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Pacific/Efate b/lib/pytz/zoneinfo/Pacific/Efate new file mode 100644 index 0000000000000000000000000000000000000000..1d99519b3782cf55da2249ae2aa23285f27bbbd2 GIT binary patch literal 478 zcmWHE%1kq2zyQoZ5fBCeF(3x9c^iPlq_2mzNM8DWLF&-01JbwBF32p}b3k_Xw*a}O zc?aaHZv-f0?{-j(-W8zaJ=a0mdQO0fcD;kDbX|ZNccO#Z?}PyL*UkIq zz4W-CooMX9z{H3JGBC_N1GJD~#Q{bZ28LN17&v`=Lm0wBgF!?HNCpT(NO1lSh!%$b zKmhUvhzs%xhz5BFM1#BpqCwsQ(IBsZXpr|nG{}n}8stq74e~0826-1mgS-r)LEZ+@ qAg_aHkoUnfFbF_2C>TIAC@4TQC^$egC`dpwg~7rF3?W@ZLoNWbR%6Wo literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Pacific/Enderbury b/lib/pytz/zoneinfo/Pacific/Enderbury new file mode 100644 index 0000000000000000000000000000000000000000..48610523b747cde5690aa2bf050d07160c893cef GIT binary patch literal 230 zcmWHE%1kq2zyK^j5fBCeW*`Q!IU9h4P#DVreYS1`MkeO}|KsN{F#P`??!dtE|9@%# zNYS}4RuVlI#~bPbKU E0Q1u*i~s-t literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Pacific/Fakaofo b/lib/pytz/zoneinfo/Pacific/Fakaofo new file mode 100644 index 0000000000000000000000000000000000000000..e02e18e2680060146cf990041560e67cfad63899 GIT binary patch literal 197 zcmWHE%1kq2zyQoZ5fBCeCLji}IU0b3-`|-V7@7Y6kFQ{0`2RmOfPsa9VcP`;79Zab sh7j)%pb8KOA#5tl296&PEkM)$|F1I-?ErB>wlEO3h6`w;uAwm(0F+51J^%m! literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Pacific/Fiji b/lib/pytz/zoneinfo/Pacific/Fiji new file mode 100644 index 0000000000000000000000000000000000000000..d671b98eb76b1bcc7cd9836c741d3df12b723f62 GIT binary patch literal 1073 zcmciAOGs2<7>Dssiy$HF20|DuiZd2N$eowrFvyh8AnYfnRL3+qD4ZR z2t#Poq6@)5lnOyGNDxJkp&&%Xiy%U~LMWu$`+O~1MbI~#^P4%tZ07$2ZRzeB_s3af zPq;V-?c)8qOLiOI^srdJuR`nRSEOM_oit3nljw#jjTXu!HvLiJ*+ZJR{Ys8*d8SR5 z3(~Z5N1HP*wfSv+CJ2@!c+#sabuXl4Jf_L5i<-=bwDtRQZA(R^{r!FII9x5qpN{H@ z?d5XvR=-N=C+WO$RXP`DCDq+0sp$#nYD`GigE!i3TIVXeH=5%m5DcONZ&CczWp~OucdR!^FJrk0<{zHZ<#$@=k%E*@y z$#;Cyv-9n8ZvO{8KXpJZR2KE(*fw#cCI9kr?rzckJvTX1vf8DoxHXcvKO)$vKz7;vY*#BM0WJrmdKu7+Z5T= zYuh6GdTnE5XJl(+Z)9_1cVv5Hf20AV1FyA!^x(B7kS@H|2GWPu8bLboS}RB|NHa(` zNIOVBNJB_RUTX>I$!kp^U3sl7q%W^EhIHn&){x$i=8*1?_K^ON2JwG&SY}C9M{20E TDjtc1BB8JusttvA*OvVP7bqHn literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Pacific/Funafuti b/lib/pytz/zoneinfo/Pacific/Funafuti new file mode 100644 index 0000000000000000000000000000000000000000..576dea30104c9efe7350d0b0f896bd0a5dda7218 GIT binary patch literal 150 zcmWHE%1kq2zyORu5fFv}5SxX8VZ{LkhLErjASVR7J|>_P2!jBO&G7@mXZQ~Ub!I$& bKqjvMng%wH#m6@UY9<2%7tnBBLnAH#{uvT7 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Pacific/Galapagos b/lib/pytz/zoneinfo/Pacific/Galapagos new file mode 100644 index 0000000000000000000000000000000000000000..c9a7371d6b8238c2d898274d32e311b9c5f4c690 GIT binary patch literal 211 zcmWHE%1kq2zyQoZ5fBCe7@M~N$l12Ur$J8QNB{#P)Bpc#fCB&j@7%z^^8f$p1q>WM pz99^*&LIr$jy@qkDG&%D!TcW(EkGmx{|DIv;*w$)7sy^SE&vE0DhmJr literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Pacific/Gambier b/lib/pytz/zoneinfo/Pacific/Gambier new file mode 100644 index 0000000000000000000000000000000000000000..4ab6c206075ccc92c3505a3c4619e313337204ec GIT binary patch literal 173 zcmWHE%1kq2zyM4@5fBCe7@M;J$e9x0!NS1!|9@i*0|SsOU|{j_4PkJ11QH++LV|HW Sz&b$2{QpnDST2wSmRtbo=p5Am literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Pacific/Guadalcanal b/lib/pytz/zoneinfo/Pacific/Guadalcanal new file mode 100644 index 0000000000000000000000000000000000000000..b183d1ea6b6386d6dd24110e43044bf7259bc272 GIT binary patch literal 172 zcmWHE%1kq2zyM4@5fBCe7@MO3$eH4A+{3`gz%ca-NNUyw1{NRR5Qbo<5D=Fkgap%m VfORl1{09R3rg8y|*EKZc0su@T7asrs literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Pacific/Guam b/lib/pytz/zoneinfo/Pacific/Guam new file mode 100644 index 0000000000000000000000000000000000000000..4286e6bac870c1ff15c73b8958c15210a3879c58 GIT binary patch literal 225 zcmWHE%1kq2zyQoZ5fBCeCLji}c^iO)m2+GIBT%G$3y{Omvw(pGOmg`6hA_AXhcGy2 z00{^P!EQ8A14t7Xz}UP$paTDaK;+@kGa$OoOxFh_46>4ek%{^Le=`#hp9rfN7`Q+V J(KR&S0sur8B`N>_ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Pacific/Honolulu b/lib/pytz/zoneinfo/Pacific/Honolulu new file mode 100644 index 0000000000000000000000000000000000000000..bd855772054f8d41e0158e71c2bf2c04e50e47cc GIT binary patch literal 276 zcmWHE%1kq2zyK^j5fBCeHXsJEc^ZJkZdPZH-HL?~r#o#=TuSt`xY}Fn!N>%J%>V!A zFflLy$p{9P|NpBp7&-p`FHT@!@$n5|@CXKCmk^+S2nZo;D?3mn*w!CVJ^z8AxBx^rPJ#dc literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Pacific/Johnston b/lib/pytz/zoneinfo/Pacific/Johnston new file mode 100644 index 0000000000000000000000000000000000000000..bd855772054f8d41e0158e71c2bf2c04e50e47cc GIT binary patch literal 276 zcmWHE%1kq2zyK^j5fBCeHXsJEc^ZJkZdPZH-HL?~r#o#=TuSt`xY}Fn!N>%J%>V!A zFflLy$p{9P|NpBp7&-p`FHT@!@$n5|@CXKCmk^+S2nZo;D?3mn*w!CVJ^z8AxBx^rPJ#dc literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Pacific/Kiritimati b/lib/pytz/zoneinfo/Pacific/Kiritimati new file mode 100644 index 0000000000000000000000000000000000000000..c2eafbc71e9f03b9ea21710946c3f3ea56129947 GIT binary patch literal 230 zcmWHE%1kq2zyK^j5fBCeW*`Q!IU9h4Q0ONHeYRQ!MkeO}|8syM|NmzJrT_mgP5>!7 z@_>QG$2Ww*$I~was2T!72-^X(kMjpq&wn7OGxul!aY1&10LWejQY_{IIYZabgbM%y CEhw%4 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Pacific/Kosrae b/lib/pytz/zoneinfo/Pacific/Kosrae new file mode 100644 index 0000000000000000000000000000000000000000..66c4d658103cc16649efe8b0deda9d9c6d7ce239 GIT binary patch literal 230 zcmWHE%1kq2zyK^j5fBCeW*`Q!IU9h)|2F9Wv+i^UMkYoEh8bsoA`G)OfTUL(0FfZJ zk8cQrw|{U5NDd4_2-^WNA8f}DsGk2oP-iA%0-`~7f`mc#GLT|17swg9hK5`KewiiI literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Pacific/Kwajalein b/lib/pytz/zoneinfo/Pacific/Kwajalein new file mode 100644 index 0000000000000000000000000000000000000000..094c3cfd75c3009a2aeac57be9aea0468ae4af12 GIT binary patch literal 237 zcmWHE%1kq2zyK^j5fBCeW*`Q!c^iPl|2F9WosvBV7@2^=a~=Ri7-nr?VEO+)+<}3E zfnmh~1{NRR5C&h55C-pX#}JS_7=#eE2WBVl52&91Ku~8Up#Y*m_JV{#b~BJ_ITz45 Ix`swv0Cp}bWdHyG literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Pacific/Majuro b/lib/pytz/zoneinfo/Pacific/Majuro new file mode 100644 index 0000000000000000000000000000000000000000..d53b7c2d832173ae13ef2c428f7a42c22477c59c GIT binary patch literal 197 zcmWHE%1kq2zyQoZ5fBCeCLji}IU0b(|2F9WMxe+75Qkyb1_l-eh7|`GSbTg#7<@fK nK!QLJLfBN84IDopS{VKVL7kaM1BeFM!a&#>E})INhDKZfkS8Az literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Pacific/Marquesas b/lib/pytz/zoneinfo/Pacific/Marquesas new file mode 100644 index 0000000000000000000000000000000000000000..c717c12251b45911c0c9d570d6bd240bc08b6b04 GIT binary patch literal 176 zcmWHE%1kq2zyM4@5fBCe7@M;J$e9x0!7n(3!3l_iffxZo2-^#Dg83)xZo5}AlS`vf`O5Vk(q&EP7P3w zVc`yt!nz3z91ILA4luCz_=Yg}1%)tp1&4s7!61YL3x7cM{09P%#UL7FIfw>103=P8 NBe;OB(ls>V0su~RF)siB literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Pacific/Niue b/lib/pytz/zoneinfo/Pacific/Niue new file mode 100644 index 0000000000000000000000000000000000000000..d772edf5b48a5b23b3b74041bb5ac9eb99b82184 GIT binary patch literal 226 zcmWHE%1kq2zyK^j5fBCeW*`Q!IU0b(9cR-7fs#`ej7-e`|0ir=U;vT}7+C)QkMjVL zsR0ZuKE5FgexV^i#Sjoe*b10+96z9X{sTdsd58~)23ZLb23gBMg1uZoM;ID%0RVIm BFzx^V literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Pacific/Norfolk b/lib/pytz/zoneinfo/Pacific/Norfolk new file mode 100644 index 0000000000000000000000000000000000000000..5ecf219f0a21fa71eb204f8b741d1f405c0005f5 GIT binary patch literal 289 zcmWHE%1kq2zyPd35fBCe7+bIb$hqVAqk)tER0ikPn-O9B&oUU9n3-4@80J=hRL*T+ z0J0bEVBlb2Sbu_%hk;?%1_llv-w*~r5OxFM;1G~XCpH8kV`01hfM>Hq)$ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Pacific/Noumea b/lib/pytz/zoneinfo/Pacific/Noumea new file mode 100644 index 0000000000000000000000000000000000000000..fcc44e6030d3678daf3eb094231792afc569645f GIT binary patch literal 314 zcmWHE%1kq2zyPd35fBCe4j=}xc^iPlq_0Ox_@37OdL^6bs;E*3+9SjWr nfdJ$n5EtYq5Djt|hz2!7n(3!3l_iffxZo2-^#Dg86^LLqK>4kQ0Jk9}`dtgh2qt=J)~OGyDgFIy193 bAd~AvK!QN?SbTg#pk^{KZ~+b1wd4W-zZ4Nm literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Pacific/Pitcairn b/lib/pytz/zoneinfo/Pacific/Pitcairn new file mode 100644 index 0000000000000000000000000000000000000000..d62c648b8e00c511357bc0fe2b3301cb0e7d3ea0 GIT binary patch literal 203 zcmWHE%1kq2zyQoZ5fBCeCLji}c^ZI(sf!Z_Bh&x?Z9EJN|NnPXFtGgp-`~K%;o}>^ s5a0*I!686ZAP_>>WSA{HKOkCwCjS3lXRh}J#0A;JK%7-vKwB-i065_!q5uE@ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Pacific/Pohnpei b/lib/pytz/zoneinfo/Pacific/Pohnpei new file mode 100644 index 0000000000000000000000000000000000000000..59bd764622fe5f1fc1f18084d14b33fa4cc6f7d0 GIT binary patch literal 153 zcmWHE%1kq2zyORu5fFv}5Sx{OVb%r)h5&!R5FjrEyGACU6bOR=jLrE2!e{so1a)Q# cYd}U%0T}`^kj2M01ZF4$0~g46T|+}I05doezyJUM literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Pacific/Ponape b/lib/pytz/zoneinfo/Pacific/Ponape new file mode 100644 index 0000000000000000000000000000000000000000..59bd764622fe5f1fc1f18084d14b33fa4cc6f7d0 GIT binary patch literal 153 zcmWHE%1kq2zyORu5fFv}5Sx{OVb%r)h5&!R5FjrEyGACU6bOR=jLrE2!e{so1a)Q# cYd}U%0T}`^kj2M01ZF4$0~g46T|+}I05doezyJUM literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Pacific/Port_Moresby b/lib/pytz/zoneinfo/Pacific/Port_Moresby new file mode 100644 index 0000000000000000000000000000000000000000..dffa4573a4576834edbe6700cff52b9c5021f4c8 GIT binary patch literal 172 zcmWHE%1kq2zyORu5fFv}5SxX8p=SXDLx6h-kQ0JkA2U!2gh2qt=KTTTGyDgFux(Ks qAiC)7k_ilqObiU2VA;+OP~$m$d_x!ld_e@*9*|ZpAXC@SfC~V?3>#no literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Pacific/Rarotonga b/lib/pytz/zoneinfo/Pacific/Rarotonga new file mode 100644 index 0000000000000000000000000000000000000000..2a2549024e40e783147c4a2d3c2f8b47d7f96d40 GIT binary patch literal 574 zcmb`@u`dHr9Ki9{YC<|l(KIi;t3IWvnACz842_Uta)X+PM5?hFqz2K=KOo+CHbYnc zK&OVqpCG2%j3&?T``AP*-sRor?sAvh?;GtMA1$aKDP1dz_Zh6h*2G>@X4r1Luv-xB#&fhg`@KTP$s})=54abwsf-T;@#%A5w zsm^0us)l;HH83-o4_&T5nDX1RuFQ2!<*BC=L&@I`=UPijId`(FQqG<3b3Sh-Mz*#i zRoi55>_qabUn}~1z);@w1HONM<78bd*8AKtFfueUI5IpEz$+1u5MGIa1o27~B#c+$ pAc2rbNGK#05)6rkghS#X0g;GENUy|1f_f#Y`nRfS30<8}e*&9qbie=r literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Pacific/Saipan b/lib/pytz/zoneinfo/Pacific/Saipan new file mode 100644 index 0000000000000000000000000000000000000000..4286e6bac870c1ff15c73b8958c15210a3879c58 GIT binary patch literal 225 zcmWHE%1kq2zyQoZ5fBCeCLji}c^iO)m2+GIBT%G$3y{Omvw(pGOmg`6hA_AXhcGy2 z00{^P!EQ8A14t7Xz}UP$paTDaK;+@kGa$OoOxFh_46>4ek%{^Le=`#hp9rfN7`Q+V J(KR&S0sur8B`N>_ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Pacific/Samoa b/lib/pytz/zoneinfo/Pacific/Samoa new file mode 100644 index 0000000000000000000000000000000000000000..1d7649ff71d07a158d69ab0d46a60f89c28683a3 GIT binary patch literal 272 zcmWHE%1kq2zyPd35fBCe79a+(1sZ_FMAqLNzb=JtkkU3VU}Rzj%5AJ*VEF$({s)Lm z4PamalN?}@$HzB>!7n(3!3l_iffxZo2-^#Dg83=BXrfq})xH-sU?(IW(;lp%x! V<9>j3fQ literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Pacific/Tarawa b/lib/pytz/zoneinfo/Pacific/Tarawa new file mode 100644 index 0000000000000000000000000000000000000000..1e8189ce66b42c4bc42a34875dde9e29cca752da GIT binary patch literal 153 zcmWHE%1kq2zyORu5fFv}5Sx{OVZ{Lk26s=N5FjrEyGACU6bOR=jLrE2!e{so1a)RY dXFx_TG64w!4P^204S^ZTz`zAEUf0lw3jjK)63PGo literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Pacific/Tongatapu b/lib/pytz/zoneinfo/Pacific/Tongatapu new file mode 100644 index 0000000000000000000000000000000000000000..71d899bb963718a00b1b6eaa5e19c42f2281a1c9 GIT binary patch literal 339 zcmWHE%1kq2zyNGO5fBCe4j=}xc^iPl$zrDo=D*!9SX{2XV8y}_U{$ok!TRy50Gps$ z4vb99EUZkdObiTbJ%CCX))p|ZFfeSp03we(U<8_jVEg!nFogJnaBv7nEh8g{1cDI4 z4&nqV13TykSO){ce;}wcW8VRyK@J27gB%H>K@J7cAjg7fpo2j)$k8Ag_P2!jBO&G7@mXZQ~Ub!HqZ cKqjw=00{!kWAX6~ftty{zy&m1*U*Ry0QLG33jhEB literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Pacific/Yap b/lib/pytz/zoneinfo/Pacific/Yap new file mode 100644 index 0000000000000000000000000000000000000000..28356bbf1b230a881bb8c2ec3c87b82a71958352 GIT binary patch literal 153 zcmWHE%1kq2zyORu5fFv}5Sx{Op=SXDgR@6y2#^vuo*5 zQ&YGh>qP!na`N(I`D{;+HoTD{pO=o5MrTh}WAR~gYHMlU>CN?7XO`T~J3Bc-n-=bu zb3^Ood~~pU(Y;)ny^m{iYk{^l{;;{%T3$icgzoatIgHzTg{JW zGfn&Y=gqacB=b||T+>k&X09iWGdBtoou7k4O^>L~ydKpvoq$*T&3(nA9a%fX3C!;A z^z`^Sy)qI^@Ax*SPsBy1Z?6U?$mf_7)N#P+cWIZ?|4gY9{J}&92$iAH>bjPbE ztmGvVzG00Sn44_|&7WxoT{zc%f4WB^l2YY?=md!j87vR__mjcCDLVMZNFDNBqz-NB zt5F|y)rabCX>@g~4lBE$F~y(i@U=%YHhaIuEohbztLr2_xn4$2FPBlFRgy5GKoUBO zWXymv9dmK9jQurV6OX3IxG(2uQq3Ywu20m5H%-v-l_B~_PJ~V<9xIQg`D#k`0C_C( zvZkhVN}BH{Ix*sFnRxYkndEa^CN-Rp$1lAplWX@%`pILOv86<&?AxVJtXwHmOE&7X z*_(BG?oypGI#)gE6Ln_L6rB}4RA=3c)j56AWX}1XI`_s9$vkvj=Qa7s{GEZapsr08 z7Iny?vIfao)Fg`wujrET@5+-4PHJ{|g)B|3)tqhzby=wDvX*VSymPg#II&Kjy6DlT zchA$@k5|bvFDL8Dni=x!@^H=DG)h)YOOn+&L9!+;OxC9UBF_aH$sgWF^V`3bf`FS^ z(DF)R6zl`a1z&=V`yBHHP(5ss<0b+Xm^*$=rE0AwY-#@Q^{4zbmV`kfTO6m+Q z9+S#Vs=eWO*<&y6{hiOAe}BsN*k8I&`K{mociWy>hZ?6MPd)PFyV|E8DF9Ldqy$I} zkRl*eK+1sB0VxDh38WNAEs$ck+G-%>Kt)D}$5< zsSQ#bS6dyVJV5N zA(2WVr9^6p6cec?Qck3vNI{W`A|*v?iWC*8s;ez4Qdd`7SfsK@X_49@#YL)%lozQl zQedRQNQsdeBSl84jFcIvv#TvMQfXIPYNXakv5{&cd(v9LMn+ks^WzC5UiH)zXwK_DYpoG)-bjE@Epe5nFIv%Y@RTq^e}hLoFrL z5wT1fv2P{zC9%ZTl&IyF+P9-1k~W z^kpMP>gj%7=JHNyW`@UoJ>$_#b9L@YGi#-vxyI}+T=&^9bG=?$-{734Z|q!L z-x3tAZ!MRjZ+*T^-*!Jk-;uM$%-*`n+_@x1-}S|GbN52i+>;P*?j796+!x)^+~3+m zKhQkDJlJxcc_=zlKU8o@&vk30=RVN%!a*8NA4_h9Zd>z9X+3B9-G_PJhm^a zZ=N&Fm3Ls5etc|Y^LXYU*NMnv*NNpz^^=Yw^JGe>>r_yj>(nPx^wT}|o8N?PGV@!U z)V{61S36U6gLbx5x_0)-T&>{dRPFq>9@>TV$;QRBvBss@afWMhcjJ5Kd&cGdEsQIX z4U8Y!`WRP(yo_tLo*CDD>T5SjSJQ4hEv?Qt{QUiYdZ>U!8^ z-N%h(y{mO({rt+Z!GRL;jg3XpKmDeBbIv*0F!_jVG-ihkh+QoM`xJ;E=SC46vRyQe zoF|(2E*4FL5=7HyiK4mB9NGLrKhfgpIN37WF5dbsTDDpdBSW^gly6UMBU`6dm+!>+ z$u`L?MBDZr(jMz0-mP<8wzEGI?LBg32fs_A!@X-F)P0W#&C3z*Us)!?vNA;Y(OoiP zW{T*Txm0!=4>9CFyIUNZjRC^39mh#avZN{k#_Q|eQjh*4cy31^(Q7#&zc zjA{2oj4f{y;~G_xbg*Gv80D}VR*OO&*}N_qbKU(cTx4p75lD=XZJqpj4R-&fb%%J7M; z!XMw&CzW6PneYgQt$VvDzVTB3va2_CK2eXGn;S1T-m8bVj(;$EMZf==?YVjwKV$$c z)d(U(h>RgJh{z}+!-$L{GLXnfB14IcB{GtP-H}rAw|X%8B}Cckzqx~ z)lv;CGP20fB4djTE;72v@FL@j3@|dn$PgoAj0`d|%9d)Fk#V+E1C5L{GSrr8tdYUC zRHKayx1}0yWWX)eh$BO8sm2@`bW1hr$go?gaYqK;QjI(^^vKvFgO7|pGW^K+TdDvc z5kNwK!~h8b5(Oj-NF0zrAdx^qfy4p{1`-V<9F{5`NI;N?AR$3wf&>ML3KAA1E=XXI z$RMFXVuJ(+i4GDTBtDiZK>W8LLOg_shZyk?BqT~mn2 zypVt)5ko?T#0&`<5;Y`jNZgRXA(2Buhr|vE9uhrE6+R?>NC1%tA|XU#hy)RdA`(U< zjz}PpNFt#`Vu=J3iKe9rClXIf6;LFiNJx>GB0)u>ii8!3D-u{FvPfu=*doD2qKkwV ziLa#!FcM))6=EdDNRW{zBVk73j075qG!kkg)=03CXd~f9;%%t{jzrv2g&c`F5_BZ$ zNZ66MBY{UEkAxnHJraB*`bhYZ_#+1Zas*haLjXAjkb?j@3XsD9IS!Bm0XY(oLjgG! zkb?m^8j!;QIUbM$0y!cq)ggf#6PD_rK#mIJut1Ir@q1s&U|{mQe*f2X-3|A7JI(EFMe^gs+E2KgTzh$+rtM?7zFKcN zO?rEzPw$k^ncb>v+4K6$eu+=~acwG)@vH;aljh(fM}lh`>hPpVhi1hbb#}?|e5*R? zAC%LvadXzPsLy-W)kW#OToz`ktE>*WPMuNV=xH5(@td1-zufL7sk_xgeZNp<9$w$& zabm?h1q!t3eN*x84U+IMtlXg??b%#1DZwe7>V#BOv@7OMFOiP0{Xe3#xI_j<#mzG+ zIr2%0x7LxG#yb13x1!Qs>-TYfUoFpmJF?o_*Uvue>E1Ny$co64$ePHa$g0S)$hyeF z$jTAz(#YD#;>haA^2qu~0i*&_0;z!%L8>5SkUB^qq*6p%3aNz@L#iR=ka|c#q#{z1 Zd8o;uC{h(Ei_}F5%l{v3Vp;$I literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/ROK b/lib/pytz/zoneinfo/ROK new file mode 100644 index 0000000000000000000000000000000000000000..fd91d5b729aaa78253bd439c36a103fe88ce33b2 GIT binary patch literal 571 zcmWHE%1kq2zyRz(5fBCeaUcewSaLHNy!y|vq4^OhU|9C1a zk?|~vx#GE?&x;rO1r;xzf5~{oA5`(`__d7J?@cP+EZ>pw_PkidyY^WbA504?6c#5; zP|Qo8pw#R%LD|o90s|uxGYcat5@cZmLI#F%4xp_JkLLg z28NymjDkMCAq?KZAq-y5AOeWJT|z)Qkw6Fue*FQ}_a6vAeg@GXe}ia{-$69U{~#I^ z1|S*~4j>v779biF9v~VNCLkIVE?^oMHXs@lK42OcMj#p#P9Pc-Rv;P_ULYD2W*{0A dZXjoY!VW}(!Vg4)!VpB$D;&9i;jC-P1ptE4#?=4- literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Singapore b/lib/pytz/zoneinfo/Singapore new file mode 100644 index 0000000000000000000000000000000000000000..9dd49cb7a72f1e0708e92fa53b7e0b4fa001553a GIT binary patch literal 428 zcmWHE%1kq2zyO>;5fBCe7+bml$Z2bCUA!yZZ^8ktCkdxEKTSA2F`na+NA8F3yL>yu zCVu5$WMXDvWn*RMU|>j$1?dKoEDQ`u1q?uubOlCU5D8*uR)EO52@Jwuwm1VrK?8%h zk8cP=FcAAX`hbbx5C$(G4t5U#nS};I2)msNs0HMH=^s$N|AC;+EO;@92KfayPQX*$YEzPEuVmXIt?4*#AvTik7X46wiX3p$+pK7i8qgMa+y}P{5?$AHj?)&4J zIlnAL{N+OQC%n1c`pxs5Uj0Ko-L<7IG{UTFKV)y8TjJZXa*fe2*=xR(wbyQpi}$@8 zUv2M7NHBMOdeeU8`g-5)_mYj4>dR)!tt0mFiCyOVtzP5Ai6-;pg(Jp?i!S+2EeJMF zZ%;Sdvi*(r{GPs#2CuZw487tz8(eI6_-{5lE@s&uU)gD%J5^+yZ?nzLJsa(BuI@L# zEj?g&m3KG4k4>{h{Q;lff<3ms_jzByr048z^Y@#9quwyOS3GM4rSJ3x-B>1qBOB|3 z&yDegI6-!(Y&AnW1{ysZ(#>9tn~d9PqD;ANiP3xBmgd_FMvFW0Ry2nX==Ao9FKUhm zIPC2kG`2Z%eXS9BzP35~*l9baF5Kw1VU37gwM6t^SSs!+nkMef&lLkQ?hykM6GU8e zq!<($BH{y6z42Xrt%M7~*5I}utszG*Swr`pw-OsZu!hwhvWC~ZW{p@{ZzYv(vXYD6 zc2X8^c1C7yb4C?bIjJ#TXLQOeXY|cEPFhr@mDV}lNxw1E8uQK|=iYM}Rz_pCm3gqA zHFjN`l~pIKab-c)eKpa}{W%w{?2@0H@o^`toNS+yvn9os8+csh4fsUnUH(E&2sk1q zw6@5JpYM>9ns&+jlZREo#!fYP_lxR*iVA6LSgWQy_>?MKI9E+gJ0v~%d1_k3WHo*4 zHZ}cPl9~~oD`%YPtsd%1kTdsPRkPYdWKn&XEZ+OIe7O2MIlH!1nzP&GBdfnsbF$u& zCB-LIY3x=xH?v8V^>|awi&1Lcmz!1j&BbbdOO<-G)1wyboTU~XTO=QQGE-GFPL+?B z$0}=Gs$4WBLoP0hkV}&L$)!2h<+3m#myZZn%bm|;Wv^?h(mpDyE_bLEuQ$q-tq0Yr zt?#PUO)sb?sv1=FGu6s3!2jR8x&{9B@(<`9^iN*_J%azsONgih{q+)2<)WJqLz4V@ z2oc?1^b{g(oL?B9h(3S({P*9V1Zjt!A=_&zb zLh6JR3aJ!QDx_9Ov0QbvILhU!>xC2yshF!S8B#N(Xh_wNvLSUt3dd17q;yE_km4cL zL(1o>>xUE&sUT89jv8_lk)w(nW#p(MMX$x%vbmOkBK1WIj8qsYF;Zis$ViouG9z_H3XN16DK%1S zS6ytR+DN%wb-j^-yXuM~B}ZzG6dkELQg)>7Na2ynBc(@bj}#xNK2m;HU4LW&T=fbd zOMt8avIxj3Aj^QP1F{gvN+3&ttOc?d$Z8NP?Z30Wm%nUHlt77AG@WU0jeQ^lX+&r=nm c$81;%vzAyea(L?Sq!A+%3zC!Er%@q40}aG73;+NC literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/UCT b/lib/pytz/zoneinfo/UCT new file mode 100644 index 0000000000000000000000000000000000000000..40147b9e8349c50b9b5459d34a8bf683c91b182f GIT binary patch literal 127 ucmWHE%1kq2zyORu5fFv}5Ss literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/US/Alaska b/lib/pytz/zoneinfo/US/Alaska new file mode 100644 index 0000000000000000000000000000000000000000..a4627cac0628381c6a64f20dfd9d93f4b03fcba0 GIT binary patch literal 2384 zcmciCZA{fw0LStFMdZQ_iWI^JvXctPqX!g(vb;PAhy=*(rbH@u+M{XsK zHixs(agMDvX=l2Xu0^-3wTU@~TMuKAx;2xfYdy`PxSj8*trs<4a{l}OKL^GO-u%A4 z+NNi+od28%^BZ2y5%Y3S*=Ih(hjId=i+*kytuK(jkCv#Zvs=8uH&;uiuh{E)d5H|^ zO!CfXEz+U&g@KvXi8?GlA>hso*X~z01tOv+bj0A8*Ym?geb<%YK;&09WK>`#51hE6L`R-{uxnT?^v{=zwtXiSXa6Y^)?5&YvERs~ zlv5&UYEmbA4vXaRuXV~qi%1>%K&M@PMWy$j&>3g8tEGEi((<(`mD#9dR$G=@RsPhHy;|nR&lb7Ym&m-yU&KS7dgQ}nUx<}DQ9ttDIq~R`aJ}mIap7&A z(D?`6RRxt7bz#FXRkZYNU0k$F75{WqmZbNIlFR31S=3HZc4k1XxmhR5U;j|A{k&6E z>^`X zwF8mz$?@}|?!Ybi)X;#~*f1hD^>>TS72oUn?vv{2^hn3-qY8v$GZP%mJvq#(Hb0aC@`Hsisb{#32{VQZk&n?lKGgrRQJR;g+CuMu( zY0(~x(;c~&RLA&lx^s?JokL@K$L(IVv;Td)>&tevd+!^1&so3PyRl2Z*q5tZAv0W| zGw<|-g}bNm2?pCb9mjk(JE6f~SBop$exvMfX4!ijUnf2o?AhlM_MWh|!sis`^FG0+ z%ID;l*6=CvIUBf?n@fJVxtZhQ!}y&=dXWWN&5DsFBWp$$jjS43 zHnMJH;mFF7r6X%c7LTkRSw6CUqyR_-kP=u;4XmaJNEMJWAay_rfm8x11yT#77)Ujc zav=3U3W8L`YD$9C#A=FyR0SyuQWvB!NM(@HAhkh?gH#784^khbKuCp<5+OCRnj#@p zLdt~H2`Lm(DWp_Lt&n0N)k4aJ)C(yXQZcJ38B#N=DH>8Wt0@~&H>7Y#<&e@LwL^-B zR1Ya1Qa_}CNCmB?gh&morie%tt)`4f9g#vJl|)L3)DkHsQca|sNIj8)A{9kSiqzC< zii%X#YRZb#)oKchR2C^MQd^|BNOh6&BK1WIj8qsYF;ZizDKb)Jt0^;5XR9eRQfZ{r zNUf1#Bh^OAjnvyQ`3?=48Fr_~9T7f_kK=r7A~_8e|2O0R+&uI>kJ6`AEX&BskZBc} KnHiZG((@OSrEiM> literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/US/Aleutian b/lib/pytz/zoneinfo/US/Aleutian new file mode 100644 index 0000000000000000000000000000000000000000..4f1ec71373359e29dbd7c52486583af9e5a964d7 GIT binary patch literal 2365 zcmciCZA{fw0LSsm8d3;=Iwk>ZM~@ZF3*4e|L1VW+uzq$ z*ZORh>tDxXe&OW|nU{O=E9P@{u-HGj{I`zDMn~S9d`jIq+35s6@=4c`YA5Jmo(%5E zbwWBf>d?k2e^^zH4lm61yS;JR{n`${CwfkMj$d^muV2&)zMu9loW3EW^tgY~7t`{t zV^dD_TjTQX!BfsXd)}4zwvIS4oA=7tvVJG7pi$nJ*5Jga^y$T(A}1kut4>&zvMk{j zM=$v?TP03r>7`%As{22S(Mj*!P|LbYW%9tZN~uYc%iDez59BS7E6S(DgR!$Rb>%6M z8t~|}$Ptk?^Rr(0Q@>a>aZaaScw1$ReyTIade!Rw*R>d~SKgLSWLB3{*`-4=r#eOD zrtXw^*`ewow@>CLCX4(ld9q+WL_B;ZUOw{eWwA!(=tsxTh{uNF^xAih3E4iU3-_N^ zMU@xz<4qr`;?-a3lHx&C^6NEOn(=`sy>MQZMI97nV`H*>woN=a^0i+7&8w=S_k`Z? z`E#mr%dmD1m#eBZyYLt9><#lyAO3*W_MTHJ5ATrlcsb>2$u_eCwL1dp|)w zJ#$`c**`CznHUrGO*3-q=$oRU;-+pqa6)a%xTLqY46CN73Ef<}TQ$!f)h(&Ds^#21 z-Rdq-t;d^m+m$8i`NIS91%JNS(Y;;1s1ihbO^NI{G%q^yQsvI}8POHzk-I9j*cDiz zyYnxp?(f{XCw@ZpOkCA_=8meDM$hV(r}nAd{^PpuWRvQzKcx2_c|rvRhXjR&-R=pG zaNofv5UAVcas>j-jw>_}=xPXxu-}FDmuP#B;p>VI1O_^SmfHK`^%XwXhHCTHn%D8U zip;&J*yk!-XD;i^#hf5MoWCx<{~lSS`3GLk8|LMnJjY+=1k72h|472V19kPt_>ciw z%?Obpq8%d_2FWp_1cr%>6B#HnQe>#eSdqb6&1jL~TFrQo0V5+uhK!6E88k9#WZ1~K zk%1#4M~04!9T_|_dSv*>_>lluO$4ka1V{{!ARtjd!hpm92?P=eBos(2kYFIuK*E8< z!)gM8M8s-Bg2V&~3KA70EJ$3Cz#x%9LW9Hx2@Vn+Bs@rbkN_bOvYHSfF+zfbL46P=JNEDGUB5_0li9`|!B@#;{m`F5{a3b+U0*XY`YC?*{)M|o? zMAd4-io_KOED~8Hv`B1`;3CmQ!i&Tg2{002s|hg@W2*@=5@o9iGZJSc&`6|_P$RKM zf{jGmWvU$-92S1N$L)!@gOAJg@elOz|BClN_5S-7Y0B;uChh4J*_m0HBE7=v&Gcr9 G$UgyoReR^2SkNXjVd1Qo4W~PKCY%?)FLS>C z>6#0TQZm1OlnVTQ5y8O32!zZ)$jJ2n|Fm}u4FCVHUckum|Nq;uKkB@H%gRct^ z2Lo|<2+(i{2qEkw9-vCFlYT(;{0D+K7M=|t8stO}4RR)k200Z(gPaSZK~4tIAZLSV apwmG#$oU`|;@ zhGvVQk_wrKh~{WcDN2$`xS>(#ZeX~vnF$&Y>LFfYH$oy#!8hx0#iLzBjZ z$lu1(zQe=(Y9C(vX!|X5jlW*@)it$zegnPY{iAB-z7$#Y;_oIa;-FqVy40*0P%0mL zFIH>4LT^kQta9e` z)L%w+Rhx#l(VP8Rsx9HQb?#j*mDl2|&Z{U_TWi;nt-A}=*QYCFTXvbrFWMv97Z#X; zp(V0oeYh&jcujW3W|*QelVw-nII}zERsBuFr_7!X6ZM|zv1+eZAHDZTq}ungOCM}= zMI9Vj*A!2`EQfmhVh#^HEG4b?n;$~A$PvjlrQS=WwEQjeqid5sS}@HVD_g9OfAXd( z%TLoky)spmXAaXRlH%0K^lti8R3~*hp_M)}DBM&;hRfN`zUG{tul(FpOr`y=RbD-5 zeyKPqzm^o4s@+9$e)|b^A-i0gWjocyg@yXk+|}xGa+ba_VuAWCcD}yaJxTo@I9^vj z@{+mMFj`-)lW4A2C(4a;QRe26DEVVgd*jM&FYdKoMwWPq$ASx{#*7P6b4qbJbv_Z6P|rjciZ}gd17Ii?*4%?J(3G_&y3gAld&sxuQAE0 zcVLE&=-p36T;3v)9VVH`;-wPh6>Fk$W=nKcuzC8!#rm0&J}PETn(nhXNW~5xru)9v zSoI6w&!M=yg;9Vj^T$|0%tdlaVY>643Q6$gi z&oT*P*2sv=;pVxRLOpUpni|z1OOH+*rp9>9*JC5Qsj*e#b)sJ@mAF4zCwY3Pq;>v! zLd7Zd{CiO{@jJJfl-gbkf&y-FfRhYPsE?EtfjHmio>+jhyfI-g^I;m^kUx+dc#0B*H$u2HB@?oZW49 zJpLl?-}hpb{j9SWt8e|1{p)UbLQU6lWKSZy64{r?&P4VmvOAIeiR@5hk0QGi*{6|SL5B0Ct_!^kd1_A#=Pk-h9_cQdk|9qo=r z_B67qk$sKqY-DdEyBpcx$PP#LII_!;eU9vOWUo8g-Hz;cN4w*ZJ&){qN4xKlosaB& zWcMTcA87#60i*?vwg*TPkS-u?K>C0*0_gwIHYq(>yX|d&12{u(msa%Aq`~cAkspH z9wJR-=pxcahCVvlMk1X=T8Z=$X(rN5q@4`?L>kJ_QKY2|Jw=+z&{ap@3|&Ur%+O~?+h~SPBduoWHPURP+eo{Sej^P> zI*zm)={eGLr0b5h?F@Z)w2f!zyrXSBL+_F1Bi%>ZkMtk80gyWYxdo7W0J#Z}yTH-j z2FQKjXm13DJHgT33JmuGax*a84an`la6ce71j8MH+!Dw=f!q|xU4h&d$bI2xZw%zl zaJ07ua&I`=n*+H!klTad{y=UJhC2kgMHuc84gWNN6N7u>!2hBeoH1+Jg)5+dF{xKZ`LIQ&PV}gSNf&+r; F{Ry|ZcJBZH literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/US/East-Indiana b/lib/pytz/zoneinfo/US/East-Indiana new file mode 100644 index 0000000000000000000000000000000000000000..4a92c06593d33d3969756f482e5d3d4b773984ef GIT binary patch literal 1675 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 SRPU&s5#C%J%>V!A zFflLy$p{9P|NpBp7&-p`FHT@!@$n5|@CXKCmk^+S2nZo;D?3mn*w!CVJ^z8AxBx^rPJ#dc literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/US/Indiana-Starke b/lib/pytz/zoneinfo/US/Indiana-Starke new file mode 100644 index 0000000000000000000000000000000000000000..cc785da97de0a5614613f9ba6e502d7dc5f525b5 GIT binary patch literal 2437 zcmd_rUrg0y9LMo52q6eaCWd5SS}_9&Y$$E8wFP5`#6Nk!KM+Q0h-E%1kf_n))+8^Q zrA@&a>LQnGhSpSU3r(rDnlm&BQVB4LS;(VtK}zTJydN*KKlgpv@4U_qC|931-bH24 zPm{k~i2a0z+hrf#$7uUfzb{Ge{`7aXXLF?9yX%7b=5?PwJ9$u@EeSQ}^Uq7$#M9>c zw4>54jiw{IPCB~YGC%kZ>kB8=nv0z~^`-r9s?O#r{o|H3s;jSGmp;5`X5Z>v#V+jV%yK@)MJLPs9kW=8MdCQ)_e=I$-!GN!7) z+*4K{V;82IXivI~dpy?MJ0(_PCe2XeM-EGD;CK~#BSzoXeM?Pfy{Yg2{E~`0bWz9e zJ+3BJj+O^D?NyWVugl~WpP2{K&dEc$yUoMVhb7^WO(wzDs;7i4FHdg6bM^e=6qC!1q#~3v?BU3+JF{tKE zh}YiyHsu`-&;@Bts^ChTEQtHgEcilXq3?)U)X*b^owcUuwHA4%dA%uKx=$9@7nx`C zPU@1HD)rpd2EC-TP%Vwvte53vs%8Dlb!kGpDm|U6%R&NF*?}azqW7|TVTVUvJmWVj zD--3V#%{B!AVSpEQ)YGAfUH^dzF8aHD&@0lOu4ULSEe_p%FZ)-UCd^+uKAFz8d|Q_ z*KgMw+H=*$>I(fzQj%7D}XDFjjpq!dUk zkYXU!KvxdlP!G-)grg!zNjPeP6a}dYQWm5xPFonHGEQ3>j@lr_L8^n42dNKIAdU(l zCE}RQI(-x4Uf=*jPjv69GM5>6C5ve0mNTiZTDUn(t#YC#9hsqsHoGHl%u9dQ8}uLl$E2dNMSiDiFS(=vDTtKMt`{2xIWL%`mewGuXVT2=W)C3?*6&g zGu#;6Q11QXk!auH@OauDUT1E%SI-AItM*sz^*(vZ$obqqxb5iv6`N<|TCtppSG-{^BC#z|{`(*m}qblp%FLJ}lvnu=W zXL93#!|JAX&)od@9+lJZgUQ`Epl|V?HZvAHt8dMC#pD%i)_D^jO1`f_=MTRu1wYT$ zGY5A_;ZRr=^+l!l=qy#zwNOg;WU8`A#FTIPQ&j|l=C-BZDSzHfGpl@1%}z=+mD9h` zl_S5IIpgo^xo6IqdEfTws)1kS_V>2yJ9d9AcRs&fSGOIJ`Q6*pUG;mVrfHq3Eoqm! z+8R|i)^7quYjt2~mkFlM*TJK$X2EE#UiiXJS@dPK3T(`qd#>(wm^}sVb4B z509v2S?LmP_*jL<$7H$xHMRW5$!10N8NK54C9`s(UpF2aGOLDn>DArG%zcBcdQHuY`qeSx3Rpiqui6)Mz=$qNHapVit(mU6* zp1q_WXwNba4h-qGh6y9PkLic}+H7jur#EMuGF$39^_Gc?(q7rC+J{d{M`nlW7(6JQ zmmAe1eLeE%g(|hRD*%BxWDi4zu3!V_ZfaQ7GpQac98ub z8*8Z^-75-67jU_J?c`*&(t;WRJ)ukzFF& zMD~en6xk`VRb;PDyIEwn$aazaA{$0_jBFX%GqP!9*T}Y!eIpx3cJ8!WNA~Wtn@4t! zY#-S_(g36bNDGi2AWcBJfV2VW1JVej6G$tNUN~(tkZvIDK>C3+1nCIU5~L?cQ;@D8 zZ9)2iGzRI6)3yfbjng&<>5kL32k8&eAf!V`i;x~6O+vbav88`R6X~bZHWcY7(o&?SNK=unB5lS0YhQgfzJ43s U!cawVd2wlBsI08Gthm(o7dPd97XSbN literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/US/Mountain b/lib/pytz/zoneinfo/US/Mountain new file mode 100644 index 0000000000000000000000000000000000000000..7fc669171f88e8e1fb0c1483bb83e746e5f1c779 GIT binary patch literal 2453 zcmdtjeN5F=9LMnkqQH%ZQ;8vb8FWLuL3o9$5k`URY6U)Y(?UE3#rVT< zR*YFDf|Ayni4SWwHq3b&mt~`eO%k}b^FAy8>5u+w>&t$;e%!&IpEvGR z-Zfd`A2->2!ozi$hxe(9ANJ?zJ^i7o`=tck^V$z;Z>?YNYndW?3oq&3_WkO^wg^2m z=l6!8>R53#-KR(Ab%;NrJ^EUhPh1;)Mvi^&5##48Hesdb*xmIy=m9w`H%Z)*G*8CPE>zRQ9WpLBQN{f_SI2)D zt`dgA^o&zKs+or`>sx!ys9C-l^0w`V)a(@jIcM!h;`Zz>FGv zB*zAkG<-@YUv`T-2lnZda}6rB>qVV*v`nQp)#;2^7O2d+7MZninwsxiBNvp7s_euE ze9|x>fuGjy37}>mM5fY_lmETdpuf~XP;K(-=s*-%&&xJFiNiU4~kX2Bl3~q z1ER8JNIp8yCaP+V$<*7-ulRIbVydb;yRY*i1vPNW)$SRR#BI`sJimcRXmWr$uS*+Ep7FjN`USz?@imhhJ$eNKwBdbQc zY+hJ5XBG~uoMY+8+L6U0t4EfPtlw%1fKBc$bvVj{)Q6)$NQJDXL`aRS zrbtMYILd_72`Lm(DWp_Lt&n0N)k4aJ)C(yXQZb}tNX@LKXh_vK%7)a9qi{&&I7)}q zj-z-;^^o!*^+O7XRM2Wlh}6((iilLvYRZVzk)x1EC6Q7hwM2@ER1+yDQct9yNJXut zq)1Jzrl?3&t){FVrON6L@X jUtDkg|1SRy^Iu`1`R|b8nxB@HmXYGh%uLHn%W(V&DI1f# literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/US/Pacific b/lib/pytz/zoneinfo/US/Pacific new file mode 100644 index 0000000000000000000000000000000000000000..1fa9149f9a9207a9b9838141088663ebe669f250 GIT binary patch literal 2845 zcmd_reN5F=9LMpCq6kW!Oq2-iq$YxjfTAdt`82>pRIVgu_>jOb4HZHyLt6A;%{b(I z=!w3PYq>IX%w|!9Zn;{s5}NZVB1>f|sc4Bx_jcar-~Qs*Kc?5=Y4;?3kvcQ zJpVY|>^EG_XZG^mx6D4O-cOZx>%xq@7$ZC1ykWlG6d{d+udixcGE^P&73$-Dc59yMJf5rn`Z`tl4y0)R2QkXCBU%T% z+)H&?*Hd?0JDf{vy-plap$(OC z$EP)__wJ9idZSX^xyk50>xO2QNRVh9q9r_s{rT4GlZ0qhhL5 zl&?*qL&{Wi^Y;>SVW}EkzfVRqm70-NTO_u2u^CnRl*DbBV&d~(*9k>K%;=P2Jtnie zNsP+UV-s4J>jks+A=v`pFufD$I)3t14R5>ajibn!-b>D6CBvXY5kN z{$MFdYA_|u7iC>|wOLnxMAmndo2RR43U!RgtnHbwvt`R2C^MQd^|BNOh6& zBK1WI?6eg|O6;^XMv9D787VVTXQa?brIAu2wML4KR2wNbQg5W-NX3zoJ8jL8q9avD z%8t|>DLhhnr1VJbk>VrON6L@XA6WpWT>)eXoOTV6MR3|xK$Zbn2V^0Tl|YsPSqo$_ zkkvqz16dDbL7a9)kR@^2H9;1|X;%eV7GzzJg+W#ZSsG+*ki|h(2U#9ueUJr0RtQ-l zr(Gjtk(_pwkY#e(bwU;jSt(?xkhMY<3t25>xsdfj77ST2WXYU%&5%WN+EqiA&1u&S xSvX|nkflS`4p}^8^^oQBxUKu&O<#yz#3Z|nBhp95Cd9^#NRN+?jgO5B`5OyZo4^17 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/US/Pacific-New b/lib/pytz/zoneinfo/US/Pacific-New new file mode 100644 index 0000000000000000000000000000000000000000..1fa9149f9a9207a9b9838141088663ebe669f250 GIT binary patch literal 2845 zcmd_reN5F=9LMpCq6kW!Oq2-iq$YxjfTAdt`82>pRIVgu_>jOb4HZHyLt6A;%{b(I z=!w3PYq>IX%w|!9Zn;{s5}NZVB1>f|sc4Bx_jcar-~Qs*Kc?5=Y4;?3kvcQ zJpVY|>^EG_XZG^mx6D4O-cOZx>%xq@7$ZC1ykWlG6d{d+udixcGE^P&73$-Dc59yMJf5rn`Z`tl4y0)R2QkXCBU%T% z+)H&?*Hd?0JDf{vy-plap$(OC z$EP)__wJ9idZSX^xyk50>xO2QNRVh9q9r_s{rT4GlZ0qhhL5 zl&?*qL&{Wi^Y;>SVW}EkzfVRqm70-NTO_u2u^CnRl*DbBV&d~(*9k>K%;=P2Jtnie zNsP+UV-s4J>jks+A=v`pFufD$I)3t14R5>ajibn!-b>D6CBvXY5kN z{$MFdYA_|u7iC>|wOLnxMAmndo2RR43U!RgtnHbwvt`R2C^MQd^|BNOh6& zBK1WI?6eg|O6;^XMv9D787VVTXQa?brIAu2wML4KR2wNbQg5W-NX3zoJ8jL8q9avD z%8t|>DLhhnr1VJbk>VrON6L@XA6WpWT>)eXoOTV6MR3|xK$Zbn2V^0Tl|YsPSqo$_ zkkvqz16dDbL7a9)kR@^2H9;1|X;%eV7GzzJg+W#ZSsG+*ki|h(2U#9ueUJr0RtQ-l zr(Gjtk(_pwkY#e(bwU;jSt(?xkhMY<3t25>xsdfj77ST2WXYU%&5%WN+EqiA&1u&S xSvX|nkflS`4p}^8^^oQBxUKu&O<#yz#3Z|nBhp95Cd9^#NRN+?jgO5B`5OyZo4^17 literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/US/Samoa b/lib/pytz/zoneinfo/US/Samoa new file mode 100644 index 0000000000000000000000000000000000000000..1d7649ff71d07a158d69ab0d46a60f89c28683a3 GIT binary patch literal 272 zcmWHE%1kq2zyPd35fBCe79a+(1sZ_FMAqLNzb=JtkkU3VU}Rzj%5AJ*VEF$({s)Lm z4PamalN?}@$HzB>!7n(3!3l_iffxZo2-^#Dg8i8I~Y~d@NNi$!QmX9*6QKy_y%$bs$3am&7cBw}f@ooZ9D*p79_M>Avs&~AbcZva>vaYfet*7(mgYk7 z*A=UuaJaVX!+oY-zx5ojjb1MQ(B5mGp6UHm+H$31&rILT)~S9GAJy*|bOvIN1OsJ- z!vk@LhX=|+gF`lV-JL*EV_eqIczoidGa+)KE@5_AF!9~e@uZ1L=Zdil9$H%VorSX5^8oXRq1$*hlwGW%_UKd0@X zKj+1)v_F0?*W8|zxq)Xg@8Scww&RvuccM?`H+9K^{UfUIShp%F>s9M_wyO5o+P^b=JR8c;RQuc>WsI#un>bILPzReH}KRX&fk(G(gI8Ws{3 zZVrzKH%FSayrL|NUePg&epvjAKkt`B36Wl^{}H^02~lvy6shk|a$nJHiV?z|FO~~Y z;xxqxQB`M35+Ws4Sbu+R&o`z0d|u-G^?APQ@%n_9Q?HMUxB6OrT>5y0+wIdwKU}y> zKdyzJ=Wl%f?rMkrsL|Eu`R{zw*Y3N)QKU1ZHKaE~-5k;#(jL;Ep>7cA&``IC^k}G? zM7l)UP5(kRlYp>7rF6=@df7HJph7ik#j7-<>l8EG2n8fhEp8)+Qr9BJK9_l`7= zbZ@BJNBT!Lfb0O-0sU$bOIwAv;30gzO2~ z6tXL1TgbkUjUhWjwubBt*&MPvL%ls@e};O4$PSS$B6~zOiR@DRkHfU+Ip-Bwz5^ln BkBa~R literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/WET b/lib/pytz/zoneinfo/WET new file mode 100644 index 0000000000000000000000000000000000000000..444a1933d72525ab3045980eab2fbf79266cf158 GIT binary patch literal 1873 zcmd7SYfO~|9LMoPjFl|ukH|&2RYYK&;BXBHyo3jafr=afFGLD*NunTP;3d{#&J}aN zHkNb7#Kl;1ioU>l0qC;JXc}v4tWhyHU1gU!H+6IwThI4->nmT?b9VN5cDD2G|NRBF zw>D*Z?s*A|B_4Ro9&PKi$96W@8R_ag5S~VM`r@nYlPmlj8@5rxuX7GEZ^(L{k(A6ln1 z$K$lNDM{=4^X>VP5EVDZ+WO>QJ$pS4{Ff79+YpIAfP6*VRvvpq#)YI^9rn&YMB z8%Nc$*s0d(UcEdY(B6-BsO`%Rd*yJE+DEJG)s{rPb|}X>DhsW%DcWAoNU$#dU-m}0 z$GX!a)qU%l^@J^`=bO*1_vW1Tog20NGZQ*+?2-b<#lcKoUVRK~h0-L6SkTLDE6;K@vhT zLQ+CTSl^j~E| Bn416q literal 0 HcmV?d00001 diff --git a/lib/pytz/zoneinfo/Zulu b/lib/pytz/zoneinfo/Zulu new file mode 100644 index 0000000000000000000000000000000000000000..c3b97f1a199421d6d9625b280316d99b85a4a4e8 GIT binary patch literal 127 ucmWHE%1kq2zyORu5fFv}5SstkJ=? z!Q9a_a=|1E(F`4%HgPS*S5s0GdzBW_I;Z#h-geP=(N%xve?Dg%818=GCn+U!T5r!k zp2qfnczG_{m+x&}v>!$5LS@CrKdJW?d1U3=U#eB{j*B;NN9u6QjyHo{+MdLuyyRuVz=}cJ;}*W9HM6Z*=*-GP8ThR$Z~? z9kVBEnckcCg83{lTklJoYCeyiq$|DiWPk7=eIPPb4%AOn2ZQ3|;PHX#i&u;s>iUZu zQa5zfoO9-I+$nt|xzZf%yjvfODK^JFEA@$x#pZ-wpuh92m+vdm^~vf2Ikn+sRb4(q zP8XypUF4NBnGdS7xzX}NLN|3TwUwNo7^Q3CBh8QfTj~p8!RBJyYx+`?tLD;ghxJc2 zRp#>19lEx%)LhwJrG73sBxXgay1Hb$T${gK)nygRFH`5LUlViWw;_+H-=kBczT30< zkKkCj-fXhIUO&m)xG-4%d3=!h>%bk_x3iP+ulH-ua-V6Ce?~WaR+~oRQvvEPX*^b| zCUK{wY0tf?>8tJKmX>SOEt{8_K(k0S*9)b^iB&qNB13L1%hSOd7MPZAP1CIk(#>si zAJVNe<4v2%-E~MpxM@4Eg}yz!xoOuWT(xgjYdSP+t~y)`l#XX=Ri|$+%N={ZR-s$I zk~>#!QJu3r=B}5PsxHZAP1orq`tF#0=AMyn=zBxfnXvA&beQim2@g!x;ni!U`=$Q6 zM|r+PR3)j%qD+a})=x#}j*^~B+o@g|8K(C$*HxeR1k-o?Nfi^;!}RN2uKG6(G6On( zrw7#hYzE%=L=UR`)(rl>NXM33k^6SNsPA9$jSP9`aUGYnRfguxR}UmElVNF(so~Mt zGGh2JHKMNA#79om@l}gWLeNm1ux+LpS=&{QdbdDEAB|Jqc{60pjxH*3idV)K2B>kd z(K3EcjhfJ@l_Vt}P)RrHf!UjW>RRSp0w|(nd~dpDQl|CBh`!bl)O^&X!%T? znzr0bEgGYhce^~6KSMnpStw6rcvV_Zj->ozrL!U%(GouMi>H9_XT=}`?E+~mJT0XO*zH~R_6OYt*7Fr~ zUy+SPb{5%MWN(qpMRph2USxlf4R+ccMz+{#_ZZn^WS5a`M)n!mXk@36tw#15*=%ID zk?ltI8`*HD-Em~gop#TWO-FX!X}2BOcVy#{okzAF*?VO3k==LN?ML<>X#mmzqyMS(m14ZNb8W^Aedx|s_=_=Azq_0S0ka;NP%(sZZoI?{He??~g3 z&LgcydXF?8=|0kar2ohb;IwxDatk=^J%HQ1axWk^19CSY zw*zuNAU6bZMZQ``|338(#cM5W=AomJ#vmkd1a=UnL`V#q{9xs9Rrirn)O@y~k SRPU&s5#C bytes: ... diff --git a/lib/tzlocal/__init__.py b/lib/tzlocal/__init__.py new file mode 100644 index 00000000..df7a66b9 --- /dev/null +++ b/lib/tzlocal/__init__.py @@ -0,0 +1,7 @@ +import sys +if sys.platform == 'win32': + from tzlocal.win32 import get_localzone, reload_localzone +elif 'darwin' in sys.platform: + from tzlocal.darwin import get_localzone, reload_localzone +else: + from tzlocal.unix import get_localzone, reload_localzone diff --git a/lib/tzlocal/darwin.py b/lib/tzlocal/darwin.py new file mode 100644 index 00000000..bedbbd10 --- /dev/null +++ b/lib/tzlocal/darwin.py @@ -0,0 +1,37 @@ +from __future__ import with_statement +import os +import pytz +import subprocess + +_cache_tz = None + + +def _get_localzone(): + pipe = subprocess.Popen( + "systemsetup -gettimezone", + shell=True, + stderr=subprocess.PIPE, + stdout=subprocess.PIPE + ) + tzname = pipe.stdout.read().replace(b'Time Zone: ', b'').strip() + + if not tzname or tzname not in pytz.all_timezones_set: + # link will be something like /usr/share/zoneinfo/America/Los_Angeles. + link = os.readlink("/etc/localtime") + tzname = link[link.rfind("zoneinfo/") + 9:] + return pytz.timezone(tzname) + + +def get_localzone(): + """Get the computers configured local timezone, if any.""" + global _cache_tz + if _cache_tz is None: + _cache_tz = _get_localzone() + return _cache_tz + + +def reload_localzone(): + """Reload the cached localzone. You need to call this if the timezone has changed.""" + global _cache_tz + _cache_tz = _get_localzone() + return _cache_tz diff --git a/lib/tzlocal/tests.py b/lib/tzlocal/tests.py new file mode 100644 index 00000000..6f70f14b --- /dev/null +++ b/lib/tzlocal/tests.py @@ -0,0 +1,73 @@ +import sys +import os +from datetime import datetime +import unittest +import pytz +import tzlocal.unix + +class TzLocalTests(unittest.TestCase): + def setUp(self): + if 'TZ' in os.environ: + del os.environ['TZ'] + + def test_env(self): + tz_harare = tzlocal.unix._tz_from_env(':Africa/Harare') + self.assertEqual(tz_harare.zone, 'Africa/Harare') + + # Some Unices allow this as well, so we must allow it: + tz_harare = tzlocal.unix._tz_from_env('Africa/Harare') + self.assertEqual(tz_harare.zone, 'Africa/Harare') + + local_path = os.path.split(__file__)[0] + tz_local = tzlocal.unix._tz_from_env(':' + os.path.join(local_path, 'test_data', 'Harare')) + self.assertEqual(tz_local.zone, 'local') + # Make sure the local timezone is the same as the Harare one above. + # We test this with a past date, so that we don't run into future changes + # of the Harare timezone. + dt = datetime(2012, 1, 1, 5) + self.assertEqual(tz_harare.localize(dt), tz_local.localize(dt)) + + # Non-zoneinfo timezones are not supported in the TZ environment. + self.assertRaises(pytz.UnknownTimeZoneError, tzlocal.unix._tz_from_env, 'GMT+03:00') + + def test_timezone(self): + # Most versions of Ubuntu + local_path = os.path.split(__file__)[0] + tz = tzlocal.unix._get_localzone(_root=os.path.join(local_path, 'test_data', 'timezone')) + self.assertEqual(tz.zone, 'Africa/Harare') + + def test_zone_setting(self): + # A ZONE setting in /etc/sysconfig/clock, f ex CentOS + local_path = os.path.split(__file__)[0] + tz = tzlocal.unix._get_localzone(_root=os.path.join(local_path, 'test_data', 'zone_setting')) + self.assertEqual(tz.zone, 'Africa/Harare') + + def test_timezone_setting(self): + # A ZONE setting in /etc/conf.d/clock, f ex Gentoo + local_path = os.path.split(__file__)[0] + tz = tzlocal.unix._get_localzone(_root=os.path.join(local_path, 'test_data', 'timezone_setting')) + self.assertEqual(tz.zone, 'Africa/Harare') + + def test_symlink_localtime(self): + # A ZONE setting in the target path of a symbolic linked localtime, f ex systemd distributions + local_path = os.path.split(__file__)[0] + tz = tzlocal.unix._get_localzone(_root=os.path.join(local_path, 'test_data', 'symlink_localtime')) + self.assertEqual(tz.zone, 'Africa/Harare') + + def test_only_localtime(self): + local_path = os.path.split(__file__)[0] + tz = tzlocal.unix._get_localzone(_root=os.path.join(local_path, 'test_data', 'localtime')) + self.assertEqual(tz.zone, 'local') + dt = datetime(2012, 1, 1, 5) + self.assertEqual(pytz.timezone('Africa/Harare').localize(dt), tz.localize(dt)) + +if sys.platform == 'win32': + + import tzlocal.win32 + class TzWin32Tests(unittest.TestCase): + + def test_win32(self): + tzlocal.win32.get_localzone() + +if __name__ == '__main__': + unittest.main() diff --git a/lib/tzlocal/unix.py b/lib/tzlocal/unix.py new file mode 100644 index 00000000..f1eff1e2 --- /dev/null +++ b/lib/tzlocal/unix.py @@ -0,0 +1,129 @@ +from __future__ import with_statement +import os +import re +import pytz + +_cache_tz = None + +def _tz_from_env(tzenv): + if tzenv[0] == ':': + tzenv = tzenv[1:] + + # TZ specifies a file + if os.path.exists(tzenv): + with open(tzenv, 'rb') as tzfile: + return pytz.tzfile.build_tzinfo('local', tzfile) + + # TZ specifies a zoneinfo zone. + try: + tz = pytz.timezone(tzenv) + # That worked, so we return this: + return tz + except pytz.UnknownTimeZoneError: + raise pytz.UnknownTimeZoneError( + "tzlocal() does not support non-zoneinfo timezones like %s. \n" + "Please use a timezone in the form of Continent/City") + +def _get_localzone(_root='/'): + """Tries to find the local timezone configuration. + + This method prefers finding the timezone name and passing that to pytz, + over passing in the localtime file, as in the later case the zoneinfo + name is unknown. + + The parameter _root makes the function look for files like /etc/localtime + beneath the _root directory. This is primarily used by the tests. + In normal usage you call the function without parameters.""" + + tzenv = os.environ.get('TZ') + if tzenv: + try: + return _tz_from_env(tzenv) + except pytz.UnknownTimeZoneError: + pass + + # Now look for distribution specific configuration files + # that contain the timezone name. + tzpath = os.path.join(_root, 'etc/timezone') + if os.path.exists(tzpath): + with open(tzpath, 'rb') as tzfile: + data = tzfile.read() + + # Issue #3 was that /etc/timezone was a zoneinfo file. + # That's a misconfiguration, but we need to handle it gracefully: + if data[:5] != 'TZif2': + etctz = data.strip().decode() + # Get rid of host definitions and comments: + if ' ' in etctz: + etctz, dummy = etctz.split(' ', 1) + if '#' in etctz: + etctz, dummy = etctz.split('#', 1) + return pytz.timezone(etctz.replace(' ', '_')) + + # CentOS has a ZONE setting in /etc/sysconfig/clock, + # OpenSUSE has a TIMEZONE setting in /etc/sysconfig/clock and + # Gentoo has a TIMEZONE setting in /etc/conf.d/clock + # We look through these files for a timezone: + + zone_re = re.compile('\s*ZONE\s*=\s*\"') + timezone_re = re.compile('\s*TIMEZONE\s*=\s*\"') + end_re = re.compile('\"') + + for filename in ('etc/sysconfig/clock', 'etc/conf.d/clock'): + tzpath = os.path.join(_root, filename) + if not os.path.exists(tzpath): + continue + with open(tzpath, 'rt') as tzfile: + data = tzfile.readlines() + + for line in data: + # Look for the ZONE= setting. + match = zone_re.match(line) + if match is None: + # No ZONE= setting. Look for the TIMEZONE= setting. + match = timezone_re.match(line) + if match is not None: + # Some setting existed + line = line[match.end():] + etctz = line[:end_re.search(line).start()] + + # We found a timezone + return pytz.timezone(etctz.replace(' ', '_')) + + # systemd distributions use symlinks that include the zone name, + # see manpage of localtime(5) and timedatectl(1) + tzpath = os.path.join(_root, 'etc/localtime') + if os.path.exists(tzpath) and os.path.islink(tzpath): + tzpath = os.path.realpath(tzpath) + start = tzpath.find("/")+1 + while start is not 0: + tzpath = tzpath[start:] + try: + return pytz.timezone(tzpath) + except pytz.UnknownTimeZoneError: + pass + start = tzpath.find("/")+1 + + # No explicit setting existed. Use localtime + for filename in ('etc/localtime', 'usr/local/etc/localtime'): + tzpath = os.path.join(_root, filename) + + if not os.path.exists(tzpath): + continue + with open(tzpath, 'rb') as tzfile: + return pytz.tzfile.build_tzinfo('local', tzfile) + + raise pytz.UnknownTimeZoneError('Can not find any timezone configuration') + +def get_localzone(): + """Get the computers configured local timezone, if any.""" + global _cache_tz + if _cache_tz is None: + _cache_tz = _get_localzone() + return _cache_tz + +def reload_localzone(): + """Reload the cached localzone. You need to call this if the timezone has changed.""" + global _cache_tz + _cache_tz = _get_localzone() + return _cache_tz diff --git a/lib/tzlocal/win32.py b/lib/tzlocal/win32.py new file mode 100644 index 00000000..63445cd7 --- /dev/null +++ b/lib/tzlocal/win32.py @@ -0,0 +1,93 @@ +try: + import _winreg as winreg +except ImportError: + import winreg + +from tzlocal.windows_tz import win_tz +import pytz + +_cache_tz = None + +def valuestodict(key): + """Convert a registry key's values to a dictionary.""" + dict = {} + size = winreg.QueryInfoKey(key)[1] + for i in range(size): + data = winreg.EnumValue(key, i) + dict[data[0]] = data[1] + return dict + +def get_localzone_name(): + # Windows is special. It has unique time zone names (in several + # meanings of the word) available, but unfortunately, they can be + # translated to the language of the operating system, so we need to + # do a backwards lookup, by going through all time zones and see which + # one matches. + handle = winreg.ConnectRegistry(None, winreg.HKEY_LOCAL_MACHINE) + + TZLOCALKEYNAME = r"SYSTEM\CurrentControlSet\Control\TimeZoneInformation" + localtz = winreg.OpenKey(handle, TZLOCALKEYNAME) + keyvalues = valuestodict(localtz) + localtz.Close() + if 'TimeZoneKeyName' in keyvalues: + # Windows 7 (and Vista?) + + # For some reason this returns a string with loads of NUL bytes at + # least on some systems. I don't know if this is a bug somewhere, I + # just work around it. + tzkeyname = keyvalues['TimeZoneKeyName'].split('\x00', 1)[0] + else: + # Windows 2000 or XP + + # This is the localized name: + tzwin = keyvalues['StandardName'] + + # Open the list of timezones to look up the real name: + TZKEYNAME = r"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones" + tzkey = winreg.OpenKey(handle, TZKEYNAME) + + # Now, match this value to Time Zone information + tzkeyname = None + for i in range(winreg.QueryInfoKey(tzkey)[0]): + subkey = winreg.EnumKey(tzkey, i) + sub = winreg.OpenKey(tzkey, subkey) + data = valuestodict(sub) + sub.Close() + try: + if data['Std'] == tzwin: + tzkeyname = subkey + break + except KeyError: + # This timezone didn't have proper configuration. + # Ignore it. + pass + + tzkey.Close() + handle.Close() + + if tzkeyname is None: + raise LookupError('Can not find Windows timezone configuration') + + timezone = win_tz.get(tzkeyname) + if timezone is None: + # Nope, that didn't work. Try adding "Standard Time", + # it seems to work a lot of times: + timezone = win_tz.get(tzkeyname + " Standard Time") + + # Return what we have. + if timezone is None: + raise pytz.UnknownTimeZoneError('Can not find timezone ' + tzkeyname) + + return timezone + +def get_localzone(): + """Returns the zoneinfo-based tzinfo object that matches the Windows-configured timezone.""" + global _cache_tz + if _cache_tz is None: + _cache_tz = pytz.timezone(get_localzone_name()) + return _cache_tz + +def reload_localzone(): + """Reload the cached localzone. You need to call this if the timezone has changed.""" + global _cache_tz + _cache_tz = pytz.timezone(get_localzone_name()) diff --git a/lib/tzlocal/windows_tz.py b/lib/tzlocal/windows_tz.py new file mode 100644 index 00000000..f8afca20 --- /dev/null +++ b/lib/tzlocal/windows_tz.py @@ -0,0 +1,548 @@ +# This file is autogenerated by the get_windows_info.py script +# Do not edit. +win_tz = {'AUS Central Standard Time': 'Australia/Darwin', + 'AUS Eastern Standard Time': 'Australia/Sydney', + 'Afghanistan Standard Time': 'Asia/Kabul', + 'Alaskan Standard Time': 'America/Anchorage', + 'Arab Standard Time': 'Asia/Riyadh', + 'Arabian Standard Time': 'Asia/Dubai', + 'Arabic Standard Time': 'Asia/Baghdad', + 'Argentina Standard Time': 'America/Buenos_Aires', + 'Atlantic Standard Time': 'America/Halifax', + 'Azerbaijan Standard Time': 'Asia/Baku', + 'Azores Standard Time': 'Atlantic/Azores', + 'Bahia Standard Time': 'America/Bahia', + 'Bangladesh Standard Time': 'Asia/Dhaka', + 'Belarus Standard Time': 'Europe/Minsk', + 'Canada Central Standard Time': 'America/Regina', + 'Cape Verde Standard Time': 'Atlantic/Cape_Verde', + 'Caucasus Standard Time': 'Asia/Yerevan', + 'Cen. Australia Standard Time': 'Australia/Adelaide', + 'Central America Standard Time': 'America/Guatemala', + 'Central Asia Standard Time': 'Asia/Almaty', + 'Central Brazilian Standard Time': 'America/Cuiaba', + 'Central Europe Standard Time': 'Europe/Budapest', + 'Central European Standard Time': 'Europe/Warsaw', + 'Central Pacific Standard Time': 'Pacific/Guadalcanal', + 'Central Standard Time': 'America/Chicago', + 'Central Standard Time (Mexico)': 'America/Mexico_City', + 'China Standard Time': 'Asia/Shanghai', + 'Dateline Standard Time': 'Etc/GMT+12', + 'E. Africa Standard Time': 'Africa/Nairobi', + 'E. Australia Standard Time': 'Australia/Brisbane', + 'E. Europe Standard Time': 'Europe/Chisinau', + 'E. South America Standard Time': 'America/Sao_Paulo', + 'Eastern Standard Time': 'America/New_York', + 'Eastern Standard Time (Mexico)': 'America/Cancun', + 'Egypt Standard Time': 'Africa/Cairo', + 'Ekaterinburg Standard Time': 'Asia/Yekaterinburg', + 'FLE Standard Time': 'Europe/Kiev', + 'Fiji Standard Time': 'Pacific/Fiji', + 'GMT Standard Time': 'Europe/London', + 'GTB Standard Time': 'Europe/Bucharest', + 'Georgian Standard Time': 'Asia/Tbilisi', + 'Greenland Standard Time': 'America/Godthab', + 'Greenwich Standard Time': 'Atlantic/Reykjavik', + 'Hawaiian Standard Time': 'Pacific/Honolulu', + 'India Standard Time': 'Asia/Calcutta', + 'Iran Standard Time': 'Asia/Tehran', + 'Israel Standard Time': 'Asia/Jerusalem', + 'Jordan Standard Time': 'Asia/Amman', + 'Kaliningrad Standard Time': 'Europe/Kaliningrad', + 'Korea Standard Time': 'Asia/Seoul', + 'Libya Standard Time': 'Africa/Tripoli', + 'Line Islands Standard Time': 'Pacific/Kiritimati', + 'Magadan Standard Time': 'Asia/Magadan', + 'Mauritius Standard Time': 'Indian/Mauritius', + 'Middle East Standard Time': 'Asia/Beirut', + 'Montevideo Standard Time': 'America/Montevideo', + 'Morocco Standard Time': 'Africa/Casablanca', + 'Mountain Standard Time': 'America/Denver', + 'Mountain Standard Time (Mexico)': 'America/Chihuahua', + 'Myanmar Standard Time': 'Asia/Rangoon', + 'N. Central Asia Standard Time': 'Asia/Novosibirsk', + 'Namibia Standard Time': 'Africa/Windhoek', + 'Nepal Standard Time': 'Asia/Katmandu', + 'New Zealand Standard Time': 'Pacific/Auckland', + 'Newfoundland Standard Time': 'America/St_Johns', + 'North Asia East Standard Time': 'Asia/Irkutsk', + 'North Asia Standard Time': 'Asia/Krasnoyarsk', + 'North Korea Standard Time': 'Asia/Pyongyang', + 'Pacific SA Standard Time': 'America/Santiago', + 'Pacific Standard Time': 'America/Los_Angeles', + 'Pakistan Standard Time': 'Asia/Karachi', + 'Paraguay Standard Time': 'America/Asuncion', + 'Romance Standard Time': 'Europe/Paris', + 'Russia Time Zone 10': 'Asia/Srednekolymsk', + 'Russia Time Zone 11': 'Asia/Kamchatka', + 'Russia Time Zone 3': 'Europe/Samara', + 'Russian Standard Time': 'Europe/Moscow', + 'SA Eastern Standard Time': 'America/Cayenne', + 'SA Pacific Standard Time': 'America/Bogota', + 'SA Western Standard Time': 'America/La_Paz', + 'SE Asia Standard Time': 'Asia/Bangkok', + 'Samoa Standard Time': 'Pacific/Apia', + 'Singapore Standard Time': 'Asia/Singapore', + 'South Africa Standard Time': 'Africa/Johannesburg', + 'Sri Lanka Standard Time': 'Asia/Colombo', + 'Syria Standard Time': 'Asia/Damascus', + 'Taipei Standard Time': 'Asia/Taipei', + 'Tasmania Standard Time': 'Australia/Hobart', + 'Tokyo Standard Time': 'Asia/Tokyo', + 'Tonga Standard Time': 'Pacific/Tongatapu', + 'Turkey Standard Time': 'Europe/Istanbul', + 'US Eastern Standard Time': 'America/Indianapolis', + 'US Mountain Standard Time': 'America/Phoenix', + 'UTC': 'Etc/GMT', + 'UTC+12': 'Etc/GMT-12', + 'UTC-02': 'Etc/GMT+2', + 'UTC-11': 'Etc/GMT+11', + 'Ulaanbaatar Standard Time': 'Asia/Ulaanbaatar', + 'Venezuela Standard Time': 'America/Caracas', + 'Vladivostok Standard Time': 'Asia/Vladivostok', + 'W. Australia Standard Time': 'Australia/Perth', + 'W. Central Africa Standard Time': 'Africa/Lagos', + 'W. Europe Standard Time': 'Europe/Berlin', + 'West Asia Standard Time': 'Asia/Tashkent', + 'West Pacific Standard Time': 'Pacific/Port_Moresby', + 'Yakutsk Standard Time': 'Asia/Yakutsk'} + +# Old name for the win_tz variable: +tz_names = win_tz + +tz_win = {'Africa/Abidjan': 'Greenwich Standard Time', + 'Africa/Accra': 'Greenwich Standard Time', + 'Africa/Addis_Ababa': 'E. Africa Standard Time', + 'Africa/Algiers': 'W. Central Africa Standard Time', + 'Africa/Asmera': 'E. Africa Standard Time', + 'Africa/Bamako': 'Greenwich Standard Time', + 'Africa/Bangui': 'W. Central Africa Standard Time', + 'Africa/Banjul': 'Greenwich Standard Time', + 'Africa/Bissau': 'Greenwich Standard Time', + 'Africa/Blantyre': 'South Africa Standard Time', + 'Africa/Brazzaville': 'W. Central Africa Standard Time', + 'Africa/Bujumbura': 'South Africa Standard Time', + 'Africa/Cairo': 'Egypt Standard Time', + 'Africa/Casablanca': 'Morocco Standard Time', + 'Africa/Ceuta': 'Romance Standard Time', + 'Africa/Conakry': 'Greenwich Standard Time', + 'Africa/Dakar': 'Greenwich Standard Time', + 'Africa/Dar_es_Salaam': 'E. Africa Standard Time', + 'Africa/Djibouti': 'E. Africa Standard Time', + 'Africa/Douala': 'W. Central Africa Standard Time', + 'Africa/El_Aaiun': 'Morocco Standard Time', + 'Africa/Freetown': 'Greenwich Standard Time', + 'Africa/Gaborone': 'South Africa Standard Time', + 'Africa/Harare': 'South Africa Standard Time', + 'Africa/Johannesburg': 'South Africa Standard Time', + 'Africa/Juba': 'E. Africa Standard Time', + 'Africa/Kampala': 'E. Africa Standard Time', + 'Africa/Khartoum': 'E. Africa Standard Time', + 'Africa/Kigali': 'South Africa Standard Time', + 'Africa/Kinshasa': 'W. Central Africa Standard Time', + 'Africa/Lagos': 'W. Central Africa Standard Time', + 'Africa/Libreville': 'W. Central Africa Standard Time', + 'Africa/Lome': 'Greenwich Standard Time', + 'Africa/Luanda': 'W. Central Africa Standard Time', + 'Africa/Lubumbashi': 'South Africa Standard Time', + 'Africa/Lusaka': 'South Africa Standard Time', + 'Africa/Malabo': 'W. Central Africa Standard Time', + 'Africa/Maputo': 'South Africa Standard Time', + 'Africa/Maseru': 'South Africa Standard Time', + 'Africa/Mbabane': 'South Africa Standard Time', + 'Africa/Mogadishu': 'E. Africa Standard Time', + 'Africa/Monrovia': 'Greenwich Standard Time', + 'Africa/Nairobi': 'E. Africa Standard Time', + 'Africa/Ndjamena': 'W. Central Africa Standard Time', + 'Africa/Niamey': 'W. Central Africa Standard Time', + 'Africa/Nouakchott': 'Greenwich Standard Time', + 'Africa/Ouagadougou': 'Greenwich Standard Time', + 'Africa/Porto-Novo': 'W. Central Africa Standard Time', + 'Africa/Sao_Tome': 'Greenwich Standard Time', + 'Africa/Tripoli': 'Libya Standard Time', + 'Africa/Tunis': 'W. Central Africa Standard Time', + 'Africa/Windhoek': 'Namibia Standard Time', + 'America/Anchorage': 'Alaskan Standard Time', + 'America/Anguilla': 'SA Western Standard Time', + 'America/Antigua': 'SA Western Standard Time', + 'America/Araguaina': 'SA Eastern Standard Time', + 'America/Argentina/La_Rioja': 'Argentina Standard Time', + 'America/Argentina/Rio_Gallegos': 'Argentina Standard Time', + 'America/Argentina/Salta': 'Argentina Standard Time', + 'America/Argentina/San_Juan': 'Argentina Standard Time', + 'America/Argentina/San_Luis': 'Argentina Standard Time', + 'America/Argentina/Tucuman': 'Argentina Standard Time', + 'America/Argentina/Ushuaia': 'Argentina Standard Time', + 'America/Aruba': 'SA Western Standard Time', + 'America/Asuncion': 'Paraguay Standard Time', + 'America/Bahia': 'Bahia Standard Time', + 'America/Bahia_Banderas': 'Central Standard Time (Mexico)', + 'America/Barbados': 'SA Western Standard Time', + 'America/Belem': 'SA Eastern Standard Time', + 'America/Belize': 'Central America Standard Time', + 'America/Blanc-Sablon': 'SA Western Standard Time', + 'America/Boa_Vista': 'SA Western Standard Time', + 'America/Bogota': 'SA Pacific Standard Time', + 'America/Boise': 'Mountain Standard Time', + 'America/Buenos_Aires': 'Argentina Standard Time', + 'America/Cambridge_Bay': 'Mountain Standard Time', + 'America/Campo_Grande': 'Central Brazilian Standard Time', + 'America/Cancun': 'Eastern Standard Time (Mexico)', + 'America/Caracas': 'Venezuela Standard Time', + 'America/Catamarca': 'Argentina Standard Time', + 'America/Cayenne': 'SA Eastern Standard Time', + 'America/Cayman': 'SA Pacific Standard Time', + 'America/Chicago': 'Central Standard Time', + 'America/Chihuahua': 'Mountain Standard Time (Mexico)', + 'America/Coral_Harbour': 'SA Pacific Standard Time', + 'America/Cordoba': 'Argentina Standard Time', + 'America/Costa_Rica': 'Central America Standard Time', + 'America/Creston': 'US Mountain Standard Time', + 'America/Cuiaba': 'Central Brazilian Standard Time', + 'America/Curacao': 'SA Western Standard Time', + 'America/Danmarkshavn': 'UTC', + 'America/Dawson': 'Pacific Standard Time', + 'America/Dawson_Creek': 'US Mountain Standard Time', + 'America/Denver': 'Mountain Standard Time', + 'America/Detroit': 'Eastern Standard Time', + 'America/Dominica': 'SA Western Standard Time', + 'America/Edmonton': 'Mountain Standard Time', + 'America/Eirunepe': 'SA Pacific Standard Time', + 'America/El_Salvador': 'Central America Standard Time', + 'America/Fort_Nelson': 'US Mountain Standard Time', + 'America/Fortaleza': 'SA Eastern Standard Time', + 'America/Glace_Bay': 'Atlantic Standard Time', + 'America/Godthab': 'Greenland Standard Time', + 'America/Goose_Bay': 'Atlantic Standard Time', + 'America/Grand_Turk': 'SA Western Standard Time', + 'America/Grenada': 'SA Western Standard Time', + 'America/Guadeloupe': 'SA Western Standard Time', + 'America/Guatemala': 'Central America Standard Time', + 'America/Guayaquil': 'SA Pacific Standard Time', + 'America/Guyana': 'SA Western Standard Time', + 'America/Halifax': 'Atlantic Standard Time', + 'America/Havana': 'Eastern Standard Time', + 'America/Hermosillo': 'US Mountain Standard Time', + 'America/Indiana/Knox': 'Central Standard Time', + 'America/Indiana/Marengo': 'US Eastern Standard Time', + 'America/Indiana/Petersburg': 'Eastern Standard Time', + 'America/Indiana/Tell_City': 'Central Standard Time', + 'America/Indiana/Vevay': 'US Eastern Standard Time', + 'America/Indiana/Vincennes': 'Eastern Standard Time', + 'America/Indiana/Winamac': 'Eastern Standard Time', + 'America/Indianapolis': 'US Eastern Standard Time', + 'America/Inuvik': 'Mountain Standard Time', + 'America/Iqaluit': 'Eastern Standard Time', + 'America/Jamaica': 'SA Pacific Standard Time', + 'America/Jujuy': 'Argentina Standard Time', + 'America/Juneau': 'Alaskan Standard Time', + 'America/Kentucky/Monticello': 'Eastern Standard Time', + 'America/Kralendijk': 'SA Western Standard Time', + 'America/La_Paz': 'SA Western Standard Time', + 'America/Lima': 'SA Pacific Standard Time', + 'America/Los_Angeles': 'Pacific Standard Time', + 'America/Louisville': 'Eastern Standard Time', + 'America/Lower_Princes': 'SA Western Standard Time', + 'America/Maceio': 'SA Eastern Standard Time', + 'America/Managua': 'Central America Standard Time', + 'America/Manaus': 'SA Western Standard Time', + 'America/Marigot': 'SA Western Standard Time', + 'America/Martinique': 'SA Western Standard Time', + 'America/Matamoros': 'Central Standard Time', + 'America/Mazatlan': 'Mountain Standard Time (Mexico)', + 'America/Mendoza': 'Argentina Standard Time', + 'America/Menominee': 'Central Standard Time', + 'America/Merida': 'Central Standard Time (Mexico)', + 'America/Metlakatla': 'Alaskan Standard Time', + 'America/Mexico_City': 'Central Standard Time (Mexico)', + 'America/Moncton': 'Atlantic Standard Time', + 'America/Monterrey': 'Central Standard Time (Mexico)', + 'America/Montevideo': 'Montevideo Standard Time', + 'America/Montreal': 'Eastern Standard Time', + 'America/Montserrat': 'SA Western Standard Time', + 'America/Nassau': 'Eastern Standard Time', + 'America/New_York': 'Eastern Standard Time', + 'America/Nipigon': 'Eastern Standard Time', + 'America/Nome': 'Alaskan Standard Time', + 'America/Noronha': 'UTC-02', + 'America/North_Dakota/Beulah': 'Central Standard Time', + 'America/North_Dakota/Center': 'Central Standard Time', + 'America/North_Dakota/New_Salem': 'Central Standard Time', + 'America/Ojinaga': 'Mountain Standard Time', + 'America/Panama': 'SA Pacific Standard Time', + 'America/Pangnirtung': 'Eastern Standard Time', + 'America/Paramaribo': 'SA Eastern Standard Time', + 'America/Phoenix': 'US Mountain Standard Time', + 'America/Port-au-Prince': 'Eastern Standard Time', + 'America/Port_of_Spain': 'SA Western Standard Time', + 'America/Porto_Velho': 'SA Western Standard Time', + 'America/Puerto_Rico': 'SA Western Standard Time', + 'America/Rainy_River': 'Central Standard Time', + 'America/Rankin_Inlet': 'Central Standard Time', + 'America/Recife': 'SA Eastern Standard Time', + 'America/Regina': 'Canada Central Standard Time', + 'America/Resolute': 'Central Standard Time', + 'America/Rio_Branco': 'SA Pacific Standard Time', + 'America/Santa_Isabel': 'Pacific Standard Time', + 'America/Santarem': 'SA Eastern Standard Time', + 'America/Santiago': 'Pacific SA Standard Time', + 'America/Santo_Domingo': 'SA Western Standard Time', + 'America/Sao_Paulo': 'E. South America Standard Time', + 'America/Scoresbysund': 'Azores Standard Time', + 'America/Sitka': 'Alaskan Standard Time', + 'America/St_Barthelemy': 'SA Western Standard Time', + 'America/St_Johns': 'Newfoundland Standard Time', + 'America/St_Kitts': 'SA Western Standard Time', + 'America/St_Lucia': 'SA Western Standard Time', + 'America/St_Thomas': 'SA Western Standard Time', + 'America/St_Vincent': 'SA Western Standard Time', + 'America/Swift_Current': 'Canada Central Standard Time', + 'America/Tegucigalpa': 'Central America Standard Time', + 'America/Thule': 'Atlantic Standard Time', + 'America/Thunder_Bay': 'Eastern Standard Time', + 'America/Tijuana': 'Pacific Standard Time', + 'America/Toronto': 'Eastern Standard Time', + 'America/Tortola': 'SA Western Standard Time', + 'America/Vancouver': 'Pacific Standard Time', + 'America/Whitehorse': 'Pacific Standard Time', + 'America/Winnipeg': 'Central Standard Time', + 'America/Yakutat': 'Alaskan Standard Time', + 'America/Yellowknife': 'Mountain Standard Time', + 'Antarctica/Casey': 'W. Australia Standard Time', + 'Antarctica/Davis': 'SE Asia Standard Time', + 'Antarctica/DumontDUrville': 'West Pacific Standard Time', + 'Antarctica/Macquarie': 'Central Pacific Standard Time', + 'Antarctica/Mawson': 'West Asia Standard Time', + 'Antarctica/McMurdo': 'New Zealand Standard Time', + 'Antarctica/Palmer': 'Pacific SA Standard Time', + 'Antarctica/Rothera': 'SA Eastern Standard Time', + 'Antarctica/Syowa': 'E. Africa Standard Time', + 'Antarctica/Vostok': 'Central Asia Standard Time', + 'Arctic/Longyearbyen': 'W. Europe Standard Time', + 'Asia/Aden': 'Arab Standard Time', + 'Asia/Almaty': 'Central Asia Standard Time', + 'Asia/Amman': 'Jordan Standard Time', + 'Asia/Anadyr': 'Russia Time Zone 11', + 'Asia/Aqtau': 'West Asia Standard Time', + 'Asia/Aqtobe': 'West Asia Standard Time', + 'Asia/Ashgabat': 'West Asia Standard Time', + 'Asia/Baghdad': 'Arabic Standard Time', + 'Asia/Bahrain': 'Arab Standard Time', + 'Asia/Baku': 'Azerbaijan Standard Time', + 'Asia/Bangkok': 'SE Asia Standard Time', + 'Asia/Beirut': 'Middle East Standard Time', + 'Asia/Bishkek': 'Central Asia Standard Time', + 'Asia/Brunei': 'Singapore Standard Time', + 'Asia/Calcutta': 'India Standard Time', + 'Asia/Chita': 'Yakutsk Standard Time', + 'Asia/Choibalsan': 'Ulaanbaatar Standard Time', + 'Asia/Colombo': 'Sri Lanka Standard Time', + 'Asia/Damascus': 'Syria Standard Time', + 'Asia/Dhaka': 'Bangladesh Standard Time', + 'Asia/Dili': 'Tokyo Standard Time', + 'Asia/Dubai': 'Arabian Standard Time', + 'Asia/Dushanbe': 'West Asia Standard Time', + 'Asia/Hong_Kong': 'China Standard Time', + 'Asia/Irkutsk': 'North Asia East Standard Time', + 'Asia/Jakarta': 'SE Asia Standard Time', + 'Asia/Jayapura': 'Tokyo Standard Time', + 'Asia/Jerusalem': 'Israel Standard Time', + 'Asia/Kabul': 'Afghanistan Standard Time', + 'Asia/Kamchatka': 'Russia Time Zone 11', + 'Asia/Karachi': 'Pakistan Standard Time', + 'Asia/Katmandu': 'Nepal Standard Time', + 'Asia/Khandyga': 'Yakutsk Standard Time', + 'Asia/Krasnoyarsk': 'North Asia Standard Time', + 'Asia/Kuala_Lumpur': 'Singapore Standard Time', + 'Asia/Kuching': 'Singapore Standard Time', + 'Asia/Kuwait': 'Arab Standard Time', + 'Asia/Macau': 'China Standard Time', + 'Asia/Magadan': 'Magadan Standard Time', + 'Asia/Makassar': 'Singapore Standard Time', + 'Asia/Manila': 'Singapore Standard Time', + 'Asia/Muscat': 'Arabian Standard Time', + 'Asia/Nicosia': 'GTB Standard Time', + 'Asia/Novokuznetsk': 'North Asia Standard Time', + 'Asia/Novosibirsk': 'N. Central Asia Standard Time', + 'Asia/Omsk': 'N. Central Asia Standard Time', + 'Asia/Oral': 'West Asia Standard Time', + 'Asia/Phnom_Penh': 'SE Asia Standard Time', + 'Asia/Pontianak': 'SE Asia Standard Time', + 'Asia/Pyongyang': 'North Korea Standard Time', + 'Asia/Qatar': 'Arab Standard Time', + 'Asia/Qyzylorda': 'Central Asia Standard Time', + 'Asia/Rangoon': 'Myanmar Standard Time', + 'Asia/Riyadh': 'Arab Standard Time', + 'Asia/Saigon': 'SE Asia Standard Time', + 'Asia/Sakhalin': 'Vladivostok Standard Time', + 'Asia/Samarkand': 'West Asia Standard Time', + 'Asia/Seoul': 'Korea Standard Time', + 'Asia/Shanghai': 'China Standard Time', + 'Asia/Singapore': 'Singapore Standard Time', + 'Asia/Srednekolymsk': 'Russia Time Zone 10', + 'Asia/Taipei': 'Taipei Standard Time', + 'Asia/Tashkent': 'West Asia Standard Time', + 'Asia/Tbilisi': 'Georgian Standard Time', + 'Asia/Tehran': 'Iran Standard Time', + 'Asia/Thimphu': 'Bangladesh Standard Time', + 'Asia/Tokyo': 'Tokyo Standard Time', + 'Asia/Ulaanbaatar': 'Ulaanbaatar Standard Time', + 'Asia/Urumqi': 'Central Asia Standard Time', + 'Asia/Ust-Nera': 'Vladivostok Standard Time', + 'Asia/Vientiane': 'SE Asia Standard Time', + 'Asia/Vladivostok': 'Vladivostok Standard Time', + 'Asia/Yakutsk': 'Yakutsk Standard Time', + 'Asia/Yekaterinburg': 'Ekaterinburg Standard Time', + 'Asia/Yerevan': 'Caucasus Standard Time', + 'Atlantic/Azores': 'Azores Standard Time', + 'Atlantic/Bermuda': 'Atlantic Standard Time', + 'Atlantic/Canary': 'GMT Standard Time', + 'Atlantic/Cape_Verde': 'Cape Verde Standard Time', + 'Atlantic/Faeroe': 'GMT Standard Time', + 'Atlantic/Madeira': 'GMT Standard Time', + 'Atlantic/Reykjavik': 'Greenwich Standard Time', + 'Atlantic/South_Georgia': 'UTC-02', + 'Atlantic/St_Helena': 'Greenwich Standard Time', + 'Atlantic/Stanley': 'SA Eastern Standard Time', + 'Australia/Adelaide': 'Cen. Australia Standard Time', + 'Australia/Brisbane': 'E. Australia Standard Time', + 'Australia/Broken_Hill': 'Cen. Australia Standard Time', + 'Australia/Currie': 'Tasmania Standard Time', + 'Australia/Darwin': 'AUS Central Standard Time', + 'Australia/Hobart': 'Tasmania Standard Time', + 'Australia/Lindeman': 'E. Australia Standard Time', + 'Australia/Melbourne': 'AUS Eastern Standard Time', + 'Australia/Perth': 'W. Australia Standard Time', + 'Australia/Sydney': 'AUS Eastern Standard Time', + 'CST6CDT': 'Central Standard Time', + 'EST5EDT': 'Eastern Standard Time', + 'Etc/GMT': 'UTC', + 'Etc/GMT+1': 'Cape Verde Standard Time', + 'Etc/GMT+10': 'Hawaiian Standard Time', + 'Etc/GMT+11': 'UTC-11', + 'Etc/GMT+12': 'Dateline Standard Time', + 'Etc/GMT+2': 'UTC-02', + 'Etc/GMT+3': 'SA Eastern Standard Time', + 'Etc/GMT+4': 'SA Western Standard Time', + 'Etc/GMT+5': 'SA Pacific Standard Time', + 'Etc/GMT+6': 'Central America Standard Time', + 'Etc/GMT+7': 'US Mountain Standard Time', + 'Etc/GMT-1': 'W. Central Africa Standard Time', + 'Etc/GMT-10': 'West Pacific Standard Time', + 'Etc/GMT-11': 'Central Pacific Standard Time', + 'Etc/GMT-12': 'UTC+12', + 'Etc/GMT-13': 'Tonga Standard Time', + 'Etc/GMT-14': 'Line Islands Standard Time', + 'Etc/GMT-2': 'South Africa Standard Time', + 'Etc/GMT-3': 'E. Africa Standard Time', + 'Etc/GMT-4': 'Arabian Standard Time', + 'Etc/GMT-5': 'West Asia Standard Time', + 'Etc/GMT-6': 'Central Asia Standard Time', + 'Etc/GMT-7': 'SE Asia Standard Time', + 'Etc/GMT-8': 'Singapore Standard Time', + 'Etc/GMT-9': 'Tokyo Standard Time', + 'Etc/UTC': 'UTC', + 'Europe/Amsterdam': 'W. Europe Standard Time', + 'Europe/Andorra': 'W. Europe Standard Time', + 'Europe/Athens': 'GTB Standard Time', + 'Europe/Belgrade': 'Central Europe Standard Time', + 'Europe/Berlin': 'W. Europe Standard Time', + 'Europe/Bratislava': 'Central Europe Standard Time', + 'Europe/Brussels': 'Romance Standard Time', + 'Europe/Bucharest': 'GTB Standard Time', + 'Europe/Budapest': 'Central Europe Standard Time', + 'Europe/Busingen': 'W. Europe Standard Time', + 'Europe/Chisinau': 'E. Europe Standard Time', + 'Europe/Copenhagen': 'Romance Standard Time', + 'Europe/Dublin': 'GMT Standard Time', + 'Europe/Gibraltar': 'W. Europe Standard Time', + 'Europe/Guernsey': 'GMT Standard Time', + 'Europe/Helsinki': 'FLE Standard Time', + 'Europe/Isle_of_Man': 'GMT Standard Time', + 'Europe/Istanbul': 'Turkey Standard Time', + 'Europe/Jersey': 'GMT Standard Time', + 'Europe/Kaliningrad': 'Kaliningrad Standard Time', + 'Europe/Kiev': 'FLE Standard Time', + 'Europe/Lisbon': 'GMT Standard Time', + 'Europe/Ljubljana': 'Central Europe Standard Time', + 'Europe/London': 'GMT Standard Time', + 'Europe/Luxembourg': 'W. Europe Standard Time', + 'Europe/Madrid': 'Romance Standard Time', + 'Europe/Malta': 'W. Europe Standard Time', + 'Europe/Mariehamn': 'FLE Standard Time', + 'Europe/Minsk': 'Belarus Standard Time', + 'Europe/Monaco': 'W. Europe Standard Time', + 'Europe/Moscow': 'Russian Standard Time', + 'Europe/Oslo': 'W. Europe Standard Time', + 'Europe/Paris': 'Romance Standard Time', + 'Europe/Podgorica': 'Central Europe Standard Time', + 'Europe/Prague': 'Central Europe Standard Time', + 'Europe/Riga': 'FLE Standard Time', + 'Europe/Rome': 'W. Europe Standard Time', + 'Europe/Samara': 'Russia Time Zone 3', + 'Europe/San_Marino': 'W. Europe Standard Time', + 'Europe/Sarajevo': 'Central European Standard Time', + 'Europe/Simferopol': 'Russian Standard Time', + 'Europe/Skopje': 'Central European Standard Time', + 'Europe/Sofia': 'FLE Standard Time', + 'Europe/Stockholm': 'W. Europe Standard Time', + 'Europe/Tallinn': 'FLE Standard Time', + 'Europe/Tirane': 'Central Europe Standard Time', + 'Europe/Uzhgorod': 'FLE Standard Time', + 'Europe/Vaduz': 'W. Europe Standard Time', + 'Europe/Vatican': 'W. Europe Standard Time', + 'Europe/Vienna': 'W. Europe Standard Time', + 'Europe/Vilnius': 'FLE Standard Time', + 'Europe/Volgograd': 'Russian Standard Time', + 'Europe/Warsaw': 'Central European Standard Time', + 'Europe/Zagreb': 'Central European Standard Time', + 'Europe/Zaporozhye': 'FLE Standard Time', + 'Europe/Zurich': 'W. Europe Standard Time', + 'Indian/Antananarivo': 'E. Africa Standard Time', + 'Indian/Chagos': 'Central Asia Standard Time', + 'Indian/Christmas': 'SE Asia Standard Time', + 'Indian/Cocos': 'Myanmar Standard Time', + 'Indian/Comoro': 'E. Africa Standard Time', + 'Indian/Kerguelen': 'West Asia Standard Time', + 'Indian/Mahe': 'Mauritius Standard Time', + 'Indian/Maldives': 'West Asia Standard Time', + 'Indian/Mauritius': 'Mauritius Standard Time', + 'Indian/Mayotte': 'E. Africa Standard Time', + 'Indian/Reunion': 'Mauritius Standard Time', + 'MST7MDT': 'Mountain Standard Time', + 'PST8PDT': 'Pacific Standard Time', + 'Pacific/Apia': 'Samoa Standard Time', + 'Pacific/Auckland': 'New Zealand Standard Time', + 'Pacific/Bougainville': 'Central Pacific Standard Time', + 'Pacific/Easter': 'SA Pacific Standard Time', + 'Pacific/Efate': 'Central Pacific Standard Time', + 'Pacific/Enderbury': 'Tonga Standard Time', + 'Pacific/Fakaofo': 'Tonga Standard Time', + 'Pacific/Fiji': 'Fiji Standard Time', + 'Pacific/Funafuti': 'UTC+12', + 'Pacific/Galapagos': 'Central America Standard Time', + 'Pacific/Guadalcanal': 'Central Pacific Standard Time', + 'Pacific/Guam': 'West Pacific Standard Time', + 'Pacific/Honolulu': 'Hawaiian Standard Time', + 'Pacific/Johnston': 'Hawaiian Standard Time', + 'Pacific/Kiritimati': 'Line Islands Standard Time', + 'Pacific/Kosrae': 'Central Pacific Standard Time', + 'Pacific/Kwajalein': 'UTC+12', + 'Pacific/Majuro': 'UTC+12', + 'Pacific/Midway': 'UTC-11', + 'Pacific/Nauru': 'UTC+12', + 'Pacific/Niue': 'UTC-11', + 'Pacific/Norfolk': 'Central Pacific Standard Time', + 'Pacific/Noumea': 'Central Pacific Standard Time', + 'Pacific/Pago_Pago': 'UTC-11', + 'Pacific/Palau': 'Tokyo Standard Time', + 'Pacific/Ponape': 'Central Pacific Standard Time', + 'Pacific/Port_Moresby': 'West Pacific Standard Time', + 'Pacific/Rarotonga': 'Hawaiian Standard Time', + 'Pacific/Saipan': 'West Pacific Standard Time', + 'Pacific/Tahiti': 'Hawaiian Standard Time', + 'Pacific/Tarawa': 'UTC+12', + 'Pacific/Tongatapu': 'Tonga Standard Time', + 'Pacific/Truk': 'West Pacific Standard Time', + 'Pacific/Wake': 'UTC+12', + 'Pacific/Wallis': 'UTC+12'} diff --git a/sickbeard/network_timezones.py b/sickbeard/network_timezones.py index b7e5d098..35a4dc84 100644 --- a/sickbeard/network_timezones.py +++ b/sickbeard/network_timezones.py @@ -19,6 +19,7 @@ from lib.six import iteritems from lib.dateutil import tz, zoneinfo +from lib.tzlocal import get_localzone from sickbeard import db from sickbeard import helpers from sickbeard import logger @@ -38,8 +39,6 @@ pm_regex = re.compile(r'(P[. ]? ?M)', flags=re.I) network_dict = None network_dupes = None -sb_timezone = tz.tzlocal() - country_timezones = { 'AU': 'Australia/Sydney', 'AR': 'America/Buenos_Aires', 'AUSTRALIA': 'Australia/Sydney', 'BR': 'America/Sao_Paulo', 'CA': 'Canada/Eastern', 'CZ': 'Europe/Prague', 'DE': 'Europe/Berlin', 'ES': 'Europe/Madrid', @@ -50,6 +49,24 @@ country_timezones = { 'TW': 'Asia/Taipei', 'UK': 'Europe/London', 'US': 'US/Eastern', 'ZA': 'Africa/Johannesburg'} +def tz_fallback(t): + return t if isinstance(t, datetime.tzinfo) else tz.tzlocal() + + +def get_tz(): + t = get_localzone() + if isinstance(t, datetime.tzinfo) and hasattr(t, 'zone') and t.zone and hasattr(sickbeard, 'ZONEINFO_DIR'): + try: + t = tz.gettz(t.zone) + except: + t = tz_fallback(t) + else: + t = tz_fallback(t) + return t + +sb_timezone = get_tz() + + # helper to remove failed temp download def _remove_zoneinfo_failed(filename): try: @@ -83,7 +100,7 @@ def _remove_old_zoneinfo(): # update the dateutil zoneinfo def _update_zoneinfo(): global sb_timezone - sb_timezone = tz.tzlocal() + sb_timezone = get_tz() # now check if the zoneinfo needs update url_zv = 'https://raw.githubusercontent.com/Prinz23/sb_network_timezones/master/zoneinfo.txt' @@ -146,7 +163,7 @@ def _update_zoneinfo(): if '_CLASS_ZONE_INSTANCE' in gettz.func_globals: gettz.func_globals.__setitem__('_CLASS_ZONE_INSTANCE', list()) - sb_timezone = tz.tzlocal() + sb_timezone = get_tz() except: _remove_zoneinfo_failed(zonefile_tmp) return