From 1fdf21fe84ae4b63ec2fb31db6a26cc22bc4108d Mon Sep 17 00:00:00 2001 From: Eric Mann Date: Tue, 5 Dec 2023 07:56:55 -0800 Subject: [PATCH 01/59] PHP-8.3 is now for PHP 8.3.2-dev --- NEWS | 5 ++++- Zend/zend.h | 2 +- configure.ac | 2 +- main/php_version.h | 6 +++--- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/NEWS b/NEWS index 5d9c8d240eadd..793873fe61efd 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,9 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| -?? ??? ????, PHP 8.3.1 +?? ??? ????, PHP 8.3.2 + + +07 Dec 2023, PHP 8.3.1RC1 - Core: . Fixed bug GH-12758 / GH-12768 (Invalid opline in OOM handlers within diff --git a/Zend/zend.h b/Zend/zend.h index 7fd41c8dee16c..694e419b114f1 100644 --- a/Zend/zend.h +++ b/Zend/zend.h @@ -20,7 +20,7 @@ #ifndef ZEND_H #define ZEND_H -#define ZEND_VERSION "4.3.1-dev" +#define ZEND_VERSION "4.3.2-dev" #define ZEND_ENGINE_3 diff --git a/configure.ac b/configure.ac index 749d4b53d8bd8..500fdaaffe099 100644 --- a/configure.ac +++ b/configure.ac @@ -17,7 +17,7 @@ dnl Basic autoconf initialization, generation of config.nice. dnl ---------------------------------------------------------------------------- AC_PREREQ([2.68]) -AC_INIT([PHP],[8.3.1-dev],[https://github.com/php/php-src/issues],[php],[https://www.php.net]) +AC_INIT([PHP],[8.3.2-dev],[https://github.com/php/php-src/issues],[php],[https://www.php.net]) AC_CONFIG_SRCDIR([main/php_version.h]) AC_CONFIG_AUX_DIR([build]) AC_PRESERVE_HELP_ORDER diff --git a/main/php_version.h b/main/php_version.h index e4f32e1fd5204..f6633fe34519b 100644 --- a/main/php_version.h +++ b/main/php_version.h @@ -2,7 +2,7 @@ /* edit configure.ac to change version number */ #define PHP_MAJOR_VERSION 8 #define PHP_MINOR_VERSION 3 -#define PHP_RELEASE_VERSION 1 +#define PHP_RELEASE_VERSION 2 #define PHP_EXTRA_VERSION "-dev" -#define PHP_VERSION "8.3.1-dev" -#define PHP_VERSION_ID 80301 +#define PHP_VERSION "8.3.2-dev" +#define PHP_VERSION_ID 80302 From dc3641ea0f39fe0f71c5cecaaf2646437e780fff Mon Sep 17 00:00:00 2001 From: Pierrick Charron Date: Tue, 5 Dec 2023 15:01:08 -0500 Subject: [PATCH 02/59] PHP-8.2 is now for PHP 8.2.15-dev --- NEWS | 4 +++- Zend/zend.h | 2 +- configure.ac | 2 +- main/php_version.h | 6 +++--- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/NEWS b/NEWS index dcae26e449021..65d098014aab7 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,8 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| -?? ??? ????, PHP 8.2.14 +?? ??? ????, PHP 8.2.15 + +21 Dec 2023, PHP 8.2.14 - Core: . Fixed oss-fuzz #54325 (Use-after-free of name in var-var with malicious diff --git a/Zend/zend.h b/Zend/zend.h index 7dd0ed1071feb..893489cad827e 100644 --- a/Zend/zend.h +++ b/Zend/zend.h @@ -20,7 +20,7 @@ #ifndef ZEND_H #define ZEND_H -#define ZEND_VERSION "4.2.14-dev" +#define ZEND_VERSION "4.2.15-dev" #define ZEND_ENGINE_3 diff --git a/configure.ac b/configure.ac index dd3464216108f..1d510992f22e0 100644 --- a/configure.ac +++ b/configure.ac @@ -17,7 +17,7 @@ dnl Basic autoconf initialization, generation of config.nice. dnl ---------------------------------------------------------------------------- AC_PREREQ([2.68]) -AC_INIT([PHP],[8.2.14-dev],[https://github.com/php/php-src/issues],[php],[https://www.php.net]) +AC_INIT([PHP],[8.2.15-dev],[https://github.com/php/php-src/issues],[php],[https://www.php.net]) AC_CONFIG_SRCDIR([main/php_version.h]) AC_CONFIG_AUX_DIR([build]) AC_PRESERVE_HELP_ORDER diff --git a/main/php_version.h b/main/php_version.h index 87eb6ba3b3ac7..5f665392878c1 100644 --- a/main/php_version.h +++ b/main/php_version.h @@ -2,7 +2,7 @@ /* edit configure.ac to change version number */ #define PHP_MAJOR_VERSION 8 #define PHP_MINOR_VERSION 2 -#define PHP_RELEASE_VERSION 14 +#define PHP_RELEASE_VERSION 15 #define PHP_EXTRA_VERSION "-dev" -#define PHP_VERSION "8.2.14-dev" -#define PHP_VERSION_ID 80214 +#define PHP_VERSION "8.2.15-dev" +#define PHP_VERSION_ID 80215 From e679ab36b362c34b899672c36982b194a5e98ce3 Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Sun, 3 Dec 2023 01:53:01 +0100 Subject: [PATCH 03/59] Fix GH-12854: 8.3 - as final trait-used method does not correctly report visibility in Reflection Closes GH-12857. --- NEWS | 3 ++ Zend/tests/traits/gh12854.phpt | 74 ++++++++++++++++++++++++++++++++++ Zend/zend_inheritance.c | 16 ++++++-- 3 files changed, 89 insertions(+), 4 deletions(-) create mode 100644 Zend/tests/traits/gh12854.phpt diff --git a/NEWS b/NEWS index 793873fe61efd..8d52ca394d18e 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,9 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? ??? ????, PHP 8.3.2 +- Core: + . Fixed bug GH-12854 (8.3 - as final trait-used method does not correctly + report visibility in Reflection). (nielsdos) 07 Dec 2023, PHP 8.3.1RC1 diff --git a/Zend/tests/traits/gh12854.phpt b/Zend/tests/traits/gh12854.phpt new file mode 100644 index 0000000000000..471b4c6b56558 --- /dev/null +++ b/Zend/tests/traits/gh12854.phpt @@ -0,0 +1,74 @@ +--TEST-- +GH-12854 (8.3 - as final trait-used method does not correctly report visibility in Reflection) +--FILE-- +isFinal()); + var_dump($rm->isPublic()); + var_dump($rm->isProtected()); + var_dump($rm->isPrivate()); +} + +?> +--EXPECTF-- +Warning: Private methods cannot be final as they are never overridden by other classes in %s on line %d + +Warning: Private methods cannot be final as they are never overridden by other classes in %s on line %d +--- Method: pub --- +bool(true) +bool(true) +bool(false) +bool(false) +--- Method: prot --- +bool(true) +bool(false) +bool(true) +bool(false) +--- Method: priv --- +bool(true) +bool(false) +bool(false) +bool(true) +--- Method: final1 --- +bool(true) +bool(false) +bool(false) +bool(true) +--- Method: final2 --- +bool(true) +bool(false) +bool(true) +bool(false) +--- Method: final3 --- +bool(true) +bool(true) +bool(false) +bool(false) diff --git a/Zend/zend_inheritance.c b/Zend/zend_inheritance.c index d1c66b310a6b4..6362090ada908 100644 --- a/Zend/zend_inheritance.c +++ b/Zend/zend_inheritance.c @@ -1949,6 +1949,10 @@ static void zend_add_trait_method(zend_class_entry *ce, zend_string *name, zend_ zend_function *new_fn; bool check_inheritance = false; + if ((fn->common.fn_flags & (ZEND_ACC_PRIVATE | ZEND_ACC_FINAL)) == (ZEND_ACC_PRIVATE | ZEND_ACC_FINAL)) { + zend_error(E_COMPILE_WARNING, "Private methods cannot be final as they are never overridden by other classes"); + } + if ((existing_fn = zend_hash_find_ptr(&ce->function_table, key)) != NULL) { /* if it is the same function with the same visibility and has not been assigned a class scope yet, regardless * of where it is coming from there is no conflict and we do not need to add it again */ @@ -2048,10 +2052,10 @@ static void zend_traits_copy_functions(zend_string *fnname, zend_function *fn, z && zend_string_equals_ci(alias->trait_method.method_name, fnname) ) { fn_copy = *fn; - - /* if it is 0, no modifiers have been changed */ - if (alias->modifiers) { + if (alias->modifiers & ZEND_ACC_PPP_MASK) { fn_copy.common.fn_flags = alias->modifiers | (fn->common.fn_flags & ~ZEND_ACC_PPP_MASK); + } else { + fn_copy.common.fn_flags = alias->modifiers | fn->common.fn_flags; } lcname = zend_string_tolower(alias->alias); @@ -2079,7 +2083,11 @@ static void zend_traits_copy_functions(zend_string *fnname, zend_function *fn, z && fn->common.scope == aliases[i] && zend_string_equals_ci(alias->trait_method.method_name, fnname) ) { - fn_copy.common.fn_flags = alias->modifiers | (fn->common.fn_flags & ~ZEND_ACC_PPP_MASK); + if (alias->modifiers & ZEND_ACC_PPP_MASK) { + fn_copy.common.fn_flags = alias->modifiers | (fn->common.fn_flags & ~ZEND_ACC_PPP_MASK); + } else { + fn_copy.common.fn_flags = alias->modifiers | fn->common.fn_flags; + } } alias_ptr++; alias = *alias_ptr; From 0d1bf582cedb33e2998700bd1d81c71bc9dbc4dd Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Wed, 6 Dec 2023 10:05:08 +0100 Subject: [PATCH 04/59] fix function declaration isn't a prototype [-Wstrict-prototypes] --- sapi/litespeed/lsapilib.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sapi/litespeed/lsapilib.c b/sapi/litespeed/lsapilib.c index 055677c7b857a..fc2882d898d3f 100644 --- a/sapi/litespeed/lsapilib.c +++ b/sapi/litespeed/lsapilib.c @@ -301,7 +301,7 @@ void lsapi_perror(const char * pMessage, int err_no) } -static int lsapi_parent_dead() +static int lsapi_parent_dead(void) { // Return non-zero if the parent is dead. 0 if still alive. if (!s_ppid) { From e2d97314ab342d434e778cd00a2f34e4bdb07664 Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Wed, 6 Dec 2023 20:39:57 +0100 Subject: [PATCH 05/59] Backport deprecation warning ignores to unbreak CI In master I use ZEND_DIAGNOSTIC_IGNORED_START, but that doesn't exist on 8.2 or 8.3 (8.3 has a similar macro though). So to unbreak CI I just made a variation of this directly in the php_libxml.h header. See https://github.com/php/php-src/commit/683e78786070ab77d33f7787598ac1b90d68390a#commitcomment-134301083 Closes GH-12887. --- ext/libxml/php_libxml.h | 25 +++++++++++++++++++++++-- ext/xsl/xsltprocessor.c | 2 ++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/ext/libxml/php_libxml.h b/ext/libxml/php_libxml.h index b484568bb1b0a..a7f7971c5a5f5 100644 --- a/ext/libxml/php_libxml.h +++ b/ext/libxml/php_libxml.h @@ -119,12 +119,30 @@ PHP_LIBXML_API void php_libxml_shutdown(void); ZEND_TSRMLS_CACHE_EXTERN() #endif +#if defined(__clang__) +# define PHP_LIBXML_IGNORE_DEPRECATIONS_START \ + _Pragma("clang diagnostic push") \ + _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"") +# define PHP_LIBXML_IGNORE_DEPRECATIONS_END \ + _Pragma("clang diagnostic pop") +#elif defined(__GNUC__) +# define PHP_LIBXML_IGNORE_DEPRECATIONS_START \ + _Pragma("GCC diagnostic push") \ + _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") +# define PHP_LIBXML_IGNORE_DEPRECATIONS_END \ + _Pragma("GCC diagnostic pop") +#else +# define PHP_LIBXML_IGNORE_DEPRECATIONS_START +# define PHP_LIBXML_IGNORE_DEPRECATIONS_END +#endif + /* Other extension may override the global state options, these global options * are copied initially to ctxt->options. Set the options to a known good value. * See libxml2 globals.c and parserInternals.c. * The unique_name argument allows multiple sanitizes and restores within the * same function, even nested is necessary. */ #define PHP_LIBXML_SANITIZE_GLOBALS(unique_name) \ + PHP_LIBXML_IGNORE_DEPRECATIONS_START \ int xml_old_loadsubset_##unique_name = xmlLoadExtDtdDefaultValue; \ xmlLoadExtDtdDefaultValue = 0; \ int xml_old_validate_##unique_name = xmlDoValidityCheckingDefaultValue; \ @@ -132,15 +150,18 @@ ZEND_TSRMLS_CACHE_EXTERN() int xml_old_pedantic_##unique_name = xmlPedanticParserDefault(0); \ int xml_old_substitute_##unique_name = xmlSubstituteEntitiesDefault(0); \ int xml_old_linenrs_##unique_name = xmlLineNumbersDefault(0); \ - int xml_old_blanks_##unique_name = xmlKeepBlanksDefault(1); + int xml_old_blanks_##unique_name = xmlKeepBlanksDefault(1); \ + PHP_LIBXML_IGNORE_DEPRECATIONS_END #define PHP_LIBXML_RESTORE_GLOBALS(unique_name) \ + PHP_LIBXML_IGNORE_DEPRECATIONS_START \ xmlLoadExtDtdDefaultValue = xml_old_loadsubset_##unique_name; \ xmlDoValidityCheckingDefaultValue = xml_old_validate_##unique_name; \ (void) xmlPedanticParserDefault(xml_old_pedantic_##unique_name); \ (void) xmlSubstituteEntitiesDefault(xml_old_substitute_##unique_name); \ (void) xmlLineNumbersDefault(xml_old_linenrs_##unique_name); \ - (void) xmlKeepBlanksDefault(xml_old_blanks_##unique_name); + (void) xmlKeepBlanksDefault(xml_old_blanks_##unique_name); \ + PHP_LIBXML_IGNORE_DEPRECATIONS_END /* Alternative for above, working directly on the context and not setting globals. * Generally faster because no locking is involved, and this has the advantage that it sets the options to a known good value. */ diff --git a/ext/xsl/xsltprocessor.c b/ext/xsl/xsltprocessor.c index 9049f4f99c550..6841d1d559e44 100644 --- a/ext/xsl/xsltprocessor.c +++ b/ext/xsl/xsltprocessor.c @@ -338,8 +338,10 @@ PHP_METHOD(XSLTProcessor, importStylesheet) newdoc = xmlCopyDoc(doc, 1); xmlNodeSetBase((xmlNodePtr) newdoc, (xmlChar *)doc->URL); PHP_LIBXML_SANITIZE_GLOBALS(parse); + PHP_LIBXML_IGNORE_DEPRECATIONS_START xmlSubstituteEntitiesDefault(1); xmlLoadExtDtdDefaultValue = XML_DETECT_IDS | XML_COMPLETE_ATTRS; + PHP_LIBXML_IGNORE_DEPRECATIONS_END sheetp = xsltParseStylesheetDoc(newdoc); PHP_LIBXML_RESTORE_GLOBALS(parse); From de3c5c0bc840eac3dea1e425bf1846831fa507c3 Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Wed, 6 Dec 2023 23:49:07 +0100 Subject: [PATCH 06/59] Silence deprecations in zend-test Forgot it here... --- ext/zend_test/test.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ext/zend_test/test.c b/ext/zend_test/test.c index 901cd8e3063da..ed1f3ef547466 100644 --- a/ext/zend_test/test.c +++ b/ext/zend_test/test.c @@ -43,6 +43,7 @@ #if defined(HAVE_LIBXML) && !defined(PHP_WIN32) # include # include +# include "ext/dom/php_dom.h" #endif ZEND_DECLARE_MODULE_GLOBALS(zend_test) @@ -326,12 +327,14 @@ static ZEND_FUNCTION(zend_test_override_libxml_global_state) { ZEND_PARSE_PARAMETERS_NONE(); + PHP_LIBXML_IGNORE_DEPRECATIONS_START xmlLoadExtDtdDefaultValue = 1; xmlDoValidityCheckingDefaultValue = 1; (void) xmlPedanticParserDefault(1); (void) xmlSubstituteEntitiesDefault(1); (void) xmlLineNumbersDefault(1); (void) xmlKeepBlanksDefault(0); + PHP_LIBXML_IGNORE_DEPRECATIONS_END } #endif From 299c3ba89ee13d3e25c2a5f99322dc36bf7d1253 Mon Sep 17 00:00:00 2001 From: Ilija Tovilo Date: Wed, 6 Dec 2023 19:57:35 +0100 Subject: [PATCH 07/59] Fix max_execution_time with cli-server router script When the cli-server specifies a router script, we run it using zend_execute_scripts instead of php_execute_script, because the former preserves the return value of the script. However, php_execute_script also starts resets the execution timer with the value from max_execution_time. If the timer has previously been initialized with max_input_time, it will never be reset, and thus trigger at the incorrect time. Closes GH-12886 --- NEWS | 4 ++++ sapi/cli/php_cli_server.c | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/NEWS b/NEWS index 65d098014aab7..6c3e837a49eeb 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,10 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? ??? ????, PHP 8.2.15 +- Cli: + . Fix incorrect timeout in built-in web server when using router script and + max_input_time. (ilutov) + 21 Dec 2023, PHP 8.2.14 - Core: diff --git a/sapi/cli/php_cli_server.c b/sapi/cli/php_cli_server.c index f51c549282a13..379ee70974d8e 100644 --- a/sapi/cli/php_cli_server.c +++ b/sapi/cli/php_cli_server.c @@ -2240,6 +2240,17 @@ static int php_cli_server_dispatch_router(php_cli_server *server, php_cli_server zend_try { zval retval; + /* Normally php_execute_script restarts the timer with max_execution_time if it has + * previously been initialized with max_input_time. We're not using php_execute_script here + * because it does not provide a way to get the return value of the main script, so we need + * to restart the timer manually. */ + if (PG(max_input_time) != -1) { +#ifdef PHP_WIN32 + zend_unset_timeout(); +#endif + zend_set_timeout(INI_INT("max_execution_time"), 0); + } + ZVAL_UNDEF(&retval); if (SUCCESS == zend_execute_scripts(ZEND_REQUIRE, &retval, 1, &zfd)) { if (Z_TYPE(retval) != IS_UNDEF) { From 53909896e03be4f169260711e332d62f1f1f0b56 Mon Sep 17 00:00:00 2001 From: Ilija Tovilo Date: Thu, 7 Dec 2023 14:19:09 +0100 Subject: [PATCH 08/59] Fix asan shadow memory and shared_alloc_mmap clash The memory region found by find_prefered_mmap_base may clash with memory regions reserved by asan for tracking memory. The symptom of this is that mprotect for JIT fails adding the PROT_EXEC flag to the shared memory region. Closes GH-12890 --- ext/opcache/shared_alloc_mmap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ext/opcache/shared_alloc_mmap.c b/ext/opcache/shared_alloc_mmap.c index 8a9921532d32e..9b0e99608a34d 100644 --- a/ext/opcache/shared_alloc_mmap.c +++ b/ext/opcache/shared_alloc_mmap.c @@ -45,7 +45,7 @@ # define MAP_HUGETLB MAP_ALIGNED_SUPER #endif -#if (defined(__linux__) || defined(__FreeBSD__)) && (defined(__x86_64__) || defined (__aarch64__)) +#if (defined(__linux__) || defined(__FreeBSD__)) && (defined(__x86_64__) || defined (__aarch64__)) && !defined(__SANITIZE_ADDRESS__) static void *find_prefered_mmap_base(size_t requested_size) { size_t huge_page_size = 2 * 1024 * 1024; @@ -169,7 +169,7 @@ static int create_segments(size_t requested_size, zend_shared_segment ***shared_ #ifdef MAP_JIT flags |= MAP_JIT; #endif -#if (defined(__linux__) || defined(__FreeBSD__)) && (defined(__x86_64__) || defined (__aarch64__)) +#if (defined(__linux__) || defined(__FreeBSD__)) && (defined(__x86_64__) || defined (__aarch64__)) && !defined(__SANITIZE_ADDRESS__) void *hint = find_prefered_mmap_base(requested_size); if (hint != MAP_FAILED) { # ifdef MAP_HUGETLB From e658f805018a929361520eeebc4cc413745318b9 Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Wed, 6 Dec 2023 23:22:52 +0100 Subject: [PATCH 09/59] Fix GH-12870: Creating an xmlns attribute results in a DOMException There were multiple things here since forever, see the GH thread [1] for discussion. There were already many fixes to this function previously, and as a consequence of one of those fixes this started throwing exceptions for a correct use-case. It turns out that even when reverting to the previous behaviour there are still bugs. Just fix all of them while we have the chance. [1] https://github.com/php/php-src/issues/12870 Closes GH-12888. --- ext/dom/document.c | 47 +++++++++++++++++--- ext/dom/php_dom.c | 25 +++++++---- ext/dom/php_dom.h | 1 + ext/dom/tests/gh12870.inc | 26 +++++++++++ ext/dom/tests/gh12870_a.phpt | 72 +++++++++++++++++++++++++++++++ ext/dom/tests/gh12870_b.phpt | 84 ++++++++++++++++++++++++++++++++++++ 6 files changed, 239 insertions(+), 16 deletions(-) create mode 100644 ext/dom/tests/gh12870.inc create mode 100644 ext/dom/tests/gh12870_a.phpt create mode 100644 ext/dom/tests/gh12870_b.phpt diff --git a/ext/dom/document.c b/ext/dom/document.c index 665c0a042d6ed..417cb70be9d85 100644 --- a/ext/dom/document.c +++ b/ext/dom/document.c @@ -894,29 +894,61 @@ PHP_METHOD(DOMDocument, createAttributeNS) xmlNodePtr nodep = NULL, root; xmlNsPtr nsptr; int ret; - size_t uri_len = 0, name_len = 0; - char *uri, *name; + zend_string *name, *uri; char *localname = NULL, *prefix = NULL; dom_object *intern; int errorcode; id = ZEND_THIS; - if (zend_parse_parameters(ZEND_NUM_ARGS(), "s!s", &uri, &uri_len, &name, &name_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS(), "S!S", &uri, &name) == FAILURE) { RETURN_THROWS(); } DOM_GET_OBJ(docp, id, xmlDocPtr, intern); + if (UNEXPECTED(uri == NULL)) { + uri = zend_empty_string; + } + size_t uri_len = ZSTR_LEN(uri); + root = xmlDocGetRootElement(docp); if (root != NULL) { - errorcode = dom_check_qname(name, &localname, &prefix, uri_len, name_len); + errorcode = dom_check_qname(ZSTR_VAL(name), &localname, &prefix, uri_len, ZSTR_LEN(name)); + /* TODO: switch to early goto-out style error-checking */ if (errorcode == 0) { if (xmlValidateName((xmlChar *) localname, 0) == 0) { + /* If prefix is "xml" and namespace is not the XML namespace, then throw a "NamespaceError" DOMException. */ + if (UNEXPECTED(!zend_string_equals_literal(uri, "http://www.w3.org/XML/1998/namespace") && xmlStrEqual(BAD_CAST prefix, BAD_CAST "xml"))) { + errorcode = NAMESPACE_ERR; + goto error; + } + /* If either qualifiedName or prefix is "xmlns" and namespace is not the XMLNS namespace, then throw a "NamespaceError" DOMException. */ + if (UNEXPECTED((zend_string_equals_literal(name, "xmlns") || xmlStrEqual(BAD_CAST prefix, BAD_CAST "xmlns")) && !zend_string_equals_literal(uri, "http://www.w3.org/2000/xmlns/"))) { + errorcode = NAMESPACE_ERR; + goto error; + } + /* If namespace is the XMLNS namespace and neither qualifiedName nor prefix is "xmlns", then throw a "NamespaceError" DOMException. */ + if (UNEXPECTED(zend_string_equals_literal(uri, "http://www.w3.org/2000/xmlns/") && !zend_string_equals_literal(name, "xmlns") && !xmlStrEqual(BAD_CAST prefix, BAD_CAST "xmlns"))) { + errorcode = NAMESPACE_ERR; + goto error; + } + nodep = (xmlNodePtr) xmlNewDocProp(docp, (xmlChar *) localname, NULL); if (nodep != NULL && uri_len > 0) { - nsptr = xmlSearchNsByHref(nodep->doc, root, (xmlChar *) uri); - if (nsptr == NULL || nsptr->prefix == NULL) { - nsptr = dom_get_ns(root, uri, &errorcode, prefix ? prefix : "default"); + nsptr = xmlSearchNsByHref(docp, root, BAD_CAST ZSTR_VAL(uri)); + + if (zend_string_equals_literal(name, "xmlns") || xmlStrEqual(BAD_CAST prefix, BAD_CAST "xml")) { + if (nsptr == NULL) { + nsptr = xmlNewNs(NULL, BAD_CAST ZSTR_VAL(uri), BAD_CAST prefix); + php_libxml_set_old_ns(docp, nsptr); + } + } else { + if (nsptr == NULL || nsptr->prefix == NULL) { + nsptr = dom_get_ns_unchecked(root, ZSTR_VAL(uri), prefix ? prefix : "default"); + if (UNEXPECTED(nsptr == NULL)) { + errorcode = NAMESPACE_ERR; + } + } } xmlSetNs(nodep, nsptr); } @@ -929,6 +961,7 @@ PHP_METHOD(DOMDocument, createAttributeNS) RETURN_FALSE; } +error: xmlFree(localname); if (prefix != NULL) { xmlFree(prefix); diff --git a/ext/dom/php_dom.c b/ext/dom/php_dom.c index 468d934588054..f008d58089bc3 100644 --- a/ext/dom/php_dom.c +++ b/ext/dom/php_dom.c @@ -1596,6 +1596,20 @@ NAMESPACE_ERR: Raised if 5. the namespaceURI is "http://www.w3.org/2000/xmlns/" and neither the qualifiedName nor its prefix is "xmlns". */ +xmlNsPtr dom_get_ns_unchecked(xmlNodePtr nodep, char *uri, char *prefix) +{ + xmlNsPtr nsptr = xmlNewNs(nodep, (xmlChar *)uri, (xmlChar *)prefix); + if (UNEXPECTED(nsptr == NULL)) { + /* Either memory allocation failure, or it's because of a prefix conflict. + * We'll assume a conflict and try again. If it was a memory allocation failure we'll just fail again, whatever. + * This isn't needed for every caller (such as createElementNS & DOMElement::__construct), but isn't harmful and simplifies the mental model "when do I use which function?". + * This branch will also be taken unlikely anyway as in those cases it'll be for allocation failure. */ + return dom_get_ns_resolve_prefix_conflict(nodep, uri); + } + + return nsptr; +} + /* {{{ xmlNsPtr dom_get_ns(xmlNodePtr nodep, char *uri, int *errorcode, char *prefix) */ xmlNsPtr dom_get_ns(xmlNodePtr nodep, char *uri, int *errorcode, char *prefix) { xmlNsPtr nsptr; @@ -1603,16 +1617,9 @@ xmlNsPtr dom_get_ns(xmlNodePtr nodep, char *uri, int *errorcode, char *prefix) { if (! ((prefix && !strcmp (prefix, "xml") && strcmp(uri, (char *)XML_XML_NAMESPACE)) || (prefix && !strcmp (prefix, "xmlns") && strcmp(uri, (char *)DOM_XMLNS_NAMESPACE)) || (prefix && !strcmp(uri, (char *)DOM_XMLNS_NAMESPACE) && strcmp (prefix, "xmlns")))) { - nsptr = xmlNewNs(nodep, (xmlChar *)uri, (xmlChar *)prefix); + nsptr = dom_get_ns_unchecked(nodep, uri, prefix); if (UNEXPECTED(nsptr == NULL)) { - /* Either memory allocation failure, or it's because of a prefix conflict. - * We'll assume a conflict and try again. If it was a memory allocation failure we'll just fail again, whatever. - * This isn't needed for every caller (such as createElementNS & DOMElement::__construct), but isn't harmful and simplifies the mental model "when do I use which function?". - * This branch will also be taken unlikely anyway as in those cases it'll be for allocation failure. */ - nsptr = dom_get_ns_resolve_prefix_conflict(nodep, uri); - if (UNEXPECTED(nsptr == NULL)) { - goto err; - } + goto err; } } else { goto err; diff --git a/ext/dom/php_dom.h b/ext/dom/php_dom.h index 46900e8e5fe93..c8d13c220de83 100644 --- a/ext/dom/php_dom.h +++ b/ext/dom/php_dom.h @@ -128,6 +128,7 @@ void php_dom_throw_error_with_message(int error_code, char *error_message, int s void node_list_unlink(xmlNodePtr node); int dom_check_qname(char *qname, char **localname, char **prefix, int uri_len, int name_len); xmlNsPtr dom_get_ns(xmlNodePtr node, char *uri, int *errorcode, char *prefix); +xmlNsPtr dom_get_ns_unchecked(xmlNodePtr nodep, char *uri, char *prefix); void dom_reconcile_ns(xmlDocPtr doc, xmlNodePtr nodep); void dom_reconcile_ns_list(xmlDocPtr doc, xmlNodePtr nodep, xmlNodePtr last); xmlNsPtr dom_get_nsdecl(xmlNode *node, xmlChar *localName); diff --git a/ext/dom/tests/gh12870.inc b/ext/dom/tests/gh12870.inc new file mode 100644 index 0000000000000..d7cfd3df7097e --- /dev/null +++ b/ext/dom/tests/gh12870.inc @@ -0,0 +1,26 @@ +appendChild($d->createElement('root')); + try { + $attr = $d->createAttributeNS($uri, $qualifiedName); + $d->documentElement->setAttributeNodeNS($attr); + echo "Attr prefix: "; + var_dump($attr->prefix); + echo "Attr namespaceURI: "; + var_dump($attr->namespaceURI); + echo "Attr value: "; + var_dump($attr->value); + echo "root namespaceURI: "; + var_dump($d->documentElement->namespaceURI); + echo "Equality check: "; + $parts = explode(':', $qualifiedName); + var_dump($attr === $d->documentElement->getAttributeNodeNS($uri, $parts[count($parts) - 1])); + echo $d->saveXML(), "\n"; + } catch (DOMException $e) { + echo "Exception: ", $e->getMessage(), "\n\n"; + } +} diff --git a/ext/dom/tests/gh12870_a.phpt b/ext/dom/tests/gh12870_a.phpt new file mode 100644 index 0000000000000..bd085c18bbe05 --- /dev/null +++ b/ext/dom/tests/gh12870_a.phpt @@ -0,0 +1,72 @@ +--TEST-- +GH-12870 (Creating an xmlns attribute results in a DOMException) - xmlns variations +--EXTENSIONS-- +dom +--FILE-- + +--EXPECT-- +=== NORMAL CASES === +--- Testing "http://www.w3.org/2000/xmlns/qx", "foo:xmlns" --- +Attr prefix: string(3) "foo" +Attr namespaceURI: string(31) "http://www.w3.org/2000/xmlns/qx" +Attr value: string(0) "" +root namespaceURI: NULL +Equality check: bool(true) + + + +--- Testing "http://www.w3.org/2000/xmlns/", "xmlns" --- +Attr prefix: string(0) "" +Attr namespaceURI: string(29) "http://www.w3.org/2000/xmlns/" +Attr value: string(0) "" +root namespaceURI: NULL +Equality check: bool(true) + + + +--- Testing "http://www.w3.org/2000/xmlns/", "xmlns:xmlns" --- +Attr prefix: string(5) "xmlns" +Attr namespaceURI: string(29) "http://www.w3.org/2000/xmlns/" +Attr value: string(0) "" +root namespaceURI: NULL +Equality check: bool(true) + + + +=== ERROR CASES === +--- Testing "http://www.w3.org/2000/xmlns/", "bar:xmlns" --- +Exception: Namespace Error + +--- Testing "http://www.w3.org/2000/xmlns/a", "xmlns" --- +Exception: Namespace Error + +--- Testing "http://www.w3.org/2000/xmlns/a", "xmlns:bar" --- +Exception: Namespace Error + +--- Testing NULL, "xmlns:bar" --- +Exception: Namespace Error + +--- Testing "", "xmlns" --- +Exception: Namespace Error + +--- Testing "http://www.w3.org/2000/xmlns/", "" --- +Exception: Namespace Error diff --git a/ext/dom/tests/gh12870_b.phpt b/ext/dom/tests/gh12870_b.phpt new file mode 100644 index 0000000000000..f70c56a477c96 --- /dev/null +++ b/ext/dom/tests/gh12870_b.phpt @@ -0,0 +1,84 @@ +--TEST-- +GH-12870 (Creating an xmlns attribute results in a DOMException) - xml variations +--EXTENSIONS-- +dom +--FILE-- + +--EXPECT-- +=== NORMAL CASES === +--- Testing "http://www.w3.org/XML/1998/namespaceqx", "foo:xml" --- +Attr prefix: string(3) "foo" +Attr namespaceURI: string(38) "http://www.w3.org/XML/1998/namespaceqx" +Attr value: string(0) "" +root namespaceURI: NULL +Equality check: bool(true) + + + +--- Testing "http://www.w3.org/XML/1998/namespace", "xml" --- +Attr prefix: string(3) "xml" +Attr namespaceURI: string(36) "http://www.w3.org/XML/1998/namespace" +Attr value: string(0) "" +root namespaceURI: NULL +Equality check: bool(true) + + + +--- Testing "http://www.w3.org/XML/1998/namespace", "bar:xml" --- +Attr prefix: string(3) "xml" +Attr namespaceURI: string(36) "http://www.w3.org/XML/1998/namespace" +Attr value: string(0) "" +root namespaceURI: NULL +Equality check: bool(true) + + + +--- Testing "", "xml" --- +Attr prefix: string(0) "" +Attr namespaceURI: NULL +Attr value: string(0) "" +root namespaceURI: NULL +Equality check: bool(false) + + + +--- Testing "http://www.w3.org/XML/1998/namespacea", "xml" --- +Attr prefix: string(7) "default" +Attr namespaceURI: string(37) "http://www.w3.org/XML/1998/namespacea" +Attr value: string(0) "" +root namespaceURI: NULL +Equality check: bool(true) + + + +=== ERROR CASES === +--- Testing "http://www.w3.org/XML/1998/namespace", "xmlns:xml" --- +Exception: Namespace Error + +--- Testing "http://www.w3.org/XML/1998/namespace", "" --- +Exception: Namespace Error + +--- Testing "http://www.w3.org/XML/1998/namespacea", "xml:foo" --- +Exception: Namespace Error + +--- Testing NULL, "xml:foo" --- +Exception: Namespace Error From 1b5a15918311d57c10c78060711379ffa764bad9 Mon Sep 17 00:00:00 2001 From: Ilija Tovilo Date: Fri, 8 Dec 2023 13:36:52 +0100 Subject: [PATCH 10/59] [skip ci] Skip intermittently failing curl test on macOS The test fails with "CURL ERROR: 56". I will create an issue for it shortly. --- ext/curl/tests/curl_setopt_ssl.phpt | 1 + 1 file changed, 1 insertion(+) diff --git a/ext/curl/tests/curl_setopt_ssl.phpt b/ext/curl/tests/curl_setopt_ssl.phpt index 52ff95ab34bcf..2e28466a84057 100644 --- a/ext/curl/tests/curl_setopt_ssl.phpt +++ b/ext/curl/tests/curl_setopt_ssl.phpt @@ -8,6 +8,7 @@ if (!function_exists("proc_open")) die("skip no proc_open"); exec('openssl version', $out, $code); if ($code > 0) die("skip couldn't locate openssl binary"); if (PHP_OS_FAMILY === 'Windows') die('skip not for Windows'); +if (PHP_OS_FAMILY === 'Darwin') die('skip Fails intermittently on macOS'); $curl_version = curl_version(); if ($curl_version['version_number'] < 0x074700) { die("skip: blob options not supported for curl < 7.71.0"); From ed40004139807dd589e0aa22e4899b48aab75aa9 Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Fri, 8 Dec 2023 17:19:17 +0100 Subject: [PATCH 11/59] [ci skip] NEWS --- NEWS | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/NEWS b/NEWS index b82f2b58798c0..af452a9b4319e 100644 --- a/NEWS +++ b/NEWS @@ -10,6 +10,10 @@ PHP NEWS . Fixed bug GH-12854 (8.3 - as final trait-used method does not correctly report visibility in Reflection). (nielsdos) +- DOM: + . Fixed bug GH-12870 (Creating an xmlns attribute results in a DOMException). + (nielsdos) + 07 Dec 2023, PHP 8.3.1RC1 - Core: From 62682cbd9754841c99b411f456381fe65dbec3ab Mon Sep 17 00:00:00 2001 From: Jakub Zelenka Date: Fri, 8 Dec 2023 14:22:06 +0000 Subject: [PATCH 12/59] Add FPM tester logs printing for all errors Closes GH-12902 --- sapi/fpm/tests/logreader.inc | 9 ++- sapi/fpm/tests/response.inc | 130 ++++++++++++++++++++--------------- sapi/fpm/tests/status.inc | 40 ++++++++--- sapi/fpm/tests/tester.inc | 61 ++++++++++++---- 4 files changed, 158 insertions(+), 82 deletions(-) diff --git a/sapi/fpm/tests/logreader.inc b/sapi/fpm/tests/logreader.inc index 96bcc9ec7cfb3..63b13a2a8e8f5 100644 --- a/sapi/fpm/tests/logreader.inc +++ b/sapi/fpm/tests/logreader.inc @@ -116,8 +116,11 @@ class LogReader */ public function printLogs(): void { + if (empty($this->sources)) { + return; + } $hasMultipleDescriptors = count($this->sources) > 1; - echo "LOGS:\n"; + echo "\nLOGS:\n"; foreach ($this->sources as $name => $source) { if ($hasMultipleDescriptors) { echo ">>> source: $name\n"; @@ -128,6 +131,7 @@ class LogReader } $this->printSeparator(); } + echo "\n"; } /** @@ -142,9 +146,8 @@ class LogReader if (is_null($errorMessage)) { return false; } - echo "ERROR: " . $errorMessage . "\n\n"; + echo "ERROR: " . $errorMessage . "\n"; $this->printLogs(); - echo "\n"; return false; } diff --git a/sapi/fpm/tests/response.inc b/sapi/fpm/tests/response.inc index 29105caaffd99..38ddbc8a8c2c2 100644 --- a/sapi/fpm/tests/response.inc +++ b/sapi/fpm/tests/response.inc @@ -2,14 +2,68 @@ namespace FPM; -class Response +abstract class BaseResponse +{ + /** + * Tester instance + * @var Tester + */ + private Tester $tester; + + /** + * @var bool + */ + protected bool $debugOutputted = false; + + /** + * @param Tester $tester + */ + public function __construct(Tester $tester) + { + $this->tester = $tester; + } + + /** + * Debug response output. + * + * @return void + */ + abstract function debugOutput(): void; + + /** + * Emit error message + * + * @param string $message + * @param bool $throw + * + * @return bool + * @throws \Exception + */ + protected function error(string $message, bool $throw = false): bool + { + $errorMessage = "ERROR: $message\n"; + if ($throw) { + throw new \Exception($errorMessage); + } + if ( ! $this->debugOutputted) { + $this->debugOutput(); + } + echo $errorMessage; + + $this->tester->printLogs(); + + return false; + } +} + +class Response extends BaseResponse { const HEADER_SEPARATOR = "\r\n\r\n"; /** * @var array */ - private $data; + private array $data; /** * @var string @@ -39,19 +93,17 @@ class Response /** * @var bool */ - private $expectInvalid; - - /** - * @var bool - */ - private bool $debugOutputted = false; + private bool $expectInvalid; /** + * @param Tester $tester * @param string|array|null $data * @param bool $expectInvalid */ - public function __construct($data = null, $expectInvalid = false) + public function __construct(Tester $tester, $data = null, bool $expectInvalid = false) { + parent::__construct($tester); + if ( ! is_array($data)) { $data = [ 'response' => $data, @@ -105,7 +157,7 @@ class Response * * @return Response */ - public function expectJsonBodyPatternForStatusProcessField(string $fieldName, string $pattern) + public function expectJsonBodyPatternForStatusProcessField(string $fieldName, string $pattern): Response { $rawData = $this->getBody('application/json'); $data = json_decode($rawData, true); @@ -270,7 +322,7 @@ class Response /** * Debug response output */ - public function debugOutput() + public function debugOutput(): void { echo ">>> Response\n"; echo "----------------- OUT -----------------\n"; @@ -416,26 +468,9 @@ class Response ); } } - - /** - * Emit error message - * - * @param string $message - * - * @return bool - */ - private function error(string $message): bool - { - if ( ! $this->debugOutputted) { - $this->debugOutput(); - } - echo "ERROR: $message\n"; - - return false; - } } -class ValuesResponse +class ValuesResponse extends BaseResponse { /** * @var array @@ -443,10 +478,14 @@ class ValuesResponse private array $values; /** + * @param Tester $tester * @param string|array|null $values + * @throws \Exception */ - public function __construct($values = null) + public function __construct(Tester $tester, $values = null) { + parent::__construct($tester); + if ( ! is_array($values)) { if ( ! is_null($values) ) { $this->error('Invalid values supplied', true); @@ -463,14 +502,15 @@ class ValuesResponse * @param string $name * @param mixed $value * @return ValuesResponse + * @throws \Exception */ public function expectValue(string $name, $value = null) { if ( ! isset($this->values[$name])) { - return $this->error("Value $name not found in values"); + $this->error("Value $name not found in values"); } if ( ! is_null($value) && $value !== $this->values[$name]) { - return $this->error("Value $name is {$this->values[$name]} but expected $value"); + $this->error("Value $name is {$this->values[$name]} but expected $value"); } return $this; } @@ -487,36 +527,12 @@ class ValuesResponse /** * Debug output data. - * - * @return ValuesResponse */ - public function debugOutput() + public function debugOutput(): void { echo ">>> ValuesResponse\n"; echo "----------------- Values -----------------\n"; var_dump($this->values); echo "---------------------------------------\n\n"; - - return $this; - } - - /** - * Emit error message - * - * @param string $message - * @param bool $throw - * - * @return ValuesResponse - */ - private function error(string $message, $throw = false): bool - { - $errorMessage = "ERROR: $message\n"; - if ($throw) { - throw new \Exception($errorMessage); - } - $this->debugOutput(); - echo $errorMessage; - - return $this; } } diff --git a/sapi/fpm/tests/status.inc b/sapi/fpm/tests/status.inc index 0e3f314b42209..dc07de563adbc 100644 --- a/sapi/fpm/tests/status.inc +++ b/sapi/fpm/tests/status.inc @@ -37,6 +37,34 @@ class Status 'slow requests' => '\d+', ]; + /** + * @var Tester + */ + private Tester $tester; + + /** + * @param Tester $tester + */ + public function __construct(Tester $tester) + { + $this->tester = $tester; + } + + /** + * @param string $body + * @param string $pattern + * @return void + */ + private function matchError(string $body, string $pattern): void + { + echo "ERROR: Expected body does not match pattern\n"; + echo "BODY:\n"; + var_dump($body); + echo "PATTERN:\n"; + var_dump($pattern); + $this->tester->printLogs(); + } + /** * Check status page. * @@ -106,11 +134,7 @@ class Status $pattern .= $footer . ')'; if (!preg_match($pattern, $body)) { - echo "ERROR: Expected body does not match pattern\n"; - echo "BODY:\n"; - var_dump($body); - echo "PATTERN:\n"; - var_dump($pattern); + $this->matchError($body, $pattern); } } @@ -245,11 +269,7 @@ class Status "# EOF)\n"; if (!preg_match($pattern, $body)) { - echo "ERROR: Expected body does not match pattern\n"; - echo "BODY:\n"; - var_dump($body); - echo "PATTERN:\n"; - var_dump($pattern); + $this->matchError($body, $pattern); } } } diff --git a/sapi/fpm/tests/tester.inc b/sapi/fpm/tests/tester.inc index e97a44bdbd7bf..66cbad175298d 100644 --- a/sapi/fpm/tests/tester.inc +++ b/sapi/fpm/tests/tester.inc @@ -600,7 +600,7 @@ class Tester } require_once "status.inc"; - $status = new Status(); + $status = new Status($this); foreach ($formats as $format) { $query = $format === 'plain' ? '' : $format; $response = $this->request($query, [], $statusPath, $address); @@ -762,7 +762,7 @@ class Tester int $readLimit = -1, ): Response { if ($this->hasError()) { - return new Response(null, true); + return $this->createResponse(expectInvalid: true); } if (is_array($stdin)) { @@ -773,7 +773,7 @@ class Tester $this->trace('Request params', $params); try { - $this->response = new Response( + $this->response = $this->createResponse( $this->getClient($address, $connKeepAlive)->request_data($params, $stdin, $readLimit) ); if ($expectError) { @@ -789,7 +789,7 @@ class Tester } else { $this->message($errorMessage); } - $this->response = new Response(); + $this->response = $this->createResponse(); } if ($this->debug) { $this->response->debugOutput(); @@ -824,7 +824,7 @@ class Tester } if ($this->hasError()) { - return array_map(fn($request) => new Response(null, true), $requests); + return array_map(fn($request) => $this->createResponse(expectInvalid: true), $requests); } try { @@ -847,7 +847,9 @@ class Tester }, $requests); $responses = array_map(function ($conn) use ($readTimeout) { - $response = new Response($conn['client']->wait_for_response_data($conn['requestId'], $readTimeout)); + $response = $this->createResponse( + $conn['client']->wait_for_response_data($conn['requestId'], $readTimeout) + ); if ($this->debug) { $response->debugOutput(); } @@ -864,7 +866,7 @@ class Tester $this->message($errorMessage); } - return array_map(fn($request) => new Response(null, true), $requests); + return array_map(fn($request) => $this->createResponse(expectInvalid: true), $requests); } } @@ -882,11 +884,11 @@ class Tester bool $connKeepAlive = false ): ValuesResponse { if ($this->hasError()) { - return new Response(null, true); + return $this->createValueResponse(); } try { - $valueResponse = new ValuesResponse( + $valueResponse = $this->createValueResponse( $this->getClient($address, $connKeepAlive)->getValues(['FCGI_MPXS_CONNS']) ); if ($this->debug) { @@ -894,7 +896,7 @@ class Tester } } catch (\Exception $exception) { $this->error("Request for getting values failed", $exception); - $valueResponse = new ValuesResponse(); + $valueResponse = $this->createValueResponse(); } return $valueResponse; @@ -903,8 +905,8 @@ class Tester /** * Get client. * - * @param string $address - * @param bool $keepAlive + * @param string|null $address + * @param bool $keepAlive * * @return Client */ @@ -1389,6 +1391,30 @@ class Tester return [$sourceFile, '/' . basename($sourceFile)]; } + /** + * Create a new response. + * + * @param mixed $data + * @param bool $expectInvalid + * @return Response + */ + private function createResponse($data = null, bool $expectInvalid = false): Response + { + return new Response($this, $data, $expectInvalid); + } + + /** + * Create a new values response. + * + * @param mixed $values + * @return ValuesResponse + * @throws \Exception + */ + private function createValueResponse($values = null): ValuesResponse + { + return new ValuesResponse($this, $values); + } + /** * @param string|null $msg */ @@ -1399,6 +1425,16 @@ class Tester } } + /** + * Print log reader logs. + * + * @return void + */ + public function printLogs(): void + { + $this->logReader->printLogs(); + } + /** * Display error. * @@ -1417,6 +1453,7 @@ class Tester $this->error .= "\n"; echo $this->error; + $this->printLogs(); return false; } From dad6912b990841ff8e51c70cc251a8d165ee31df Mon Sep 17 00:00:00 2001 From: Arnaud Le Blanc Date: Sat, 11 Nov 2023 13:57:13 +0100 Subject: [PATCH 13/59] Fix GH-12643: Stack limit tests failing on ppc64le These tests were setting zend.max_allowed_stack_size to a small value. On ppc64le this value is too small and the limit may be reached too soon. --- Zend/tests/stack_limit/stack_limit_003.phpt | 2 +- Zend/tests/stack_limit/stack_limit_007.phpt | 2 +- Zend/tests/stack_limit/stack_limit_008.phpt | 2 +- Zend/tests/stack_limit/stack_limit_011.phpt | 2 +- Zend/tests/stack_limit/stack_limit_012.phpt | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Zend/tests/stack_limit/stack_limit_003.phpt b/Zend/tests/stack_limit/stack_limit_003.phpt index 9eb94a971636f..6cf41a2bb14ef 100644 --- a/Zend/tests/stack_limit/stack_limit_003.phpt +++ b/Zend/tests/stack_limit/stack_limit_003.phpt @@ -7,7 +7,7 @@ if (!function_exists('zend_test_zend_call_stack_get')) die("skip zend_test_zend_ --EXTENSIONS-- zend_test --INI-- -zend.max_allowed_stack_size=128K +zend.max_allowed_stack_size=256K --FILE-- Date: Sat, 11 Nov 2023 14:28:23 +0100 Subject: [PATCH 14/59] Clarify the stack limit exception message Make it clearer why the size is not exactly zend.max_allowed_stack_size --- Zend/tests/stack_limit/stack_limit_001.phpt | 8 ++++---- Zend/tests/stack_limit/stack_limit_002.phpt | 8 ++++---- Zend/tests/stack_limit/stack_limit_003.phpt | 6 +++--- Zend/tests/stack_limit/stack_limit_005.phpt | 2 +- Zend/tests/stack_limit/stack_limit_006.phpt | 6 +++--- Zend/tests/stack_limit/stack_limit_007.phpt | 2 +- Zend/tests/stack_limit/stack_limit_008.phpt | 2 +- Zend/tests/stack_limit/stack_limit_011.phpt | 4 ++-- Zend/tests/stack_limit/stack_limit_012.phpt | 2 +- Zend/tests/stack_limit/stack_limit_013.phpt | 2 +- Zend/zend_compile.c | 2 +- Zend/zend_execute.c | 2 +- 12 files changed, 23 insertions(+), 23 deletions(-) diff --git a/Zend/tests/stack_limit/stack_limit_001.phpt b/Zend/tests/stack_limit/stack_limit_001.phpt index ca185635c39c8..f06770ea0c654 100644 --- a/Zend/tests/stack_limit/stack_limit_001.phpt +++ b/Zend/tests/stack_limit/stack_limit_001.phpt @@ -76,7 +76,7 @@ array(4) { ["EG(stack_limit)"]=> string(%d) "0x%x" } -Maximum call stack size of %d bytes reached. Infinite recursion? -Maximum call stack size of %d bytes reached. Infinite recursion? -Maximum call stack size of %d bytes reached. Infinite recursion? -Maximum call stack size of %d bytes reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? diff --git a/Zend/tests/stack_limit/stack_limit_002.phpt b/Zend/tests/stack_limit/stack_limit_002.phpt index 309de9bf6a2a3..dde87cd50d0ec 100644 --- a/Zend/tests/stack_limit/stack_limit_002.phpt +++ b/Zend/tests/stack_limit/stack_limit_002.phpt @@ -79,7 +79,7 @@ array(4) { ["EG(stack_limit)"]=> string(%d) "0x%x" } -Maximum call stack size of %d bytes reached. Infinite recursion? -Maximum call stack size of %d bytes reached. Infinite recursion? -Maximum call stack size of %d bytes reached. Infinite recursion? -Maximum call stack size of %d bytes reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? diff --git a/Zend/tests/stack_limit/stack_limit_003.phpt b/Zend/tests/stack_limit/stack_limit_003.phpt index 6cf41a2bb14ef..256544410c34d 100644 --- a/Zend/tests/stack_limit/stack_limit_003.phpt +++ b/Zend/tests/stack_limit/stack_limit_003.phpt @@ -61,6 +61,6 @@ array(4) { ["EG(stack_limit)"]=> string(%d) "0x%x" } -Maximum call stack size of %d bytes reached. Infinite recursion? -Maximum call stack size of %d bytes reached. Infinite recursion? -Maximum call stack size of %d bytes reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? diff --git a/Zend/tests/stack_limit/stack_limit_005.phpt b/Zend/tests/stack_limit/stack_limit_005.phpt index 3fcd5d5728276..29495f60d8620 100644 --- a/Zend/tests/stack_limit/stack_limit_005.phpt +++ b/Zend/tests/stack_limit/stack_limit_005.phpt @@ -65,4 +65,4 @@ $test ; --EXPECTF-- -Fatal error: Maximum call stack size of %d bytes reached during compilation. Try splitting expression in %s on line %d +Fatal error: Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached during compilation. Try splitting expression in %s on line %d diff --git a/Zend/tests/stack_limit/stack_limit_006.phpt b/Zend/tests/stack_limit/stack_limit_006.phpt index 0b51fabb4babd..a0548220290ff 100644 --- a/Zend/tests/stack_limit/stack_limit_006.phpt +++ b/Zend/tests/stack_limit/stack_limit_006.phpt @@ -320,6 +320,6 @@ array(4) { ["EG(stack_limit)"]=> string(%d) "0x%x" } -Maximum call stack size of %d bytes reached. Infinite recursion? -Maximum call stack size of %d bytes reached. Infinite recursion? -Maximum call stack size of %d bytes reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? diff --git a/Zend/tests/stack_limit/stack_limit_007.phpt b/Zend/tests/stack_limit/stack_limit_007.phpt index ea91760007536..e269ad72b17fd 100644 --- a/Zend/tests/stack_limit/stack_limit_007.phpt +++ b/Zend/tests/stack_limit/stack_limit_007.phpt @@ -41,5 +41,5 @@ array(4) { ["EG(stack_limit)"]=> string(%d) "0x%x" } -Maximum call stack size of %d bytes reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? Try executed: 1 diff --git a/Zend/tests/stack_limit/stack_limit_008.phpt b/Zend/tests/stack_limit/stack_limit_008.phpt index 237dd748f2c43..4dab044e84c8f 100644 --- a/Zend/tests/stack_limit/stack_limit_008.phpt +++ b/Zend/tests/stack_limit/stack_limit_008.phpt @@ -55,4 +55,4 @@ array(4) { string(%d) "0x%x" } Will throw: -Maximum call stack size of %d bytes reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? diff --git a/Zend/tests/stack_limit/stack_limit_011.phpt b/Zend/tests/stack_limit/stack_limit_011.phpt index 1994fde7f7afd..67fc92f803079 100644 --- a/Zend/tests/stack_limit/stack_limit_011.phpt +++ b/Zend/tests/stack_limit/stack_limit_011.phpt @@ -48,5 +48,5 @@ array(4) { ["EG(stack_limit)"]=> string(%d) "0x%x" } -Maximum call stack size of %d bytes reached. Infinite recursion? -Previous: Maximum call stack size of %d bytes reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? +Previous: Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? diff --git a/Zend/tests/stack_limit/stack_limit_012.phpt b/Zend/tests/stack_limit/stack_limit_012.phpt index 6cff18626bec0..8c8fc6c6333c3 100644 --- a/Zend/tests/stack_limit/stack_limit_012.phpt +++ b/Zend/tests/stack_limit/stack_limit_012.phpt @@ -38,4 +38,4 @@ array(4) { string(%d) "0x%x" } -Fatal error: Maximum call stack size of %d bytes reached during compilation. Try splitting expression in %s on line %d +Fatal error: Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached during compilation. Try splitting expression in %s on line %d diff --git a/Zend/tests/stack_limit/stack_limit_013.phpt b/Zend/tests/stack_limit/stack_limit_013.phpt index c323fe4c31d1c..7acf8b035ca2d 100644 --- a/Zend/tests/stack_limit/stack_limit_013.phpt +++ b/Zend/tests/stack_limit/stack_limit_013.phpt @@ -117,4 +117,4 @@ $test = [ ]; --EXPECTF-- -Fatal error: Maximum call stack size of %d bytes reached during compilation. Try splitting expression in %s on line %d +Fatal error: Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached during compilation. Try splitting expression in %s on line %d diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index 87bfd0b1e94e5..a731970547ef2 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -103,7 +103,7 @@ static void zend_compile_assign(znode *result, zend_ast *ast); zend_never_inline static void zend_stack_limit_error(void) { zend_error_noreturn(E_COMPILE_ERROR, - "Maximum call stack size of %zu bytes reached during compilation. Try splitting expression", + "Maximum call stack size of %zu bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached during compilation. Try splitting expression", (size_t) ((uintptr_t) EG(stack_base) - (uintptr_t) EG(stack_limit))); } diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 2544351824b86..bd090777653ca 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -2311,7 +2311,7 @@ static zend_never_inline ZEND_COLD void ZEND_FASTCALL zend_use_new_element_for_s #ifdef ZEND_CHECK_STACK_LIMIT static zend_never_inline ZEND_COLD void ZEND_FASTCALL zend_call_stack_size_error(void) { - zend_throw_error(NULL, "Maximum call stack size of %zu bytes reached. Infinite recursion?", + zend_throw_error(NULL, "Maximum call stack size of %zu bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion?", (size_t) ((uintptr_t) EG(stack_base) - (uintptr_t) EG(stack_limit))); } #endif /* ZEND_CHECK_STACK_LIMIT */ From 6aa70b577d629ad0db207c7ab68dc9a65dd740cc Mon Sep 17 00:00:00 2001 From: Arnaud Le Blanc Date: Sun, 10 Dec 2023 13:21:44 +0100 Subject: [PATCH 15/59] WS --- Zend/tests/stack_limit/stack_limit_001.phpt | 8 ++++---- Zend/tests/stack_limit/stack_limit_002.phpt | 8 ++++---- Zend/tests/stack_limit/stack_limit_003.phpt | 6 +++--- Zend/tests/stack_limit/stack_limit_005.phpt | 2 +- Zend/tests/stack_limit/stack_limit_006.phpt | 6 +++--- Zend/tests/stack_limit/stack_limit_007.phpt | 2 +- Zend/tests/stack_limit/stack_limit_008.phpt | 2 +- Zend/tests/stack_limit/stack_limit_011.phpt | 4 ++-- Zend/tests/stack_limit/stack_limit_012.phpt | 2 +- Zend/tests/stack_limit/stack_limit_013.phpt | 2 +- Zend/zend_compile.c | 2 +- Zend/zend_execute.c | 2 +- 12 files changed, 23 insertions(+), 23 deletions(-) diff --git a/Zend/tests/stack_limit/stack_limit_001.phpt b/Zend/tests/stack_limit/stack_limit_001.phpt index f06770ea0c654..2de5d28134ce7 100644 --- a/Zend/tests/stack_limit/stack_limit_001.phpt +++ b/Zend/tests/stack_limit/stack_limit_001.phpt @@ -76,7 +76,7 @@ array(4) { ["EG(stack_limit)"]=> string(%d) "0x%x" } -Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? -Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? -Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? -Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size - zend.reserved_stack_size) reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size - zend.reserved_stack_size) reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size - zend.reserved_stack_size) reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size - zend.reserved_stack_size) reached. Infinite recursion? diff --git a/Zend/tests/stack_limit/stack_limit_002.phpt b/Zend/tests/stack_limit/stack_limit_002.phpt index dde87cd50d0ec..53fc707ca6a5e 100644 --- a/Zend/tests/stack_limit/stack_limit_002.phpt +++ b/Zend/tests/stack_limit/stack_limit_002.phpt @@ -79,7 +79,7 @@ array(4) { ["EG(stack_limit)"]=> string(%d) "0x%x" } -Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? -Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? -Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? -Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size - zend.reserved_stack_size) reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size - zend.reserved_stack_size) reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size - zend.reserved_stack_size) reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size - zend.reserved_stack_size) reached. Infinite recursion? diff --git a/Zend/tests/stack_limit/stack_limit_003.phpt b/Zend/tests/stack_limit/stack_limit_003.phpt index 256544410c34d..c3ea35bf84950 100644 --- a/Zend/tests/stack_limit/stack_limit_003.phpt +++ b/Zend/tests/stack_limit/stack_limit_003.phpt @@ -61,6 +61,6 @@ array(4) { ["EG(stack_limit)"]=> string(%d) "0x%x" } -Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? -Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? -Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size - zend.reserved_stack_size) reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size - zend.reserved_stack_size) reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size - zend.reserved_stack_size) reached. Infinite recursion? diff --git a/Zend/tests/stack_limit/stack_limit_005.phpt b/Zend/tests/stack_limit/stack_limit_005.phpt index 29495f60d8620..4f24ff74b44ac 100644 --- a/Zend/tests/stack_limit/stack_limit_005.phpt +++ b/Zend/tests/stack_limit/stack_limit_005.phpt @@ -65,4 +65,4 @@ $test ; --EXPECTF-- -Fatal error: Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached during compilation. Try splitting expression in %s on line %d +Fatal error: Maximum call stack size of %d bytes (zend.max_allowed_stack_size - zend.reserved_stack_size) reached during compilation. Try splitting expression in %s on line %d diff --git a/Zend/tests/stack_limit/stack_limit_006.phpt b/Zend/tests/stack_limit/stack_limit_006.phpt index a0548220290ff..639b2f8e66ced 100644 --- a/Zend/tests/stack_limit/stack_limit_006.phpt +++ b/Zend/tests/stack_limit/stack_limit_006.phpt @@ -320,6 +320,6 @@ array(4) { ["EG(stack_limit)"]=> string(%d) "0x%x" } -Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? -Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? -Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size - zend.reserved_stack_size) reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size - zend.reserved_stack_size) reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size - zend.reserved_stack_size) reached. Infinite recursion? diff --git a/Zend/tests/stack_limit/stack_limit_007.phpt b/Zend/tests/stack_limit/stack_limit_007.phpt index e269ad72b17fd..55b11f36fe341 100644 --- a/Zend/tests/stack_limit/stack_limit_007.phpt +++ b/Zend/tests/stack_limit/stack_limit_007.phpt @@ -41,5 +41,5 @@ array(4) { ["EG(stack_limit)"]=> string(%d) "0x%x" } -Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size - zend.reserved_stack_size) reached. Infinite recursion? Try executed: 1 diff --git a/Zend/tests/stack_limit/stack_limit_008.phpt b/Zend/tests/stack_limit/stack_limit_008.phpt index 4dab044e84c8f..43ce1dcf2886f 100644 --- a/Zend/tests/stack_limit/stack_limit_008.phpt +++ b/Zend/tests/stack_limit/stack_limit_008.phpt @@ -55,4 +55,4 @@ array(4) { string(%d) "0x%x" } Will throw: -Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size - zend.reserved_stack_size) reached. Infinite recursion? diff --git a/Zend/tests/stack_limit/stack_limit_011.phpt b/Zend/tests/stack_limit/stack_limit_011.phpt index 67fc92f803079..f04ad65427120 100644 --- a/Zend/tests/stack_limit/stack_limit_011.phpt +++ b/Zend/tests/stack_limit/stack_limit_011.phpt @@ -48,5 +48,5 @@ array(4) { ["EG(stack_limit)"]=> string(%d) "0x%x" } -Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? -Previous: Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion? +Maximum call stack size of %d bytes (zend.max_allowed_stack_size - zend.reserved_stack_size) reached. Infinite recursion? +Previous: Maximum call stack size of %d bytes (zend.max_allowed_stack_size - zend.reserved_stack_size) reached. Infinite recursion? diff --git a/Zend/tests/stack_limit/stack_limit_012.phpt b/Zend/tests/stack_limit/stack_limit_012.phpt index 8c8fc6c6333c3..9ba522b8c449d 100644 --- a/Zend/tests/stack_limit/stack_limit_012.phpt +++ b/Zend/tests/stack_limit/stack_limit_012.phpt @@ -38,4 +38,4 @@ array(4) { string(%d) "0x%x" } -Fatal error: Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached during compilation. Try splitting expression in %s on line %d +Fatal error: Maximum call stack size of %d bytes (zend.max_allowed_stack_size - zend.reserved_stack_size) reached during compilation. Try splitting expression in %s on line %d diff --git a/Zend/tests/stack_limit/stack_limit_013.phpt b/Zend/tests/stack_limit/stack_limit_013.phpt index 7acf8b035ca2d..82f2a59c4089d 100644 --- a/Zend/tests/stack_limit/stack_limit_013.phpt +++ b/Zend/tests/stack_limit/stack_limit_013.phpt @@ -117,4 +117,4 @@ $test = [ ]; --EXPECTF-- -Fatal error: Maximum call stack size of %d bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached during compilation. Try splitting expression in %s on line %d +Fatal error: Maximum call stack size of %d bytes (zend.max_allowed_stack_size - zend.reserved_stack_size) reached during compilation. Try splitting expression in %s on line %d diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index a731970547ef2..1078dd1d20a2a 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -103,7 +103,7 @@ static void zend_compile_assign(znode *result, zend_ast *ast); zend_never_inline static void zend_stack_limit_error(void) { zend_error_noreturn(E_COMPILE_ERROR, - "Maximum call stack size of %zu bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached during compilation. Try splitting expression", + "Maximum call stack size of %zu bytes (zend.max_allowed_stack_size - zend.reserved_stack_size) reached during compilation. Try splitting expression", (size_t) ((uintptr_t) EG(stack_base) - (uintptr_t) EG(stack_limit))); } diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index bd090777653ca..436154a99afb0 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -2311,7 +2311,7 @@ static zend_never_inline ZEND_COLD void ZEND_FASTCALL zend_use_new_element_for_s #ifdef ZEND_CHECK_STACK_LIMIT static zend_never_inline ZEND_COLD void ZEND_FASTCALL zend_call_stack_size_error(void) { - zend_throw_error(NULL, "Maximum call stack size of %zu bytes (zend.max_allowed_stack_size-zend.reserved_stack_size) reached. Infinite recursion?", + zend_throw_error(NULL, "Maximum call stack size of %zu bytes (zend.max_allowed_stack_size - zend.reserved_stack_size) reached. Infinite recursion?", (size_t) ((uintptr_t) EG(stack_base) - (uintptr_t) EG(stack_limit))); } #endif /* ZEND_CHECK_STACK_LIMIT */ From ec348a12d11a158a7f86c74ab1566fdae3a817aa Mon Sep 17 00:00:00 2001 From: Alex Dowad Date: Wed, 6 Dec 2023 06:11:39 +0200 Subject: [PATCH 16/59] Character indices used by mb_strpos and mb_substr have same meaning, even on invalid strings Starting many years ago, libmbfl included a 'mblen_table' for selected text encodings. This table allows looking up the byte length of a (possibly multi-byte) character from the value of the first byte. libmbfl uses these tables to optimize certain operations; if a text-processing operation can be performed using an mblen_table, it may not be necessary to decode the text to codepoints. Since libmbfl's decoding filters are generally slow, this improves performance. Since mbstring is (or was) based on libmbfl, it has always used these mblen_tables to implement some functions. This design has a significant downside. Let me explain: While some mbstring functions are implemented by converting input text to codepoints and operating on the codepoints, others operate directly on the original input bytes (using an mblen_table to identify character boundaries). Both of these implementation styles, if correctly coded, yield equivalent results on valid strings. However, on strings which contain encoding errors, the results are often different. When decoding byte strings to codepoints using some text encoding, mbstring uses the non-existent codepoint 0xFFFFFFFF to represent a byte sequence which cannot be decoded. Then, when mbstring indexes into the resulting sequence of codepoints, the index of any particular character depends on the number of such 'error markers' which were produced during the decoding process. In contrast, when an mblen_table is used to split a byte sequence into characters, there is no question of counting encoding errors; rather, table lookups into the mblen_table are used to repeatedly 'bite off' some number of bytes (which are treated as one 'character'). In the presence of encoding errors, these two methods of mapping between byte indices and character indices are inherently different and will rarely agree. (For completeness, it must be said that some internal mbstring code which operates only on UTF-8 text uses a third method for mapping between byte indices and character indices, that is: counting non-continuation UTF-8 bytes, which are all bytes whose binary representation is NOT like 0b10xxxxxx. This method happens to agree with the method which involves decoding the input text to codepoints and then counting the codepoints.) I have been aware of this issue for years, but only recently became aware that in the case of mb_strstr, mb_strpos, and mb_substr, this issue can cause seriously unintuitive behavior (and even security vulnerabilities). This was reported by Stefan Schiller. Stefan Schiller shared the following example for mb_strstr: var_dump(mb_strstr("\xf0start", "start", false, "UTF-8")); // string(2) "rt" Similarly, when mb_strpos and mb_substr are used to identify and extract a substring from a string with encoding errors, Stefan Schiller pointed out that the extracted portion may be completely different than desired. This is because (for UTF-8 strings) mb_strpos works by counting non-continuation bytes, but mb_substr uses an mblen_table. Since some mbstring functions *cannot* be implemented using an mblen_table, as long as mblen_tables are used, similar inconsistencies cannot be totally avoided. But the mblen_tables are critical to mbstring's performance. Or are they? Benchmarking mb_substr on various UTF-8, SJIS, and EUC-JP strings revealed something interesting. On all SJIS and EUC-JP test cases, mb_substr was slightly faster when the mblen_table based code was deleted. For some UTF-8 test cases, the mblen_table-based code was a tiny bit faster, while for others the fallback code was a touch faster; in no case was the difference significant. Therefore, the simple fix is to delete the mblen_table-based implementation of mb_substr. Aside from making the function behave consistently with other mbstring functions on invalid strings, there is ONE case where behavior is now different on valid strings: that is, on SJIS-Mac (MacJapanese) strings which contain any of the following code units: 0x85AB-0x85AD, 0x85BF, 0x85C0, 0x85C1, 0x8645, 0x864B, 0x865D, 0x869E, 0x86CE, 0x86D3-0x86D5, 0x86D6, 0x8971, 0x8792, 0x879D, 0x87FB, 0x87FC, 0xEB41, 0xEB42, 0xEB50, 0xEB5B, 0xEB5D, 0xEB60-0xEB6E, and all from 0xEB81 and above. All of these SJIS-Mac code units share the (very unusual) property that they do not correspond to any one Unicode codepoint. When converting from SJIS-Mac to Unicode, these must be converted to 2, 3, 4, or 5 codepoints each. The previous, mblen_table-based implementation of mb_substr would treat all of these SJIS-Mac byte sequences as 'one character'. Now, they are treated as multiple characters (one for each of the Unicode codepoints which they decode to). The new behavior is more consistent with other mbstring functions. I don't know if SJIS-Mac users will like this change or not (probably most will never notice), but the BC break is justified by the very real security impact of the previous, inconsistent behavior. Finally, I should comment on whether similar changes are needed elsewhere. The remaining functions which use an mblen_table are: mb_str_split, mb_strcut, and various search functions (such as mb_strpos). The search functions are only affected now when they receive a positive 'offset' parameter specifying where to start searching from. The search functions should definitely be fixed so they do not use an mblen_table to implement the 'offset' parameter. I am not convinced that there is any good reason to change mb_str_split and mb_strcut. --- ext/mbstring/mbstring.c | 46 ++++--------------------------- ext/mbstring/tests/mb_strstr.phpt | 9 +++++- ext/mbstring/tests/mb_substr.phpt | 39 ++++++++++++++++---------- 3 files changed, 38 insertions(+), 56 deletions(-) diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c index a9f6cd6282922..405806604a0e4 100644 --- a/ext/mbstring/mbstring.c +++ b/ext/mbstring/mbstring.c @@ -38,6 +38,7 @@ #include "libmbfl/mbfl/mbfilter_wchar.h" #include "libmbfl/mbfl/eaw_table.h" #include "libmbfl/filters/mbfilter_base64.h" +#include "libmbfl/filters/mbfilter_cjk.h" #include "libmbfl/filters/mbfilter_qprint.h" #include "libmbfl/filters/mbfilter_htmlent.h" #include "libmbfl/filters/mbfilter_uuencode.h" @@ -2105,8 +2106,9 @@ static zend_string* mb_get_substr(zend_string *input, size_t from, size_t len, c unsigned char *in = (unsigned char*)ZSTR_VAL(input); size_t in_len = ZSTR_LEN(input); - if (from >= in_len) { - /* No supported text encoding decodes to more than one codepoint per byte + if (len == 0 || (from >= in_len && enc != &mbfl_encoding_sjis_mac)) { + /* Other than MacJapanese, no supported text encoding decodes to + * more than one codepoint per byte * So if the number of codepoints to skip >= number of input bytes, * then definitely the output should be empty */ return zend_empty_string; @@ -2127,30 +2129,6 @@ static zend_string* mb_get_substr(zend_string *input, size_t from, size_t len, c len = in_len; } return zend_string_init_fast((const char*)in, len); - } else if (enc->mblen_table) { - /* The use of the `mblen_table` means that for encodings like MacJapanese, - * we treat each character in its native charset as "1 character", even if it - * maps to a sequence of several codepoints */ - const unsigned char *mbtab = enc->mblen_table; - unsigned char *limit = in + in_len; - while (from && in < limit) { - in += mbtab[*in]; - from--; - } - if (in >= limit) { - return zend_empty_string; - } else if (len == MBFL_SUBSTR_UNTIL_END) { - return zend_string_init_fast((const char*)in, limit - in); - } - unsigned char *end = in; - while (len && end < limit) { - end += mbtab[*end]; - len--; - } - if (end > limit) { - end = limit; - } - return zend_string_init_fast((const char*)in, end - in); } return mb_get_substr_slow(in, in_len, from, len, enc); @@ -2343,21 +2321,7 @@ PHP_FUNCTION(mb_substr) size_t mblen = 0; if (from < 0 || (!len_is_null && len < 0)) { - if (enc->mblen_table) { - /* Because we use the `mblen_table` when iterating over the string and - * extracting the requested part, we also need to use it here for counting - * the "length" of the string - * Otherwise, we can get wrong results for text encodings like MacJapanese, - * where one native 'character' can map to a sequence of several codepoints */ - const unsigned char *mbtab = enc->mblen_table; - unsigned char *p = (unsigned char*)ZSTR_VAL(str), *e = p + ZSTR_LEN(str); - while (p < e) { - p += mbtab[*p]; - mblen++; - } - } else { - mblen = mb_get_strlen(str, enc); - } + mblen = mb_get_strlen(str, enc); } /* if "from" position is negative, count start position from the end diff --git a/ext/mbstring/tests/mb_strstr.phpt b/ext/mbstring/tests/mb_strstr.phpt index 4cdbb3df24839..85b0eeb19f404 100644 --- a/ext/mbstring/tests/mb_strstr.phpt +++ b/ext/mbstring/tests/mb_strstr.phpt @@ -26,6 +26,11 @@ var_dump(FROM_EUC_JP(mb_strstr(EUC_JP("あいうえおかきくけこ"), EUC_JP( var_dump(bin2hex(mb_strstr("\xdd\x00", "", false, 'UTF-8'))); var_dump(bin2hex(mb_strstr("M\xff\xff\xff\x00", "\x00", false, "SJIS"))); +// Test handling of invalid UTF-8 string +// Thanks to Stefan Schiller +var_dump(mb_strstr("\xf0start", "start", false, "UTF-8")); +var_dump(mb_strstr("\xf0start", "start", true, "UTF-8")); + ?> --EXPECT-- string(18) "おかきくけこ" @@ -36,5 +41,7 @@ string(12) "あいうえ" string(18) "おかきくけこ" string(18) "おかきくけこ" string(12) "あいうえ" -string(4) "dd00" +string(4) "3f00" string(2) "00" +string(5) "start" +string(1) "?" diff --git a/ext/mbstring/tests/mb_substr.phpt b/ext/mbstring/tests/mb_substr.phpt index ef37ca6dc192a..ad94c3b6069b1 100644 --- a/ext/mbstring/tests/mb_substr.phpt +++ b/ext/mbstring/tests/mb_substr.phpt @@ -118,6 +118,15 @@ print "3: " . mb_convert_encoding(mb_substr($utf7, -5, 3, 'UTF-7'), 'UTF-8', 'UT print "4: " . mb_convert_encoding(mb_substr($utf7, 1, null, 'UTF-7'), 'UTF-8', 'UTF-7') . "\n"; print "5:" . mb_convert_encoding(mb_substr($utf7, 10, 0, 'UTF-7'), 'UTF-8', 'UTF-7') . "\n"; +echo "Testing agreement with mb_strpos on invalid UTF-8 string:\n"; +/* Stefan Schiller pointed out that on invalid UTF-8 strings, character indices returned + * by mb_strpos would not extract the desired part of the string when passed to mb_substr. + * This is the test case which he provided: */ +$data = "\xF0AAA"; +$pos = mb_strpos($data, "<", 0, "UTF-8"); +$out = mb_substr($data, 0, $pos, "UTF-8"); +print $out . "\n"; + echo "Regression:\n"; /* During development, one >= comparison in mb_get_substr was wrongly written as > * This was caught by libFuzzer */ @@ -138,30 +147,30 @@ SJIS: 4: 967b8cea8365834c8358836782c582b781423031323334825482558256825782588142 5: -- Testing illegal SJIS byte 0x80 -- -6380 -806162 +633f +3f6162 SJIS-2004: -6380 -806162 +633f +3f6162 MacJapanese: 6380 806162 SJIS-Mobile#DOCOMO: -6380 -806162 +633f +3f6162 SJIS-Mobile#KDDI: -6380 -806162 +633f +3f6162 SJIS-Mobile#SoftBank: -6380 -806162 +633f +3f6162 -- Testing MacJapanese characters which map to 3-5 codepoints each -- 616263 -85ab85ac -85ac +3f3f +58 616263 -85bf85c0 -85c0 +3f3f +78 ISO-2022-JP: 1: 1b2442212121721b284241 2: 43 @@ -200,5 +209,7 @@ UTF-7: 3: йте 4: reek: Σὲ γνωρίζω ἀπὸ τὴν κόψη Russian: Зарегистрируйтесь 5: +Testing agreement with mb_strpos on invalid UTF-8 string: +?AAA Regression: 1b28493d3d3d3d3d3d3d3e3d3d3d1b28423f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f000000003f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f1b28493d3d3d3d3d3d3d3e1b2842013a4f1b28492a1b2842 From ff22409082c59e295f96bdff12f74d6302040088 Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Mon, 11 Dec 2023 10:08:55 +0300 Subject: [PATCH 17/59] JIT: Fix .debug_abbrev section in GDB JIT API. --- ext/opcache/jit/zend_jit_gdb.c | 1 + 1 file changed, 1 insertion(+) diff --git a/ext/opcache/jit/zend_jit_gdb.c b/ext/opcache/jit/zend_jit_gdb.c index 39169108a8f5e..867312830f2d4 100644 --- a/ext/opcache/jit/zend_jit_gdb.c +++ b/ext/opcache/jit/zend_jit_gdb.c @@ -397,6 +397,7 @@ static void zend_gdbjit_debugabbrev(zend_gdbjit_ctx *ctx) DUV(DW_FORM_data4); DB(0); DB(0); + DB(0); ctx->p = p; } From 623da03845e424ebf3053adbee59eb13c172bb27 Mon Sep 17 00:00:00 2001 From: Ilija Tovilo Date: Fri, 8 Dec 2023 12:56:30 +0100 Subject: [PATCH 18/59] Fix zend_jit_undefined_long_key overwriting dim when dim == result Fixes oss-fuzz #64727 Closes GH-12900 --- NEWS | 4 ++++ ext/opcache/jit/zend_jit_vm_helpers.c | 4 ++-- ext/opcache/tests/jit/oss-fuzz-64727.phpt | 27 +++++++++++++++++++++++ 3 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 ext/opcache/tests/jit/oss-fuzz-64727.phpt diff --git a/NEWS b/NEWS index 6c3e837a49eeb..f2c2ede3ae0ad 100644 --- a/NEWS +++ b/NEWS @@ -6,6 +6,10 @@ PHP NEWS . Fix incorrect timeout in built-in web server when using router script and max_input_time. (ilutov) +- Opcache: + . Fixed oss-fuzz #64727 (JIT undefined array key warning may overwrite DIM + with NULL when DIM is the same var as result). (ilutov) + 21 Dec 2023, PHP 8.2.14 - Core: diff --git a/ext/opcache/jit/zend_jit_vm_helpers.c b/ext/opcache/jit/zend_jit_vm_helpers.c index ff7fbd87546eb..fe9d5fdaa8da5 100644 --- a/ext/opcache/jit/zend_jit_vm_helpers.c +++ b/ext/opcache/jit/zend_jit_vm_helpers.c @@ -205,7 +205,6 @@ void ZEND_FASTCALL zend_jit_undefined_long_key(EXECUTE_DATA_D) zval *result = EX_VAR(opline->result.var); zval *dim; - ZVAL_NULL(result); if (opline->op2_type == IS_CONST) { dim = RT_CONSTANT(opline, opline->op2); } else { @@ -213,6 +212,7 @@ void ZEND_FASTCALL zend_jit_undefined_long_key(EXECUTE_DATA_D) } ZEND_ASSERT(Z_TYPE_P(dim) == IS_LONG); zend_error(E_WARNING, "Undefined array key " ZEND_LONG_FMT, Z_LVAL_P(dim)); + ZVAL_NULL(result); } void ZEND_FASTCALL zend_jit_undefined_string_key(EXECUTE_DATA_D) @@ -222,7 +222,6 @@ void ZEND_FASTCALL zend_jit_undefined_string_key(EXECUTE_DATA_D) zval *dim; zend_ulong lval; - ZVAL_NULL(result); if (opline->op2_type == IS_CONST) { dim = RT_CONSTANT(opline, opline->op2); } else { @@ -234,6 +233,7 @@ void ZEND_FASTCALL zend_jit_undefined_string_key(EXECUTE_DATA_D) } else { zend_error(E_WARNING, "Undefined array key \"%s\"", Z_STRVAL_P(dim)); } + ZVAL_NULL(result); } ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_jit_profile_helper(ZEND_OPCODE_HANDLER_ARGS) diff --git a/ext/opcache/tests/jit/oss-fuzz-64727.phpt b/ext/opcache/tests/jit/oss-fuzz-64727.phpt new file mode 100644 index 0000000000000..e8479d1d2f6e4 --- /dev/null +++ b/ext/opcache/tests/jit/oss-fuzz-64727.phpt @@ -0,0 +1,27 @@ +--TEST-- +oss-fuzz #64727 +--INI-- +opcache.enable_cli=1 +opcache.jit_buffer_size=64M +opcache.jit=function +--EXTENSIONS-- +opcache +--FILE-- + +--EXPECT-- +int(0) +int(3) +int(3) +NULL From 2b8c00850b86ab40457dcd09a35a8cd9e0c4f9f0 Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Mon, 11 Dec 2023 23:40:26 +0100 Subject: [PATCH 19/59] Fix GH-12936: hash() function hangs endlessly if using sha512 on strings >= 4GiB There's two problems: - Some loops used `unsigned int` instead of `size_t`. - The 2*N-bit addition that is emulated using 2 N bit numbers has a bug: it first truncated the number to 32/64 bit and only then shifted. This resulted in the wrong length info stored inside the resulting hash. Closes GH-12937. --- NEWS | 4 ++++ ext/hash/hash_adler32.c | 4 ++-- ext/hash/hash_haval.c | 5 +++-- ext/hash/hash_md.c | 5 +++-- ext/hash/hash_ripemd.c | 20 ++++++++++++-------- ext/hash/hash_sha.c | 20 ++++++++++++-------- ext/standard/sha1.c | 5 +++-- 7 files changed, 39 insertions(+), 24 deletions(-) diff --git a/NEWS b/NEWS index f2c2ede3ae0ad..6223ed32b752a 100644 --- a/NEWS +++ b/NEWS @@ -6,6 +6,10 @@ PHP NEWS . Fix incorrect timeout in built-in web server when using router script and max_input_time. (ilutov) +- Hash: + . Fixed bug GH-12936 (hash() function hangs endlessly if using sha512 on + strings >= 4GiB). (nielsdos) + - Opcache: . Fixed oss-fuzz #64727 (JIT undefined array key warning may overwrite DIM with NULL when DIM is the same var as result). (ilutov) diff --git a/ext/hash/hash_adler32.c b/ext/hash/hash_adler32.c index 52ad17c39fd05..3937853fdc317 100644 --- a/ext/hash/hash_adler32.c +++ b/ext/hash/hash_adler32.c @@ -25,11 +25,11 @@ PHP_HASH_API void PHP_ADLER32Init(PHP_ADLER32_CTX *context, ZEND_ATTRIBUTE_UNUSE PHP_HASH_API void PHP_ADLER32Update(PHP_ADLER32_CTX *context, const unsigned char *input, size_t len) { - uint32_t i, s[2]; + uint32_t s[2]; s[0] = context->state & 0xffff; s[1] = (context->state >> 16) & 0xffff; - for (i = 0; i < len; ++i) { + for (size_t i = 0; i < len; ++i) { s[0] += input[i]; s[1] += s[0]; if (s[1]>=0x7fffffff) diff --git a/ext/hash/hash_haval.c b/ext/hash/hash_haval.c index e1211a0b22ac8..67bc2b2e4780e 100644 --- a/ext/hash/hash_haval.c +++ b/ext/hash/hash_haval.c @@ -280,7 +280,8 @@ PHP_HASH_HAVAL_INIT(5,256) /* {{{ PHP_HAVALUpdate */ PHP_HASH_API void PHP_HAVALUpdate(PHP_HAVAL_CTX *context, const unsigned char *input, size_t inputLen) { - unsigned int i, index, partLen; + unsigned int index, partLen; + size_t i; /* Compute number of bytes mod 128 */ index = (unsigned int) ((context->count[0] >> 3) & 0x7F); @@ -288,7 +289,7 @@ PHP_HASH_API void PHP_HAVALUpdate(PHP_HAVAL_CTX *context, const unsigned char *i if ((context->count[0] += ((uint32_t) inputLen << 3)) < ((uint32_t) inputLen << 3)) { context->count[1]++; } - context->count[1] += ((uint32_t) inputLen >> 29); + context->count[1] += (uint32_t) (inputLen >> 29); partLen = 128 - index; diff --git a/ext/hash/hash_md.c b/ext/hash/hash_md.c index a065f417e5395..04ad9ec15d2fe 100644 --- a/ext/hash/hash_md.c +++ b/ext/hash/hash_md.c @@ -204,7 +204,8 @@ PHP_HASH_API void PHP_MD4InitArgs(PHP_MD4_CTX * context, ZEND_ATTRIBUTE_UNUSED H */ PHP_HASH_API void PHP_MD4Update(PHP_MD4_CTX * context, const unsigned char *input, size_t inputLen) { - unsigned int i, index, partLen; + unsigned int index, partLen; + size_t i; /* Compute number of bytes mod 64 */ index = (unsigned int) ((context->count[0] >> 3) & 0x3F); @@ -213,7 +214,7 @@ PHP_HASH_API void PHP_MD4Update(PHP_MD4_CTX * context, const unsigned char *inpu if ((context->count[0] += ((uint32_t) inputLen << 3)) < ((uint32_t) inputLen << 3)) context->count[1]++; - context->count[1] += ((uint32_t) inputLen >> 29); + context->count[1] += (uint32_t) (inputLen >> 29); partLen = 64 - index; diff --git a/ext/hash/hash_ripemd.c b/ext/hash/hash_ripemd.c index b09615532335d..4802fdf9a1fcc 100644 --- a/ext/hash/hash_ripemd.c +++ b/ext/hash/hash_ripemd.c @@ -271,7 +271,8 @@ static void RIPEMD128Transform(uint32_t state[4], const unsigned char block[64]) */ PHP_HASH_API void PHP_RIPEMD128Update(PHP_RIPEMD128_CTX * context, const unsigned char *input, size_t inputLen) { - unsigned int i, index, partLen; + unsigned int index, partLen; + size_t i; /* Compute number of bytes mod 64 */ index = (unsigned int) ((context->count[0] >> 3) & 0x3F); @@ -280,7 +281,7 @@ PHP_HASH_API void PHP_RIPEMD128Update(PHP_RIPEMD128_CTX * context, const unsigne if ((context->count[0] += ((uint32_t) inputLen << 3)) < ((uint32_t) inputLen << 3)) { context->count[1]++; } - context->count[1] += ((uint32_t) inputLen >> 29); + context->count[1] += (uint32_t) (inputLen >> 29); partLen = 64 - index; @@ -369,7 +370,8 @@ static void RIPEMD256Transform(uint32_t state[8], const unsigned char block[64]) */ PHP_HASH_API void PHP_RIPEMD256Update(PHP_RIPEMD256_CTX * context, const unsigned char *input, size_t inputLen) { - unsigned int i, index, partLen; + unsigned int index, partLen; + size_t i; /* Compute number of bytes mod 64 */ index = (unsigned int) ((context->count[0] >> 3) & 0x3F); @@ -378,7 +380,7 @@ PHP_HASH_API void PHP_RIPEMD256Update(PHP_RIPEMD256_CTX * context, const unsigne if ((context->count[0] += ((uint32_t) inputLen << 3)) < ((uint32_t) inputLen << 3)) { context->count[1]++; } - context->count[1] += ((uint32_t) inputLen >> 29); + context->count[1] += (uint32_t) (inputLen >> 29); partLen = 64 - index; @@ -468,7 +470,8 @@ static void RIPEMD160Transform(uint32_t state[5], const unsigned char block[64]) */ PHP_HASH_API void PHP_RIPEMD160Update(PHP_RIPEMD160_CTX * context, const unsigned char *input, size_t inputLen) { - unsigned int i, index, partLen; + unsigned int index, partLen; + size_t i; /* Compute number of bytes mod 64 */ index = (unsigned int) ((context->count[0] >> 3) & 0x3F); @@ -477,7 +480,7 @@ PHP_HASH_API void PHP_RIPEMD160Update(PHP_RIPEMD160_CTX * context, const unsigne if ((context->count[0] += ((uint32_t) inputLen << 3)) < ((uint32_t) inputLen << 3)) { context->count[1]++; } - context->count[1] += ((uint32_t) inputLen >> 29); + context->count[1] += (uint32_t) (inputLen >> 29); partLen = 64 - index; @@ -576,7 +579,8 @@ static void RIPEMD320Transform(uint32_t state[10], const unsigned char block[64] */ PHP_HASH_API void PHP_RIPEMD320Update(PHP_RIPEMD320_CTX * context, const unsigned char *input, size_t inputLen) { - unsigned int i, index, partLen; + unsigned int index, partLen; + size_t i; /* Compute number of bytes mod 64 */ index = (unsigned int) ((context->count[0] >> 3) & 0x3F); @@ -585,7 +589,7 @@ PHP_HASH_API void PHP_RIPEMD320Update(PHP_RIPEMD320_CTX * context, const unsigne if ((context->count[0] += ((uint32_t) inputLen << 3)) < ((uint32_t) inputLen << 3)) { context->count[1]++; } - context->count[1] += ((uint32_t) inputLen >> 29); + context->count[1] += (uint32_t) (inputLen >> 29); partLen = 64 - index; diff --git a/ext/hash/hash_sha.c b/ext/hash/hash_sha.c index 0fc0d02828cb2..7de00f37be4d0 100644 --- a/ext/hash/hash_sha.c +++ b/ext/hash/hash_sha.c @@ -222,7 +222,8 @@ PHP_HASH_API void PHP_SHA224InitArgs(PHP_SHA224_CTX * context, ZEND_ATTRIBUTE_UN */ PHP_HASH_API void PHP_SHA224Update(PHP_SHA224_CTX * context, const unsigned char *input, size_t inputLen) { - unsigned int i, index, partLen; + unsigned int index, partLen; + size_t i; /* Compute number of bytes mod 64 */ index = (unsigned int) ((context->count[0] >> 3) & 0x3F); @@ -231,7 +232,7 @@ PHP_HASH_API void PHP_SHA224Update(PHP_SHA224_CTX * context, const unsigned char if ((context->count[0] += ((uint32_t) inputLen << 3)) < ((uint32_t) inputLen << 3)) { context->count[1]++; } - context->count[1] += ((uint32_t) inputLen >> 29); + context->count[1] += (uint32_t) (inputLen >> 29); partLen = 64 - index; @@ -299,7 +300,8 @@ PHP_HASH_API void PHP_SHA224Final(unsigned char digest[28], PHP_SHA224_CTX * con */ PHP_HASH_API void PHP_SHA256Update(PHP_SHA256_CTX * context, const unsigned char *input, size_t inputLen) { - unsigned int i, index, partLen; + unsigned int index, partLen; + size_t i; /* Compute number of bytes mod 64 */ index = (unsigned int) ((context->count[0] >> 3) & 0x3F); @@ -308,7 +310,7 @@ PHP_HASH_API void PHP_SHA256Update(PHP_SHA256_CTX * context, const unsigned char if ((context->count[0] += ((uint32_t) inputLen << 3)) < ((uint32_t) inputLen << 3)) { context->count[1]++; } - context->count[1] += ((uint32_t) inputLen >> 29); + context->count[1] += (uint32_t) (inputLen >> 29); partLen = 64 - index; @@ -513,7 +515,8 @@ static void SHA512Transform(uint64_t state[8], const unsigned char block[128]) */ PHP_HASH_API void PHP_SHA384Update(PHP_SHA384_CTX * context, const unsigned char *input, size_t inputLen) { - unsigned int i = 0, index, partLen; + unsigned int index, partLen; + size_t i = 0; /* Compute number of bytes mod 128 */ index = (unsigned int) ((context->count[0] >> 3) & 0x7F); @@ -522,7 +525,7 @@ PHP_HASH_API void PHP_SHA384Update(PHP_SHA384_CTX * context, const unsigned char if ((context->count[0] += ((uint64_t) inputLen << 3)) < ((uint64_t) inputLen << 3)) { context->count[1]++; } - context->count[1] += ((uint64_t) inputLen >> 61); + context->count[1] += (uint64_t) (inputLen >> 61); partLen = 128 - index; @@ -666,7 +669,8 @@ PHP_HASH_API void PHP_SHA512_224InitArgs(PHP_SHA512_CTX * context, ZEND_ATTRIBUT */ PHP_HASH_API void PHP_SHA512Update(PHP_SHA512_CTX * context, const unsigned char *input, size_t inputLen) { - unsigned int i, index, partLen; + unsigned int index, partLen; + size_t i; /* Compute number of bytes mod 128 */ index = (unsigned int) ((context->count[0] >> 3) & 0x7F); @@ -675,7 +679,7 @@ PHP_HASH_API void PHP_SHA512Update(PHP_SHA512_CTX * context, const unsigned char if ((context->count[0] += ((uint64_t) inputLen << 3)) < ((uint64_t) inputLen << 3)) { context->count[1]++; } - context->count[1] += ((uint64_t) inputLen >> 61); + context->count[1] += (uint64_t) (inputLen >> 61); partLen = 128 - index; diff --git a/ext/standard/sha1.c b/ext/standard/sha1.c index ed59d80ab0ef2..95f2b54d0fd02 100644 --- a/ext/standard/sha1.c +++ b/ext/standard/sha1.c @@ -173,7 +173,8 @@ PHPAPI void PHP_SHA1InitArgs(PHP_SHA1_CTX * context, ZEND_ATTRIBUTE_UNUSED HashT PHPAPI void PHP_SHA1Update(PHP_SHA1_CTX * context, const unsigned char *input, size_t inputLen) { - unsigned int i, index, partLen; + unsigned int index, partLen; + size_t i; /* Compute number of bytes mod 64 */ index = (unsigned int) ((context->count[0] >> 3) & 0x3F); @@ -182,7 +183,7 @@ PHPAPI void PHP_SHA1Update(PHP_SHA1_CTX * context, const unsigned char *input, if ((context->count[0] += ((uint32_t) inputLen << 3)) < ((uint32_t) inputLen << 3)) context->count[1]++; - context->count[1] += ((uint32_t) inputLen >> 29); + context->count[1] += (uint32_t) (inputLen >> 29); partLen = 64 - index; From 7cf1a2ad9d4344017225f671874f951aa9e53e92 Mon Sep 17 00:00:00 2001 From: Ilija Tovilo Date: Tue, 12 Dec 2023 15:17:37 +0100 Subject: [PATCH 20/59] Fix SELinux mprotect execheap error due to mem adjacent to heap It seems SELinux has a bug where memory directly adjacent to the heap is interpreted as heap memory. Dodge this issue by leaving some space between the heap and memory suggested by find_prefered_mmap_base. See GH-12932 See https://bugzilla.kernel.org/show_bug.cgi?id=218258 Closes GH-12942 --- NEWS | 2 ++ ext/opcache/shared_alloc_mmap.c | 16 +++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 6223ed32b752a..e832fbeea0ebb 100644 --- a/NEWS +++ b/NEWS @@ -13,6 +13,8 @@ PHP NEWS - Opcache: . Fixed oss-fuzz #64727 (JIT undefined array key warning may overwrite DIM with NULL when DIM is the same var as result). (ilutov) + . Added workaround for SELinux mprotect execheap issue. + See https://bugzilla.kernel.org/show_bug.cgi?id=218258. (ilutov) 21 Dec 2023, PHP 8.2.14 diff --git a/ext/opcache/shared_alloc_mmap.c b/ext/opcache/shared_alloc_mmap.c index 9b0e99608a34d..33727d0da656c 100644 --- a/ext/opcache/shared_alloc_mmap.c +++ b/ext/opcache/shared_alloc_mmap.c @@ -62,6 +62,18 @@ static void *find_prefered_mmap_base(size_t requested_size) } while (fgets(buffer, MAXPATHLEN, f) && sscanf(buffer, "%lx-%lx", &start, &end) == 2) { + /* Don't place the segment directly before or after the heap segment. Due to an selinux bug, + * a segment directly preceding or following the heap is interpreted as heap memory, which + * will result in an execheap violation for the JIT. + * See https://bugzilla.kernel.org/show_bug.cgi?id=218258. */ + bool heap_segment = strstr(buffer, "[heap]") != NULL; + if (heap_segment) { + uintptr_t start_base = start & ~(huge_page_size - 1); + if (last_free_addr + requested_size >= start_base) { + last_free_addr = ZEND_MM_ALIGNED_SIZE_EX(end + huge_page_size, huge_page_size); + continue; + } + } if ((uintptr_t)execute_ex >= start) { /* the current segment lays before PHP .text segment or PHP .text segment itself */ if (last_free_addr + requested_size <= start) { @@ -90,7 +102,9 @@ static void *find_prefered_mmap_base(size_t requested_size) } } last_free_addr = ZEND_MM_ALIGNED_SIZE_EX(end, huge_page_size); - + if (heap_segment) { + last_free_addr += huge_page_size; + } } fclose(f); #elif defined(__FreeBSD__) From cda7718f51aa46c05726d5b29440b86cf1d94556 Mon Sep 17 00:00:00 2001 From: Ilija Tovilo Date: Wed, 13 Dec 2023 11:35:58 +0100 Subject: [PATCH 21/59] Disambiguate fileVar8 test folder Closes GH-12951 --- ext/standard/tests/file/file_variation8-win32.phpt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ext/standard/tests/file/file_variation8-win32.phpt b/ext/standard/tests/file/file_variation8-win32.phpt index 511bc0eb7cd0f..be83d69f63868 100644 --- a/ext/standard/tests/file/file_variation8-win32.phpt +++ b/ext/standard/tests/file/file_variation8-win32.phpt @@ -10,7 +10,7 @@ if(substr(PHP_OS, 0, 3) != "WIN") --FILE-- Date: Wed, 13 Dec 2023 15:21:19 +0100 Subject: [PATCH 22/59] Fix clean for higher branches --- ext/standard/tests/file/file_variation8-win32.phpt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ext/standard/tests/file/file_variation8-win32.phpt b/ext/standard/tests/file/file_variation8-win32.phpt index be83d69f63868..2218ab3ef9d14 100644 --- a/ext/standard/tests/file/file_variation8-win32.phpt +++ b/ext/standard/tests/file/file_variation8-win32.phpt @@ -10,7 +10,7 @@ if(substr(PHP_OS, 0, 3) != "WIN") --FILE-- Date: Wed, 13 Dec 2023 19:33:06 +0100 Subject: [PATCH 23/59] Fix 32-bit ext/hash build --- ext/hash/hash_sha.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ext/hash/hash_sha.c b/ext/hash/hash_sha.c index 7de00f37be4d0..201a8513f9626 100644 --- a/ext/hash/hash_sha.c +++ b/ext/hash/hash_sha.c @@ -525,7 +525,8 @@ PHP_HASH_API void PHP_SHA384Update(PHP_SHA384_CTX * context, const unsigned char if ((context->count[0] += ((uint64_t) inputLen << 3)) < ((uint64_t) inputLen << 3)) { context->count[1]++; } - context->count[1] += (uint64_t) (inputLen >> 61); + /* The cast may seem unnecessary, but on 32-bit this makes sure the result is 0 without invoking undefined behaviour. */ + context->count[1] += (uint64_t) inputLen >> 61; partLen = 128 - index; @@ -679,7 +680,8 @@ PHP_HASH_API void PHP_SHA512Update(PHP_SHA512_CTX * context, const unsigned char if ((context->count[0] += ((uint64_t) inputLen << 3)) < ((uint64_t) inputLen << 3)) { context->count[1]++; } - context->count[1] += (uint64_t) (inputLen >> 61); + /* The cast may seem unnecessary, but on 32-bit this makes sure the result is 0 without invoking undefined behaviour. */ + context->count[1] += (uint64_t) inputLen >> 61; partLen = 128 - index; From 40ccc8ea7e0b69d4580588a459a78a73b1209d08 Mon Sep 17 00:00:00 2001 From: Jakub Zelenka Date: Sun, 10 Dec 2023 22:30:04 +0000 Subject: [PATCH 24/59] Fix GH-9698: stream_wrapper_register crashes with FFI\CData provided as class Closes GH-12926 --- NEWS | 4 ++++ ext/ffi/ffi.c | 4 ++++ ext/ffi/tests/gh9698.phpt | 21 +++++++++++++++++++++ main/streams/userspace.c | 6 ++++++ 4 files changed, 35 insertions(+) create mode 100644 ext/ffi/tests/gh9698.phpt diff --git a/NEWS b/NEWS index e832fbeea0ebb..4a53cc1812265 100644 --- a/NEWS +++ b/NEWS @@ -6,6 +6,10 @@ PHP NEWS . Fix incorrect timeout in built-in web server when using router script and max_input_time. (ilutov) +- FFI: + . Fixed bug GH-9698 (stream_wrapper_register crashes with FFI\CData). + (Jakub Zelenka) + - Hash: . Fixed bug GH-12936 (hash() function hangs endlessly if using sha512 on strings >= 4GiB). (nielsdos) diff --git a/ext/ffi/ffi.c b/ext/ffi/ffi.c index 9be5ac340590c..098e35aba3d06 100644 --- a/ext/ffi/ffi.c +++ b/ext/ffi/ffi.c @@ -1289,6 +1289,10 @@ static zval *zend_ffi_cdata_write_field(zend_object *obj, zend_string *field_nam if (cache_slot && *cache_slot == type) { field = *(cache_slot + 1); } else { + if (UNEXPECTED(type == NULL)) { + zend_throw_error(zend_ffi_exception_ce, "Attempt to assign field '%s' to uninitialized FFI\\CData object", ZSTR_VAL(field_name)); + return value; + } if (type->kind == ZEND_FFI_TYPE_POINTER) { type = ZEND_FFI_TYPE(type->pointer.type); } diff --git a/ext/ffi/tests/gh9698.phpt b/ext/ffi/tests/gh9698.phpt new file mode 100644 index 0000000000000..bab403810cd3f --- /dev/null +++ b/ext/ffi/tests/gh9698.phpt @@ -0,0 +1,21 @@ +--TEST-- +GH-9698 (stream_wrapper_register crashes with FFI\CData provided as class) +--EXTENSIONS-- +ffi +--SKIPIF-- + +--FILE-- +getMessage(); +} +?> + +DONE +--EXPECT-- +Attempt to assign field 'context' to uninitialized FFI\CData object +DONE diff --git a/main/streams/userspace.c b/main/streams/userspace.c index f7223eab12905..136654b1df249 100644 --- a/main/streams/userspace.c +++ b/main/streams/userspace.c @@ -304,6 +304,12 @@ static void user_stream_create_object(struct php_user_stream_wrapper *uwrap, php add_property_null(object, "context"); } + if (EG(exception) != NULL) { + zval_ptr_dtor(object); + ZVAL_UNDEF(object); + return; + } + if (uwrap->ce->constructor) { zend_call_known_instance_method_with_0_params( uwrap->ce->constructor, Z_OBJ_P(object), NULL); From a6d17bffe115a0bbed8a3260ef588124e20973f8 Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Sun, 17 Dec 2023 01:35:15 +0100 Subject: [PATCH 25/59] Fix GH-12962: Double free of init_file in phpdbg_prompt.c See GH-12962 for analysis. Closes GH-12963. --- NEWS | 3 +++ sapi/phpdbg/phpdbg_prompt.c | 2 +- sapi/phpdbg/tests/gh12962.phpt | 13 +++++++++++++ sapi/phpdbg/tests/gh12962/.phpdbginit | 2 ++ 4 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 sapi/phpdbg/tests/gh12962.phpt create mode 100644 sapi/phpdbg/tests/gh12962/.phpdbginit diff --git a/NEWS b/NEWS index 4a53cc1812265..f86e393a461f2 100644 --- a/NEWS +++ b/NEWS @@ -20,6 +20,9 @@ PHP NEWS . Added workaround for SELinux mprotect execheap issue. See https://bugzilla.kernel.org/show_bug.cgi?id=218258. (ilutov) +- PHPDBG: + . Fixed bug GH-12962 (Double free of init_file in phpdbg_prompt.c). (nielsdos) + 21 Dec 2023, PHP 8.2.14 - Core: diff --git a/sapi/phpdbg/phpdbg_prompt.c b/sapi/phpdbg/phpdbg_prompt.c index ffc40cb0c9686..994ac829b0a5e 100644 --- a/sapi/phpdbg/phpdbg_prompt.c +++ b/sapi/phpdbg/phpdbg_prompt.c @@ -364,7 +364,7 @@ void phpdbg_init(char *init_file, size_t init_file_len, bool use_default) /* {{{ } ZEND_IGNORE_VALUE(asprintf(&init_file, "%s/%s", scan_dir, PHPDBG_INIT_FILENAME)); - phpdbg_try_file_init(init_file, strlen(init_file), 1); + phpdbg_try_file_init(init_file, strlen(init_file), 0); free(init_file); if (i == -1) { break; diff --git a/sapi/phpdbg/tests/gh12962.phpt b/sapi/phpdbg/tests/gh12962.phpt new file mode 100644 index 0000000000000..c5cf9425d7c47 --- /dev/null +++ b/sapi/phpdbg/tests/gh12962.phpt @@ -0,0 +1,13 @@ +--TEST-- +GH-12962 (Double free of init_file in phpdbg_prompt.c) +--SKIPIF-- + +--FILE-- + +--EXPECT-- +Executed .phpdbginit diff --git a/sapi/phpdbg/tests/gh12962/.phpdbginit b/sapi/phpdbg/tests/gh12962/.phpdbginit new file mode 100644 index 0000000000000..29184ddf7c83f --- /dev/null +++ b/sapi/phpdbg/tests/gh12962/.phpdbginit @@ -0,0 +1,2 @@ +ev "Executed .phpdbginit" +q From abf4c116b18a5d0dbe71ee9c8788b065a74bf1c0 Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Tue, 12 Dec 2023 20:33:23 +0100 Subject: [PATCH 26/59] Fix getting the address of an uninitialized property of a SimpleXMLElement resulting in a crash Closes GH-12945. --- NEWS | 4 ++++ ext/simplexml/simplexml.c | 3 +++ .../tests/get_prop_address_not_initialized.phpt | 17 +++++++++++++++++ 3 files changed, 24 insertions(+) create mode 100644 ext/simplexml/tests/get_prop_address_not_initialized.phpt diff --git a/NEWS b/NEWS index f86e393a461f2..a061e779884d1 100644 --- a/NEWS +++ b/NEWS @@ -23,6 +23,10 @@ PHP NEWS - PHPDBG: . Fixed bug GH-12962 (Double free of init_file in phpdbg_prompt.c). (nielsdos) +- SimpleXML: + . Fix getting the address of an uninitialized property of a SimpleXMLElement + resulting in a crash. (nielsdos) + 21 Dec 2023, PHP 8.2.14 - Core: diff --git a/ext/simplexml/simplexml.c b/ext/simplexml/simplexml.c index 37c6aa8fc0ac8..ce7c96a0d468b 100644 --- a/ext/simplexml/simplexml.c +++ b/ext/simplexml/simplexml.c @@ -636,6 +636,9 @@ static zval *sxe_property_get_adr(zend_object *object, zend_string *zname, int f sxe = php_sxe_fetch_object(object); GET_NODE(sxe, node); + if (UNEXPECTED(!node)) { + return &EG(error_zval); + } name = ZSTR_VAL(zname); node = sxe_get_element_by_name(sxe, node, &name, &type); if (node) { diff --git a/ext/simplexml/tests/get_prop_address_not_initialized.phpt b/ext/simplexml/tests/get_prop_address_not_initialized.phpt new file mode 100644 index 0000000000000..e6f07405b9b65 --- /dev/null +++ b/ext/simplexml/tests/get_prop_address_not_initialized.phpt @@ -0,0 +1,17 @@ +--TEST-- +Getting the address of an uninitialized property of a SimpleXMLElement +--EXTENSIONS-- +simplexml +--FILE-- +newInstanceWithoutConstructor(); +$sxe->a['b'] = 'b'; + +?> +--EXPECTF-- +Fatal error: Uncaught Error: SimpleXMLElement is not properly initialized in %s:%d +Stack trace: +#0 {main} + thrown in %s on line %d From f75931ad9e5649d43c6f7cb722abf485bb9784d3 Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Tue, 12 Dec 2023 21:05:58 +0100 Subject: [PATCH 27/59] Fix GH-12929: SimpleXMLElement with stream_wrapper_register can segfault Move SimpleXML invalidation code after node checks This is safe, i.e. the tree hasn't been modified yet, because either we didn't call a libxml modification function yet, or xmlNewChild is called with a NULL pointer, which makes it bail out and return NULL. Closes GH-12947. --- NEWS | 2 ++ ext/simplexml/simplexml.c | 12 ++++++------ ext/simplexml/tests/gh12929.phpt | 29 +++++++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 6 deletions(-) create mode 100644 ext/simplexml/tests/gh12929.phpt diff --git a/NEWS b/NEWS index 69d3ffb52a41e..8d6fc8d5444ce 100644 --- a/NEWS +++ b/NEWS @@ -34,6 +34,8 @@ PHP NEWS - SimpleXML: . Fix getting the address of an uninitialized property of a SimpleXMLElement resulting in a crash. (nielsdos) + . Fixed bug GH-12929 (SimpleXMLElement with stream_wrapper_register can + segfault). (nielsdos) 07 Dec 2023, PHP 8.3.1RC1 diff --git a/ext/simplexml/simplexml.c b/ext/simplexml/simplexml.c index ae3c98b7e3e2d..eebf4af023955 100644 --- a/ext/simplexml/simplexml.c +++ b/ext/simplexml/simplexml.c @@ -421,8 +421,6 @@ static zval *sxe_prop_dim_write(zend_object *object, zval *member, zval *value, GET_NODE(sxe, node); - php_libxml_invalidate_node_list_cache_from_doc(node->doc); - if (sxe->iter.type == SXE_ITER_ATTRLIST) { attribs = 1; elements = 0; @@ -483,6 +481,8 @@ static zval *sxe_prop_dim_write(zend_object *object, zval *member, zval *value, } if (node) { + php_libxml_invalidate_node_list_cache_from_doc(node->doc); + if (attribs) { if (Z_TYPE_P(member) == IS_LONG) { while (attr && nodendx <= Z_LVAL_P(member)) { @@ -797,8 +797,6 @@ static void sxe_prop_dim_delete(zend_object *object, zval *member, bool elements GET_NODE(sxe, node); - php_libxml_invalidate_node_list_cache_from_doc(node->doc); - if (Z_TYPE_P(member) == IS_LONG) { if (sxe->iter.type != SXE_ITER_ATTRLIST) { attribs = 0; @@ -822,6 +820,8 @@ static void sxe_prop_dim_delete(zend_object *object, zval *member, bool elements } if (node) { + php_libxml_invalidate_node_list_cache_from_doc(node->doc); + if (attribs) { if (Z_TYPE_P(member) == IS_LONG) { int nodendx = 0; @@ -1678,8 +1678,6 @@ PHP_METHOD(SimpleXMLElement, addChild) sxe = Z_SXEOBJ_P(ZEND_THIS); GET_NODE(sxe, node); - php_libxml_invalidate_node_list_cache_from_doc(node->doc); - if (sxe->iter.type == SXE_ITER_ATTRLIST) { php_error_docref(NULL, E_WARNING, "Cannot add element to attributes"); return; @@ -1692,6 +1690,8 @@ PHP_METHOD(SimpleXMLElement, addChild) return; } + php_libxml_invalidate_node_list_cache_from_doc(node->doc); + localname = xmlSplitQName2((xmlChar *)qname, &prefix); if (localname == NULL) { localname = xmlStrdup((xmlChar *)qname); diff --git a/ext/simplexml/tests/gh12929.phpt b/ext/simplexml/tests/gh12929.phpt new file mode 100644 index 0000000000000..2ae89346dba8c --- /dev/null +++ b/ext/simplexml/tests/gh12929.phpt @@ -0,0 +1,29 @@ +--TEST-- +GH-12929 (SimpleXMLElement with stream_wrapper_register can segfault) +--EXTENSIONS-- +simplexml +--FILE-- +getMessage(), "\n"; + echo $e->getPrevious()->getMessage(), "\n"; +} + +$scheme = "foo2"; +stream_wrapper_register($scheme, "SimpleXMLElement"); +try { + file_get_contents($scheme . "://x"); +} catch (Error $e) { + echo $e->getMessage(), "\n"; + echo $e->getPrevious()->getMessage(), "\n"; +} +?> +--EXPECT-- +It's not possible to assign a complex type to properties, resource given +SimpleXMLElement is not properly initialized +It's not possible to assign a complex type to properties, resource given +SimpleXMLElement is not properly initialized From 933dccb79b054ff5ff2d33ddf45c4d9ae89fdbfc Mon Sep 17 00:00:00 2001 From: SakiTakamachi Date: Sat, 25 Nov 2023 21:22:50 +0900 Subject: [PATCH 28/59] Fix GH-12767: Fixed to be able to change autocommit mode using setAttribute Signed-off-by: Gina Peter Banyard --- NEWS | 4 + ext/pdo_odbc/odbc_driver.c | 24 ++++ ext/pdo_odbc/tests/autocommit.phpt | 53 ++++++++ .../tests/autocommit_change_mode.phpt | 119 ++++++++++++++++++ 4 files changed, 200 insertions(+) create mode 100644 ext/pdo_odbc/tests/autocommit.phpt create mode 100644 ext/pdo_odbc/tests/autocommit_change_mode.phpt diff --git a/NEWS b/NEWS index a061e779884d1..96b5ca80dcd9d 100644 --- a/NEWS +++ b/NEWS @@ -20,6 +20,10 @@ PHP NEWS . Added workaround for SELinux mprotect execheap issue. See https://bugzilla.kernel.org/show_bug.cgi?id=218258. (ilutov) +- PDO_ODBC: + . Fixed bug GH-12767 (Unable to turn on autocommit mode with setAttribute()). + (SakiTakamachi) + - PHPDBG: . Fixed bug GH-12962 (Double free of init_file in phpdbg_prompt.c). (nielsdos) diff --git a/ext/pdo_odbc/odbc_driver.c b/ext/pdo_odbc/odbc_driver.c index a9d5befdac8f2..6ab6314e22483 100644 --- a/ext/pdo_odbc/odbc_driver.c +++ b/ext/pdo_odbc/odbc_driver.c @@ -344,6 +344,30 @@ static bool odbc_handle_set_attr(pdo_dbh_t *dbh, zend_long attr, zval *val) } H->assume_utf8 = bval; return true; + case PDO_ATTR_AUTOCOMMIT: + if (!pdo_get_bool_param(&bval, val)) { + return false; + } + if (dbh->in_txn) { + pdo_raise_impl_error(dbh, NULL, "HY000", "Cannot change autocommit mode while a transaction is already open"); + return false; + } + if (dbh->auto_commit ^ bval) { + dbh->auto_commit = bval; + RETCODE rc = SQLSetConnectAttr( + H->dbc, + SQL_ATTR_AUTOCOMMIT, + dbh->auto_commit ? (SQLPOINTER) SQL_AUTOCOMMIT_ON : (SQLPOINTER) SQL_AUTOCOMMIT_OFF, + SQL_IS_INTEGER + ); + if (rc != SQL_SUCCESS) { + pdo_odbc_drv_error( + dbh->auto_commit ? "SQLSetConnectAttr AUTOCOMMIT = ON" : "SQLSetConnectAttr AUTOCOMMIT = OFF" + ); + return false; + } + } + return true; default: strcpy(H->einfo.last_err_msg, "Unknown Attribute"); H->einfo.what = "setAttribute"; diff --git a/ext/pdo_odbc/tests/autocommit.phpt b/ext/pdo_odbc/tests/autocommit.phpt new file mode 100644 index 0000000000000..3e17a4ad2e9e4 --- /dev/null +++ b/ext/pdo_odbc/tests/autocommit.phpt @@ -0,0 +1,53 @@ +--TEST-- +PDO ODBC auto commit mode +--EXTENSIONS-- +pdo_odbc +--SKIPIF-- + +--XLEAK-- +A bug in msodbcsql causes a memory leak when reconnecting after closing. See GH-12306 +--FILE-- +exec("CREATE TABLE {$table} (id INT, name VARCHAR(255))"); +unset($db); + +$db = new PDO(getenv('PDOTEST_DSN'), getenv('PDOTEST_USER'), getenv('PDOTEST_PASS'), [ + PDO::ATTR_AUTOCOMMIT => 0, +]); + +$db->setAttribute(PDO::ATTR_AUTOCOMMIT, 1); +$db->query("INSERT INTO {$table} (id, name) VALUES (1, 'test')"); +unset($db); + +$db = new PDO(getenv('PDOTEST_DSN'), getenv('PDOTEST_USER'), getenv('PDOTEST_PASS')); + +$r = $db->query("SELECT * FROM {$table}"); +var_dump($r->fetchAll(PDO::FETCH_ASSOC)); + +echo "done!"; +?> +--CLEAN-- +exec("DROP TABLE IF EXISTS autocommit_pdo_odbc"); +?> +--EXPECT-- +array(1) { + [0]=> + array(2) { + ["id"]=> + string(1) "1" + ["name"]=> + string(4) "test" + } +} +done! diff --git a/ext/pdo_odbc/tests/autocommit_change_mode.phpt b/ext/pdo_odbc/tests/autocommit_change_mode.phpt new file mode 100644 index 0000000000000..7b4dc21079c11 --- /dev/null +++ b/ext/pdo_odbc/tests/autocommit_change_mode.phpt @@ -0,0 +1,119 @@ +--TEST-- +PDO ODBC auto commit mode +--EXTENSIONS-- +pdo_odbc +--SKIPIF-- + +--FILE-- +setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + +echo "========== not in transaction ==========\n"; + +echo "auto commit ON from ON\n"; +$db->setAttribute(PDO::ATTR_AUTOCOMMIT, true); +echo "Success\n\n"; + +echo "auto commit OFF from ON\n"; +$db->setAttribute(PDO::ATTR_AUTOCOMMIT, false); +echo "Success\n\n"; + +echo "auto commit OFF from OFF\n"; +$db->setAttribute(PDO::ATTR_AUTOCOMMIT, false); +echo "Success\n\n"; + +echo "auto commit ON from OFF\n"; +$db->setAttribute(PDO::ATTR_AUTOCOMMIT, true); +echo "Success\n\n"; + +echo "========== in transaction ==========\n"; + +echo "begin transaction\n"; +$db->beginTransaction(); +echo "\n"; + +echo "auto commit ON from ON, expect error\n"; +try { + $db->setAttribute(PDO::ATTR_AUTOCOMMIT, true); +} catch (PDOException $e) { + echo $e->getMessage()."\n\n"; +} + +echo "auto commit OFF from ON, expect error\n"; +try { + $db->setAttribute(PDO::ATTR_AUTOCOMMIT, false); +} catch (PDOException $e) { + echo $e->getMessage()."\n\n"; +} + +echo "end transaction\n"; +$db->rollback(); + +echo "auto commit OFF\n"; +$db->setAttribute(PDO::ATTR_AUTOCOMMIT, false); + +echo "begin transaction\n"; +$db->beginTransaction(); +echo "\n"; + +echo "auto commit ON from OFF, expect error\n"; +try { + $db->setAttribute(PDO::ATTR_AUTOCOMMIT, true); +} catch (PDOException $e) { + echo $e->getMessage()."\n\n"; +} + +echo "auto commit OFF from OFF, expect error\n"; +try { + $db->setAttribute(PDO::ATTR_AUTOCOMMIT, false); +} catch (PDOException $e) { + echo $e->getMessage()."\n\n"; +} + +echo "end transaction\n"; +$db->rollback(); +echo "\n"; + +echo "done!"; +?> +--EXPECT-- +========== not in transaction ========== +auto commit ON from ON +Success + +auto commit OFF from ON +Success + +auto commit OFF from OFF +Success + +auto commit ON from OFF +Success + +========== in transaction ========== +begin transaction + +auto commit ON from ON, expect error +SQLSTATE[HY000]: General error: Cannot change autocommit mode while a transaction is already open + +auto commit OFF from ON, expect error +SQLSTATE[HY000]: General error: Cannot change autocommit mode while a transaction is already open + +end transaction +auto commit OFF +begin transaction + +auto commit ON from OFF, expect error +SQLSTATE[HY000]: General error: Cannot change autocommit mode while a transaction is already open + +auto commit OFF from OFF, expect error +SQLSTATE[HY000]: General error: Cannot change autocommit mode while a transaction is already open + +end transaction + +done! From 2553ffeaa03bd82976f36b93f2e34618178ad361 Mon Sep 17 00:00:00 2001 From: SakiTakamachi Date: Sat, 2 Dec 2023 17:23:22 +0900 Subject: [PATCH 29/59] add PDO::ATTR_AUTOCOMMIT to getAttribute Signed-off-by: Gina Peter Banyard --- ext/pdo_odbc/odbc_driver.c | 4 +++- ext/pdo_odbc/tests/autocommit_change_mode.phpt | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/ext/pdo_odbc/odbc_driver.c b/ext/pdo_odbc/odbc_driver.c index 6ab6314e22483..fa160bfb471e4 100644 --- a/ext/pdo_odbc/odbc_driver.c +++ b/ext/pdo_odbc/odbc_driver.c @@ -410,7 +410,9 @@ static int odbc_handle_get_attr(pdo_dbh_t *dbh, zend_long attr, zval *val) case PDO_ODBC_ATTR_ASSUME_UTF8: ZVAL_BOOL(val, H->assume_utf8 ? 1 : 0); return 1; - + case PDO_ATTR_AUTOCOMMIT: + ZVAL_BOOL(val, dbh->auto_commit); + return 1; } return 0; } diff --git a/ext/pdo_odbc/tests/autocommit_change_mode.phpt b/ext/pdo_odbc/tests/autocommit_change_mode.phpt index 7b4dc21079c11..c44f124a6cf65 100644 --- a/ext/pdo_odbc/tests/autocommit_change_mode.phpt +++ b/ext/pdo_odbc/tests/autocommit_change_mode.phpt @@ -17,18 +17,22 @@ echo "========== not in transaction ==========\n"; echo "auto commit ON from ON\n"; $db->setAttribute(PDO::ATTR_AUTOCOMMIT, true); +var_dump($db->getAttribute(PDO::ATTR_AUTOCOMMIT)); echo "Success\n\n"; echo "auto commit OFF from ON\n"; $db->setAttribute(PDO::ATTR_AUTOCOMMIT, false); +var_dump($db->getAttribute(PDO::ATTR_AUTOCOMMIT)); echo "Success\n\n"; echo "auto commit OFF from OFF\n"; $db->setAttribute(PDO::ATTR_AUTOCOMMIT, false); +var_dump($db->getAttribute(PDO::ATTR_AUTOCOMMIT)); echo "Success\n\n"; echo "auto commit ON from OFF\n"; $db->setAttribute(PDO::ATTR_AUTOCOMMIT, true); +var_dump($db->getAttribute(PDO::ATTR_AUTOCOMMIT)); echo "Success\n\n"; echo "========== in transaction ==========\n"; @@ -41,6 +45,7 @@ echo "auto commit ON from ON, expect error\n"; try { $db->setAttribute(PDO::ATTR_AUTOCOMMIT, true); } catch (PDOException $e) { + var_dump($db->getAttribute(PDO::ATTR_AUTOCOMMIT)); echo $e->getMessage()."\n\n"; } @@ -48,6 +53,7 @@ echo "auto commit OFF from ON, expect error\n"; try { $db->setAttribute(PDO::ATTR_AUTOCOMMIT, false); } catch (PDOException $e) { + var_dump($db->getAttribute(PDO::ATTR_AUTOCOMMIT)); echo $e->getMessage()."\n\n"; } @@ -65,6 +71,7 @@ echo "auto commit ON from OFF, expect error\n"; try { $db->setAttribute(PDO::ATTR_AUTOCOMMIT, true); } catch (PDOException $e) { + var_dump($db->getAttribute(PDO::ATTR_AUTOCOMMIT)); echo $e->getMessage()."\n\n"; } @@ -72,6 +79,7 @@ echo "auto commit OFF from OFF, expect error\n"; try { $db->setAttribute(PDO::ATTR_AUTOCOMMIT, false); } catch (PDOException $e) { + var_dump($db->getAttribute(PDO::ATTR_AUTOCOMMIT)); echo $e->getMessage()."\n\n"; } @@ -84,24 +92,30 @@ echo "done!"; --EXPECT-- ========== not in transaction ========== auto commit ON from ON +bool(true) Success auto commit OFF from ON +bool(false) Success auto commit OFF from OFF +bool(false) Success auto commit ON from OFF +bool(true) Success ========== in transaction ========== begin transaction auto commit ON from ON, expect error +bool(true) SQLSTATE[HY000]: General error: Cannot change autocommit mode while a transaction is already open auto commit OFF from ON, expect error +bool(true) SQLSTATE[HY000]: General error: Cannot change autocommit mode while a transaction is already open end transaction @@ -109,9 +123,11 @@ auto commit OFF begin transaction auto commit ON from OFF, expect error +bool(false) SQLSTATE[HY000]: General error: Cannot change autocommit mode while a transaction is already open auto commit OFF from OFF, expect error +bool(false) SQLSTATE[HY000]: General error: Cannot change autocommit mode while a transaction is already open end transaction From c67f6f449c4b5501583a91abcd8fea42289e697d Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Mon, 18 Dec 2023 11:27:55 +0300 Subject: [PATCH 30/59] Fixed incorrect elimination of refcounted check in JIT for BIND_GLOBAL Fixes oss-fuzz #65135 --- ext/opcache/jit/zend_jit_arm64.dasc | 6 +++--- ext/opcache/jit/zend_jit_x86.dasc | 6 +++--- ext/opcache/tests/jit/bind_global_001.phpt | 17 +++++++++++++++++ 3 files changed, 23 insertions(+), 6 deletions(-) create mode 100644 ext/opcache/tests/jit/bind_global_001.phpt diff --git a/ext/opcache/jit/zend_jit_arm64.dasc b/ext/opcache/jit/zend_jit_arm64.dasc index d4e67b6c5a4a6..329eb42507e3e 100644 --- a/ext/opcache/jit/zend_jit_arm64.dasc +++ b/ext/opcache/jit/zend_jit_arm64.dasc @@ -11766,7 +11766,7 @@ static int zend_jit_bind_global(dasm_State **Dst, const zend_op *opline, uint32_ | GC_ADDREF REG0, TMP1w |1: if (op1_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF)) { - if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF) - (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) { + if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF) - (MAY_BE_OBJECT|MAY_BE_RESOURCE))) { | // if (UNEXPECTED(Z_REFCOUNTED_P(variable_ptr))) | IF_ZVAL_REFCOUNTED op1_addr, >2, ZREG_TMP1, ZREG_TMP2 |.cold_code @@ -11793,12 +11793,12 @@ static int zend_jit_bind_global(dasm_State **Dst, const zend_op *opline, uint32_ | EXT_CALL gc_possible_root, REG0 | b >5 } - if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF) - (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) { + if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF) - (MAY_BE_OBJECT|MAY_BE_RESOURCE))) { |.code } } - if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF) - (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) { + if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF) - (MAY_BE_OBJECT|MAY_BE_RESOURCE))) { | // ZVAL_REF(variable_ptr, ref) | SET_ZVAL_PTR op1_addr, REG0, TMP1 | SET_ZVAL_TYPE_INFO op1_addr, IS_REFERENCE_EX, TMP1w, TMP2 diff --git a/ext/opcache/jit/zend_jit_x86.dasc b/ext/opcache/jit/zend_jit_x86.dasc index d881b466dd962..b0353c0d3d761 100644 --- a/ext/opcache/jit/zend_jit_x86.dasc +++ b/ext/opcache/jit/zend_jit_x86.dasc @@ -12522,7 +12522,7 @@ static int zend_jit_bind_global(dasm_State **Dst, const zend_op *opline, uint32_ | GC_ADDREF r0 |1: if (op1_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF)) { - if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF) - (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) { + if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF) - (MAY_BE_OBJECT|MAY_BE_RESOURCE))) { | // if (UNEXPECTED(Z_REFCOUNTED_P(variable_ptr))) | IF_ZVAL_REFCOUNTED op1_addr, >2 |.cold_code @@ -12549,12 +12549,12 @@ static int zend_jit_bind_global(dasm_State **Dst, const zend_op *opline, uint32_ | EXT_CALL gc_possible_root, r1 | jmp >5 } - if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF) - (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) { + if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF) - (MAY_BE_OBJECT|MAY_BE_RESOURCE))) { |.code } } - if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF) - (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) { + if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF) - (MAY_BE_OBJECT|MAY_BE_RESOURCE))) { | // ZVAL_REF(variable_ptr, ref) | SET_ZVAL_PTR op1_addr, r0 | SET_ZVAL_TYPE_INFO op1_addr, IS_REFERENCE_EX diff --git a/ext/opcache/tests/jit/bind_global_001.phpt b/ext/opcache/tests/jit/bind_global_001.phpt new file mode 100644 index 0000000000000..5ad6fd2619631 --- /dev/null +++ b/ext/opcache/tests/jit/bind_global_001.phpt @@ -0,0 +1,17 @@ +--TEST-- +Bind global and immutable string +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +opcache.file_update_protection=0 +opcache.jit_buffer_size=1M +--FILE-- + +--EXPECT-- +NULL From 731734dacb824c42712061c8351192ccd90e7dc3 Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Mon, 18 Dec 2023 12:27:35 +0300 Subject: [PATCH 31/59] Fixed type inference Fixes oss-fuzz #65150 --- Zend/Optimizer/zend_inference.c | 14 +++++++++++ Zend/Optimizer/zend_optimizer.c | 4 +++- .../tests/jit/assign_static_prop_op_001.phpt | 23 +++++++++++++++++++ 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 ext/opcache/tests/jit/assign_static_prop_op_001.phpt diff --git a/Zend/Optimizer/zend_inference.c b/Zend/Optimizer/zend_inference.c index 16edb2cc82e46..9d6517bdedb09 100644 --- a/Zend/Optimizer/zend_inference.c +++ b/Zend/Optimizer/zend_inference.c @@ -2825,8 +2825,15 @@ static zend_always_inline zend_result _zend_update_type_info( /* DOUBLE may be auto-converted to LONG */ tmp |= MAY_BE_LONG; tmp &= ~MAY_BE_DOUBLE; + } else if ((t1 & (MAY_BE_LONG|MAY_BE_DOUBLE|MAY_BE_STRING)) == MAY_BE_STRING + && (tmp & (MAY_BE_LONG|MAY_BE_DOUBLE))) { + /* LONG/DOUBLE may be auto-converted to STRING */ + tmp |= MAY_BE_STRING; + tmp &= ~(MAY_BE_LONG|MAY_BE_DOUBLE); } tmp &= t1; + } else { + tmp |= MAY_BE_LONG | MAY_BE_STRING; } } else if (opline->opcode == ZEND_ASSIGN_STATIC_PROP_OP) { /* The return value must also satisfy the property type */ @@ -2837,8 +2844,15 @@ static zend_always_inline zend_result _zend_update_type_info( /* DOUBLE may be auto-converted to LONG */ tmp |= MAY_BE_LONG; tmp &= ~MAY_BE_DOUBLE; + } else if ((t1 & (MAY_BE_LONG|MAY_BE_DOUBLE|MAY_BE_STRING)) == MAY_BE_STRING + && (tmp & (MAY_BE_LONG|MAY_BE_DOUBLE))) { + /* LONG/DOUBLE may be auto-converted to STRING */ + tmp |= MAY_BE_STRING; + tmp &= ~(MAY_BE_LONG|MAY_BE_DOUBLE); } tmp &= t1; + } else { + tmp |= MAY_BE_LONG | MAY_BE_STRING; } } else { if (tmp & MAY_BE_REF) { diff --git a/Zend/Optimizer/zend_optimizer.c b/Zend/Optimizer/zend_optimizer.c index b5841159bf12c..f274edb039c17 100644 --- a/Zend/Optimizer/zend_optimizer.c +++ b/Zend/Optimizer/zend_optimizer.c @@ -797,7 +797,9 @@ zend_class_entry *zend_optimizer_get_class_entry( } ce = zend_hash_find_ptr(CG(class_table), lcname); - if (ce && ce->type == ZEND_INTERNAL_CLASS) { + if (ce + && (ce->type == ZEND_INTERNAL_CLASS + || (op_array && ce->info.user.filename == op_array->filename))) { return ce; } diff --git a/ext/opcache/tests/jit/assign_static_prop_op_001.phpt b/ext/opcache/tests/jit/assign_static_prop_op_001.phpt new file mode 100644 index 0000000000000..da28851584b30 --- /dev/null +++ b/ext/opcache/tests/jit/assign_static_prop_op_001.phpt @@ -0,0 +1,23 @@ +--TEST-- +JIT ASSIGN_STATIC_PROP_OP: 001 +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +opcache.file_update_protection=0 +opcache.jit_buffer_size=1M +--EXTENSIONS-- +opcache +--FILE-- + +--EXPECT-- +string(1) "1" From 7585cf6952e6f663fc2b3e822beab4fb2e92e4ef Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Thu, 14 Dec 2023 20:32:12 +0100 Subject: [PATCH 32/59] Fix GH-12953: SSA integrity verification failed when loading composer classmaps with more than 11k elements This is a false positive. The cycle detection code stops at 10.000 iterations. Instead of stopping at a fixed amount, make it more robust by implementing Floyd's cycle detection algorithm. Closes GH-12954. --- NEWS | 4 ++++ Zend/Optimizer/ssa_integrity.c | 36 +++++++++++++++++++++++++++------- 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/NEWS b/NEWS index 96b5ca80dcd9d..02d57ac87932d 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,10 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? ??? ????, PHP 8.2.15 +- Core: + . Fixed bug GH-12953 (false positive SSA integrity verification failed when + loading composer classmaps with more than 11k elements). (nielsdos) + - Cli: . Fix incorrect timeout in built-in web server when using router script and max_input_time. (ilutov) diff --git a/Zend/Optimizer/ssa_integrity.c b/Zend/Optimizer/ssa_integrity.c index 321041d241834..6f8b879aa30e8 100644 --- a/Zend/Optimizer/ssa_integrity.c +++ b/Zend/Optimizer/ssa_integrity.c @@ -122,7 +122,7 @@ void ssa_verify_integrity(zend_op_array *op_array, zend_ssa *ssa, const char *ex /* Vars */ for (i = 0; i < ssa->vars_count; i++) { zend_ssa_var *var = &ssa->vars[i]; - int use, c; + int use; uint32_t type = ssa->var_info[i].type; if (var->definition < 0 && !var->definition_phi && i > op_array->last_var) { @@ -148,23 +148,45 @@ void ssa_verify_integrity(zend_op_array *op_array, zend_ssa *ssa, const char *ex } } - c = 0; - FOREACH_USE(var, use) { - if (++c > 10000) { + /* Floyd's cycle detection algorithm, applied for use chain. */ + use = var->use_chain; + int second_use = use; + while (use >= 0 && second_use >= 0) { + use = zend_ssa_next_use(ssa->ops, var - ssa->vars, use); + second_use = zend_ssa_next_use(ssa->ops, var - ssa->vars, second_use); + if (second_use < 0) { + break; + } + second_use = zend_ssa_next_use(ssa->ops, var - ssa->vars, second_use); + if (use == second_use) { FAIL("cycle in uses of " VARFMT "\n", VAR(i)); goto finish; } + } + + FOREACH_USE(var, use) { if (!is_used_by_op(ssa, use, i)) { fprintf(stderr, "var " VARFMT " not in uses of op %d\n", VAR(i), use); } } FOREACH_USE_END(); - c = 0; - FOREACH_PHI_USE(var, phi) { - if (++c > 10000) { + /* Floyd's cycle detection algorithm, applied for phi nodes. */ + phi = var->phi_use_chain; + zend_ssa_phi *second_phi = phi; + while (phi && second_phi) { + phi = zend_ssa_next_use_phi(ssa, var - ssa->vars, phi); + second_phi = zend_ssa_next_use_phi(ssa, var - ssa->vars, second_phi); + if (!second_phi) { + break; + } + second_phi = zend_ssa_next_use_phi(ssa, var - ssa->vars, second_phi); + if (phi == second_phi) { FAIL("cycle in phi uses of " VARFMT "\n", VAR(i)); goto finish; } + } + + FOREACH_PHI_USE(var, phi) { if (!is_in_phi_sources(ssa, phi, i)) { FAIL("var " VARFMT " not in phi sources of %d\n", VAR(i), phi->ssa_var); } From c727f2994257ebae17d992808b334d95c95de2f1 Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Fri, 8 Dec 2023 17:44:03 +0100 Subject: [PATCH 33/59] Fix GH-12905: FFI::new interacts badly with observers Because these functions are copied and not properly registered (which we can't), the observer code doesn't add the temporaries on startup. Add them via a callback during startup. Closes GH-12906. --- NEWS | 1 + ext/ffi/ffi.c | 23 +++++++++++++++++++++++ ext/ffi/tests/gh12905.phpt | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 ext/ffi/tests/gh12905.phpt diff --git a/NEWS b/NEWS index 02d57ac87932d..8431cd834721a 100644 --- a/NEWS +++ b/NEWS @@ -13,6 +13,7 @@ PHP NEWS - FFI: . Fixed bug GH-9698 (stream_wrapper_register crashes with FFI\CData). (Jakub Zelenka) + . Fixed bug GH-12905 (FFI::new interacts badly with observers). (nielsdos) - Hash: . Fixed bug GH-12936 (hash() function hangs endlessly if using sha512 on diff --git a/ext/ffi/ffi.c b/ext/ffi/ffi.c index 098e35aba3d06..4f2bc890a0e7b 100644 --- a/ext/ffi/ffi.c +++ b/ext/ffi/ffi.c @@ -26,6 +26,7 @@ #include "zend_closures.h" #include "zend_weakrefs.h" #include "main/SAPI.h" +#include "zend_observer.h" #include @@ -5305,6 +5306,25 @@ static zend_result zend_ffi_preload(char *preload) /* {{{ */ } /* }}} */ +/* The startup code for observers adds a temporary to each function for internal use. + * The "new", "cast", and "type" functions in FFI are both static and non-static. + * Only the static versions are in the function table and the non-static versions are not. + * This means the non-static versions will be skipped by the observers startup code. + * This function fixes that by incrementing the temporary count for the non-static versions. + */ +static zend_result (*prev_zend_post_startup_cb)(void); +static zend_result ffi_fixup_temporaries(void) { + if (ZEND_OBSERVER_ENABLED) { + ++zend_ffi_new_fn.T; + ++zend_ffi_cast_fn.T; + ++zend_ffi_type_fn.T; + } + if (prev_zend_post_startup_cb) { + return prev_zend_post_startup_cb(); + } + return SUCCESS; +} + /* {{{ ZEND_MINIT_FUNCTION */ ZEND_MINIT_FUNCTION(ffi) { @@ -5326,6 +5346,9 @@ ZEND_MINIT_FUNCTION(ffi) memcpy(&zend_ffi_type_fn, zend_hash_str_find_ptr(&zend_ffi_ce->function_table, "type", sizeof("type")-1), sizeof(zend_internal_function)); zend_ffi_type_fn.fn_flags &= ~ZEND_ACC_STATIC; + prev_zend_post_startup_cb = zend_post_startup_cb; + zend_post_startup_cb = ffi_fixup_temporaries; + memcpy(&zend_ffi_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers)); zend_ffi_handlers.get_constructor = zend_fake_get_constructor; zend_ffi_handlers.free_obj = zend_ffi_free_obj; diff --git a/ext/ffi/tests/gh12905.phpt b/ext/ffi/tests/gh12905.phpt new file mode 100644 index 0000000000000..adcc32db2907c --- /dev/null +++ b/ext/ffi/tests/gh12905.phpt @@ -0,0 +1,33 @@ +--TEST-- +GH-12905 (FFI::new interacts badly with observers) +--EXTENSIONS-- +ffi +zend_test +--SKIPIF-- + +--INI-- +ffi.enable=1 +zend_test.observer.enabled=1 +zend_test.observer.observe_all=1 +zend_test.observer.show_return_value=0 +--FILE-- +new("int"); +?> +--EXPECTF-- + + + + + + + + + From e8141973715b216c224d6b0c05ae5e92c868c02f Mon Sep 17 00:00:00 2001 From: Alex Dowad Date: Wed, 20 Dec 2023 09:57:56 +0200 Subject: [PATCH 34/59] Fix bug in mb_get_substr_slow (sometimes outputs wrong number of characters) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thanks to Maurício Fauth for finding and reporting this bug. The bug was introduced in October 2022. It originally only affected text encodings which do not have a fixed byte width per characters and for which mbstring does not have an mblen_table. However, I recently made another change to mbstring, such that mb_substr no longer relies on the mblen_table even if one is available. Because of this change, the bug earlier introduced in October 2022 now affected a greater number of text encodings, including UTF-8. --- ext/mbstring/mbstring.c | 5 +++-- ext/mbstring/tests/mb_substr.phpt | 6 ++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c index 405806604a0e4..ad15dd6768e03 100644 --- a/ext/mbstring/mbstring.c +++ b/ext/mbstring/mbstring.c @@ -2092,9 +2092,10 @@ static zend_string* mb_get_substr_slow(unsigned char *in, size_t in_len, size_t if (from >= out_len) { from -= out_len; } else { - enc->from_wchar(wchar_buf + from, MIN(out_len - from, len), &buf, !in_len || out_len >= len); + size_t needed_codepoints = MIN(out_len - from, len); + enc->from_wchar(wchar_buf + from, needed_codepoints, &buf, !in_len || out_len >= len); from = 0; - len -= MIN(out_len, len); + len -= needed_codepoints; } } diff --git a/ext/mbstring/tests/mb_substr.phpt b/ext/mbstring/tests/mb_substr.phpt index ad94c3b6069b1..8c376fb5e6ddf 100644 --- a/ext/mbstring/tests/mb_substr.phpt +++ b/ext/mbstring/tests/mb_substr.phpt @@ -133,6 +133,11 @@ echo "Regression:\n"; $str = "\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbe\xbd\xbd\xbd\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x89\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x00\x00\x00\x00\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8f\x8b\x8b\x8b\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbe\x01:O\xaa\xd3"; echo bin2hex(mb_substr($str, 0, 128, "JIS")), "\n"; +/* Alex messed up when reimplementing mb_substr and, in cases where `from` is non-zero and + * the number of characters to extract is more than 128, miscalculated where to end the substring + * Thanks to Maurício Fauth for finding the issue */ +var_dump(mb_substr('Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum dapibus feugiat ex non cursus. Pellentesque vestibulum tellus sit lectus.', 19, -1)); + ?> --EXPECT-- EUC-JP: @@ -213,3 +218,4 @@ Testing agreement with mb_strpos on invalid UTF-8 string: ?AAA Regression: 1b28493d3d3d3d3d3d3d3e3d3d3d1b28423f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f000000003f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f1b28493d3d3d3d3d3d3d3e1b2842013a4f1b28492a1b2842 +string(121) "it amet, consectetur adipiscing elit. Vestibulum dapibus feugiat ex non cursus. Pellentesque vestibulum tellus sit lectus" From 7c4763ab8b985f46ed834ef94362338f946b2a4e Mon Sep 17 00:00:00 2001 From: Jakub Zelenka Date: Thu, 21 Dec 2023 16:42:09 +0000 Subject: [PATCH 35/59] Fix GH-12987: openssl_csr_sign might leak new cert on error Closes GH-12988 --- NEWS | 4 ++++ ext/openssl/openssl.c | 8 +++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/NEWS b/NEWS index 8431cd834721a..b98074d0635bc 100644 --- a/NEWS +++ b/NEWS @@ -25,6 +25,10 @@ PHP NEWS . Added workaround for SELinux mprotect execheap issue. See https://bugzilla.kernel.org/show_bug.cgi?id=218258. (ilutov) +- OpenSSL: + . Fixed bug GH-12987 (openssl_csr_sign might leak new cert on error). + (Jakub Zelenka) + - PDO_ODBC: . Fixed bug GH-12767 (Unable to turn on autocommit mode with setAttribute()). (SakiTakamachi) diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c index 0f8adf013515c..59d938d77e8ca 100644 --- a/ext/openssl/openssl.c +++ b/ext/openssl/openssl.c @@ -3154,6 +3154,7 @@ PHP_FUNCTION(openssl_csr_sign) X509 *cert = NULL, *new_cert = NULL; EVP_PKEY * key = NULL, *priv_key = NULL; int i; + bool new_cert_used = false; struct php_x509_request req; ZEND_PARSE_PARAMETERS_START(4, 6) @@ -3275,11 +3276,12 @@ PHP_FUNCTION(openssl_csr_sign) object_init_ex(return_value, php_openssl_certificate_ce); cert_object = Z_OPENSSL_CERTIFICATE_P(return_value); cert_object->x509 = new_cert; + new_cert_used = true; cleanup: - if (cert == new_cert) { - cert = NULL; + if (!new_cert_used && new_cert) { + X509_free(new_cert); } PHP_SSL_REQ_DISPOSE(&req); @@ -3288,7 +3290,7 @@ PHP_FUNCTION(openssl_csr_sign) if (csr_str) { X509_REQ_free(csr); } - if (cert_str && cert) { + if (cert_str && cert && cert != new_cert) { X509_free(cert); } } From a2068ef47b9aad8cd5c52cd11d0c0a65c3b13662 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Fri, 22 Dec 2023 13:06:07 +0000 Subject: [PATCH 36/59] Fix GH-12999: zend_strnlen build fix when platform misses strnlen support. fix from @rainerjung --- NEWS | 1 + Zend/zend_operators.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 61114e8226a7f..869fa29a9b548 100644 --- a/NEWS +++ b/NEWS @@ -5,6 +5,7 @@ PHP NEWS - Core: . Fixed bug GH-12953 (false positive SSA integrity verification failed when loading composer classmaps with more than 11k elements). (nielsdos) + . Fixed bug GH-12999 (zend_strnlen build when strnlen is unsupported). (rainerjung) - Cli: . Fix incorrect timeout in built-in web server when using router script and diff --git a/Zend/zend_operators.h b/Zend/zend_operators.h index 20eb7245afc6f..4f4a14b93056e 100644 --- a/Zend/zend_operators.h +++ b/Zend/zend_operators.h @@ -269,7 +269,7 @@ static zend_always_inline size_t zend_strnlen(const char* s, size_t maxlen) #if defined(HAVE_STRNLEN) return strnlen(s, maxlen); #else - const char *p = memchr(s, '\0', maxlen); + const char *p = (const char *)memchr(s, '\0', maxlen); return p ? p-s : maxlen; #endif } From b333164423010ad741f45f6f8eccd1c484ba43fc Mon Sep 17 00:00:00 2001 From: SakiTakamachi Date: Tue, 19 Dec 2023 00:22:49 +0900 Subject: [PATCH 37/59] Fix GH-12969: Fixed PDO::getAttribute() to get PDO::ATTR_STRINGIFY_FETCHES Partial backport of GH-12793. Closes GH-12970. --- NEWS | 6 +++++- ext/pdo/pdo_dbh.c | 5 +++++ ext/pdo_mysql/tests/bug68371.phpt | 2 +- ext/pdo_pgsql/tests/bug68371.phpt | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/NEWS b/NEWS index b98074d0635bc..2a6526a18a5ae 100644 --- a/NEWS +++ b/NEWS @@ -29,6 +29,10 @@ PHP NEWS . Fixed bug GH-12987 (openssl_csr_sign might leak new cert on error). (Jakub Zelenka) +- PDO: + . Fix GH-12969 (Fixed PDO::getAttribute() to get PDO::ATTR_STRINGIFY_FETCHES). + (SakiTakamachi) + - PDO_ODBC: . Fixed bug GH-12767 (Unable to turn on autocommit mode with setAttribute()). (SakiTakamachi) @@ -67,7 +71,7 @@ PHP NEWS - FTP: . Fixed bug GH-9348 (FTP & SSL session reuse). (nielsdos) - + - Intl: . Fixed bug GH-12635 (Test bug69398.phpt fails with ICU 74.1). (nielsdos) diff --git a/ext/pdo/pdo_dbh.c b/ext/pdo/pdo_dbh.c index 96fa350016a4b..fc6494f2908a6 100644 --- a/ext/pdo/pdo_dbh.c +++ b/ext/pdo/pdo_dbh.c @@ -930,8 +930,13 @@ PHP_METHOD(PDO, getAttribute) add_next_index_zval(return_value, &dbh->def_stmt_ctor_args); } return; + case PDO_ATTR_DEFAULT_FETCH_MODE: RETURN_LONG(dbh->default_fetch_type); + + case PDO_ATTR_STRINGIFY_FETCHES: + RETURN_BOOL(dbh->stringify); + default: break; } diff --git a/ext/pdo_mysql/tests/bug68371.phpt b/ext/pdo_mysql/tests/bug68371.phpt index bc96ce8eda8e6..0577929ca4029 100644 --- a/ext/pdo_mysql/tests/bug68371.phpt +++ b/ext/pdo_mysql/tests/bug68371.phpt @@ -96,6 +96,6 @@ array(1) { ERR ERR string(5) "mysql" -ERR +bool(false) ERR int(4) diff --git a/ext/pdo_pgsql/tests/bug68371.phpt b/ext/pdo_pgsql/tests/bug68371.phpt index 04a0dd70dd380..32173a5a96450 100644 --- a/ext/pdo_pgsql/tests/bug68371.phpt +++ b/ext/pdo_pgsql/tests/bug68371.phpt @@ -95,6 +95,6 @@ array(1) { ERR ERR string(5) "pgsql" -ERR +bool(true) ERR int(4) From de5557b02f7d4942e19283ee5b47ea7214a1d26a Mon Sep 17 00:00:00 2001 From: Peter Kokot Date: Fri, 22 Dec 2023 16:12:59 +0100 Subject: [PATCH 38/59] Add cross-compiling 3rd argument to AC_RUN_IFELSE Autotools emits warning if 3rd argument is empty. Call is wrapped in the AC_CACHE_CHECK with php_cv_* cache variable name according to the docs. Closes GH-12966 --- NEWS | 2 ++ configure.ac | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index 2a6526a18a5ae..e74c11bafc6e4 100644 --- a/NEWS +++ b/NEWS @@ -5,6 +5,8 @@ PHP NEWS - Core: . Fixed bug GH-12953 (false positive SSA integrity verification failed when loading composer classmaps with more than 11k elements). (nielsdos) + . Fixed bug GH-12966 (missing cross-compiling 3rd argument so Autoconf doesn't + emit warnings). (Peter Kokot) - Cli: . Fix incorrect timeout in built-in web server when using router script and diff --git a/configure.ac b/configure.ac index 1d510992f22e0..c1f69044fe064 100644 --- a/configure.ac +++ b/configure.ac @@ -1586,15 +1586,16 @@ if test "$PHP_UNDEFINED_SANITIZER" = "yes"; then dnl cast to void*. In that case, set -fno-sanitize=function. OLD_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fno-sanitize-recover=undefined" + AC_CACHE_CHECK([whether to add -fno-sanitize=function],[php_cv_ubsan_no_function],[ AC_RUN_IFELSE([AC_LANG_SOURCE([[ void foo(char *string) {} int main(void) { void (*f)(void *) = (void (*)(void *))foo; f("foo"); } - ]])],,[ubsan_needs_no_function=yes],) + ]])],[php_cv_ubsan_no_function=no],[php_cv_ubsan_no_function=yes],[php_cv_ubsan_no_function=no])]) CFLAGS="$OLD_CFLAGS" - if test "$ubsan_needs_no_function" = yes; then + if test "$php_cv_ubsan_no_function" = yes; then CFLAGS="$CFLAGS -fno-sanitize=function" CXXFLAGS="$CFLAGS -fno-sanitize=function" fi From b3f483db2e371d558708f750edf1ad56ca1065d7 Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Thu, 21 Dec 2023 17:37:05 +0100 Subject: [PATCH 39/59] Fix GH-12980: tidynode.props.attribute is missing "Boolean Attributes" and empty attributes Closes GH-12993. --- NEWS | 4 ++++ ext/tidy/tests/gh12980.phpt | 34 ++++++++++++++++++++++++++++++++++ ext/tidy/tidy.c | 8 ++++++-- 3 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 ext/tidy/tests/gh12980.phpt diff --git a/NEWS b/NEWS index e74c11bafc6e4..c68a4d19740c9 100644 --- a/NEWS +++ b/NEWS @@ -46,6 +46,10 @@ PHP NEWS . Fix getting the address of an uninitialized property of a SimpleXMLElement resulting in a crash. (nielsdos) +- Tidy: + . Fixed bug GH-12980 (tidynode.props.attribute is missing + "Boolean Attributes" and empty attributes). (nielsdos) + 21 Dec 2023, PHP 8.2.14 - Core: diff --git a/ext/tidy/tests/gh12980.phpt b/ext/tidy/tests/gh12980.phpt new file mode 100644 index 0000000000000..042701388a4e5 --- /dev/null +++ b/ext/tidy/tests/gh12980.phpt @@ -0,0 +1,34 @@ +--TEST-- +GH-12980 (tidynode.props.attribute is missing "Boolean Attributes" and empty attributes) +--EXTENSIONS-- +tidy +--FILE-- +'; + +$tidy = new tidy(); +$tidy->ParseString($html); +echo tidy_get_output($tidy), "\n"; + +var_dump($tidy->root()->child[1]->attribute); + +?> +--EXPECT-- + + + + + + + + +array(4) { + ["lang"]=> + string(2) "en" + ["boolean"]=> + string(0) "" + ["empty"]=> + string(0) "" + ["selected"]=> + string(8) "selected" +} diff --git a/ext/tidy/tidy.c b/ext/tidy/tidy.c index e7b345dd25e34..a2e4dec90a3e1 100644 --- a/ext/tidy/tidy.c +++ b/ext/tidy/tidy.c @@ -662,8 +662,12 @@ static void tidy_add_node_default_properties(PHPTidyObj *obj) do { name = (char *)tidyAttrName(tempattr); val = (char *)tidyAttrValue(tempattr); - if (name && val) { - add_assoc_string(&attribute, name, val); + if (name) { + if (val) { + add_assoc_string(&attribute, name, val); + } else { + add_assoc_str(&attribute, name, zend_empty_string); + } } } while((tempattr = tidyAttrNext(tempattr))); } else { From 6a447e7437b988062fda6529cc84c6595de09b54 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Fri, 15 Dec 2023 06:03:19 +0000 Subject: [PATCH 40/59] GH-12943 ext/intl accept C as acceptable locale argument. Close GH-12955 --- NEWS | 4 ++++ ext/intl/dateformat/dateformat_create.cpp | 2 +- ext/intl/tests/gh12943.phpt | 15 +++++++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 ext/intl/tests/gh12943.phpt diff --git a/NEWS b/NEWS index c68a4d19740c9..9960d2eafca59 100644 --- a/NEWS +++ b/NEWS @@ -17,6 +17,10 @@ PHP NEWS (Jakub Zelenka) . Fixed bug GH-12905 (FFI::new interacts badly with observers). (nielsdos) +- Intl: + . Fixed GH-12943 (IntlDateFormatter::__construct accepts 'C' as valid locale). + (David Carlier) + - Hash: . Fixed bug GH-12936 (hash() function hangs endlessly if using sha512 on strings >= 4GiB). (nielsdos) diff --git a/ext/intl/dateformat/dateformat_create.cpp b/ext/intl/dateformat/dateformat_create.cpp index 5c96f41fadf35..399740dbca227 100644 --- a/ext/intl/dateformat/dateformat_create.cpp +++ b/ext/intl/dateformat/dateformat_create.cpp @@ -112,7 +112,7 @@ static zend_result datefmt_ctor(INTERNAL_FUNCTION_PARAMETERS, zend_error_handlin } locale = Locale::createFromName(locale_str); /* get*Name accessors being set does not preclude being bogus */ - if (locale.isBogus() || strlen(locale.getISO3Language()) == 0) { + if (locale.isBogus() || ((locale_len == 1 && locale_str[0] != 'C') && strlen(locale.getISO3Language()) == 0)) { goto error; } diff --git a/ext/intl/tests/gh12943.phpt b/ext/intl/tests/gh12943.phpt new file mode 100644 index 0000000000000..1a8856640acd3 --- /dev/null +++ b/ext/intl/tests/gh12943.phpt @@ -0,0 +1,15 @@ +--TEST-- +GitHub #12943 IntlDateFormatter::locale accepting "C". +--EXTENSIONS-- +intl +--FILE-- +getLocale(ULOC_VALID_LOCALE)); +--EXPECTF-- +string(%d) "%s" From b2d778c36e8a3edbf5c11cd7ab475095fbb281cb Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Fri, 22 Dec 2023 21:12:59 +0100 Subject: [PATCH 41/59] Fix crash when toggleAttribute() is used without a document --- NEWS | 1 + ext/dom/element.c | 2 +- ...lement_toggleAttribute_without_document.phpt | 17 +++++++++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 ext/dom/tests/DOMElement_toggleAttribute_without_document.phpt diff --git a/NEWS b/NEWS index 775265ea75297..1161e854d2b38 100644 --- a/NEWS +++ b/NEWS @@ -20,6 +20,7 @@ PHP NEWS - DOM: . Fixed bug GH-12870 (Creating an xmlns attribute results in a DOMException). (nielsdos) + . Fix crash when toggleAttribute() is used without a document. (nielsdos) - FFI: . Fixed bug GH-9698 (stream_wrapper_register crashes with FFI\CData). diff --git a/ext/dom/element.c b/ext/dom/element.c index 133ae0d76f6d1..f87fbcccfef98 100644 --- a/ext/dom/element.c +++ b/ext/dom/element.c @@ -1554,7 +1554,7 @@ PHP_METHOD(DOMElement, toggleAttribute) } /* Step 2 */ - if (thisp->doc->type == XML_HTML_DOCUMENT_NODE && (thisp->ns == NULL || xmlStrEqual(thisp->ns->href, (const xmlChar *) "http://www.w3.org/1999/xhtml"))) { + if (thisp->doc != NULL && thisp->doc->type == XML_HTML_DOCUMENT_NODE && (thisp->ns == NULL || xmlStrEqual(thisp->ns->href, (const xmlChar *) "http://www.w3.org/1999/xhtml"))) { qname_tmp = zend_str_tolower_dup_ex(qname, qname_length); if (qname_tmp != NULL) { qname = qname_tmp; diff --git a/ext/dom/tests/DOMElement_toggleAttribute_without_document.phpt b/ext/dom/tests/DOMElement_toggleAttribute_without_document.phpt new file mode 100644 index 0000000000000..ecd930b487c8e --- /dev/null +++ b/ext/dom/tests/DOMElement_toggleAttribute_without_document.phpt @@ -0,0 +1,17 @@ +--TEST-- +DOMElement::toggleAttribute() without a document +--EXTENSIONS-- +dom +--FILE-- +toggleAttribute('foo', true); + +$dom = new DOMDocument; +$element = $dom->importNode($element, true); +echo $dom->saveXML($element), "\n"; + +?> +--EXPECT-- + From 8e8d5ce2404f95acf5201b1c84f58af6b50e287e Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Fri, 22 Dec 2023 22:03:36 +0100 Subject: [PATCH 42/59] Fix crash in adoptNode with attribute references I forgot to also update the document reference of attributes, so when there is no document reference anymore from a variable, but still an attribute, this can crash. Fix it by also updating the document references for attributes. Closes GH-13002. --- NEWS | 1 + ext/dom/document.c | 34 +++++++++++++------ ...cument_adoptNode_attribute_references.phpt | 27 +++++++++++++++ 3 files changed, 51 insertions(+), 11 deletions(-) create mode 100644 ext/dom/tests/DOMDocument_adoptNode_attribute_references.phpt diff --git a/NEWS b/NEWS index 1161e854d2b38..7f08765f4363c 100644 --- a/NEWS +++ b/NEWS @@ -21,6 +21,7 @@ PHP NEWS . Fixed bug GH-12870 (Creating an xmlns attribute results in a DOMException). (nielsdos) . Fix crash when toggleAttribute() is used without a document. (nielsdos) + . Fix crash in adoptNode with attribute references. (nielsdos) - FFI: . Fixed bug GH-9698 (stream_wrapper_register crashes with FFI\CData). diff --git a/ext/dom/document.c b/ext/dom/document.c index 417cb70be9d85..831f01b87b25a 100644 --- a/ext/dom/document.c +++ b/ext/dom/document.c @@ -1041,21 +1041,33 @@ PHP_METHOD(DOMDocument, getElementById) } /* }}} end dom_document_get_element_by_id */ -static void php_dom_transfer_document_ref(xmlNodePtr node, dom_object *dom_object_document, xmlDocPtr document) +static zend_always_inline void php_dom_transfer_document_ref_single_node(xmlNodePtr node, php_libxml_ref_obj *new_document) +{ + php_libxml_node_ptr *iteration_object_ptr = node->_private; + if (iteration_object_ptr) { + php_libxml_node_object *iteration_object = iteration_object_ptr->_private; + ZEND_ASSERT(iteration_object != NULL); + /* Must increase refcount first because we could be the last reference holder, and the document may be equal. */ + new_document->refcount++; + php_libxml_decrement_doc_ref(iteration_object); + iteration_object->document = new_document; + } +} + +static void php_dom_transfer_document_ref(xmlNodePtr node, php_libxml_ref_obj *new_document) { if (node->children) { - php_dom_transfer_document_ref(node->children, dom_object_document, document); + php_dom_transfer_document_ref(node->children, new_document); } + while (node) { - php_libxml_node_ptr *iteration_object_ptr = node->_private; - if (iteration_object_ptr) { - php_libxml_node_object *iteration_object = iteration_object_ptr->_private; - ZEND_ASSERT(iteration_object != NULL); - /* Must increase refcount first because we could be the last reference holder, and the document may be equal. */ - dom_object_document->document->refcount++; - php_libxml_decrement_doc_ref(iteration_object); - iteration_object->document = dom_object_document->document; + if (node->type == XML_ELEMENT_NODE) { + for (xmlAttrPtr attr = node->properties; attr != NULL; attr = attr->next) { + php_dom_transfer_document_ref_single_node((xmlNodePtr) attr, new_document); + } } + + php_dom_transfer_document_ref_single_node(node, new_document); node = node->next; } } @@ -1073,7 +1085,7 @@ bool php_dom_adopt_node(xmlNodePtr nodep, dom_object *dom_object_new_document, x return false; } - php_dom_transfer_document_ref(nodep, dom_object_new_document, new_document); + php_dom_transfer_document_ref(nodep, dom_object_new_document->document); } else { xmlUnlinkNode(nodep); } diff --git a/ext/dom/tests/DOMDocument_adoptNode_attribute_references.phpt b/ext/dom/tests/DOMDocument_adoptNode_attribute_references.phpt new file mode 100644 index 0000000000000..fcbf032bbfd39 --- /dev/null +++ b/ext/dom/tests/DOMDocument_adoptNode_attribute_references.phpt @@ -0,0 +1,27 @@ +--TEST-- +DOMDocument::adoptNode() with attribute references +--EXTENSIONS-- +dom +--FILE-- +appendChild($dom->createElement('root')); +$root->setAttributeNS("urn:a", "a:root1", "bar"); +$root1 = $root->getAttributeNodeNS("urn:a", "root1"); +echo $dom->saveXML(); + +$dom = new DOMDocument; +$dom->appendChild($dom->adoptNode($root)); +foreach ($dom->documentElement->attributes as $attr) { + var_dump($attr->namespaceURI, $attr->prefix, $attr->localName, $attr->nodeValue); +} + +?> +--EXPECT-- + + +string(5) "urn:a" +string(1) "a" +string(5) "root1" +string(3) "bar" From 3fa5af8496bdbc74e24828b790e4acfd6a26f0d4 Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Fri, 22 Dec 2023 23:24:34 +0100 Subject: [PATCH 43/59] Fix crashes with entity references and predefined entities There's two issues here: - freeing of predefined entity declaration crashes (unique to 8.3 & master) - using multiple entity references for a single entity declaration crashes (since forever) The fix for the last issue is fairly easy to do on 8.3, but may require a slightly different approach on 8.2. Therefore, for now this is 8.3-only. Closes GH-13004. --- NEWS | 1 + .../DOMEntityReference_predefined_free.phpt | 46 +++++++++++++++++++ .../delayed_freeing/entity_declaration.phpt | 22 +++++++-- ext/libxml/libxml.c | 17 +++++-- 4 files changed, 78 insertions(+), 8 deletions(-) create mode 100644 ext/dom/tests/DOMEntityReference_predefined_free.phpt diff --git a/NEWS b/NEWS index 7f08765f4363c..4cda13adfe470 100644 --- a/NEWS +++ b/NEWS @@ -22,6 +22,7 @@ PHP NEWS (nielsdos) . Fix crash when toggleAttribute() is used without a document. (nielsdos) . Fix crash in adoptNode with attribute references. (nielsdos) + . Fix crashes with entity references and predefined entities. (nielsdos) - FFI: . Fixed bug GH-9698 (stream_wrapper_register crashes with FFI\CData). diff --git a/ext/dom/tests/DOMEntityReference_predefined_free.phpt b/ext/dom/tests/DOMEntityReference_predefined_free.phpt new file mode 100644 index 0000000000000..4b971d83703ed --- /dev/null +++ b/ext/dom/tests/DOMEntityReference_predefined_free.phpt @@ -0,0 +1,46 @@ +--TEST-- +Freeing of a predefined DOMEntityReference +--EXTENSIONS-- +dom +--FILE-- + +--EXPECT-- +object(DOMEntityReference)#1 (17) { + ["nodeName"]=> + string(3) "amp" + ["nodeValue"]=> + NULL + ["nodeType"]=> + int(5) + ["parentNode"]=> + NULL + ["parentElement"]=> + NULL + ["childNodes"]=> + string(22) "(object value omitted)" + ["firstChild"]=> + string(22) "(object value omitted)" + ["lastChild"]=> + string(22) "(object value omitted)" + ["previousSibling"]=> + NULL + ["nextSibling"]=> + NULL + ["attributes"]=> + NULL + ["isConnected"]=> + bool(false) + ["namespaceURI"]=> + NULL + ["prefix"]=> + string(0) "" + ["localName"]=> + NULL + ["baseURI"]=> + NULL + ["textContent"]=> + string(0) "" +} diff --git a/ext/dom/tests/delayed_freeing/entity_declaration.phpt b/ext/dom/tests/delayed_freeing/entity_declaration.phpt index 3e082611c3583..5caf29eedad9f 100644 --- a/ext/dom/tests/delayed_freeing/entity_declaration.phpt +++ b/ext/dom/tests/delayed_freeing/entity_declaration.phpt @@ -9,16 +9,32 @@ $doc->loadXML(<<<'XML' + ]> XML); -$entity = $doc->doctype->entities[0]; -var_dump($entity->nodeName, $entity->parentNode->nodeName); +$ref1 = $doc->createEntityReference("test"); +$ref2 = $doc->createEntityReference("myimage"); +$entity1 = $doc->doctype->entities[0]; +$entity2 = $doc->doctype->entities[1]; + +// Entity order depends on addresses +if ($entity1->nodeName !== "test") { + [$entity1, $entity2] = [$entity2, $entity1]; +} + +var_dump($entity1->nodeName, $entity1->parentNode->nodeName); +var_dump($entity2->nodeName, $entity2->parentNode->nodeName); $doc->removeChild($doc->doctype); -var_dump($entity->nodeName, $entity->parentNode); +var_dump($entity1->nodeName, $entity1->parentNode); +var_dump($entity2->nodeName, $entity2->parentNode); ?> --EXPECT-- string(4) "test" string(5) "books" +string(7) "myimage" +string(5) "books" string(4) "test" NULL +string(7) "myimage" +NULL diff --git a/ext/libxml/libxml.c b/ext/libxml/libxml.c index 526aa296aad1a..2eef24d2fffa8 100644 --- a/ext/libxml/libxml.c +++ b/ext/libxml/libxml.c @@ -206,12 +206,10 @@ static void php_libxml_node_free(xmlNodePtr node) * dtd is attached to the document. This works around the issue by inspecting the parent directly. */ case XML_ENTITY_DECL: { xmlEntityPtr entity = (xmlEntityPtr) node; - php_libxml_unlink_entity_decl(entity); - if (entity->orig != NULL) { - xmlFree((char *) entity->orig); - entity->orig = NULL; + if (entity->etype != XML_INTERNAL_PREDEFINED_ENTITY) { + php_libxml_unlink_entity_decl(entity); + xmlFreeEntity(entity); } - xmlFreeNode(node); break; } case XML_NOTATION_NODE: { @@ -1385,6 +1383,15 @@ PHP_LIBXML_API void php_libxml_node_free_resource(xmlNodePtr node) case XML_DOCUMENT_NODE: case XML_HTML_DOCUMENT_NODE: break; + case XML_ENTITY_REF_NODE: + /* Entity reference nodes are special: their children point to entity declarations, + * but they don't own the declarations and therefore shouldn't free the children. + * Moreover, there can be N>1 reference nodes for a single entity declarations. */ + php_libxml_unregister_node(node); + if (node->parent == NULL) { + php_libxml_node_free(node); + } + break; default: if (node->parent == NULL || node->type == XML_NAMESPACE_DECL) { php_libxml_node_free_list((xmlNodePtr) node->children); From bb007438e20604b9d443283e6ec946426e389ddc Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Sat, 23 Dec 2023 17:20:52 +0100 Subject: [PATCH 44/59] Fix libxml2 build for 2.12.0-2.12.2 --- ext/libxml/libxml.c | 1 + 1 file changed, 1 insertion(+) diff --git a/ext/libxml/libxml.c b/ext/libxml/libxml.c index 2eef24d2fffa8..b95800a3c1244 100644 --- a/ext/libxml/libxml.c +++ b/ext/libxml/libxml.c @@ -35,6 +35,7 @@ #include #include #include +#include #ifdef LIBXML_SCHEMAS_ENABLED #include #include From 5f69232b5374d9dbd4d8da65a493eaa81e7c5a06 Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Sat, 23 Dec 2023 17:31:18 +0100 Subject: [PATCH 45/59] Revert "Fix crashes with entity references and predefined entities" This reverts commit 3fa5af8496bdbc74e24828b790e4acfd6a26f0d4. --- NEWS | 1 - .../DOMEntityReference_predefined_free.phpt | 46 ------------------- .../delayed_freeing/entity_declaration.phpt | 22 ++------- ext/libxml/libxml.c | 17 ++----- 4 files changed, 8 insertions(+), 78 deletions(-) delete mode 100644 ext/dom/tests/DOMEntityReference_predefined_free.phpt diff --git a/NEWS b/NEWS index 4cda13adfe470..7f08765f4363c 100644 --- a/NEWS +++ b/NEWS @@ -22,7 +22,6 @@ PHP NEWS (nielsdos) . Fix crash when toggleAttribute() is used without a document. (nielsdos) . Fix crash in adoptNode with attribute references. (nielsdos) - . Fix crashes with entity references and predefined entities. (nielsdos) - FFI: . Fixed bug GH-9698 (stream_wrapper_register crashes with FFI\CData). diff --git a/ext/dom/tests/DOMEntityReference_predefined_free.phpt b/ext/dom/tests/DOMEntityReference_predefined_free.phpt deleted file mode 100644 index 4b971d83703ed..0000000000000 --- a/ext/dom/tests/DOMEntityReference_predefined_free.phpt +++ /dev/null @@ -1,46 +0,0 @@ ---TEST-- -Freeing of a predefined DOMEntityReference ---EXTENSIONS-- -dom ---FILE-- - ---EXPECT-- -object(DOMEntityReference)#1 (17) { - ["nodeName"]=> - string(3) "amp" - ["nodeValue"]=> - NULL - ["nodeType"]=> - int(5) - ["parentNode"]=> - NULL - ["parentElement"]=> - NULL - ["childNodes"]=> - string(22) "(object value omitted)" - ["firstChild"]=> - string(22) "(object value omitted)" - ["lastChild"]=> - string(22) "(object value omitted)" - ["previousSibling"]=> - NULL - ["nextSibling"]=> - NULL - ["attributes"]=> - NULL - ["isConnected"]=> - bool(false) - ["namespaceURI"]=> - NULL - ["prefix"]=> - string(0) "" - ["localName"]=> - NULL - ["baseURI"]=> - NULL - ["textContent"]=> - string(0) "" -} diff --git a/ext/dom/tests/delayed_freeing/entity_declaration.phpt b/ext/dom/tests/delayed_freeing/entity_declaration.phpt index 5caf29eedad9f..3e082611c3583 100644 --- a/ext/dom/tests/delayed_freeing/entity_declaration.phpt +++ b/ext/dom/tests/delayed_freeing/entity_declaration.phpt @@ -9,32 +9,16 @@ $doc->loadXML(<<<'XML' - ]> XML); -$ref1 = $doc->createEntityReference("test"); -$ref2 = $doc->createEntityReference("myimage"); -$entity1 = $doc->doctype->entities[0]; -$entity2 = $doc->doctype->entities[1]; - -// Entity order depends on addresses -if ($entity1->nodeName !== "test") { - [$entity1, $entity2] = [$entity2, $entity1]; -} - -var_dump($entity1->nodeName, $entity1->parentNode->nodeName); -var_dump($entity2->nodeName, $entity2->parentNode->nodeName); +$entity = $doc->doctype->entities[0]; +var_dump($entity->nodeName, $entity->parentNode->nodeName); $doc->removeChild($doc->doctype); -var_dump($entity1->nodeName, $entity1->parentNode); -var_dump($entity2->nodeName, $entity2->parentNode); +var_dump($entity->nodeName, $entity->parentNode); ?> --EXPECT-- string(4) "test" string(5) "books" -string(7) "myimage" -string(5) "books" string(4) "test" NULL -string(7) "myimage" -NULL diff --git a/ext/libxml/libxml.c b/ext/libxml/libxml.c index b95800a3c1244..e8654abeed700 100644 --- a/ext/libxml/libxml.c +++ b/ext/libxml/libxml.c @@ -207,10 +207,12 @@ static void php_libxml_node_free(xmlNodePtr node) * dtd is attached to the document. This works around the issue by inspecting the parent directly. */ case XML_ENTITY_DECL: { xmlEntityPtr entity = (xmlEntityPtr) node; - if (entity->etype != XML_INTERNAL_PREDEFINED_ENTITY) { - php_libxml_unlink_entity_decl(entity); - xmlFreeEntity(entity); + php_libxml_unlink_entity_decl(entity); + if (entity->orig != NULL) { + xmlFree((char *) entity->orig); + entity->orig = NULL; } + xmlFreeNode(node); break; } case XML_NOTATION_NODE: { @@ -1384,15 +1386,6 @@ PHP_LIBXML_API void php_libxml_node_free_resource(xmlNodePtr node) case XML_DOCUMENT_NODE: case XML_HTML_DOCUMENT_NODE: break; - case XML_ENTITY_REF_NODE: - /* Entity reference nodes are special: their children point to entity declarations, - * but they don't own the declarations and therefore shouldn't free the children. - * Moreover, there can be N>1 reference nodes for a single entity declarations. */ - php_libxml_unregister_node(node); - if (node->parent == NULL) { - php_libxml_node_free(node); - } - break; default: if (node->parent == NULL || node->type == XML_NAMESPACE_DECL) { php_libxml_node_free_list((xmlNodePtr) node->children); From d98a45d08c2b1de7f9c9f6a3ab25886018a206df Mon Sep 17 00:00:00 2001 From: David Carlier Date: Tue, 19 Dec 2023 17:42:52 +0000 Subject: [PATCH 46/59] ext/pgsql: pgsql.allow_persistent, no need to use such large type for boolean state. also ext/odbc, simplifying odd comparison with non persistent connections. Close GH-12976 --- NEWS | 3 +++ ext/odbc/php_odbc.c | 2 +- ext/pgsql/pgsql.c | 2 +- ext/pgsql/php_pgsql.h | 5 +++-- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/NEWS b/NEWS index 9960d2eafca59..dc21c25772ff8 100644 --- a/NEWS +++ b/NEWS @@ -43,6 +43,9 @@ PHP NEWS . Fixed bug GH-12767 (Unable to turn on autocommit mode with setAttribute()). (SakiTakamachi) +- PGSQL: + . Fixed auto_reset_persistent handling and allow_persistent type. (David Carlier) + - PHPDBG: . Fixed bug GH-12962 (Double free of init_file in phpdbg_prompt.c). (nielsdos) diff --git a/ext/odbc/php_odbc.c b/ext/odbc/php_odbc.c index fa9d8330fe605..d03a0790a72a6 100644 --- a/ext/odbc/php_odbc.c +++ b/ext/odbc/php_odbc.c @@ -2194,7 +2194,7 @@ void odbc_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent) } } - if (ODBCG(allow_persistent) <= 0) { + if (!ODBCG(allow_persistent)) { persistent = 0; } diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c index f3c4471837d28..a437c1620de4d 100644 --- a/ext/pgsql/pgsql.c +++ b/ext/pgsql/pgsql.c @@ -405,7 +405,7 @@ PHP_INI_BEGIN() STD_PHP_INI_BOOLEAN( "pgsql.allow_persistent", "1", PHP_INI_SYSTEM, OnUpdateBool, allow_persistent, zend_pgsql_globals, pgsql_globals) STD_PHP_INI_ENTRY_EX("pgsql.max_persistent", "-1", PHP_INI_SYSTEM, OnUpdateLong, max_persistent, zend_pgsql_globals, pgsql_globals, display_link_numbers) STD_PHP_INI_ENTRY_EX("pgsql.max_links", "-1", PHP_INI_SYSTEM, OnUpdateLong, max_links, zend_pgsql_globals, pgsql_globals, display_link_numbers) -STD_PHP_INI_BOOLEAN( "pgsql.auto_reset_persistent", "0", PHP_INI_SYSTEM, OnUpdateBool, auto_reset_persistent, zend_pgsql_globals, pgsql_globals) +STD_PHP_INI_BOOLEAN( "pgsql.auto_reset_persistent", "0", PHP_INI_SYSTEM, OnUpdateLong, auto_reset_persistent, zend_pgsql_globals, pgsql_globals) STD_PHP_INI_BOOLEAN( "pgsql.ignore_notice", "0", PHP_INI_ALL, OnUpdateBool, ignore_notices, zend_pgsql_globals, pgsql_globals) STD_PHP_INI_BOOLEAN( "pgsql.log_notice", "0", PHP_INI_ALL, OnUpdateBool, log_notices, zend_pgsql_globals, pgsql_globals) PHP_INI_END() diff --git a/ext/pgsql/php_pgsql.h b/ext/pgsql/php_pgsql.h index f297f91b3ecde..a3a8cd95c2a8b 100644 --- a/ext/pgsql/php_pgsql.h +++ b/ext/pgsql/php_pgsql.h @@ -184,9 +184,10 @@ static const php_stream_ops php_stream_pgsql_fd_ops = { ZEND_BEGIN_MODULE_GLOBALS(pgsql) zend_long num_links,num_persistent; zend_long max_links,max_persistent; - zend_long allow_persistent; + bool allow_persistent; + int ignore_notices; zend_long auto_reset_persistent; - int ignore_notices,log_notices; + int log_notices; zend_object *default_link; /* default link when connection is omitted */ HashTable field_oids; HashTable table_oids; From 5350952a3734f6a432cf6c57fafe9b735429e97c Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Mon, 25 Dec 2023 13:22:03 +0300 Subject: [PATCH 47/59] Fix assertion Fixes oss-fuzz #65233 --- Zend/zend_opcode.c | 2 +- ext/opcache/tests/opt/dce_014.phpt | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 ext/opcache/tests/opt/dce_014.phpt diff --git a/Zend/zend_opcode.c b/Zend/zend_opcode.c index 3475bc4db3bf9..97110cf54c057 100644 --- a/Zend/zend_opcode.c +++ b/Zend/zend_opcode.c @@ -867,12 +867,12 @@ static bool keeps_op1_alive(zend_op *opline) { || opline->opcode == ZEND_SWITCH_STRING || opline->opcode == ZEND_MATCH || opline->opcode == ZEND_FETCH_LIST_R + || opline->opcode == ZEND_FETCH_LIST_W || opline->opcode == ZEND_COPY_TMP) { return 1; } ZEND_ASSERT(opline->opcode != ZEND_FE_FETCH_R && opline->opcode != ZEND_FE_FETCH_RW - && opline->opcode != ZEND_FETCH_LIST_W && opline->opcode != ZEND_VERIFY_RETURN_TYPE && opline->opcode != ZEND_BIND_LEXICAL && opline->opcode != ZEND_ROPE_ADD); diff --git a/ext/opcache/tests/opt/dce_014.phpt b/ext/opcache/tests/opt/dce_014.phpt new file mode 100644 index 0000000000000..a803b52772913 --- /dev/null +++ b/ext/opcache/tests/opt/dce_014.phpt @@ -0,0 +1,12 @@ +--TEST-- +DCE may remove FREE after FETCH_LIST_W +--FILE-- + +DONE +--EXPECT-- +DONE From 93951cf5abd0ba74e1cce8481dceaa9bcf406e79 Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Sun, 24 Dec 2023 13:21:06 +0100 Subject: [PATCH 48/59] Fix GH-13012: DOMNode::isEqualNode() is incorrect when attribute order is different Attributes (and namespace declarations) have to be compared in an unordered way. Closes GH-13017. --- NEWS | 2 + ext/dom/node.c | 87 ++++++++++++++++++++++------------- ext/dom/tests/gh13012.phpt | 37 +++++++++++++++ ext/dom/tests/gh13012_ns.phpt | 37 +++++++++++++++ 4 files changed, 132 insertions(+), 31 deletions(-) create mode 100644 ext/dom/tests/gh13012.phpt create mode 100644 ext/dom/tests/gh13012_ns.phpt diff --git a/NEWS b/NEWS index c8d6d3ab23239..fb6c80c1200c0 100644 --- a/NEWS +++ b/NEWS @@ -22,6 +22,8 @@ PHP NEWS (nielsdos) . Fix crash when toggleAttribute() is used without a document. (nielsdos) . Fix crash in adoptNode with attribute references. (nielsdos) + . Fixed bug GH-13012 (DOMNode::isEqualNode() is incorrect when attribute + order is different). (nielsdos) - FFI: . Fixed bug GH-9698 (stream_wrapper_register crashes with FFI\CData). diff --git a/ext/dom/node.c b/ext/dom/node.c index 4a797c573a450..b95bf6c40fb4c 100644 --- a/ext/dom/node.c +++ b/ext/dom/node.c @@ -1490,33 +1490,58 @@ static bool php_dom_node_is_equal_node(const xmlNode *this, const xmlNode *other #define PHP_DOM_FUNC_CAT(prefix, suffix) prefix##_##suffix /* xmlNode and xmlNs have incompatible struct layouts, i.e. the next field is in a different offset */ -#define PHP_DOM_DEFINE_LIST_EQUALITY_HELPER(type) \ - static size_t PHP_DOM_FUNC_CAT(php_dom_node_count_list_size, type)(const type *node) \ - { \ - size_t counter = 0; \ - while (node) { \ - counter++; \ - node = node->next; \ - } \ - return counter; \ - } \ - static bool PHP_DOM_FUNC_CAT(php_dom_node_list_equality_check, type)(const type *list1, const type *list2) \ - { \ - size_t count = PHP_DOM_FUNC_CAT(php_dom_node_count_list_size, type)(list1); \ - if (count != PHP_DOM_FUNC_CAT(php_dom_node_count_list_size, type)(list2)) { \ - return false; \ - } \ - for (size_t i = 0; i < count; i++) { \ - if (!php_dom_node_is_equal_node((const xmlNode *) list1, (const xmlNode *) list2)) { \ - return false; \ - } \ - list1 = list1->next; \ - list2 = list2->next; \ - } \ - return true; \ - } -PHP_DOM_DEFINE_LIST_EQUALITY_HELPER(xmlNode) -PHP_DOM_DEFINE_LIST_EQUALITY_HELPER(xmlNs) +#define PHP_DOM_DEFINE_LIST_COUNTER_HELPER(type) \ + static size_t PHP_DOM_FUNC_CAT(php_dom_node_count_list_size, type)(const type *node) \ + { \ + size_t counter = 0; \ + while (node) { \ + counter++; \ + node = node->next; \ + } \ + return counter; \ + } +#define PHP_DOM_DEFINE_LIST_EQUALITY_ORDERED_HELPER(type) \ + static bool PHP_DOM_FUNC_CAT(php_dom_node_list_equality_check_ordered, type)(const type *list1, const type *list2) \ + { \ + size_t count = PHP_DOM_FUNC_CAT(php_dom_node_count_list_size, type)(list1); \ + if (count != PHP_DOM_FUNC_CAT(php_dom_node_count_list_size, type)(list2)) { \ + return false; \ + } \ + for (size_t i = 0; i < count; i++) { \ + if (!php_dom_node_is_equal_node((const xmlNode *) list1, (const xmlNode *) list2)) { \ + return false; \ + } \ + list1 = list1->next; \ + list2 = list2->next; \ + } \ + return true; \ + } +#define PHP_DOM_DEFINE_LIST_EQUALITY_UNORDERED_HELPER(type) \ + static bool PHP_DOM_FUNC_CAT(php_dom_node_list_equality_check_unordered, type)(const type *list1, const type *list2)\ + { \ + size_t count = PHP_DOM_FUNC_CAT(php_dom_node_count_list_size, type)(list1); \ + if (count != PHP_DOM_FUNC_CAT(php_dom_node_count_list_size, type)(list2)) { \ + return false; \ + } \ + for (const type *n1 = list1; n1 != NULL; n1 = n1->next) { \ + bool found = false; \ + for (const type *n2 = list2; n2 != NULL && !found; n2 = n2->next) { \ + if (php_dom_node_is_equal_node((const xmlNode *) n1, (const xmlNode *) n2)) { \ + found = true; \ + } \ + } \ + if (!found) { \ + return false; \ + } \ + } \ + return true; \ + } + +PHP_DOM_DEFINE_LIST_COUNTER_HELPER(xmlNode) +PHP_DOM_DEFINE_LIST_COUNTER_HELPER(xmlNs) +PHP_DOM_DEFINE_LIST_EQUALITY_ORDERED_HELPER(xmlNode) +PHP_DOM_DEFINE_LIST_EQUALITY_UNORDERED_HELPER(xmlNode) +PHP_DOM_DEFINE_LIST_EQUALITY_UNORDERED_HELPER(xmlNs) static bool php_dom_node_is_equal_node(const xmlNode *this, const xmlNode *other) { @@ -1535,9 +1560,9 @@ static bool php_dom_node_is_equal_node(const xmlNode *this, const xmlNode *other && php_dom_node_is_ns_prefix_equal(this, other) && php_dom_node_is_ns_uri_equal(this, other) /* Check attributes first, then namespace declarations, then children */ - && php_dom_node_list_equality_check_xmlNode((const xmlNode *) this->properties, (const xmlNode *) other->properties) - && php_dom_node_list_equality_check_xmlNs(this->nsDef, other->nsDef) - && php_dom_node_list_equality_check_xmlNode(this->children, other->children); + && php_dom_node_list_equality_check_unordered_xmlNode((const xmlNode *) this->properties, (const xmlNode *) other->properties) + && php_dom_node_list_equality_check_unordered_xmlNs(this->nsDef, other->nsDef) + && php_dom_node_list_equality_check_ordered_xmlNode(this->children, other->children); } else if (this->type == XML_DTD_NODE) { /* Note: in the living spec entity declarations and notations are no longer compared because they're considered obsolete. */ const xmlDtd *this_dtd = (const xmlDtd *) this; @@ -1570,7 +1595,7 @@ static bool php_dom_node_is_equal_node(const xmlNode *this, const xmlNode *other const xmlNs *other_ns = (const xmlNs *) other; return xmlStrEqual(this_ns->prefix, other_ns->prefix) && xmlStrEqual(this_ns->href, other_ns->href); } else if (this->type == XML_DOCUMENT_FRAG_NODE || this->type == XML_HTML_DOCUMENT_NODE || this->type == XML_DOCUMENT_NODE) { - return php_dom_node_list_equality_check_xmlNode(this->children, other->children); + return php_dom_node_list_equality_check_ordered_xmlNode(this->children, other->children); } return false; diff --git a/ext/dom/tests/gh13012.phpt b/ext/dom/tests/gh13012.phpt new file mode 100644 index 0000000000000..384b43d20099c --- /dev/null +++ b/ext/dom/tests/gh13012.phpt @@ -0,0 +1,37 @@ +--TEST-- +GH-13012 (DOMNode::isEqualNode() is incorrect when attribute order is different) +--EXTENSIONS-- +dom +--FILE-- +loadXML(""); + +foreach ($dom->getElementsByTagName('x') as $x1) { + foreach ($dom->getElementsByTagName('x') as $x2) { + echo "Comparing ", $dom->saveXML($x1), " with ", $dom->saveXML($x2), "\n"; + var_dump($x1->isEqualNode($x2)); + } +} + +?> +--EXPECT-- +Comparing with +bool(true) +Comparing with +bool(true) +Comparing with +bool(false) +Comparing with +bool(true) +Comparing with +bool(true) +Comparing with +bool(false) +Comparing with +bool(false) +Comparing with +bool(false) +Comparing with +bool(true) diff --git a/ext/dom/tests/gh13012_ns.phpt b/ext/dom/tests/gh13012_ns.phpt new file mode 100644 index 0000000000000..33edbe91790d8 --- /dev/null +++ b/ext/dom/tests/gh13012_ns.phpt @@ -0,0 +1,37 @@ +--TEST-- +GH-13012 (DOMNode::isEqualNode() is incorrect when attribute order is different - ns variation) +--EXTENSIONS-- +dom +--FILE-- +loadXML(""); + +foreach ($dom->getElementsByTagName('x') as $x1) { + foreach ($dom->getElementsByTagName('x') as $x2) { + echo "Comparing ", $dom->saveXML($x1), " with ", $dom->saveXML($x2), "\n"; + var_dump($x1->isEqualNode($x2)); + } +} + +?> +--EXPECT-- +Comparing with +bool(true) +Comparing with +bool(false) +Comparing with +bool(false) +Comparing with +bool(false) +Comparing with +bool(true) +Comparing with +bool(true) +Comparing with +bool(false) +Comparing with +bool(true) +Comparing with +bool(true) From 77ac1e8592d6cc14863ffea3c03078e28eb2c3e5 Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Tue, 26 Dec 2023 23:47:45 +0100 Subject: [PATCH 49/59] Fix GH-12974: Apache crashes on shutdown when using pg_pconnect() On ZTS, the global variables are stored in dynamically allocated memory. When the module gets shut down this memory is released. After the module is shut down, only then are the persistent resources cleared. Normally this isn't an issue, but pgsql and odbc refer to the globals to modify some counters, after the globals have been freed. Fix this by guarding the modification. Closes GH-13032. --- NEWS | 5 +++++ ext/odbc/php_odbc.c | 8 +++++++- ext/pgsql/pgsql.c | 10 ++++++++-- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/NEWS b/NEWS index dc21c25772ff8..3dbd6980e749e 100644 --- a/NEWS +++ b/NEWS @@ -25,6 +25,9 @@ PHP NEWS . Fixed bug GH-12936 (hash() function hangs endlessly if using sha512 on strings >= 4GiB). (nielsdos) +- ODBC: + . Fix crash on Apache shutdown with persistent connections. (nielsdos) + - Opcache: . Fixed oss-fuzz #64727 (JIT undefined array key warning may overwrite DIM with NULL when DIM is the same var as result). (ilutov) @@ -45,6 +48,8 @@ PHP NEWS - PGSQL: . Fixed auto_reset_persistent handling and allow_persistent type. (David Carlier) + . Fixed bug GH-12974 (Apache crashes on shutdown when using pg_pconnect()). + (nielsdos) - PHPDBG: . Fixed bug GH-12962 (Double free of init_file in phpdbg_prompt.c). (nielsdos) diff --git a/ext/odbc/php_odbc.c b/ext/odbc/php_odbc.c index d03a0790a72a6..e164ca9378d06 100644 --- a/ext/odbc/php_odbc.c +++ b/ext/odbc/php_odbc.c @@ -168,7 +168,13 @@ static void _close_odbc_conn(zend_resource *rsrc) SQLFreeEnv(conn->henv); } efree(conn); - ODBCG(num_links)--; + /* See https://github.com/php/php-src/issues/12974 why we need to check the if */ +#ifdef ZTS + if (odbc_module_entry.module_started) +#endif + { + ODBCG(num_links)--; + } } /* }}} */ diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c index a437c1620de4d..8b9da44a5b193 100644 --- a/ext/pgsql/pgsql.c +++ b/ext/pgsql/pgsql.c @@ -314,8 +314,14 @@ static void _close_pgsql_plink(zend_resource *rsrc) PQclear(res); } PQfinish(link); - PGG(num_persistent)--; - PGG(num_links)--; + /* See https://github.com/php/php-src/issues/12974 why we need to check the if */ +#ifdef ZTS + if (pgsql_module_entry.module_started) +#endif + { + PGG(num_persistent)--; + PGG(num_links)--; + } rsrc->ptr = NULL; } From 02758ec376cc82430c2978fb4ec3d2517c62357e Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Wed, 27 Dec 2023 23:26:37 +0100 Subject: [PATCH 50/59] [ci skip] Fixes in NEWS --- NEWS | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/NEWS b/NEWS index ffa59739de15d..ca9ac46ebae1e 100644 --- a/NEWS +++ b/NEWS @@ -5,18 +5,17 @@ PHP NEWS - Core: . Fixed bug GH-12953 (false positive SSA integrity verification failed when loading composer classmaps with more than 11k elements). (nielsdos) - . Fixed bug GH-12999 (zend_strnlen build when strnlen is unsupported). (rainerjung) - . Fixed bug GH-12966 (missing cross-compiling 3rd argument so Autoconf doesn't - emit warnings). (Peter Kokot) + . Fixed bug GH-12999 (zend_strnlen build when strnlen is unsupported). + (rainerjung) + . Fixed bug GH-12966 (missing cross-compiling 3rd argument so Autoconf + doesn't emit warnings). (Peter Kokot) + . Fixed bug GH-12854 (8.3 - as final trait-used method does not correctly + report visibility in Reflection). (nielsdos) - Cli: . Fix incorrect timeout in built-in web server when using router script and max_input_time. (ilutov) -- Core: - . Fixed bug GH-12854 (8.3 - as final trait-used method does not correctly - report visibility in Reflection). (nielsdos) - - DOM: . Fixed bug GH-12870 (Creating an xmlns attribute results in a DOMException). (nielsdos) From 1edcfccdca8197b17efd0d87ee29358c8401a6ce Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Sat, 30 Dec 2023 23:49:28 +0100 Subject: [PATCH 51/59] Fix #77432: Segmentation fault on including phar file phar_get_pharfp() can return NULL. In this case this is because the stream gets closed by the include code in the engine. However, the phar entry is still cached, so when the next include happens the engine tries to read from a closed (and nullified) stream. Use the same fix as in phar_open_entry_fp(): take into account that the phar_get_pharfp() can return NULL and in that case reopen the phar archive. Closes GH-13056. --- NEWS | 3 +++ ext/phar/stream.c | 13 +++++++++- ext/phar/tests/bug77432.phpt | 46 ++++++++++++++++++++++++++++++++++++ 3 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 ext/phar/tests/bug77432.phpt diff --git a/NEWS b/NEWS index 3dbd6980e749e..aa5e4fe7188aa 100644 --- a/NEWS +++ b/NEWS @@ -51,6 +51,9 @@ PHP NEWS . Fixed bug GH-12974 (Apache crashes on shutdown when using pg_pconnect()). (nielsdos) +- Phar: + . Fixed bug #77432 (Segmentation fault on including phar file). (nielsdos) + - PHPDBG: . Fixed bug GH-12962 (Double free of init_file in phpdbg_prompt.c). (nielsdos) diff --git a/ext/phar/stream.c b/ext/phar/stream.c index b45b662398c79..adebe5ab9bd11 100644 --- a/ext/phar/stream.c +++ b/ext/phar/stream.c @@ -254,6 +254,17 @@ static php_stream * phar_wrapper_open_url(php_stream_wrapper *wrapper, const cha php_url_free(resource); goto phar_stub; } else { + php_stream *stream = phar_get_pharfp(phar); + if (stream == NULL) { + if (UNEXPECTED(FAILURE == phar_open_archive_fp(phar))) { + php_stream_wrapper_log_error(wrapper, options, "phar error: could not reopen phar \"%s\"", ZSTR_VAL(resource->host)); + efree(internal_file); + php_url_free(resource); + return NULL; + } + stream = phar_get_pharfp(phar); + } + phar_entry_info *entry; entry = (phar_entry_info *) ecalloc(1, sizeof(phar_entry_info)); @@ -266,7 +277,7 @@ static php_stream * phar_wrapper_open_url(php_stream_wrapper *wrapper, const cha entry->is_crc_checked = 1; idata = (phar_entry_data *) ecalloc(1, sizeof(phar_entry_data)); - idata->fp = phar_get_pharfp(phar); + idata->fp = stream; idata->phar = phar; idata->internal_file = entry; if (!phar->is_persistent) { diff --git a/ext/phar/tests/bug77432.phpt b/ext/phar/tests/bug77432.phpt new file mode 100644 index 0000000000000..5e4d79c4a3d21 --- /dev/null +++ b/ext/phar/tests/bug77432.phpt @@ -0,0 +1,46 @@ +--TEST-- +Bug #77432 (Segmentation fault on including phar file) +--EXTENSIONS-- +phar +--INI-- +phar.readonly=0 +--FILE-- +startBuffering(); +$phar->addFromString('test.txt', 'text'); +$phar->setStub(''); +$phar->stopBuffering(); +unset($phar); + +echo "--- Include 1 ---\n"; +include("phar://" . $filename); +echo "--- Include 2 ---\n"; +// Note: will warn because the halting offset is redefined, but won't display the name because "zend_mangle_property_name" starts the name with \0 +// However, this is just the easiest way to reproduce it, so go with this test. +include("phar://" . $filename); +echo "--- After unlink ---\n"; +unlink($filename); +// This will just fail, as it should, but it is here to test the reopen error-handling path. +include("phar://" . $filename); + +?> +--CLEAN-- + +--EXPECTF-- +--- Include 1 --- +hello world +--- Include 2 --- + +Warning: Constant already defined in %s on line %d +hello world +--- After unlink --- + +Warning: include(%sbug77432.phar): Failed to open stream: phar error: could not reopen phar "%sbug77432.phar" in %s on line %d + +Warning: include(): Failed opening '%sbug77432.phar' for inclusion (include_path='.:') in %s on line %d From c86f05307ed532b9063457a99582263b1b1b9cfe Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Mon, 1 Jan 2024 14:56:49 +0100 Subject: [PATCH 52/59] Fix test on Windows --- ext/phar/tests/bug77432.phpt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/phar/tests/bug77432.phpt b/ext/phar/tests/bug77432.phpt index 5e4d79c4a3d21..1294f6b817726 100644 --- a/ext/phar/tests/bug77432.phpt +++ b/ext/phar/tests/bug77432.phpt @@ -43,4 +43,4 @@ hello world Warning: include(%sbug77432.phar): Failed to open stream: phar error: could not reopen phar "%sbug77432.phar" in %s on line %d -Warning: include(): Failed opening '%sbug77432.phar' for inclusion (include_path='.:') in %s on line %d +Warning: include(): Failed opening '%sbug77432.phar' for inclusion (include_path=%s) in %s on line %d From 7677df4cf14d8f7685ca24022136c505bafe29eb Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Mon, 1 Jan 2024 15:27:33 +0100 Subject: [PATCH 53/59] Fix test not emitting warning because of Windows paths --- ext/phar/tests/bug77432.phpt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ext/phar/tests/bug77432.phpt b/ext/phar/tests/bug77432.phpt index 1294f6b817726..cadfded8fc51e 100644 --- a/ext/phar/tests/bug77432.phpt +++ b/ext/phar/tests/bug77432.phpt @@ -36,8 +36,7 @@ include("phar://" . $filename); --- Include 1 --- hello world --- Include 2 --- - -Warning: Constant already defined in %s on line %d +%A hello world --- After unlink --- From 0d2c83ef9c5449778d7ef4f38058f35e505c5905 Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Mon, 1 Jan 2024 15:58:47 +0100 Subject: [PATCH 54/59] Skip on Windows --- ext/phar/tests/bug77432.phpt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/ext/phar/tests/bug77432.phpt b/ext/phar/tests/bug77432.phpt index cadfded8fc51e..12480856b3952 100644 --- a/ext/phar/tests/bug77432.phpt +++ b/ext/phar/tests/bug77432.phpt @@ -1,5 +1,11 @@ --TEST-- Bug #77432 (Segmentation fault on including phar file) +--SKIPIF-- + --EXTENSIONS-- phar --INI-- @@ -36,7 +42,8 @@ include("phar://" . $filename); --- Include 1 --- hello world --- Include 2 --- -%A + +Warning: Constant already defined in %s on line %d hello world --- After unlink --- From 99be8b05aed06b7886701d7966fb9300661fec07 Mon Sep 17 00:00:00 2001 From: Derick Rethans Date: Tue, 2 Jan 2024 10:21:27 +0000 Subject: [PATCH 55/59] Updated to version 2023.4 (2023d) --- ext/date/lib/timezonedb.h | 2983 +++++++++++++++++++------------------ 1 file changed, 1542 insertions(+), 1441 deletions(-) diff --git a/ext/date/lib/timezonedb.h b/ext/date/lib/timezonedb.h index 94397084d7bb2..366c85c7a7786 100644 --- a/ext/date/lib/timezonedb.h +++ b/ext/date/lib/timezonedb.h @@ -114,498 +114,498 @@ const timelib_tzdb_index_entry timezonedb_idx_builtin[597] = { { (char*) "America/Detroit" , 0x00C3B0 }, { (char*) "America/Dominica" , 0x00C758 }, { (char*) "America/Edmonton" , 0x00C7E6 }, - { (char*) "America/Eirunepe" , 0x00CBE1 }, - { (char*) "America/El_Salvador" , 0x00CDB0 }, - { (char*) "America/Ensenada" , 0x00CE6C }, - { (char*) "America/Fort_Nelson" , 0x00D279 }, - { (char*) "America/Fort_Wayne" , 0x00D841 }, - { (char*) "America/Fortaleza" , 0x00DA60 }, - { (char*) "America/Glace_Bay" , 0x00DC76 }, - { (char*) "America/Godthab" , 0x00E00D }, - { (char*) "America/Goose_Bay" , 0x00E3DE }, - { (char*) "America/Grand_Turk" , 0x00EA36 }, - { (char*) "America/Grenada" , 0x00ED97 }, - { (char*) "America/Guadeloupe" , 0x00EE25 }, - { (char*) "America/Guatemala" , 0x00EEB3 }, - { (char*) "America/Guayaquil" , 0x00EF93 }, - { (char*) "America/Guyana" , 0x00F064 }, - { (char*) "America/Halifax" , 0x00F125 }, - { (char*) "America/Havana" , 0x00F7D7 }, - { (char*) "America/Hermosillo" , 0x00FC40 }, - { (char*) "America/Indiana/Indianapolis" , 0x00FD70 }, - { (char*) "America/Indiana/Knox" , 0x00FFA8 }, - { (char*) "America/Indiana/Marengo" , 0x0103C1 }, - { (char*) "America/Indiana/Petersburg" , 0x01061B }, - { (char*) "America/Indiana/Tell_City" , 0x0108E5 }, - { (char*) "America/Indiana/Vevay" , 0x010B0F }, - { (char*) "America/Indiana/Vincennes" , 0x010CA6 }, - { (char*) "America/Indiana/Winamac" , 0x010EFC }, - { (char*) "America/Indianapolis" , 0x011182 }, - { (char*) "America/Inuvik" , 0x0113A1 }, - { (char*) "America/Iqaluit" , 0x0116F2 }, - { (char*) "America/Jamaica" , 0x011A6E }, - { (char*) "America/Jujuy" , 0x011BCD }, - { (char*) "America/Juneau" , 0x011E8B }, - { (char*) "America/Kentucky/Louisville" , 0x012271 }, - { (char*) "America/Kentucky/Monticello" , 0x012775 }, - { (char*) "America/Knox_IN" , 0x012B61 }, - { (char*) "America/Kralendijk" , 0x012F65 }, - { (char*) "America/La_Paz" , 0x013022 }, - { (char*) "America/Lima" , 0x0130D8 }, - { (char*) "America/Los_Angeles" , 0x0131FF }, - { (char*) "America/Louisville" , 0x013720 }, - { (char*) "America/Lower_Princes" , 0x013C06 }, - { (char*) "America/Maceio" , 0x013CC3 }, - { (char*) "America/Managua" , 0x013ED5 }, - { (char*) "America/Manaus" , 0x014008 }, - { (char*) "America/Marigot" , 0x0141BF }, - { (char*) "America/Martinique" , 0x01427C }, - { (char*) "America/Matamoros" , 0x01433A }, - { (char*) "America/Mazatlan" , 0x014527 }, - { (char*) "America/Mendoza" , 0x014833 }, - { (char*) "America/Menominee" , 0x014B03 }, - { (char*) "America/Merida" , 0x014EC3 }, - { (char*) "America/Metlakatla" , 0x01516E }, - { (char*) "America/Mexico_City" , 0x0153E4 }, - { (char*) "America/Miquelon" , 0x015703 }, - { (char*) "America/Moncton" , 0x015935 }, - { (char*) "America/Monterrey" , 0x015F2E }, - { (char*) "America/Montevideo" , 0x0161F4 }, - { (char*) "America/Montreal" , 0x0165C9 }, - { (char*) "America/Montserrat" , 0x016C8A }, - { (char*) "America/Nassau" , 0x016D18 }, - { (char*) "America/New_York" , 0x017112 }, - { (char*) "America/Nipigon" , 0x017802 }, - { (char*) "America/Nome" , 0x017EC3 }, - { (char*) "America/Noronha" , 0x0182AB }, - { (char*) "America/North_Dakota/Beulah" , 0x0184AB }, - { (char*) "America/North_Dakota/Center" , 0x0188DF }, - { (char*) "America/North_Dakota/New_Salem" , 0x018CDE }, - { (char*) "America/Nuuk" , 0x0190E3 }, - { (char*) "America/Ojinaga" , 0x0194C5 }, - { (char*) "America/Panama" , 0x0197B2 }, - { (char*) "America/Pangnirtung" , 0x019853 }, - { (char*) "America/Paramaribo" , 0x019BB6 }, - { (char*) "America/Phoenix" , 0x019C7D }, - { (char*) "America/Port-au-Prince" , 0x019D91 }, - { (char*) "America/Port_of_Spain" , 0x019FD2 }, - { (char*) "America/Porto_Acre" , 0x01A060 }, - { (char*) "America/Porto_Velho" , 0x01A20E }, - { (char*) "America/Puerto_Rico" , 0x01A3AC }, - { (char*) "America/Punta_Arenas" , 0x01A469 }, - { (char*) "America/Rainy_River" , 0x01A94B }, - { (char*) "America/Rankin_Inlet" , 0x01AE65 }, - { (char*) "America/Recife" , 0x01B1AE }, - { (char*) "America/Regina" , 0x01B3A8 }, - { (char*) "America/Resolute" , 0x01B647 }, - { (char*) "America/Rio_Branco" , 0x01B991 }, - { (char*) "America/Rosario" , 0x01BB43 }, - { (char*) "America/Santa_Isabel" , 0x01BE13 }, - { (char*) "America/Santarem" , 0x01C220 }, - { (char*) "America/Santiago" , 0x01C3D0 }, - { (char*) "America/Santo_Domingo" , 0x01C933 }, - { (char*) "America/Sao_Paulo" , 0x01CA7C }, - { (char*) "America/Scoresbysund" , 0x01CE76 }, - { (char*) "America/Shiprock" , 0x01D07E }, - { (char*) "America/Sitka" , 0x01D49C }, - { (char*) "America/St_Barthelemy" , 0x01D877 }, - { (char*) "America/St_Johns" , 0x01D934 }, - { (char*) "America/St_Kitts" , 0x01E0B8 }, - { (char*) "America/St_Lucia" , 0x01E146 }, - { (char*) "America/St_Thomas" , 0x01E1E7 }, - { (char*) "America/St_Vincent" , 0x01E275 }, - { (char*) "America/Swift_Current" , 0x01E316 }, - { (char*) "America/Tegucigalpa" , 0x01E4A4 }, - { (char*) "America/Thule" , 0x01E572 }, - { (char*) "America/Thunder_Bay" , 0x01E753 }, - { (char*) "America/Tijuana" , 0x01EE14 }, - { (char*) "America/Toronto" , 0x01F230 }, - { (char*) "America/Tortola" , 0x01F90E }, - { (char*) "America/Vancouver" , 0x01F99C }, - { (char*) "America/Virgin" , 0x01FEF3 }, - { (char*) "America/Whitehorse" , 0x01FFB0 }, - { (char*) "America/Winnipeg" , 0x0203D3 }, - { (char*) "America/Yakutat" , 0x02090A }, - { (char*) "America/Yellowknife" , 0x020CD8 }, - { (char*) "Antarctica/Casey" , 0x0210AE }, - { (char*) "Antarctica/Davis" , 0x0211B2 }, - { (char*) "Antarctica/DumontDUrville" , 0x021288 }, - { (char*) "Antarctica/Macquarie" , 0x02133C }, - { (char*) "Antarctica/Mawson" , 0x021728 }, - { (char*) "Antarctica/McMurdo" , 0x0217D2 }, - { (char*) "Antarctica/Palmer" , 0x021B04 }, - { (char*) "Antarctica/Rothera" , 0x021E8D }, - { (char*) "Antarctica/South_Pole" , 0x021F24 }, - { (char*) "Antarctica/Syowa" , 0x022343 }, - { (char*) "Antarctica/Troll" , 0x0223D9 }, - { (char*) "Antarctica/Vostok" , 0x02249B }, - { (char*) "Arctic/Longyearbyen" , 0x022532 }, - { (char*) "Asia/Aden" , 0x0227FF }, - { (char*) "Asia/Almaty" , 0x022890 }, - { (char*) "Asia/Amman" , 0x022B0F }, - { (char*) "Asia/Anadyr" , 0x022EBB }, - { (char*) "Asia/Aqtau" , 0x0231C1 }, - { (char*) "Asia/Aqtobe" , 0x023440 }, - { (char*) "Asia/Ashgabat" , 0x0236C0 }, - { (char*) "Asia/Ashkhabad" , 0x023843 }, - { (char*) "Asia/Atyrau" , 0x0239C6 }, - { (char*) "Asia/Baghdad" , 0x023C4F }, - { (char*) "Asia/Bahrain" , 0x023ED1 }, - { (char*) "Asia/Baku" , 0x023F8A }, - { (char*) "Asia/Bangkok" , 0x02427E }, - { (char*) "Asia/Barnaul" , 0x024322 }, - { (char*) "Asia/Beirut" , 0x02462D }, - { (char*) "Asia/Bishkek" , 0x024915 }, - { (char*) "Asia/Brunei" , 0x024B8B }, - { (char*) "Asia/Calcutta" , 0x024C31 }, - { (char*) "Asia/Chita" , 0x024D19 }, - { (char*) "Asia/Choibalsan" , 0x025027 }, - { (char*) "Asia/Chongqing" , 0x0252B0 }, - { (char*) "Asia/Chungking" , 0x025445 }, - { (char*) "Asia/Colombo" , 0x0255DA }, - { (char*) "Asia/Dacca" , 0x0256DD }, - { (char*) "Asia/Damascus" , 0x0257D0 }, - { (char*) "Asia/Dhaka" , 0x025CAE }, - { (char*) "Asia/Dili" , 0x025DA1 }, - { (char*) "Asia/Dubai" , 0x025E57 }, - { (char*) "Asia/Dushanbe" , 0x025EE8 }, - { (char*) "Asia/Famagusta" , 0x026062 }, - { (char*) "Asia/Gaza" , 0x026429 }, - { (char*) "Asia/Harbin" , 0x026E15 }, - { (char*) "Asia/Hebron" , 0x026FAA }, - { (char*) "Asia/Ho_Chi_Minh" , 0x0279A7 }, - { (char*) "Asia/Hong_Kong" , 0x027A9F }, - { (char*) "Asia/Hovd" , 0x027DB2 }, - { (char*) "Asia/Irkutsk" , 0x02803B }, - { (char*) "Asia/Istanbul" , 0x028359 }, - { (char*) "Asia/Jakarta" , 0x028815 }, - { (char*) "Asia/Jayapura" , 0x028926 }, - { (char*) "Asia/Jerusalem" , 0x028A13 }, - { (char*) "Asia/Kabul" , 0x028E51 }, - { (char*) "Asia/Kamchatka" , 0x028EFC }, - { (char*) "Asia/Karachi" , 0x0291F1 }, - { (char*) "Asia/Kashgar" , 0x029307 }, - { (char*) "Asia/Kathmandu" , 0x029398 }, - { (char*) "Asia/Katmandu" , 0x029445 }, - { (char*) "Asia/Khandyga" , 0x0294F2 }, - { (char*) "Asia/Kolkata" , 0x029823 }, - { (char*) "Asia/Krasnoyarsk" , 0x02990B }, - { (char*) "Asia/Kuala_Lumpur" , 0x029C15 }, - { (char*) "Asia/Kuching" , 0x029D35 }, - { (char*) "Asia/Kuwait" , 0x029E8F }, - { (char*) "Asia/Macao" , 0x029F20 }, - { (char*) "Asia/Macau" , 0x02A243 }, - { (char*) "Asia/Magadan" , 0x02A566 }, - { (char*) "Asia/Makassar" , 0x02A871 }, - { (char*) "Asia/Manila" , 0x02A984 }, - { (char*) "Asia/Muscat" , 0x02AA7E }, - { (char*) "Asia/Nicosia" , 0x02AB0F }, - { (char*) "Asia/Novokuznetsk" , 0x02AD7E }, - { (char*) "Asia/Novosibirsk" , 0x02B071 }, - { (char*) "Asia/Omsk" , 0x02B382 }, - { (char*) "Asia/Oral" , 0x02B680 }, - { (char*) "Asia/Phnom_Penh" , 0x02B90C }, - { (char*) "Asia/Pontianak" , 0x02B9E0 }, - { (char*) "Asia/Pyongyang" , 0x02BAF9 }, - { (char*) "Asia/Qatar" , 0x02BBBC }, - { (char*) "Asia/Qostanay" , 0x02BC60 }, - { (char*) "Asia/Qyzylorda" , 0x02BEED }, - { (char*) "Asia/Rangoon" , 0x02C186 }, - { (char*) "Asia/Riyadh" , 0x02C24D }, - { (char*) "Asia/Saigon" , 0x02C2DE }, - { (char*) "Asia/Sakhalin" , 0x02C3D6 }, - { (char*) "Asia/Samarkand" , 0x02C6ED }, - { (char*) "Asia/Seoul" , 0x02C878 }, - { (char*) "Asia/Shanghai" , 0x02CA23 }, - { (char*) "Asia/Singapore" , 0x02CBC4 }, - { (char*) "Asia/Srednekolymsk" , 0x02CCD0 }, - { (char*) "Asia/Taipei" , 0x02CFE0 }, - { (char*) "Asia/Tashkent" , 0x02D1EB }, - { (char*) "Asia/Tbilisi" , 0x02D376 }, - { (char*) "Asia/Tehran" , 0x02D5F7 }, - { (char*) "Asia/Tel_Aviv" , 0x02D92F }, - { (char*) "Asia/Thimbu" , 0x02DD6D }, - { (char*) "Asia/Thimphu" , 0x02DE13 }, - { (char*) "Asia/Tokyo" , 0x02DEB9 }, - { (char*) "Asia/Tomsk" , 0x02DF9A }, - { (char*) "Asia/Ujung_Pandang" , 0x02E2A5 }, - { (char*) "Asia/Ulaanbaatar" , 0x02E36F }, - { (char*) "Asia/Ulan_Bator" , 0x02E5DD }, - { (char*) "Asia/Urumqi" , 0x02E83B }, - { (char*) "Asia/Ust-Nera" , 0x02E8D9 }, - { (char*) "Asia/Vientiane" , 0x02EBFC }, - { (char*) "Asia/Vladivostok" , 0x02ECE2 }, - { (char*) "Asia/Yakutsk" , 0x02EFE7 }, - { (char*) "Asia/Yangon" , 0x02F2EB }, - { (char*) "Asia/Yekaterinburg" , 0x02F3B2 }, - { (char*) "Asia/Yerevan" , 0x02F6C4 }, - { (char*) "Atlantic/Azores" , 0x02F994 }, - { (char*) "Atlantic/Bermuda" , 0x02FF53 }, - { (char*) "Atlantic/Canary" , 0x03035F }, - { (char*) "Atlantic/Cape_Verde" , 0x030557 }, - { (char*) "Atlantic/Faeroe" , 0x030612 }, - { (char*) "Atlantic/Faroe" , 0x0307D7 }, - { (char*) "Atlantic/Jan_Mayen" , 0x03099C }, - { (char*) "Atlantic/Madeira" , 0x030C69 }, - { (char*) "Atlantic/Reykjavik" , 0x031231 }, - { (char*) "Atlantic/South_Georgia" , 0x03152E }, - { (char*) "Atlantic/St_Helena" , 0x0315BE }, - { (char*) "Atlantic/Stanley" , 0x03165F }, - { (char*) "Australia/ACT" , 0x031980 }, - { (char*) "Australia/Adelaide" , 0x031D14 }, - { (char*) "Australia/Brisbane" , 0x0320C8 }, - { (char*) "Australia/Broken_Hill" , 0x03220C }, - { (char*) "Australia/Canberra" , 0x0325E1 }, - { (char*) "Australia/Currie" , 0x032975 }, - { (char*) "Australia/Darwin" , 0x032D6C }, - { (char*) "Australia/Eucla" , 0x032E74 }, - { (char*) "Australia/Hobart" , 0x032FD3 }, - { (char*) "Australia/LHI" , 0x0333D2 }, - { (char*) "Australia/Lindeman" , 0x033692 }, - { (char*) "Australia/Lord_Howe" , 0x033802 }, - { (char*) "Australia/Melbourne" , 0x033AD2 }, - { (char*) "Australia/North" , 0x033E6E }, - { (char*) "Australia/NSW" , 0x033F64 }, - { (char*) "Australia/Perth" , 0x0342F8 }, - { (char*) "Australia/Queensland" , 0x034454 }, - { (char*) "Australia/South" , 0x034581 }, - { (char*) "Australia/Sydney" , 0x034926 }, - { (char*) "Australia/Tasmania" , 0x034CD6 }, - { (char*) "Australia/Victoria" , 0x0350CD }, - { (char*) "Australia/West" , 0x035461 }, - { (char*) "Australia/Yancowinna" , 0x03559F }, - { (char*) "Brazil/Acre" , 0x035958 }, - { (char*) "Brazil/DeNoronha" , 0x035B06 }, - { (char*) "Brazil/East" , 0x035CF6 }, - { (char*) "Brazil/West" , 0x0360BA }, - { (char*) "Canada/Atlantic" , 0x036262 }, - { (char*) "Canada/Central" , 0x0368F6 }, - { (char*) "Canada/Eastern" , 0x036E10 }, - { (char*) "Canada/Mountain" , 0x0374D1 }, - { (char*) "Canada/Newfoundland" , 0x0378A7 }, - { (char*) "Canada/Pacific" , 0x038009 }, - { (char*) "Canada/Saskatchewan" , 0x038547 }, - { (char*) "Canada/Yukon" , 0x0387D1 }, - { (char*) "CET" , 0x038BE2 }, - { (char*) "Chile/Continental" , 0x038E5B }, - { (char*) "Chile/EasterIsland" , 0x0393B1 }, - { (char*) "CST6CDT" , 0x039853 }, - { (char*) "Cuba" , 0x039C16 }, - { (char*) "EET" , 0x03A07F }, - { (char*) "Egypt" , 0x03A27C }, - { (char*) "Eire" , 0x03A7A5 }, - { (char*) "EST" , 0x03AD89 }, - { (char*) "EST5EDT" , 0x03AE04 }, - { (char*) "Etc/GMT" , 0x03B1C7 }, - { (char*) "Etc/GMT+0" , 0x03B242 }, - { (char*) "Etc/GMT+1" , 0x03B2BD }, - { (char*) "Etc/GMT+10" , 0x03B33A }, - { (char*) "Etc/GMT+11" , 0x03B3B8 }, - { (char*) "Etc/GMT+12" , 0x03B436 }, - { (char*) "Etc/GMT+2" , 0x03B4B4 }, - { (char*) "Etc/GMT+3" , 0x03B531 }, - { (char*) "Etc/GMT+4" , 0x03B5AE }, - { (char*) "Etc/GMT+5" , 0x03B62B }, - { (char*) "Etc/GMT+6" , 0x03B6A8 }, - { (char*) "Etc/GMT+7" , 0x03B725 }, - { (char*) "Etc/GMT+8" , 0x03B7A2 }, - { (char*) "Etc/GMT+9" , 0x03B81F }, - { (char*) "Etc/GMT-0" , 0x03B89C }, - { (char*) "Etc/GMT-1" , 0x03B917 }, - { (char*) "Etc/GMT-10" , 0x03B995 }, - { (char*) "Etc/GMT-11" , 0x03BA14 }, - { (char*) "Etc/GMT-12" , 0x03BA93 }, - { (char*) "Etc/GMT-13" , 0x03BB12 }, - { (char*) "Etc/GMT-14" , 0x03BB91 }, - { (char*) "Etc/GMT-2" , 0x03BC10 }, - { (char*) "Etc/GMT-3" , 0x03BC8E }, - { (char*) "Etc/GMT-4" , 0x03BD0C }, - { (char*) "Etc/GMT-5" , 0x03BD8A }, - { (char*) "Etc/GMT-6" , 0x03BE08 }, - { (char*) "Etc/GMT-7" , 0x03BE86 }, - { (char*) "Etc/GMT-8" , 0x03BF04 }, - { (char*) "Etc/GMT-9" , 0x03BF82 }, - { (char*) "Etc/GMT0" , 0x03C000 }, - { (char*) "Etc/Greenwich" , 0x03C07B }, - { (char*) "Etc/UCT" , 0x03C0F6 }, - { (char*) "Etc/Universal" , 0x03C171 }, - { (char*) "Etc/UTC" , 0x03C1EC }, - { (char*) "Etc/Zulu" , 0x03C267 }, - { (char*) "Europe/Amsterdam" , 0x03C2E2 }, - { (char*) "Europe/Andorra" , 0x03C71D }, - { (char*) "Europe/Astrakhan" , 0x03C8AE }, - { (char*) "Europe/Athens" , 0x03CBA2 }, - { (char*) "Europe/Belfast" , 0x03CE58 }, - { (char*) "Europe/Belgrade" , 0x03D4A3 }, - { (char*) "Europe/Berlin" , 0x03D68D }, - { (char*) "Europe/Bratislava" , 0x03D969 }, - { (char*) "Europe/Brussels" , 0x03DC48 }, - { (char*) "Europe/Bucharest" , 0x03E0A3 }, - { (char*) "Europe/Budapest" , 0x03E344 }, - { (char*) "Europe/Busingen" , 0x03E64E }, - { (char*) "Europe/Chisinau" , 0x03E853 }, - { (char*) "Europe/Copenhagen" , 0x03EB52 }, - { (char*) "Europe/Dublin" , 0x03EDCD }, - { (char*) "Europe/Gibraltar" , 0x03F3B1 }, - { (char*) "Europe/Guernsey" , 0x03F881 }, - { (char*) "Europe/Helsinki" , 0x03FED8 }, - { (char*) "Europe/Isle_of_Man" , 0x0400C5 }, - { (char*) "Europe/Istanbul" , 0x040710 }, - { (char*) "Europe/Jersey" , 0x040BCC }, - { (char*) "Europe/Kaliningrad" , 0x041223 }, - { (char*) "Europe/Kiev" , 0x0415CB }, - { (char*) "Europe/Kirov" , 0x041805 }, - { (char*) "Europe/Kyiv" , 0x041AFE }, - { (char*) "Europe/Lisbon" , 0x041D47 }, - { (char*) "Europe/Ljubljana" , 0x042314 }, - { (char*) "Europe/London" , 0x0424FE }, - { (char*) "Europe/Luxembourg" , 0x042B49 }, - { (char*) "Europe/Madrid" , 0x042F94 }, - { (char*) "Europe/Malta" , 0x043331 }, - { (char*) "Europe/Mariehamn" , 0x0436DD }, - { (char*) "Europe/Minsk" , 0x0438CA }, - { (char*) "Europe/Monaco" , 0x043BFE }, - { (char*) "Europe/Moscow" , 0x044064 }, - { (char*) "Europe/Nicosia" , 0x044410 }, - { (char*) "Europe/Oslo" , 0x044671 }, - { (char*) "Europe/Paris" , 0x044921 }, - { (char*) "Europe/Podgorica" , 0x044D7E }, - { (char*) "Europe/Prague" , 0x044F68 }, - { (char*) "Europe/Riga" , 0x045247 }, - { (char*) "Europe/Rome" , 0x045509 }, - { (char*) "Europe/Samara" , 0x0458C8 }, - { (char*) "Europe/San_Marino" , 0x045BC9 }, - { (char*) "Europe/Sarajevo" , 0x045F88 }, - { (char*) "Europe/Saratov" , 0x046172 }, - { (char*) "Europe/Simferopol" , 0x046464 }, - { (char*) "Europe/Skopje" , 0x0467D7 }, - { (char*) "Europe/Sofia" , 0x0469C1 }, - { (char*) "Europe/Stockholm" , 0x046C1D }, - { (char*) "Europe/Tallinn" , 0x046E1A }, - { (char*) "Europe/Tirane" , 0x0470C9 }, - { (char*) "Europe/Tiraspol" , 0x047331 }, - { (char*) "Europe/Ulyanovsk" , 0x047630 }, - { (char*) "Europe/Uzhgorod" , 0x047946 }, - { (char*) "Europe/Vaduz" , 0x047B80 }, - { (char*) "Europe/Vatican" , 0x047D6A }, - { (char*) "Europe/Vienna" , 0x048129 }, - { (char*) "Europe/Vilnius" , 0x0483C7 }, - { (char*) "Europe/Volgograd" , 0x048677 }, - { (char*) "Europe/Warsaw" , 0x048986 }, - { (char*) "Europe/Zagreb" , 0x048D2D }, - { (char*) "Europe/Zaporozhye" , 0x048F17 }, - { (char*) "Europe/Zurich" , 0x049151 }, - { (char*) "Factory" , 0x04934E }, - { (char*) "GB" , 0x0493CB }, - { (char*) "GB-Eire" , 0x049A16 }, - { (char*) "GMT" , 0x04A061 }, - { (char*) "GMT+0" , 0x04A0DC }, - { (char*) "GMT-0" , 0x04A157 }, - { (char*) "GMT0" , 0x04A1D2 }, - { (char*) "Greenwich" , 0x04A24D }, - { (char*) "Hongkong" , 0x04A2C8 }, - { (char*) "HST" , 0x04A5DB }, - { (char*) "Iceland" , 0x04A657 }, - { (char*) "Indian/Antananarivo" , 0x04A6E5 }, - { (char*) "Indian/Chagos" , 0x04A791 }, - { (char*) "Indian/Christmas" , 0x04A835 }, - { (char*) "Indian/Cocos" , 0x04A8C6 }, - { (char*) "Indian/Comoro" , 0x04A95E }, - { (char*) "Indian/Kerguelen" , 0x04A9ED }, - { (char*) "Indian/Mahe" , 0x04AA7E }, - { (char*) "Indian/Maldives" , 0x04AB0F }, - { (char*) "Indian/Mauritius" , 0x04ABB3 }, - { (char*) "Indian/Mayotte" , 0x04AC72 }, - { (char*) "Indian/Reunion" , 0x04AD01 }, - { (char*) "Iran" , 0x04AD92 }, - { (char*) "Israel" , 0x04B0CA }, - { (char*) "Jamaica" , 0x04B508 }, - { (char*) "Japan" , 0x04B667 }, - { (char*) "Kwajalein" , 0x04B748 }, - { (char*) "Libya" , 0x04B82F }, - { (char*) "MET" , 0x04B9EA }, - { (char*) "Mexico/BajaNorte" , 0x04BC63 }, - { (char*) "Mexico/BajaSur" , 0x04C070 }, - { (char*) "Mexico/General" , 0x04C34A }, - { (char*) "MST" , 0x04C65B }, - { (char*) "MST7MDT" , 0x04C6D6 }, - { (char*) "Navajo" , 0x04CA99 }, - { (char*) "NZ" , 0x04CEB7 }, - { (char*) "NZ-CHAT" , 0x04D2D6 }, - { (char*) "Pacific/Apia" , 0x04D60A }, - { (char*) "Pacific/Auckland" , 0x04D7AD }, - { (char*) "Pacific/Bougainville" , 0x04DBDF }, - { (char*) "Pacific/Chatham" , 0x04DCC0 }, - { (char*) "Pacific/Chuuk" , 0x04E003 }, - { (char*) "Pacific/Easter" , 0x04E0E1 }, - { (char*) "Pacific/Efate" , 0x04E590 }, - { (char*) "Pacific/Enderbury" , 0x04E6F2 }, - { (char*) "Pacific/Fakaofo" , 0x04E7AA }, - { (char*) "Pacific/Fiji" , 0x04E84F }, - { (char*) "Pacific/Funafuti" , 0x04E9E7 }, - { (char*) "Pacific/Galapagos" , 0x04EA79 }, - { (char*) "Pacific/Gambier" , 0x04EB45 }, - { (char*) "Pacific/Guadalcanal" , 0x04EBE4 }, - { (char*) "Pacific/Guam" , 0x04EC76 }, - { (char*) "Pacific/Honolulu" , 0x04EDE0 }, - { (char*) "Pacific/Johnston" , 0x04EECF }, - { (char*) "Pacific/Kanton" , 0x04EFB8 }, - { (char*) "Pacific/Kiritimati" , 0x04F07F }, - { (char*) "Pacific/Kosrae" , 0x04F145 }, - { (char*) "Pacific/Kwajalein" , 0x04F249 }, - { (char*) "Pacific/Majuro" , 0x04F339 }, - { (char*) "Pacific/Marquesas" , 0x04F437 }, - { (char*) "Pacific/Midway" , 0x04F4DF }, - { (char*) "Pacific/Nauru" , 0x04F5A2 }, - { (char*) "Pacific/Niue" , 0x04F665 }, - { (char*) "Pacific/Norfolk" , 0x04F70B }, - { (char*) "Pacific/Noumea" , 0x04F80E }, - { (char*) "Pacific/Pago_Pago" , 0x04F8E0 }, - { (char*) "Pacific/Palau" , 0x04F97E }, - { (char*) "Pacific/Pitcairn" , 0x04FA1E }, - { (char*) "Pacific/Pohnpei" , 0x04FAC3 }, - { (char*) "Pacific/Ponape" , 0x04FBB3 }, - { (char*) "Pacific/Port_Moresby" , 0x04FC45 }, - { (char*) "Pacific/Rarotonga" , 0x04FD03 }, - { (char*) "Pacific/Saipan" , 0x04FEA5 }, - { (char*) "Pacific/Samoa" , 0x050006 }, - { (char*) "Pacific/Tahiti" , 0x0500A4 }, - { (char*) "Pacific/Tarawa" , 0x050144 }, - { (char*) "Pacific/Tongatapu" , 0x0501E5 }, - { (char*) "Pacific/Truk" , 0x0502DE }, - { (char*) "Pacific/Wake" , 0x050384 }, - { (char*) "Pacific/Wallis" , 0x050421 }, - { (char*) "Pacific/Yap" , 0x0504B3 }, - { (char*) "Poland" , 0x050559 }, - { (char*) "Portugal" , 0x050900 }, - { (char*) "PRC" , 0x050EBA }, - { (char*) "PST8PDT" , 0x05104F }, - { (char*) "ROC" , 0x051412 }, - { (char*) "ROK" , 0x05161D }, - { (char*) "Singapore" , 0x0517C8 }, - { (char*) "Turkey" , 0x0518D4 }, - { (char*) "UCT" , 0x051D90 }, - { (char*) "Universal" , 0x051E0B }, - { (char*) "US/Alaska" , 0x051E86 }, - { (char*) "US/Aleutian" , 0x052263 }, - { (char*) "US/Arizona" , 0x052638 }, - { (char*) "US/Central" , 0x052734 }, - { (char*) "US/East-Indiana" , 0x052E1A }, - { (char*) "US/Eastern" , 0x053039 }, - { (char*) "US/Hawaii" , 0x053715 }, - { (char*) "US/Indiana-Starke" , 0x0537FE }, - { (char*) "US/Michigan" , 0x053C02 }, - { (char*) "US/Mountain" , 0x053F91 }, - { (char*) "US/Pacific" , 0x0543AF }, - { (char*) "US/Samoa" , 0x0548C9 }, - { (char*) "UTC" , 0x054967 }, - { (char*) "W-SU" , 0x0549E2 }, - { (char*) "WET" , 0x054D7A }, - { (char*) "Zulu" , 0x054F74 }, + { (char*) "America/Eirunepe" , 0x00CBDE }, + { (char*) "America/El_Salvador" , 0x00CDAD }, + { (char*) "America/Ensenada" , 0x00CE69 }, + { (char*) "America/Fort_Nelson" , 0x00D276 }, + { (char*) "America/Fort_Wayne" , 0x00D83E }, + { (char*) "America/Fortaleza" , 0x00DA5D }, + { (char*) "America/Glace_Bay" , 0x00DC73 }, + { (char*) "America/Godthab" , 0x00E00A }, + { (char*) "America/Goose_Bay" , 0x00E3DB }, + { (char*) "America/Grand_Turk" , 0x00EA33 }, + { (char*) "America/Grenada" , 0x00ED94 }, + { (char*) "America/Guadeloupe" , 0x00EE22 }, + { (char*) "America/Guatemala" , 0x00EEB0 }, + { (char*) "America/Guayaquil" , 0x00EF90 }, + { (char*) "America/Guyana" , 0x00F061 }, + { (char*) "America/Halifax" , 0x00F122 }, + { (char*) "America/Havana" , 0x00F7D4 }, + { (char*) "America/Hermosillo" , 0x00FC3D }, + { (char*) "America/Indiana/Indianapolis" , 0x00FD6D }, + { (char*) "America/Indiana/Knox" , 0x00FFA5 }, + { (char*) "America/Indiana/Marengo" , 0x0103BE }, + { (char*) "America/Indiana/Petersburg" , 0x010618 }, + { (char*) "America/Indiana/Tell_City" , 0x0108E2 }, + { (char*) "America/Indiana/Vevay" , 0x010B0C }, + { (char*) "America/Indiana/Vincennes" , 0x010CA3 }, + { (char*) "America/Indiana/Winamac" , 0x010EF9 }, + { (char*) "America/Indianapolis" , 0x011176 }, + { (char*) "America/Inuvik" , 0x011395 }, + { (char*) "America/Iqaluit" , 0x0116E6 }, + { (char*) "America/Jamaica" , 0x011A62 }, + { (char*) "America/Jujuy" , 0x011BC1 }, + { (char*) "America/Juneau" , 0x011E7F }, + { (char*) "America/Kentucky/Louisville" , 0x012265 }, + { (char*) "America/Kentucky/Monticello" , 0x012769 }, + { (char*) "America/Knox_IN" , 0x012B55 }, + { (char*) "America/Kralendijk" , 0x012F59 }, + { (char*) "America/La_Paz" , 0x013016 }, + { (char*) "America/Lima" , 0x0130CC }, + { (char*) "America/Los_Angeles" , 0x0131F3 }, + { (char*) "America/Louisville" , 0x013714 }, + { (char*) "America/Lower_Princes" , 0x013BFA }, + { (char*) "America/Maceio" , 0x013CB7 }, + { (char*) "America/Managua" , 0x013EC9 }, + { (char*) "America/Manaus" , 0x013FFC }, + { (char*) "America/Marigot" , 0x0141B3 }, + { (char*) "America/Martinique" , 0x014270 }, + { (char*) "America/Matamoros" , 0x01432E }, + { (char*) "America/Mazatlan" , 0x01451B }, + { (char*) "America/Mendoza" , 0x014827 }, + { (char*) "America/Menominee" , 0x014AF7 }, + { (char*) "America/Merida" , 0x014EB7 }, + { (char*) "America/Metlakatla" , 0x015162 }, + { (char*) "America/Mexico_City" , 0x0153CF }, + { (char*) "America/Miquelon" , 0x0156EE }, + { (char*) "America/Moncton" , 0x015920 }, + { (char*) "America/Monterrey" , 0x015F19 }, + { (char*) "America/Montevideo" , 0x0161DF }, + { (char*) "America/Montreal" , 0x0165B4 }, + { (char*) "America/Montserrat" , 0x016C75 }, + { (char*) "America/Nassau" , 0x016D03 }, + { (char*) "America/New_York" , 0x0170FD }, + { (char*) "America/Nipigon" , 0x0177ED }, + { (char*) "America/Nome" , 0x017EAE }, + { (char*) "America/Noronha" , 0x018296 }, + { (char*) "America/North_Dakota/Beulah" , 0x018496 }, + { (char*) "America/North_Dakota/Center" , 0x0188CA }, + { (char*) "America/North_Dakota/New_Salem" , 0x018CC9 }, + { (char*) "America/Nuuk" , 0x0190CE }, + { (char*) "America/Ojinaga" , 0x0194B0 }, + { (char*) "America/Panama" , 0x0197A6 }, + { (char*) "America/Pangnirtung" , 0x019847 }, + { (char*) "America/Paramaribo" , 0x019BAA }, + { (char*) "America/Phoenix" , 0x019C71 }, + { (char*) "America/Port-au-Prince" , 0x019D85 }, + { (char*) "America/Port_of_Spain" , 0x019FC6 }, + { (char*) "America/Porto_Acre" , 0x01A054 }, + { (char*) "America/Porto_Velho" , 0x01A202 }, + { (char*) "America/Puerto_Rico" , 0x01A3A0 }, + { (char*) "America/Punta_Arenas" , 0x01A45D }, + { (char*) "America/Rainy_River" , 0x01A93F }, + { (char*) "America/Rankin_Inlet" , 0x01AE59 }, + { (char*) "America/Recife" , 0x01B1A2 }, + { (char*) "America/Regina" , 0x01B39C }, + { (char*) "America/Resolute" , 0x01B63B }, + { (char*) "America/Rio_Branco" , 0x01B985 }, + { (char*) "America/Rosario" , 0x01BB37 }, + { (char*) "America/Santa_Isabel" , 0x01BE07 }, + { (char*) "America/Santarem" , 0x01C214 }, + { (char*) "America/Santiago" , 0x01C3C4 }, + { (char*) "America/Santo_Domingo" , 0x01C927 }, + { (char*) "America/Sao_Paulo" , 0x01CA70 }, + { (char*) "America/Scoresbysund" , 0x01CE6A }, + { (char*) "America/Shiprock" , 0x01D26B }, + { (char*) "America/Sitka" , 0x01D689 }, + { (char*) "America/St_Barthelemy" , 0x01DA64 }, + { (char*) "America/St_Johns" , 0x01DB21 }, + { (char*) "America/St_Kitts" , 0x01E29E }, + { (char*) "America/St_Lucia" , 0x01E32C }, + { (char*) "America/St_Thomas" , 0x01E3CD }, + { (char*) "America/St_Vincent" , 0x01E45B }, + { (char*) "America/Swift_Current" , 0x01E4FC }, + { (char*) "America/Tegucigalpa" , 0x01E68A }, + { (char*) "America/Thule" , 0x01E758 }, + { (char*) "America/Thunder_Bay" , 0x01E939 }, + { (char*) "America/Tijuana" , 0x01EFFA }, + { (char*) "America/Toronto" , 0x01F416 }, + { (char*) "America/Tortola" , 0x01FAF5 }, + { (char*) "America/Vancouver" , 0x01FB83 }, + { (char*) "America/Virgin" , 0x0200DA }, + { (char*) "America/Whitehorse" , 0x020197 }, + { (char*) "America/Winnipeg" , 0x0205BA }, + { (char*) "America/Yakutat" , 0x020AF1 }, + { (char*) "America/Yellowknife" , 0x020EBF }, + { (char*) "Antarctica/Casey" , 0x021295 }, + { (char*) "Antarctica/Davis" , 0x0213C5 }, + { (char*) "Antarctica/DumontDUrville" , 0x02149B }, + { (char*) "Antarctica/Macquarie" , 0x02154F }, + { (char*) "Antarctica/Mawson" , 0x02193B }, + { (char*) "Antarctica/McMurdo" , 0x0219E5 }, + { (char*) "Antarctica/Palmer" , 0x021D17 }, + { (char*) "Antarctica/Rothera" , 0x0220A0 }, + { (char*) "Antarctica/South_Pole" , 0x022137 }, + { (char*) "Antarctica/Syowa" , 0x022556 }, + { (char*) "Antarctica/Troll" , 0x0225EC }, + { (char*) "Antarctica/Vostok" , 0x02269B }, + { (char*) "Arctic/Longyearbyen" , 0x022757 }, + { (char*) "Asia/Aden" , 0x022A24 }, + { (char*) "Asia/Almaty" , 0x022AB5 }, + { (char*) "Asia/Amman" , 0x022D34 }, + { (char*) "Asia/Anadyr" , 0x0230E0 }, + { (char*) "Asia/Aqtau" , 0x0233E6 }, + { (char*) "Asia/Aqtobe" , 0x023665 }, + { (char*) "Asia/Ashgabat" , 0x0238E5 }, + { (char*) "Asia/Ashkhabad" , 0x023A68 }, + { (char*) "Asia/Atyrau" , 0x023BEB }, + { (char*) "Asia/Baghdad" , 0x023E74 }, + { (char*) "Asia/Bahrain" , 0x0240F6 }, + { (char*) "Asia/Baku" , 0x0241AF }, + { (char*) "Asia/Bangkok" , 0x0244A3 }, + { (char*) "Asia/Barnaul" , 0x024547 }, + { (char*) "Asia/Beirut" , 0x024852 }, + { (char*) "Asia/Bishkek" , 0x024B3A }, + { (char*) "Asia/Brunei" , 0x024DB0 }, + { (char*) "Asia/Calcutta" , 0x024E56 }, + { (char*) "Asia/Chita" , 0x024F3E }, + { (char*) "Asia/Choibalsan" , 0x02524C }, + { (char*) "Asia/Chongqing" , 0x0254D5 }, + { (char*) "Asia/Chungking" , 0x02566A }, + { (char*) "Asia/Colombo" , 0x0257FF }, + { (char*) "Asia/Dacca" , 0x025902 }, + { (char*) "Asia/Damascus" , 0x0259F5 }, + { (char*) "Asia/Dhaka" , 0x025ED3 }, + { (char*) "Asia/Dili" , 0x025FC6 }, + { (char*) "Asia/Dubai" , 0x02607C }, + { (char*) "Asia/Dushanbe" , 0x02610D }, + { (char*) "Asia/Famagusta" , 0x026287 }, + { (char*) "Asia/Gaza" , 0x02664E }, + { (char*) "Asia/Harbin" , 0x0271FC }, + { (char*) "Asia/Hebron" , 0x027391 }, + { (char*) "Asia/Ho_Chi_Minh" , 0x027F50 }, + { (char*) "Asia/Hong_Kong" , 0x028048 }, + { (char*) "Asia/Hovd" , 0x02835B }, + { (char*) "Asia/Irkutsk" , 0x0285E4 }, + { (char*) "Asia/Istanbul" , 0x028902 }, + { (char*) "Asia/Jakarta" , 0x028DBE }, + { (char*) "Asia/Jayapura" , 0x028ECF }, + { (char*) "Asia/Jerusalem" , 0x028FBC }, + { (char*) "Asia/Kabul" , 0x0293FA }, + { (char*) "Asia/Kamchatka" , 0x0294A5 }, + { (char*) "Asia/Karachi" , 0x02979A }, + { (char*) "Asia/Kashgar" , 0x0298B0 }, + { (char*) "Asia/Kathmandu" , 0x029941 }, + { (char*) "Asia/Katmandu" , 0x0299EE }, + { (char*) "Asia/Khandyga" , 0x029A9B }, + { (char*) "Asia/Kolkata" , 0x029DCC }, + { (char*) "Asia/Krasnoyarsk" , 0x029EB4 }, + { (char*) "Asia/Kuala_Lumpur" , 0x02A1BE }, + { (char*) "Asia/Kuching" , 0x02A2DE }, + { (char*) "Asia/Kuwait" , 0x02A438 }, + { (char*) "Asia/Macao" , 0x02A4C9 }, + { (char*) "Asia/Macau" , 0x02A7EC }, + { (char*) "Asia/Magadan" , 0x02AB0F }, + { (char*) "Asia/Makassar" , 0x02AE1A }, + { (char*) "Asia/Manila" , 0x02AF2D }, + { (char*) "Asia/Muscat" , 0x02B027 }, + { (char*) "Asia/Nicosia" , 0x02B0B8 }, + { (char*) "Asia/Novokuznetsk" , 0x02B327 }, + { (char*) "Asia/Novosibirsk" , 0x02B61A }, + { (char*) "Asia/Omsk" , 0x02B92B }, + { (char*) "Asia/Oral" , 0x02BC29 }, + { (char*) "Asia/Phnom_Penh" , 0x02BEB5 }, + { (char*) "Asia/Pontianak" , 0x02BF89 }, + { (char*) "Asia/Pyongyang" , 0x02C0A2 }, + { (char*) "Asia/Qatar" , 0x02C165 }, + { (char*) "Asia/Qostanay" , 0x02C209 }, + { (char*) "Asia/Qyzylorda" , 0x02C496 }, + { (char*) "Asia/Rangoon" , 0x02C72F }, + { (char*) "Asia/Riyadh" , 0x02C7F6 }, + { (char*) "Asia/Saigon" , 0x02C887 }, + { (char*) "Asia/Sakhalin" , 0x02C97F }, + { (char*) "Asia/Samarkand" , 0x02CC96 }, + { (char*) "Asia/Seoul" , 0x02CE21 }, + { (char*) "Asia/Shanghai" , 0x02CFCC }, + { (char*) "Asia/Singapore" , 0x02D16D }, + { (char*) "Asia/Srednekolymsk" , 0x02D279 }, + { (char*) "Asia/Taipei" , 0x02D589 }, + { (char*) "Asia/Tashkent" , 0x02D794 }, + { (char*) "Asia/Tbilisi" , 0x02D91F }, + { (char*) "Asia/Tehran" , 0x02DBA0 }, + { (char*) "Asia/Tel_Aviv" , 0x02DED8 }, + { (char*) "Asia/Thimbu" , 0x02E316 }, + { (char*) "Asia/Thimphu" , 0x02E3BC }, + { (char*) "Asia/Tokyo" , 0x02E462 }, + { (char*) "Asia/Tomsk" , 0x02E543 }, + { (char*) "Asia/Ujung_Pandang" , 0x02E84E }, + { (char*) "Asia/Ulaanbaatar" , 0x02E918 }, + { (char*) "Asia/Ulan_Bator" , 0x02EB86 }, + { (char*) "Asia/Urumqi" , 0x02EDE4 }, + { (char*) "Asia/Ust-Nera" , 0x02EE82 }, + { (char*) "Asia/Vientiane" , 0x02F1A5 }, + { (char*) "Asia/Vladivostok" , 0x02F28B }, + { (char*) "Asia/Yakutsk" , 0x02F590 }, + { (char*) "Asia/Yangon" , 0x02F894 }, + { (char*) "Asia/Yekaterinburg" , 0x02F95B }, + { (char*) "Asia/Yerevan" , 0x02FC6D }, + { (char*) "Atlantic/Azores" , 0x02FF3D }, + { (char*) "Atlantic/Bermuda" , 0x0304FC }, + { (char*) "Atlantic/Canary" , 0x030908 }, + { (char*) "Atlantic/Cape_Verde" , 0x030B00 }, + { (char*) "Atlantic/Faeroe" , 0x030BBB }, + { (char*) "Atlantic/Faroe" , 0x030D80 }, + { (char*) "Atlantic/Jan_Mayen" , 0x030F45 }, + { (char*) "Atlantic/Madeira" , 0x031212 }, + { (char*) "Atlantic/Reykjavik" , 0x0317DA }, + { (char*) "Atlantic/South_Georgia" , 0x031AD7 }, + { (char*) "Atlantic/St_Helena" , 0x031B67 }, + { (char*) "Atlantic/Stanley" , 0x031C08 }, + { (char*) "Australia/ACT" , 0x031F29 }, + { (char*) "Australia/Adelaide" , 0x0322BD }, + { (char*) "Australia/Brisbane" , 0x032671 }, + { (char*) "Australia/Broken_Hill" , 0x0327B5 }, + { (char*) "Australia/Canberra" , 0x032B8A }, + { (char*) "Australia/Currie" , 0x032F1E }, + { (char*) "Australia/Darwin" , 0x033315 }, + { (char*) "Australia/Eucla" , 0x03341D }, + { (char*) "Australia/Hobart" , 0x03357C }, + { (char*) "Australia/LHI" , 0x03397B }, + { (char*) "Australia/Lindeman" , 0x033C3B }, + { (char*) "Australia/Lord_Howe" , 0x033DAB }, + { (char*) "Australia/Melbourne" , 0x03407B }, + { (char*) "Australia/North" , 0x034417 }, + { (char*) "Australia/NSW" , 0x03450D }, + { (char*) "Australia/Perth" , 0x0348A1 }, + { (char*) "Australia/Queensland" , 0x0349FD }, + { (char*) "Australia/South" , 0x034B2A }, + { (char*) "Australia/Sydney" , 0x034ECF }, + { (char*) "Australia/Tasmania" , 0x03527F }, + { (char*) "Australia/Victoria" , 0x035676 }, + { (char*) "Australia/West" , 0x035A0A }, + { (char*) "Australia/Yancowinna" , 0x035B48 }, + { (char*) "Brazil/Acre" , 0x035F01 }, + { (char*) "Brazil/DeNoronha" , 0x0360AF }, + { (char*) "Brazil/East" , 0x03629F }, + { (char*) "Brazil/West" , 0x036663 }, + { (char*) "Canada/Atlantic" , 0x03680B }, + { (char*) "Canada/Central" , 0x036E9F }, + { (char*) "Canada/Eastern" , 0x0373B9 }, + { (char*) "Canada/Mountain" , 0x037A7A }, + { (char*) "Canada/Newfoundland" , 0x037E50 }, + { (char*) "Canada/Pacific" , 0x0385B2 }, + { (char*) "Canada/Saskatchewan" , 0x038AF0 }, + { (char*) "Canada/Yukon" , 0x038D7A }, + { (char*) "CET" , 0x03918B }, + { (char*) "Chile/Continental" , 0x039404 }, + { (char*) "Chile/EasterIsland" , 0x03995A }, + { (char*) "CST6CDT" , 0x039DFC }, + { (char*) "Cuba" , 0x03A1BF }, + { (char*) "EET" , 0x03A628 }, + { (char*) "Egypt" , 0x03A825 }, + { (char*) "Eire" , 0x03AD4E }, + { (char*) "EST" , 0x03B332 }, + { (char*) "EST5EDT" , 0x03B3AD }, + { (char*) "Etc/GMT" , 0x03B770 }, + { (char*) "Etc/GMT+0" , 0x03B7EB }, + { (char*) "Etc/GMT+1" , 0x03B866 }, + { (char*) "Etc/GMT+10" , 0x03B8E3 }, + { (char*) "Etc/GMT+11" , 0x03B961 }, + { (char*) "Etc/GMT+12" , 0x03B9DF }, + { (char*) "Etc/GMT+2" , 0x03BA5D }, + { (char*) "Etc/GMT+3" , 0x03BADA }, + { (char*) "Etc/GMT+4" , 0x03BB57 }, + { (char*) "Etc/GMT+5" , 0x03BBD4 }, + { (char*) "Etc/GMT+6" , 0x03BC51 }, + { (char*) "Etc/GMT+7" , 0x03BCCE }, + { (char*) "Etc/GMT+8" , 0x03BD4B }, + { (char*) "Etc/GMT+9" , 0x03BDC8 }, + { (char*) "Etc/GMT-0" , 0x03BE45 }, + { (char*) "Etc/GMT-1" , 0x03BEC0 }, + { (char*) "Etc/GMT-10" , 0x03BF3E }, + { (char*) "Etc/GMT-11" , 0x03BFBD }, + { (char*) "Etc/GMT-12" , 0x03C03C }, + { (char*) "Etc/GMT-13" , 0x03C0BB }, + { (char*) "Etc/GMT-14" , 0x03C13A }, + { (char*) "Etc/GMT-2" , 0x03C1B9 }, + { (char*) "Etc/GMT-3" , 0x03C237 }, + { (char*) "Etc/GMT-4" , 0x03C2B5 }, + { (char*) "Etc/GMT-5" , 0x03C333 }, + { (char*) "Etc/GMT-6" , 0x03C3B1 }, + { (char*) "Etc/GMT-7" , 0x03C42F }, + { (char*) "Etc/GMT-8" , 0x03C4AD }, + { (char*) "Etc/GMT-9" , 0x03C52B }, + { (char*) "Etc/GMT0" , 0x03C5A9 }, + { (char*) "Etc/Greenwich" , 0x03C624 }, + { (char*) "Etc/UCT" , 0x03C69F }, + { (char*) "Etc/Universal" , 0x03C71A }, + { (char*) "Etc/UTC" , 0x03C795 }, + { (char*) "Etc/Zulu" , 0x03C810 }, + { (char*) "Europe/Amsterdam" , 0x03C88B }, + { (char*) "Europe/Andorra" , 0x03CCC6 }, + { (char*) "Europe/Astrakhan" , 0x03CE57 }, + { (char*) "Europe/Athens" , 0x03D14B }, + { (char*) "Europe/Belfast" , 0x03D401 }, + { (char*) "Europe/Belgrade" , 0x03DA4C }, + { (char*) "Europe/Berlin" , 0x03DC36 }, + { (char*) "Europe/Bratislava" , 0x03DF12 }, + { (char*) "Europe/Brussels" , 0x03E1F1 }, + { (char*) "Europe/Bucharest" , 0x03E64C }, + { (char*) "Europe/Budapest" , 0x03E8ED }, + { (char*) "Europe/Busingen" , 0x03EBF7 }, + { (char*) "Europe/Chisinau" , 0x03EDFC }, + { (char*) "Europe/Copenhagen" , 0x03F0FB }, + { (char*) "Europe/Dublin" , 0x03F376 }, + { (char*) "Europe/Gibraltar" , 0x03F95A }, + { (char*) "Europe/Guernsey" , 0x03FE2A }, + { (char*) "Europe/Helsinki" , 0x040481 }, + { (char*) "Europe/Isle_of_Man" , 0x04066E }, + { (char*) "Europe/Istanbul" , 0x040CB9 }, + { (char*) "Europe/Jersey" , 0x041175 }, + { (char*) "Europe/Kaliningrad" , 0x0417CC }, + { (char*) "Europe/Kiev" , 0x041B74 }, + { (char*) "Europe/Kirov" , 0x041DAE }, + { (char*) "Europe/Kyiv" , 0x0420A7 }, + { (char*) "Europe/Lisbon" , 0x0422F0 }, + { (char*) "Europe/Ljubljana" , 0x0428BD }, + { (char*) "Europe/London" , 0x042AA7 }, + { (char*) "Europe/Luxembourg" , 0x0430F2 }, + { (char*) "Europe/Madrid" , 0x04353D }, + { (char*) "Europe/Malta" , 0x0438DA }, + { (char*) "Europe/Mariehamn" , 0x043C86 }, + { (char*) "Europe/Minsk" , 0x043E73 }, + { (char*) "Europe/Monaco" , 0x0441A7 }, + { (char*) "Europe/Moscow" , 0x04460D }, + { (char*) "Europe/Nicosia" , 0x0449B9 }, + { (char*) "Europe/Oslo" , 0x044C1A }, + { (char*) "Europe/Paris" , 0x044ECA }, + { (char*) "Europe/Podgorica" , 0x045327 }, + { (char*) "Europe/Prague" , 0x045511 }, + { (char*) "Europe/Riga" , 0x0457F0 }, + { (char*) "Europe/Rome" , 0x045AB2 }, + { (char*) "Europe/Samara" , 0x045E71 }, + { (char*) "Europe/San_Marino" , 0x046172 }, + { (char*) "Europe/Sarajevo" , 0x046531 }, + { (char*) "Europe/Saratov" , 0x04671B }, + { (char*) "Europe/Simferopol" , 0x046A0D }, + { (char*) "Europe/Skopje" , 0x046D80 }, + { (char*) "Europe/Sofia" , 0x046F6A }, + { (char*) "Europe/Stockholm" , 0x0471C6 }, + { (char*) "Europe/Tallinn" , 0x0473C3 }, + { (char*) "Europe/Tirane" , 0x047672 }, + { (char*) "Europe/Tiraspol" , 0x0478DA }, + { (char*) "Europe/Ulyanovsk" , 0x047BD9 }, + { (char*) "Europe/Uzhgorod" , 0x047EEF }, + { (char*) "Europe/Vaduz" , 0x048129 }, + { (char*) "Europe/Vatican" , 0x048313 }, + { (char*) "Europe/Vienna" , 0x0486D2 }, + { (char*) "Europe/Vilnius" , 0x048970 }, + { (char*) "Europe/Volgograd" , 0x048C20 }, + { (char*) "Europe/Warsaw" , 0x048F2F }, + { (char*) "Europe/Zagreb" , 0x0492D6 }, + { (char*) "Europe/Zaporozhye" , 0x0494C0 }, + { (char*) "Europe/Zurich" , 0x0496FA }, + { (char*) "Factory" , 0x0498F7 }, + { (char*) "GB" , 0x049974 }, + { (char*) "GB-Eire" , 0x049FBF }, + { (char*) "GMT" , 0x04A60A }, + { (char*) "GMT+0" , 0x04A685 }, + { (char*) "GMT-0" , 0x04A700 }, + { (char*) "GMT0" , 0x04A77B }, + { (char*) "Greenwich" , 0x04A7F6 }, + { (char*) "Hongkong" , 0x04A871 }, + { (char*) "HST" , 0x04AB84 }, + { (char*) "Iceland" , 0x04AC00 }, + { (char*) "Indian/Antananarivo" , 0x04AC8E }, + { (char*) "Indian/Chagos" , 0x04AD3A }, + { (char*) "Indian/Christmas" , 0x04ADDE }, + { (char*) "Indian/Cocos" , 0x04AE6F }, + { (char*) "Indian/Comoro" , 0x04AF07 }, + { (char*) "Indian/Kerguelen" , 0x04AF96 }, + { (char*) "Indian/Mahe" , 0x04B027 }, + { (char*) "Indian/Maldives" , 0x04B0B8 }, + { (char*) "Indian/Mauritius" , 0x04B15C }, + { (char*) "Indian/Mayotte" , 0x04B21B }, + { (char*) "Indian/Reunion" , 0x04B2AA }, + { (char*) "Iran" , 0x04B33B }, + { (char*) "Israel" , 0x04B673 }, + { (char*) "Jamaica" , 0x04BAB1 }, + { (char*) "Japan" , 0x04BC10 }, + { (char*) "Kwajalein" , 0x04BCF1 }, + { (char*) "Libya" , 0x04BDD8 }, + { (char*) "MET" , 0x04BF93 }, + { (char*) "Mexico/BajaNorte" , 0x04C20C }, + { (char*) "Mexico/BajaSur" , 0x04C619 }, + { (char*) "Mexico/General" , 0x04C8F3 }, + { (char*) "MST" , 0x04CC04 }, + { (char*) "MST7MDT" , 0x04CC7F }, + { (char*) "Navajo" , 0x04D042 }, + { (char*) "NZ" , 0x04D460 }, + { (char*) "NZ-CHAT" , 0x04D87F }, + { (char*) "Pacific/Apia" , 0x04DBB3 }, + { (char*) "Pacific/Auckland" , 0x04DD56 }, + { (char*) "Pacific/Bougainville" , 0x04E188 }, + { (char*) "Pacific/Chatham" , 0x04E269 }, + { (char*) "Pacific/Chuuk" , 0x04E5AC }, + { (char*) "Pacific/Easter" , 0x04E68A }, + { (char*) "Pacific/Efate" , 0x04EB39 }, + { (char*) "Pacific/Enderbury" , 0x04EC9B }, + { (char*) "Pacific/Fakaofo" , 0x04ED53 }, + { (char*) "Pacific/Fiji" , 0x04EDF8 }, + { (char*) "Pacific/Funafuti" , 0x04EF90 }, + { (char*) "Pacific/Galapagos" , 0x04F022 }, + { (char*) "Pacific/Gambier" , 0x04F0EE }, + { (char*) "Pacific/Guadalcanal" , 0x04F18D }, + { (char*) "Pacific/Guam" , 0x04F21F }, + { (char*) "Pacific/Honolulu" , 0x04F389 }, + { (char*) "Pacific/Johnston" , 0x04F478 }, + { (char*) "Pacific/Kanton" , 0x04F561 }, + { (char*) "Pacific/Kiritimati" , 0x04F628 }, + { (char*) "Pacific/Kosrae" , 0x04F6EE }, + { (char*) "Pacific/Kwajalein" , 0x04F7F2 }, + { (char*) "Pacific/Majuro" , 0x04F8E2 }, + { (char*) "Pacific/Marquesas" , 0x04F9E0 }, + { (char*) "Pacific/Midway" , 0x04FA88 }, + { (char*) "Pacific/Nauru" , 0x04FB4B }, + { (char*) "Pacific/Niue" , 0x04FC0E }, + { (char*) "Pacific/Norfolk" , 0x04FCB4 }, + { (char*) "Pacific/Noumea" , 0x04FDAD }, + { (char*) "Pacific/Pago_Pago" , 0x04FE7F }, + { (char*) "Pacific/Palau" , 0x04FF1D }, + { (char*) "Pacific/Pitcairn" , 0x04FFBD }, + { (char*) "Pacific/Pohnpei" , 0x050062 }, + { (char*) "Pacific/Ponape" , 0x050152 }, + { (char*) "Pacific/Port_Moresby" , 0x0501E4 }, + { (char*) "Pacific/Rarotonga" , 0x0502A2 }, + { (char*) "Pacific/Saipan" , 0x050444 }, + { (char*) "Pacific/Samoa" , 0x0505A5 }, + { (char*) "Pacific/Tahiti" , 0x050643 }, + { (char*) "Pacific/Tarawa" , 0x0506E3 }, + { (char*) "Pacific/Tongatapu" , 0x050784 }, + { (char*) "Pacific/Truk" , 0x05087D }, + { (char*) "Pacific/Wake" , 0x050923 }, + { (char*) "Pacific/Wallis" , 0x0509C0 }, + { (char*) "Pacific/Yap" , 0x050A52 }, + { (char*) "Poland" , 0x050AF8 }, + { (char*) "Portugal" , 0x050E9F }, + { (char*) "PRC" , 0x051459 }, + { (char*) "PST8PDT" , 0x0515EE }, + { (char*) "ROC" , 0x0519B1 }, + { (char*) "ROK" , 0x051BBC }, + { (char*) "Singapore" , 0x051D67 }, + { (char*) "Turkey" , 0x051E73 }, + { (char*) "UCT" , 0x05232F }, + { (char*) "Universal" , 0x0523AA }, + { (char*) "US/Alaska" , 0x052425 }, + { (char*) "US/Aleutian" , 0x052802 }, + { (char*) "US/Arizona" , 0x052BD7 }, + { (char*) "US/Central" , 0x052CD3 }, + { (char*) "US/East-Indiana" , 0x0533B9 }, + { (char*) "US/Eastern" , 0x0535D8 }, + { (char*) "US/Hawaii" , 0x053CB4 }, + { (char*) "US/Indiana-Starke" , 0x053D9D }, + { (char*) "US/Michigan" , 0x0541A1 }, + { (char*) "US/Mountain" , 0x054530 }, + { (char*) "US/Pacific" , 0x05494E }, + { (char*) "US/Samoa" , 0x054E68 }, + { (char*) "UTC" , 0x054F06 }, + { (char*) "W-SU" , 0x054F81 }, + { (char*) "WET" , 0x055319 }, + { (char*) "Zulu" , 0x055513 }, }; -const unsigned char timelib_timezone_db_data_builtin[348143] = { +const unsigned char timelib_timezone_db_data_builtin[349582] = { /* Africa/Abidjan */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -2070,7 +2070,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x01, 0x10, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x34, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x0A, 0x3C, 0x2D, 0x30, 0x33, 0x3E, 0x33, 0x0A, 0x00, 0x5D, 0xE4, 0x75, 0x00, 0xAE, 0x47, 0xE2, 0x00, 0x00, 0x00, 0x1B, -0x43, 0x61, 0x74, 0x61, 0x6D, 0x61, 0x72, 0x63, 0x61, 0x20, 0x28, 0x43, 0x54, 0x29, 0x3B, 0x20, +0x43, 0x61, 0x74, 0x61, 0x6D, 0x61, 0x72, 0x63, 0x61, 0x20, 0x28, 0x43, 0x54, 0x29, 0x2C, 0x20, 0x43, 0x68, 0x75, 0x62, 0x75, 0x74, 0x20, 0x28, 0x43, 0x48, 0x29, /* America/Argentina/ComodRivadavia */ @@ -2696,7 +2696,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x0A, 0x45, 0x53, 0x54, 0x35, 0x0A, 0x00, 0xD3, 0xBA, 0x95, 0x00, 0x86, 0xDA, 0xC9, 0x00, 0x00, 0x00, 0x21, 0x45, 0x53, 0x54, 0x20, -0x2D, 0x20, 0x4F, 0x4E, 0x20, 0x28, 0x41, 0x74, 0x69, 0x6B, 0x6F, 0x6B, 0x61, 0x6E, 0x29, 0x3B, +0x2D, 0x20, 0x4F, 0x4E, 0x20, 0x28, 0x41, 0x74, 0x69, 0x6B, 0x6F, 0x6B, 0x61, 0x6E, 0x29, 0x2C, 0x20, 0x4E, 0x55, 0x20, 0x28, 0x43, 0x6F, 0x72, 0x61, 0x6C, 0x20, 0x48, 0x29, /* America/Atka */ @@ -2907,7 +2907,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x0A, 0x3C, 0x2D, 0x30, 0x33, 0x3E, 0x33, 0x0A, 0x00, 0x87, 0x1D, 0xD8, 0x00, 0xC8, 0xAD, 0xB2, 0x00, 0x00, 0x00, 0x12, 0x50, 0x61, 0x72, 0x61, 0x20, 0x28, 0x65, 0x61, 0x73, 0x74, -0x29, 0x3B, 0x20, 0x41, 0x6D, 0x61, 0x70, 0x61, +0x29, 0x2C, 0x20, 0x41, 0x6D, 0x61, 0x70, 0x61, /* America/Belize */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x42, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -3106,7 +3106,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x4D, 0x53, 0x54, 0x37, 0x4D, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xCB, 0xE0, 0xD1, 0x00, 0x61, 0x58, 0xE6, 0x00, 0x00, 0x00, 0x20, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x20, 0x2D, 0x20, 0x49, 0x44, -0x20, 0x28, 0x73, 0x6F, 0x75, 0x74, 0x68, 0x29, 0x3B, 0x20, 0x4F, 0x52, 0x20, 0x28, 0x65, 0x61, +0x20, 0x28, 0x73, 0x6F, 0x75, 0x74, 0x68, 0x29, 0x2C, 0x20, 0x4F, 0x52, 0x20, 0x28, 0x65, 0x61, 0x73, 0x74, 0x29, /* America/Buenos_Aires */ @@ -4141,9 +4141,9 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x4D, 0x57, 0x54, 0x00, 0x4D, 0x50, 0x54, 0x00, 0x0A, 0x4D, 0x53, 0x54, 0x37, 0x4D, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xDB, 0x0A, 0x38, 0x00, 0x65, -0x85, 0x95, 0x00, 0x00, 0x00, 0x25, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x20, 0x2D, -0x20, 0x41, 0x42, 0x3B, 0x20, 0x42, 0x43, 0x20, 0x28, 0x45, 0x29, 0x3B, 0x20, 0x4E, 0x54, 0x20, -0x28, 0x45, 0x29, 0x3B, 0x20, 0x53, 0x4B, 0x20, 0x28, 0x57, 0x29, +0x85, 0x95, 0x00, 0x00, 0x00, 0x22, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x20, 0x2D, +0x20, 0x41, 0x42, 0x2C, 0x20, 0x42, 0x43, 0x28, 0x45, 0x29, 0x2C, 0x20, 0x4E, 0x54, 0x28, 0x45, +0x29, 0x2C, 0x20, 0x53, 0x4B, 0x28, 0x57, 0x29, /* America/Eirunepe */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x42, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -4243,13 +4243,13 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x45, 0x44, 0x6D, 0x90, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0F, 0x82, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x47, 0x24, 0x4F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x47, 0xF8, 0x9F, 0x20, 0x00, 0x00, 0x00, 0x00, 0x49, 0x04, 0x31, 0x90, 0x00, 0x00, 0x00, 0x00, 0x49, 0xD8, 0x81, 0x20, 0x00, -0x00, 0x00, 0x00, 0x4A, 0xE4, 0x13, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0xB3, 0xA0, 0x01, +0x00, 0x00, 0x00, 0x4A, 0xE4, 0x13, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x3D, 0xAB, 0x80, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x04, 0x05, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0xFF, 0xFF, 0x92, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x02, 0xFF, 0xFF, 0x92, 0x4C, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x0C, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x10, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x50, 0x44, 0x54, @@ -4540,7 +4540,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, -0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x03, 0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x0A, 0x3C, 0x2D, 0x30, 0x32, 0x3E, 0x32, 0x3C, 0x2D, 0x30, 0x31, 0x3E, @@ -4630,7 +4630,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x47, 0xD3, 0x60, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x49, 0x0D, 0x17, 0xEC, 0x00, 0x00, 0x00, 0x00, 0x49, 0xB3, 0x42, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xEC, 0xF9, 0xEC, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0x5F, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xD6, 0x16, 0x6C, 0x00, -0x00, 0x00, 0x00, 0x4D, 0x7C, 0x41, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xB6, 0x14, 0x50, 0x01, +0x00, 0x00, 0x00, 0x4D, 0x7C, 0x41, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xAF, 0x60, 0xB0, 0x01, 0x02, 0x01, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x06, 0x05, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, @@ -4640,7 +4640,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x09, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, -0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0xFF, 0xFF, 0xC7, 0x5C, 0x00, 0x00, 0xFF, 0xFF, 0xCE, +0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x07, 0xFF, 0xFF, 0xC7, 0x5C, 0x00, 0x00, 0xFF, 0xFF, 0xCE, 0x94, 0x00, 0x04, 0xFF, 0xFF, 0xDC, 0xA4, 0x01, 0x08, 0xFF, 0xFF, 0xCE, 0xC8, 0x00, 0x04, 0xFF, 0xFF, 0xDC, 0xD8, 0x01, 0x08, 0xFF, 0xFF, 0xDC, 0xD8, 0x01, 0x0C, 0xFF, 0xFF, 0xDC, 0xD8, 0x01, 0x10, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x14, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x18, 0xFF, 0xFF, 0xE3, @@ -4886,7 +4886,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x0A, 0x41, 0x53, 0x54, 0x34, 0x41, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xCD, 0x75, 0xA8, 0x00, 0xB1, 0x9C, 0xC0, 0x00, 0x00, 0x00, 0x1E, 0x41, 0x74, 0x6C, 0x61, 0x6E, 0x74, 0x69, 0x63, 0x20, 0x2D, 0x20, 0x4E, -0x53, 0x20, 0x28, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x61, 0x72, 0x65, 0x61, 0x73, 0x29, 0x3B, 0x20, +0x53, 0x20, 0x28, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x61, 0x72, 0x65, 0x61, 0x73, 0x29, 0x2C, 0x20, 0x50, 0x45, /* America/Havana */ @@ -5288,7 +5288,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x1C, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x1C, 0xFF, 0xFF, 0xFF, 0xFF, 0x5E, 0x03, 0xFE, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0x9E, 0xA6, 0x2C, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xBA, 0xF9, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0x86, 0x0E, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xA1, 0x9A, 0xDB, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x88, 0xFE, 0x80, 0xFF, @@ -5311,19 +5311,18 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0xFF, 0xFF, 0xFF, 0xEF, 0xAF, 0xE0, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xB8, 0x1C, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA7, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x97, 0xFE, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x01, 0x87, 0xE1, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x76, 0x70, 0x00, -0x00, 0x00, 0x00, 0x45, 0x44, 0x51, 0x70, 0x00, 0x00, 0x00, 0x00, 0x45, 0xF3, 0xB7, 0x00, 0x00, -0x00, 0x00, 0x00, 0x47, 0x2D, 0x5F, 0xE0, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x02, 0x01, +0x00, 0x00, 0x00, 0x45, 0x44, 0x51, 0x70, 0x00, 0x00, 0x00, 0x00, 0x45, 0xF3, 0xB7, 0x00, 0x02, +0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, -0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x05, 0x06, 0x05, -0x06, 0x05, 0x01, 0x02, 0x06, 0x05, 0xFF, 0xFF, 0xAE, 0xCF, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, -0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, -0xB9, 0xB0, 0x01, 0x10, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x14, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x18, -0x4C, 0x4D, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, -0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x45, 0x44, 0x54, 0x00, 0x0A, 0x45, 0x53, 0x54, -0x35, 0x45, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, -0x31, 0x2E, 0x30, 0x0A, 0x00, 0xC7, 0xF7, 0xF2, 0x00, 0x8E, 0x83, 0x2E, 0x00, 0x00, 0x00, 0x16, -0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x2D, 0x20, 0x49, 0x4E, 0x20, 0x28, 0x50, 0x75, -0x6C, 0x61, 0x73, 0x6B, 0x69, 0x29, +0x02, 0x01, 0x02, 0x01, 0x02, 0x05, 0x06, 0x05, 0x06, 0x05, 0x01, 0x02, 0x06, 0xFF, 0xFF, 0xAE, +0xCF, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, +0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x10, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, +0x14, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x18, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, +0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x45, +0x44, 0x54, 0x00, 0x0A, 0x45, 0x53, 0x54, 0x35, 0x45, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, +0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xC7, 0xF7, 0xF2, 0x00, +0x8E, 0x83, 0x2E, 0x00, 0x00, 0x00, 0x16, 0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x2D, +0x20, 0x49, 0x4E, 0x20, 0x28, 0x50, 0x75, 0x6C, 0x61, 0x73, 0x6B, 0x69, 0x29, /* America/Indianapolis */ 0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -6192,9 +6191,9 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x45, 0x44, 0x51, 0x70, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0F, 0x66, 0x80, 0x00, 0x00, 0x00, 0x00, 0x47, 0x24, 0x33, 0x70, 0x00, 0x00, 0x00, 0x00, 0x47, 0xF8, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x04, 0x15, 0x70, 0x00, 0x00, 0x00, 0x00, 0x49, 0xD8, 0x65, 0x00, 0x00, -0x00, 0x00, 0x00, 0x4A, 0xE3, 0xF7, 0x70, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0x97, 0x80, 0x01, +0x00, 0x00, 0x00, 0x4A, 0xE3, 0xF7, 0x70, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x3D, 0x8F, 0x60, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, -0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x01, 0xFF, 0xFF, 0xA4, 0x98, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x0A, 0x43, 0x53, 0x54, 0x36, 0x43, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, @@ -6416,7 +6415,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x1E, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x1E, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xC2, 0xFD, 0xD1, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0x87, 0x30, 0x1A, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x89, 0x1A, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x61, 0x26, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xB8, 0x47, 0x20, 0xFF, @@ -6438,19 +6437,18 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x56, 0xE5, 0x48, 0x30, 0x00, 0x00, 0x00, 0x00, 0x58, 0x1E, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, 0x58, 0xC5, 0x2A, 0x30, 0x00, 0x00, 0x00, 0x00, 0x59, 0xFE, 0xE1, 0x20, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xA5, 0x0C, 0x30, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xDE, 0xC3, 0x20, 0x00, -0x00, 0x00, 0x00, 0x5C, 0x44, 0x46, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x84, 0xEE, 0x30, 0x01, -0x02, 0x03, 0x04, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, +0x00, 0x00, 0x00, 0x5C, 0x44, 0x46, 0xA0, 0x01, 0x02, 0x03, 0x04, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, -0x05, 0x02, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x02, 0x06, 0x07, 0x00, 0x00, 0xD6, 0x26, 0x00, -0x00, 0xFF, 0xFF, 0x84, 0xA6, 0x00, 0x00, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x04, 0xFF, 0xFF, 0x9D, -0x90, 0x01, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x0C, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x10, 0xFF, -0xFF, 0x81, 0x70, 0x00, 0x14, 0xFF, 0xFF, 0x8F, 0x80, 0x01, 0x19, 0x4C, 0x4D, 0x54, 0x00, 0x50, -0x53, 0x54, 0x00, 0x50, 0x57, 0x54, 0x00, 0x50, 0x50, 0x54, 0x00, 0x50, 0x44, 0x54, 0x00, 0x41, -0x4B, 0x53, 0x54, 0x00, 0x41, 0x4B, 0x44, 0x54, 0x00, 0x0A, 0x41, 0x4B, 0x53, 0x54, 0x39, 0x41, -0x4B, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, -0x2E, 0x30, 0x0A, 0x00, 0xDD, 0x72, 0x36, 0x00, 0x49, 0xE3, 0x79, 0x00, 0x00, 0x00, 0x17, 0x41, -0x6C, 0x61, 0x73, 0x6B, 0x61, 0x20, 0x2D, 0x20, 0x41, 0x6E, 0x6E, 0x65, 0x74, 0x74, 0x65, 0x20, -0x49, 0x73, 0x6C, 0x61, 0x6E, 0x64, +0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, +0x02, 0x06, 0x00, 0x00, 0xD6, 0x26, 0x00, 0x00, 0xFF, 0xFF, 0x84, 0xA6, 0x00, 0x00, 0xFF, 0xFF, +0x8F, 0x80, 0x00, 0x04, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x0C, +0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x10, 0xFF, 0xFF, 0x81, 0x70, 0x00, 0x14, 0xFF, 0xFF, 0x8F, 0x80, +0x01, 0x19, 0x4C, 0x4D, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x50, 0x57, 0x54, 0x00, 0x50, 0x50, +0x54, 0x00, 0x50, 0x44, 0x54, 0x00, 0x41, 0x4B, 0x53, 0x54, 0x00, 0x41, 0x4B, 0x44, 0x54, 0x00, +0x0A, 0x41, 0x4B, 0x53, 0x54, 0x39, 0x41, 0x4B, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, +0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xDD, 0x72, 0x36, 0x00, 0x49, +0xE3, 0x79, 0x00, 0x00, 0x00, 0x17, 0x41, 0x6C, 0x61, 0x73, 0x6B, 0x61, 0x20, 0x2D, 0x20, 0x41, +0x6E, 0x6E, 0x65, 0x74, 0x74, 0x65, 0x20, 0x49, 0x73, 0x6C, 0x61, 0x6E, 0x64, /* America/Mexico_City */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x4D, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -6621,7 +6619,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x3F, 0x9B, 0x38, 0xEC, 0x00, 0x00, 0x00, 0x00, 0x40, 0x6F, 0x88, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x55, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x42, 0x4F, 0x6A, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x37, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x4C, 0x7C, 0x00, -0x00, 0x00, 0x00, 0x45, 0x44, 0x19, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x45, 0xF3, 0x9A, 0xE0, 0x01, +0x00, 0x00, 0x00, 0x45, 0x44, 0x19, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x45, 0x98, 0x87, 0x40, 0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x04, 0x05, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, @@ -6631,7 +6629,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, -0x02, 0xFF, 0xFF, 0xC3, 0x44, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, +0x03, 0xFF, 0xFF, 0xC3, 0x44, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x08, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x0C, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x10, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x41, 0x44, 0x54, 0x00, 0x41, 0x53, 0x54, 0x00, 0x41, 0x57, 0x54, 0x00, 0x41, 0x50, 0x54, 0x00, 0x0A, 0x41, 0x53, @@ -7523,7 +7521,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, -0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x03, 0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x0A, 0x3C, 0x2D, 0x30, 0x32, 0x3E, 0x32, 0x3C, 0x2D, 0x30, 0x31, 0x3E, @@ -7538,7 +7536,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0xFF, 0xFF, 0xFF, 0xFF, 0xA5, 0xB6, 0xE8, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xAF, 0xF2, 0x6E, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xB6, 0x66, 0x56, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xB7, 0x43, 0xD2, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xB8, 0x0C, 0x36, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xB8, 0xFD, 0x86, 0xF0, 0x00, @@ -7568,18 +7566,19 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x5C, 0x84, 0xD2, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xBE, 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x64, 0xB4, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x9E, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x4D, 0xD0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x61, 0x87, 0x87, 0x80, 0x00, -0x00, 0x00, 0x00, 0x62, 0x2D, 0xB2, 0x90, 0x00, 0x00, 0x00, 0x00, 0x63, 0x5E, 0x2F, 0x00, 0x01, -0x02, 0x01, 0x03, 0x01, 0x02, 0x04, 0x02, 0x04, 0x02, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, +0x00, 0x00, 0x00, 0x62, 0x2D, 0xB2, 0x90, 0x00, 0x00, 0x00, 0x00, 0x63, 0x5E, 0x2F, 0x00, 0x00, +0x00, 0x00, 0x00, 0x63, 0x86, 0xF1, 0x60, 0x01, 0x02, 0x01, 0x03, 0x01, 0x02, 0x04, 0x02, 0x04, +0x02, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, -0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x02, 0xFF, 0xFF, 0x9E, 0x1C, 0x00, -0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xAB, -0xA0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x10, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, -0x00, 0x43, 0x53, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x0A, 0x43, 0x53, -0x54, 0x36, 0x43, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, -0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xB6, 0x71, 0xBA, 0x00, 0x73, 0x54, 0xBD, 0x00, 0x00, 0x00, -0x1C, 0x43, 0x68, 0x69, 0x68, 0x75, 0x61, 0x68, 0x75, 0x61, 0x20, 0x28, 0x55, 0x53, 0x20, 0x62, -0x6F, 0x72, 0x64, 0x65, 0x72, 0x20, 0x2D, 0x20, 0x65, 0x61, 0x73, 0x74, 0x29, +0x01, 0x03, 0x02, 0x02, 0xFF, 0xFF, 0x9E, 0x1C, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, +0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, +0x01, 0x10, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x4D, 0x44, +0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x0A, 0x43, 0x53, 0x54, 0x36, 0x43, 0x44, 0x54, 0x2C, 0x4D, +0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xB6, +0x71, 0xBA, 0x00, 0x73, 0x54, 0xBD, 0x00, 0x00, 0x00, 0x1C, 0x43, 0x68, 0x69, 0x68, 0x75, 0x61, +0x68, 0x75, 0x61, 0x20, 0x28, 0x55, 0x53, 0x20, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x20, 0x2D, +0x20, 0x65, 0x61, 0x73, 0x74, 0x29, /* America/Panama */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x50, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -8291,13 +8290,13 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x45, 0x44, 0x6D, 0x90, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0F, 0x82, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x47, 0x24, 0x4F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x47, 0xF8, 0x9F, 0x20, 0x00, 0x00, 0x00, 0x00, 0x49, 0x04, 0x31, 0x90, 0x00, 0x00, 0x00, 0x00, 0x49, 0xD8, 0x81, 0x20, 0x00, -0x00, 0x00, 0x00, 0x4A, 0xE4, 0x13, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0xB3, 0xA0, 0x01, +0x00, 0x00, 0x00, 0x4A, 0xE4, 0x13, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x3D, 0xAB, 0x80, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x04, 0x05, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0xFF, 0xFF, 0x92, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x02, 0xFF, 0xFF, 0x92, 0x4C, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x0C, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x10, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x50, 0x44, 0x54, @@ -8517,9 +8516,9 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x50, 0x48, 0x50, 0x32, 0x01, 0x47, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x10, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0x9B, 0x80, 0x4C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x13, 0x4D, 0x6E, 0x40, 0x00, 0x00, 0x00, 0x00, 0x14, 0x34, 0x24, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x15, 0x23, 0xF9, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x16, 0x13, 0xDC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x17, 0x03, 0xCD, 0x90, 0x00, @@ -8536,17 +8535,49 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x2A, 0xC5, 0x07, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xB4, 0xF8, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xA4, 0xE9, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xDA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0xCB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0xBC, 0x90, 0x00, -0x00, 0x00, 0x00, 0x30, 0x64, 0xAD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x01, +0x00, 0x00, 0x00, 0x30, 0x64, 0xAD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x00, +0x00, 0x00, 0x00, 0x32, 0x72, 0xB4, 0x10, 0x00, 0x00, 0x00, 0x00, 0x33, 0x3D, 0xBB, 0x10, 0x00, +0x00, 0x00, 0x00, 0x34, 0x52, 0x96, 0x10, 0x00, 0x00, 0x00, 0x00, 0x35, 0x1D, 0x9D, 0x10, 0x00, +0x00, 0x00, 0x00, 0x36, 0x32, 0x78, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0xFD, 0x7F, 0x10, 0x00, +0x00, 0x00, 0x00, 0x38, 0x1B, 0x94, 0x90, 0x00, 0x00, 0x00, 0x00, 0x38, 0xDD, 0x61, 0x10, 0x00, +0x00, 0x00, 0x00, 0x39, 0xFB, 0x76, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xBD, 0x43, 0x10, 0x00, +0x00, 0x00, 0x00, 0x3B, 0xDB, 0x58, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xA6, 0x5F, 0x90, 0x00, +0x00, 0x00, 0x00, 0x3D, 0xBB, 0x3A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x86, 0x41, 0x90, 0x00, +0x00, 0x00, 0x00, 0x3F, 0x9B, 0x1C, 0x90, 0x00, 0x00, 0x00, 0x00, 0x40, 0x66, 0x23, 0x90, 0x00, +0x00, 0x00, 0x00, 0x41, 0x84, 0x39, 0x10, 0x00, 0x00, 0x00, 0x00, 0x42, 0x46, 0x05, 0x90, 0x00, +0x00, 0x00, 0x00, 0x43, 0x64, 0x1B, 0x10, 0x00, 0x00, 0x00, 0x00, 0x44, 0x25, 0xE7, 0x90, 0x00, +0x00, 0x00, 0x00, 0x45, 0x43, 0xFD, 0x10, 0x00, 0x00, 0x00, 0x00, 0x46, 0x05, 0xC9, 0x90, 0x00, +0x00, 0x00, 0x00, 0x47, 0x23, 0xDF, 0x10, 0x00, 0x00, 0x00, 0x00, 0x47, 0xEE, 0xE6, 0x10, 0x00, +0x00, 0x00, 0x00, 0x49, 0x03, 0xC1, 0x10, 0x00, 0x00, 0x00, 0x00, 0x49, 0xCE, 0xC8, 0x10, 0x00, +0x00, 0x00, 0x00, 0x4A, 0xE3, 0xA3, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4B, 0xAE, 0xAA, 0x10, 0x00, +0x00, 0x00, 0x00, 0x4C, 0xCC, 0xBF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x8E, 0x8C, 0x10, 0x00, +0x00, 0x00, 0x00, 0x4E, 0xAC, 0xA1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x6E, 0x6E, 0x10, 0x00, +0x00, 0x00, 0x00, 0x50, 0x8C, 0x83, 0x90, 0x00, 0x00, 0x00, 0x00, 0x51, 0x57, 0x8A, 0x90, 0x00, +0x00, 0x00, 0x00, 0x52, 0x6C, 0x65, 0x90, 0x00, 0x00, 0x00, 0x00, 0x53, 0x37, 0x6C, 0x90, 0x00, +0x00, 0x00, 0x00, 0x54, 0x4C, 0x47, 0x90, 0x00, 0x00, 0x00, 0x00, 0x55, 0x17, 0x4E, 0x90, 0x00, +0x00, 0x00, 0x00, 0x56, 0x2C, 0x29, 0x90, 0x00, 0x00, 0x00, 0x00, 0x56, 0xF7, 0x30, 0x90, 0x00, +0x00, 0x00, 0x00, 0x58, 0x15, 0x46, 0x10, 0x00, 0x00, 0x00, 0x00, 0x58, 0xD7, 0x12, 0x90, 0x00, +0x00, 0x00, 0x00, 0x59, 0xF5, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xB6, 0xF4, 0x90, 0x00, +0x00, 0x00, 0x00, 0x5B, 0xD5, 0x0A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5C, 0xA0, 0x11, 0x10, 0x00, +0x00, 0x00, 0x00, 0x5D, 0xB4, 0xEC, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x7F, 0xF3, 0x10, 0x00, +0x00, 0x00, 0x00, 0x5F, 0x94, 0xCE, 0x10, 0x00, 0x00, 0x00, 0x00, 0x60, 0x5F, 0xD5, 0x10, 0x00, +0x00, 0x00, 0x00, 0x61, 0x7D, 0xEA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x62, 0x3F, 0xB7, 0x10, 0x00, +0x00, 0x00, 0x00, 0x63, 0x5D, 0xCC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x64, 0x1F, 0x99, 0x10, 0x00, +0x00, 0x00, 0x00, 0x65, 0x3D, 0xAE, 0x90, 0x00, 0x00, 0x00, 0x00, 0x66, 0x08, 0xB5, 0x90, 0x01, 0x02, 0x01, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, -0x04, 0xFF, 0xFF, 0xEB, 0x68, 0x00, 0x00, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x04, 0xFF, 0xFF, 0xF1, -0xF0, 0x01, 0x08, 0xFF, 0xFF, 0xF1, 0xF0, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0C, 0x4C, -0x4D, 0x54, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x2D, 0x30, 0x31, 0x00, 0x2B, 0x30, 0x30, 0x00, 0x0A, -0x3C, 0x2D, 0x30, 0x31, 0x3E, 0x31, 0x3C, 0x2B, 0x30, 0x30, 0x3E, 0x2C, 0x4D, 0x33, 0x2E, 0x35, -0x2E, 0x30, 0x2F, 0x30, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x31, 0x0A, 0x00, -0xF4, 0xE0, 0xCD, 0x00, 0xF1, 0x23, 0xC5, 0x00, 0x00, 0x00, 0x1D, 0x53, 0x63, 0x6F, 0x72, 0x65, -0x73, 0x62, 0x79, 0x73, 0x75, 0x6E, 0x64, 0x2F, 0x49, 0x74, 0x74, 0x6F, 0x71, 0x71, 0x6F, 0x72, -0x74, 0x6F, 0x6F, 0x72, 0x6D, 0x69, 0x69, 0x74, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x02, 0xFF, 0xFF, 0xEB, 0x68, 0x00, 0x00, 0xFF, +0xFF, 0xE3, 0xE0, 0x00, 0x04, 0xFF, 0xFF, 0xF1, 0xF0, 0x01, 0x08, 0xFF, 0xFF, 0xF1, 0xF0, 0x00, +0x08, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x2D, +0x30, 0x31, 0x00, 0x2B, 0x30, 0x30, 0x00, 0x0A, 0x3C, 0x2D, 0x30, 0x32, 0x3E, 0x32, 0x3C, 0x2D, +0x30, 0x31, 0x3E, 0x2C, 0x4D, 0x33, 0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x2D, 0x31, 0x2C, 0x4D, 0x31, +0x30, 0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x30, 0x0A, 0x00, 0xF4, 0xE0, 0xCD, 0x00, 0xF1, 0x23, 0xC5, +0x00, 0x00, 0x00, 0x1D, 0x53, 0x63, 0x6F, 0x72, 0x65, 0x73, 0x62, 0x79, 0x73, 0x75, 0x6E, 0x64, +0x2F, 0x49, 0x74, 0x74, 0x6F, 0x71, 0x71, 0x6F, 0x72, 0x74, 0x6F, 0x6F, 0x72, 0x6D, 0x69, 0x69, +0x74, /* America/Shiprock */ 0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -8794,7 +8825,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x49, 0x0D, 0x10, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x49, 0xB3, 0x3B, 0xF4, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xEC, 0xF2, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0x58, 0x74, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xD6, 0x0F, 0x64, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x7C, 0x3A, 0x74, 0x00, -0x00, 0x00, 0x00, 0x4E, 0xB6, 0x0D, 0x48, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x00, 0x00, 0x00, 0x4E, 0xAF, 0x59, 0xA8, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x06, 0x05, 0x04, 0x03, 0x04, @@ -8806,16 +8837,15 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x03, 0x04, 0x07, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, -0x03, 0x04, 0xFF, 0xFF, 0xCE, 0x94, 0x00, 0x00, 0xFF, 0xFF, 0xDC, 0xA4, 0x01, 0x04, 0xFF, 0xFF, +0x03, 0x03, 0xFF, 0xFF, 0xCE, 0x94, 0x00, 0x00, 0xFF, 0xFF, 0xDC, 0xA4, 0x01, 0x04, 0xFF, 0xFF, 0xCE, 0x94, 0x00, 0x08, 0xFF, 0xFF, 0xDC, 0xD8, 0x01, 0x04, 0xFF, 0xFF, 0xCE, 0xC8, 0x00, 0x08, 0xFF, 0xFF, 0xDC, 0xD8, 0x01, 0x0C, 0xFF, 0xFF, 0xDC, 0xD8, 0x01, 0x10, 0xFF, 0xFF, 0xEA, 0xE8, 0x01, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x4E, 0x44, 0x54, 0x00, 0x4E, 0x53, 0x54, 0x00, 0x4E, 0x50, 0x54, 0x00, 0x4E, 0x57, 0x54, 0x00, 0x4E, 0x44, 0x44, 0x54, 0x00, 0x0A, 0x4E, 0x53, 0x54, 0x33, 0x3A, 0x33, 0x30, 0x4E, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xD1, 0xE8, 0xFA, 0x00, 0xC2, 0x38, 0x0D, 0x00, 0x00, -0x00, 0x22, 0x4E, 0x65, 0x77, 0x66, 0x6F, 0x75, 0x6E, 0x64, 0x6C, 0x61, 0x6E, 0x64, 0x3B, 0x20, -0x4C, 0x61, 0x62, 0x72, 0x61, 0x64, 0x6F, 0x72, 0x20, 0x28, 0x73, 0x6F, 0x75, 0x74, 0x68, 0x65, -0x61, 0x73, 0x74, 0x29, +0x00, 0x1B, 0x4E, 0x65, 0x77, 0x66, 0x6F, 0x75, 0x6E, 0x64, 0x6C, 0x61, 0x6E, 0x64, 0x2C, 0x20, +0x4C, 0x61, 0x62, 0x72, 0x61, 0x64, 0x6F, 0x72, 0x20, 0x28, 0x53, 0x45, 0x29, /* America/St_Kitts */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x4B, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -9104,13 +9134,13 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x45, 0x44, 0x6D, 0x90, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0F, 0x82, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x47, 0x24, 0x4F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x47, 0xF8, 0x9F, 0x20, 0x00, 0x00, 0x00, 0x00, 0x49, 0x04, 0x31, 0x90, 0x00, 0x00, 0x00, 0x00, 0x49, 0xD8, 0x81, 0x20, 0x00, -0x00, 0x00, 0x00, 0x4A, 0xE4, 0x13, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0xB3, 0xA0, 0x01, +0x00, 0x00, 0x00, 0x4A, 0xE4, 0x13, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x3D, 0xAB, 0x80, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x04, 0x05, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0xFF, 0xFF, 0x92, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x02, 0xFF, 0xFF, 0x92, 0x4C, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x0C, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x10, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x50, 0x44, 0x54, @@ -9228,8 +9258,8 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x45, 0x53, 0x54, 0x00, 0x45, 0x57, 0x54, 0x00, 0x45, 0x50, 0x54, 0x00, 0x0A, 0x45, 0x53, 0x54, 0x35, 0x45, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xCB, 0xEF, 0x08, 0x00, 0x99, 0x87, 0x62, 0x00, 0x00, 0x00, -0x1D, 0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x2D, 0x20, 0x4F, 0x4E, 0x2C, 0x20, 0x51, -0x43, 0x20, 0x28, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x61, 0x72, 0x65, 0x61, 0x73, 0x29, +0x1E, 0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x2D, 0x20, 0x4F, 0x4E, 0x20, 0x26, 0x20, +0x51, 0x43, 0x20, 0x28, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x61, 0x72, 0x65, 0x61, 0x73, 0x29, /* America/Tortola */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x56, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -9496,7 +9526,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x0A, 0x43, 0x53, 0x54, 0x36, 0x43, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xD5, 0x71, 0xED, 0x00, 0x7E, 0x6B, 0x47, 0x00, 0x00, 0x00, 0x1D, 0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, -0x6C, 0x20, 0x2D, 0x20, 0x4F, 0x4E, 0x20, 0x28, 0x77, 0x65, 0x73, 0x74, 0x29, 0x3B, 0x20, 0x4D, +0x6C, 0x20, 0x2D, 0x20, 0x4F, 0x4E, 0x20, 0x28, 0x77, 0x65, 0x73, 0x74, 0x29, 0x2C, 0x20, 0x4D, 0x61, 0x6E, 0x69, 0x74, 0x6F, 0x62, 0x61, /* America/Yakutat */ @@ -9632,18 +9662,21 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x1E, 0xCC, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xDA, 0x06, 0x20, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x8F, 0xCA, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xA9, 0x9C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x43, 0xCD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x58, 0x0A, 0x3B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xA4, 0x0F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xB9, 0x14, 0x40, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x8D, 0x1D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x5D, 0x96, 0x45, 0x30, 0x00, -0x00, 0x00, 0x00, 0x5E, 0x63, 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x78, 0xA0, 0x3C, 0x01, -0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x70, 0x80, 0x00, 0x04, 0x00, 0x00, 0x9A, 0xB0, 0x00, 0x08, 0x2D, 0x30, 0x30, -0x00, 0x2B, 0x30, 0x38, 0x00, 0x2B, 0x31, 0x31, 0x00, 0x0A, 0x3C, 0x2B, 0x31, 0x31, 0x3E, 0x2D, -0x31, 0x31, 0x0A, 0x00, 0x24, 0x30, 0x52, 0x01, 0xBB, 0x4B, 0x12, 0x00, 0x00, 0x00, 0x05, 0x43, -0x61, 0x73, 0x65, 0x79, +0x00, 0x00, 0x00, 0x5E, 0x63, 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x78, 0xA0, 0x3C, 0x00, +0x00, 0x00, 0x00, 0x60, 0x4C, 0xB7, 0x50, 0x00, 0x00, 0x00, 0x00, 0x61, 0x58, 0x82, 0x3C, 0x00, +0x00, 0x00, 0x00, 0x62, 0x2C, 0x99, 0x50, 0x00, 0x00, 0x00, 0x00, 0x63, 0x38, 0x64, 0x3C, 0x00, +0x00, 0x00, 0x00, 0x64, 0x08, 0xB1, 0x00, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x70, 0x80, 0x00, 0x04, 0x00, 0x00, 0x9A, 0xB0, 0x00, 0x08, 0x2D, 0x30, 0x30, 0x00, 0x2B, 0x30, +0x38, 0x00, 0x2B, 0x31, 0x31, 0x00, 0x0A, 0x3C, 0x2B, 0x30, 0x38, 0x3E, 0x2D, 0x38, 0x0A, 0x00, +0x24, 0x30, 0x52, 0x01, 0xBB, 0x4B, 0x12, 0x00, 0x00, 0x00, 0x05, 0x43, 0x61, 0x73, 0x65, 0x79, + /* Antarctica/Davis */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x41, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -9727,13 +9760,13 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x46, 0x05, 0x4B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x07, 0xB1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0xF7, 0xA2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0xE7, 0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0xD7, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xC7, 0x75, 0x00, 0x00, -0x00, 0x00, 0x00, 0x4D, 0x97, 0x48, 0x00, 0x01, 0x02, 0x01, 0x00, 0x01, 0x02, 0x01, 0x02, 0x01, +0x00, 0x00, 0x00, 0x4D, 0x1D, 0xD3, 0xD0, 0x01, 0x02, 0x01, 0x00, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, -0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0xA0, 0x00, 0x04, 0x00, 0x00, +0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0xA0, 0x00, 0x04, 0x00, 0x00, 0x9A, 0xB0, 0x01, 0x09, 0x2D, 0x30, 0x30, 0x00, 0x41, 0x45, 0x53, 0x54, 0x00, 0x41, 0x45, 0x44, 0x54, 0x00, 0x0A, 0x41, 0x45, 0x53, 0x54, 0x2D, 0x31, 0x30, 0x41, 0x45, 0x44, 0x54, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x31, 0x2E, 0x30, 0x2C, 0x4D, 0x34, 0x2E, 0x31, 0x2E, 0x30, 0x2F, 0x33, 0x0A, @@ -9964,14 +9997,12 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x00, -0x00, 0x00, 0x00, 0x42, 0x0D, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x46, 0x05, 0x90, 0x02, -0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x04, 0x00, 0x00, 0x00, -0x00, 0x00, 0x08, 0x2D, 0x30, 0x30, 0x00, 0x2B, 0x30, 0x32, 0x00, 0x2B, 0x30, 0x30, 0x00, 0x0A, -0x3C, 0x2B, 0x30, 0x30, 0x3E, 0x30, 0x3C, 0x2B, 0x30, 0x32, 0x3E, 0x2D, 0x32, 0x2C, 0x4D, 0x33, -0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x31, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x33, -0x0A, 0x00, 0x1B, 0x72, 0xCD, 0x01, 0x16, 0x86, 0xBC, 0x00, 0x00, 0x00, 0x05, 0x54, 0x72, 0x6F, -0x6C, 0x6C, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, +0x00, 0x00, 0x00, 0x42, 0x0D, 0x47, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x04, 0x2D, 0x30, 0x30, 0x00, 0x2B, 0x30, 0x30, 0x00, 0x0A, 0x3C, 0x2B, 0x30, +0x30, 0x3E, 0x30, 0x3C, 0x2B, 0x30, 0x32, 0x3E, 0x2D, 0x32, 0x2C, 0x4D, 0x33, 0x2E, 0x35, 0x2E, +0x30, 0x2F, 0x31, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x33, 0x0A, 0x00, 0x1B, +0x72, 0xCD, 0x01, 0x16, 0x86, 0xBC, 0x00, 0x00, 0x00, 0x05, 0x54, 0x72, 0x6F, 0x6C, 0x6C, /* Antarctica/Vostok */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x41, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -9979,11 +10010,13 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0xFF, -0xFF, 0xFF, 0xFF, 0xE9, 0x58, 0x89, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x54, 0x60, 0x00, 0x04, 0x2D, 0x30, 0x30, 0x00, 0x2B, 0x30, 0x36, 0x00, 0x0A, 0x3C, 0x2B, 0x30, -0x36, 0x3E, 0x2D, 0x36, 0x0A, 0x00, 0x11, 0xB3, 0x3F, 0x01, 0xB5, 0xC6, 0x4F, 0x00, 0x00, 0x00, -0x06, 0x56, 0x6F, 0x73, 0x74, 0x6F, 0x6B, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0xFF, +0xFF, 0xFF, 0xFF, 0xE9, 0x58, 0x89, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x4D, 0x39, 0x10, 0x00, +0x00, 0x00, 0x00, 0x2E, 0xB5, 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0x7F, 0x45, 0x30, 0x01, +0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x70, 0x00, 0x04, 0x00, +0x00, 0x46, 0x50, 0x00, 0x08, 0x2D, 0x30, 0x30, 0x00, 0x2B, 0x30, 0x37, 0x00, 0x2B, 0x30, 0x35, +0x00, 0x0A, 0x3C, 0x2B, 0x30, 0x35, 0x3E, 0x2D, 0x35, 0x0A, 0x00, 0x11, 0xB3, 0x3F, 0x01, 0xB5, +0xC6, 0x4F, 0x00, 0x00, 0x00, 0x06, 0x56, 0x6F, 0x73, 0x74, 0x6F, 0x6B, /* Arctic/Longyearbyen */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x53, 0x4A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -11078,7 +11111,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x15, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x36, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x15, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0xBD, 0x4A, 0xB0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x59, 0xCF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0xFA, 0xA6, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xC9, 0x38, 0x9C, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xCC, 0xE5, 0xEB, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xCD, 0xAC, 0xFE, 0x00, 0xFF, @@ -11205,10 +11238,35 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0xBC, 0x8B, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBD, 0x84, 0xE3, 0x70, 0x00, 0x00, 0x00, 0x00, 0xBE, 0x6B, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBF, 0x52, 0x50, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x4B, 0x8A, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x28, 0xF7, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xC1, 0x57, 0x2A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC2, 0xFF, 0x9F, 0x70, 0x00, -0x00, 0x00, 0x00, 0xC3, 0x2D, 0xD2, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0xCD, 0x0C, 0x70, 0x00, -0x00, 0x00, 0x00, 0xC5, 0x04, 0x79, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xA3, 0xB3, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xC6, 0xD1, 0xE6, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC7, 0x09, 0x37, 0x70, 0x02, +0x00, 0x00, 0x00, 0xC1, 0x57, 0x2A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x69, 0x91, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC2, 0x2B, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0xFF, 0x9F, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC3, 0x2D, 0xD2, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x49, 0x73, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC4, 0x0B, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0xCD, 0x0C, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC5, 0x04, 0x79, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC5, 0x29, 0x55, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC5, 0xF4, 0x6A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xA3, 0xB3, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xC6, 0xD1, 0xE6, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC7, 0x09, 0x37, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC7, 0xD4, 0x4C, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x71, 0x20, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xC8, 0xA8, 0x8E, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0xE9, 0x19, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC9, 0xB4, 0x2E, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCA, 0x47, 0xC8, 0x70, 0x00, +0x00, 0x00, 0x00, 0xCA, 0x7F, 0x35, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCA, 0xD2, 0x35, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xCB, 0x94, 0x10, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCC, 0x1E, 0x6F, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xCC, 0x4C, 0xA2, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCC, 0xB2, 0x17, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xCD, 0x73, 0xF2, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCD, 0xEB, 0xDC, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xCE, 0x23, 0x4A, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCE, 0x91, 0xF9, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xCF, 0x5D, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCF, 0xC2, 0x84, 0x70, 0x00, +0x00, 0x00, 0x00, 0xCF, 0xF0, 0xB7, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x71, 0xDB, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xD1, 0x3C, 0xF1, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD1, 0x99, 0x2B, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xD1, 0xC7, 0x5E, 0x80, 0x00, 0x00, 0x00, 0x00, 0xD2, 0x51, 0xBD, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xD3, 0x1C, 0xD3, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD3, 0x66, 0x98, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xD3, 0x9E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD4, 0x31, 0x9F, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xD4, 0xFC, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD5, 0x3D, 0x40, 0x70, 0x00, +0x00, 0x00, 0x00, 0xD5, 0x6B, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD6, 0x1A, 0xBC, 0x70, 0x00, +0x00, 0x00, 0x00, 0xD6, 0xDC, 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD7, 0x0A, 0xAD, 0x70, 0x00, +0x00, 0x00, 0x00, 0xD7, 0x42, 0x1A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xD7, 0xFA, 0x9E, 0x70, 0x00, +0x00, 0x00, 0x00, 0xD8, 0xBC, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0xE1, 0x54, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xD9, 0x18, 0xC2, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD9, 0xDA, 0x80, 0x70, 0x00, +0x00, 0x00, 0x00, 0xDA, 0xA5, 0x95, 0x80, 0x00, 0x00, 0x00, 0x00, 0xDA, 0xB7, 0xFC, 0x70, 0x00, +0x00, 0x00, 0x00, 0xDA, 0xE6, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDB, 0xBA, 0x62, 0x70, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, @@ -11225,13 +11283,16 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, -0x02, 0x01, 0x02, 0x00, 0x00, 0x20, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, -0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, -0x11, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x49, 0x44, -0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x0A, 0x45, 0x45, 0x54, 0x2D, 0x32, 0x45, 0x45, 0x53, 0x54, -0x2C, 0x4D, 0x33, 0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x34, -0x2E, 0x34, 0x2F, 0x35, 0x30, 0x0A, 0x00, 0xB9, 0x64, 0xF0, 0x01, 0x47, 0x40, 0x0A, 0x00, 0x00, -0x00, 0x0A, 0x47, 0x61, 0x7A, 0x61, 0x20, 0x53, 0x74, 0x72, 0x69, 0x70, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x20, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, +0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, 0x00, 0x1C, +0x20, 0x00, 0x11, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, +0x49, 0x44, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x0A, 0x45, 0x45, 0x54, 0x2D, 0x32, 0x45, 0x45, +0x53, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x2C, 0x4D, 0x31, 0x30, +0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x0A, 0x00, 0xB9, 0x64, 0xF0, 0x01, 0x47, 0x40, 0x0A, +0x00, 0x00, 0x00, 0x0A, 0x47, 0x61, 0x7A, 0x61, 0x20, 0x53, 0x74, 0x72, 0x69, 0x70, /* Asia/Harbin */ 0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -11267,7 +11328,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x15, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x38, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x15, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0xBD, 0x4A, 0x19, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x59, 0xCF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0xFA, 0xA6, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xC9, 0x38, 0x9C, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xCC, 0xE5, 0xEB, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xCD, 0xAC, 0xFE, 0x00, 0xFF, @@ -11395,10 +11456,35 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0xBC, 0x8B, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBD, 0x84, 0xE3, 0x70, 0x00, 0x00, 0x00, 0x00, 0xBE, 0x6B, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBF, 0x52, 0x50, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x4B, 0x8A, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x28, 0xF7, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xC1, 0x57, 0x2A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC2, 0xFF, 0x9F, 0x70, 0x00, -0x00, 0x00, 0x00, 0xC3, 0x2D, 0xD2, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0xCD, 0x0C, 0x70, 0x00, -0x00, 0x00, 0x00, 0xC5, 0x04, 0x79, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xA3, 0xB3, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xC6, 0xD1, 0xE6, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC7, 0x09, 0x37, 0x70, 0x02, +0x00, 0x00, 0x00, 0xC1, 0x57, 0x2A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x69, 0x91, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC2, 0x2B, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0xFF, 0x9F, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC3, 0x2D, 0xD2, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x49, 0x73, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC4, 0x0B, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0xCD, 0x0C, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC5, 0x04, 0x79, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC5, 0x29, 0x55, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC5, 0xF4, 0x6A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xA3, 0xB3, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xC6, 0xD1, 0xE6, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC7, 0x09, 0x37, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC7, 0xD4, 0x4C, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x71, 0x20, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xC8, 0xA8, 0x8E, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0xE9, 0x19, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC9, 0xB4, 0x2E, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCA, 0x47, 0xC8, 0x70, 0x00, +0x00, 0x00, 0x00, 0xCA, 0x7F, 0x35, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCA, 0xD2, 0x35, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xCB, 0x94, 0x10, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCC, 0x1E, 0x6F, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xCC, 0x4C, 0xA2, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCC, 0xB2, 0x17, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xCD, 0x73, 0xF2, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCD, 0xEB, 0xDC, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xCE, 0x23, 0x4A, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCE, 0x91, 0xF9, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xCF, 0x5D, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCF, 0xC2, 0x84, 0x70, 0x00, +0x00, 0x00, 0x00, 0xCF, 0xF0, 0xB7, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x71, 0xDB, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xD1, 0x3C, 0xF1, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD1, 0x99, 0x2B, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xD1, 0xC7, 0x5E, 0x80, 0x00, 0x00, 0x00, 0x00, 0xD2, 0x51, 0xBD, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xD3, 0x1C, 0xD3, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD3, 0x66, 0x98, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xD3, 0x9E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD4, 0x31, 0x9F, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xD4, 0xFC, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD5, 0x3D, 0x40, 0x70, 0x00, +0x00, 0x00, 0x00, 0xD5, 0x6B, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD6, 0x1A, 0xBC, 0x70, 0x00, +0x00, 0x00, 0x00, 0xD6, 0xDC, 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD7, 0x0A, 0xAD, 0x70, 0x00, +0x00, 0x00, 0x00, 0xD7, 0x42, 0x1A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xD7, 0xFA, 0x9E, 0x70, 0x00, +0x00, 0x00, 0x00, 0xD8, 0xBC, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0xE1, 0x54, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xD9, 0x18, 0xC2, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD9, 0xDA, 0x80, 0x70, 0x00, +0x00, 0x00, 0x00, 0xDA, 0xA5, 0x95, 0x80, 0x00, 0x00, 0x00, 0x00, 0xDA, 0xB7, 0xFC, 0x70, 0x00, +0x00, 0x00, 0x00, 0xDA, 0xE6, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDB, 0xBA, 0x62, 0x70, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, @@ -11415,13 +11501,16 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, -0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x20, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, -0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, 0x00, 0x1C, -0x20, 0x00, 0x11, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, -0x49, 0x44, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x0A, 0x45, 0x45, 0x54, 0x2D, 0x32, 0x45, 0x45, -0x53, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x2C, 0x4D, 0x31, 0x30, -0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x0A, 0x00, 0xB9, 0x71, 0xF5, 0x01, 0x48, 0x35, 0x7C, -0x00, 0x00, 0x00, 0x09, 0x57, 0x65, 0x73, 0x74, 0x20, 0x42, 0x61, 0x6E, 0x6B, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x20, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x2A, +0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, +0x00, 0x1C, 0x20, 0x00, 0x11, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, +0x54, 0x00, 0x49, 0x44, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x0A, 0x45, 0x45, 0x54, 0x2D, 0x32, +0x45, 0x45, 0x53, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x2C, 0x4D, +0x31, 0x30, 0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x0A, 0x00, 0xB9, 0x71, 0xF5, 0x01, 0x48, +0x35, 0x7C, 0x00, 0x00, 0x00, 0x09, 0x57, 0x65, 0x73, 0x74, 0x20, 0x42, 0x61, 0x6E, 0x6B, /* Asia/Ho_Chi_Minh */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x56, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -11700,7 +11789,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x57, 0x49, 0x54, 0x00, 0x0A, 0x57, 0x49, 0x54, 0x2D, 0x39, 0x0A, 0x00, 0x85, 0x76, 0xAA, 0x01, 0xE9, 0x59, 0x70, 0x00, 0x00, 0x00, 0x36, 0x4E, 0x65, 0x77, 0x20, 0x47, 0x75, 0x69, 0x6E, 0x65, 0x61, 0x20, 0x28, 0x57, 0x65, 0x73, 0x74, 0x20, 0x50, 0x61, 0x70, 0x75, 0x61, 0x20, 0x2F, 0x20, -0x49, 0x72, 0x69, 0x61, 0x6E, 0x20, 0x4A, 0x61, 0x79, 0x61, 0x29, 0x3B, 0x20, 0x4D, 0x61, 0x6C, +0x49, 0x72, 0x69, 0x61, 0x6E, 0x20, 0x4A, 0x61, 0x79, 0x61, 0x29, 0x2C, 0x20, 0x4D, 0x61, 0x6C, 0x75, 0x6B, 0x75, 0x73, 0x2F, 0x4D, 0x6F, 0x6C, 0x75, 0x63, 0x63, 0x61, 0x73, /* Asia/Jerusalem */ @@ -12244,10 +12333,10 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x10, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x4D, 0x54, 0x00, 0x2B, 0x30, 0x38, 0x00, 0x2B, 0x30, 0x39, 0x00, 0x57, 0x49, 0x54, 0x41, 0x00, 0x0A, 0x57, 0x49, 0x54, 0x41, 0x2D, 0x38, 0x0A, 0x00, 0x81, 0x85, 0x8D, 0x01, 0xC8, 0xD9, 0x1F, 0x00, 0x00, 0x00, 0x49, 0x42, 0x6F, 0x72, 0x6E, 0x65, 0x6F, -0x20, 0x28, 0x65, 0x61, 0x73, 0x74, 0x2C, 0x20, 0x73, 0x6F, 0x75, 0x74, 0x68, 0x29, 0x3B, 0x20, +0x20, 0x28, 0x65, 0x61, 0x73, 0x74, 0x2C, 0x20, 0x73, 0x6F, 0x75, 0x74, 0x68, 0x29, 0x2C, 0x20, 0x53, 0x75, 0x6C, 0x61, 0x77, 0x65, 0x73, 0x69, 0x2F, 0x43, 0x65, 0x6C, 0x65, 0x62, 0x65, 0x73, 0x2C, 0x20, 0x42, 0x61, 0x6C, 0x69, 0x2C, 0x20, 0x4E, 0x75, 0x73, 0x61, 0x20, 0x54, 0x65, 0x6E, -0x67, 0x61, 0x72, 0x72, 0x61, 0x3B, 0x20, 0x54, 0x69, 0x6D, 0x6F, 0x72, 0x20, 0x28, 0x77, 0x65, +0x67, 0x61, 0x72, 0x72, 0x61, 0x2C, 0x20, 0x54, 0x69, 0x6D, 0x6F, 0x72, 0x20, 0x28, 0x77, 0x65, 0x73, 0x74, 0x29, /* Asia/Manila */ @@ -12311,10 +12400,10 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x30, 0x64, 0x75, 0x50, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xAE, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x32, 0x4D, 0x91, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x33, 0x3D, 0x90, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x34, 0x2D, 0x73, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x35, 0x1D, 0x72, 0xE0, 0x00, -0x00, 0x00, 0x00, 0x36, 0x32, 0x78, 0x10, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x00, 0x00, 0x00, 0x35, 0xEB, 0x0E, 0xD0, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, -0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x1F, 0x48, 0x00, 0x00, 0x00, 0x00, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x01, 0x00, 0x00, 0x1F, 0x48, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x0A, 0x45, 0x45, 0x54, 0x2D, 0x32, 0x45, 0x45, 0x53, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x33, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x35, @@ -12917,7 +13006,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x2B, 0x31, 0x30, 0x00, 0x2B, 0x31, 0x32, 0x00, 0x2B, 0x31, 0x31, 0x00, 0x0A, 0x3C, 0x2B, 0x31, 0x31, 0x3E, 0x2D, 0x31, 0x31, 0x0A, 0x00, 0xF0, 0x46, 0x6A, 0x01, 0xFD, 0x36, 0x12, 0x00, 0x00, 0x00, 0x1E, 0x4D, 0x53, 0x4B, 0x2B, 0x30, 0x38, 0x20, 0x2D, 0x20, 0x53, 0x61, 0x6B, 0x68, 0x61, -0x20, 0x28, 0x45, 0x29, 0x3B, 0x20, 0x4E, 0x20, 0x4B, 0x75, 0x72, 0x69, 0x6C, 0x20, 0x49, 0x73, +0x20, 0x28, 0x45, 0x29, 0x2C, 0x20, 0x4E, 0x20, 0x4B, 0x75, 0x72, 0x69, 0x6C, 0x20, 0x49, 0x73, /* Asia/Taipei */ @@ -15882,7 +15971,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x49, 0x0D, 0x10, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x49, 0xB3, 0x3B, 0xF4, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xEC, 0xF2, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0x58, 0x74, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xD6, 0x0F, 0x64, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x7C, 0x3A, 0x74, 0x00, -0x00, 0x00, 0x00, 0x4E, 0xB6, 0x0D, 0x48, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x00, 0x00, 0x00, 0x4E, 0xAF, 0x59, 0xA8, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x06, 0x05, 0x04, 0x03, 0x04, @@ -15894,7 +15983,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x03, 0x04, 0x07, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, -0x03, 0x04, 0xFF, 0xFF, 0xCE, 0x94, 0x00, 0x00, 0xFF, 0xFF, 0xDC, 0xA4, 0x01, 0x04, 0xFF, 0xFF, +0x03, 0x03, 0xFF, 0xFF, 0xCE, 0x94, 0x00, 0x00, 0xFF, 0xFF, 0xDC, 0xA4, 0x01, 0x04, 0xFF, 0xFF, 0xCE, 0x94, 0x00, 0x08, 0xFF, 0xFF, 0xDC, 0xD8, 0x01, 0x04, 0xFF, 0xFF, 0xCE, 0xC8, 0x00, 0x08, 0xFF, 0xFF, 0xDC, 0xD8, 0x01, 0x0C, 0xFF, 0xFF, 0xDC, 0xD8, 0x01, 0x10, 0xFF, 0xFF, 0xEA, 0xE8, 0x01, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x4E, 0x44, 0x54, 0x00, 0x4E, 0x53, 0x54, 0x00, 0x4E, 0x50, @@ -17362,7 +17451,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x2B, 0xB4, 0xF8, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xC9, 0xD3, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xDA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0xA9, 0xB5, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0xBC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, 0x89, 0x97, 0x90, 0x00, -0x00, 0x00, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x00, 0x00, 0x00, 0x30, 0xE7, 0x24, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, @@ -17372,7 +17461,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x01, 0x02, 0x01, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, -0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xFF, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, +0x02, 0x01, 0x02, 0x01, 0x02, 0x02, 0xFF, 0xFF, 0xFF, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x0C, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x42, 0x53, 0x54, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x42, 0x44, 0x53, 0x54, 0x00, 0x0A, 0x47, 0x4D, 0x54, 0x30, 0x42, 0x53, 0x54, 0x2C, 0x4D, 0x33, @@ -17614,10 +17703,10 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x2D, 0x94, 0xB0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0x93, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0x92, 0x60, 0x00, 0x00, 0x00, 0x00, 0x30, 0x64, 0x75, 0x50, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xAE, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x32, 0x72, 0x7B, 0xD0, 0x00, -0x00, 0x00, 0x00, 0x33, 0x3D, 0xBB, 0x10, 0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x00, 0x00, 0x00, 0x32, 0xC9, 0x8C, 0xE0, 0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x03, 0x00, 0x00, 0x18, 0x78, 0x00, 0x00, 0x00, 0x00, 0x18, 0x78, 0x00, 0x04, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x08, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x42, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x0A, 0x45, 0x45, 0x54, 0x2D, 0x32, 0x45, 0x45, 0x53, @@ -17747,11 +17836,11 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x2C, 0xA4, 0xB1, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xB0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0x93, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0x92, 0x60, 0x00, 0x00, 0x00, 0x00, 0x30, 0x64, 0x75, 0x50, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xAE, 0xE0, 0x00, -0x00, 0x00, 0x00, 0x32, 0x72, 0x7B, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x33, 0x3D, 0xAD, 0x00, 0x01, +0x00, 0x00, 0x00, 0x32, 0x72, 0x7B, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x32, 0xC9, 0x8C, 0xE0, 0x01, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x06, 0x05, 0x06, 0x05, 0x06, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x03, 0x04, 0x03, 0x04, -0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x00, 0x00, 0x1B, 0x08, 0x00, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x04, 0x00, 0x00, 0x1B, 0x08, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xF4, 0x00, 0x04, 0x00, 0x00, 0x18, 0x78, 0x00, 0x08, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0C, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x11, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x15, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x19, 0x00, 0x00, 0x38, 0x40, 0x01, 0x1E, 0x00, 0x00, 0x2A, 0x30, 0x00, @@ -18065,7 +18154,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x2A, 0xE9, 0xF1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xB4, 0xF8, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xC9, 0xD3, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xDA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0xA9, 0xB5, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0xBC, 0x90, 0x00, -0x00, 0x00, 0x00, 0x30, 0x89, 0x97, 0x90, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x02, +0x00, 0x00, 0x00, 0x30, 0x89, 0x97, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, 0xE7, 0x24, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, @@ -18075,7 +18164,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x06, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, -0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xFD, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x02, 0xFF, 0xFF, 0xFD, 0x9F, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x10, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x15, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x42, 0x53, 0x54, 0x00, 0x47, @@ -18203,7 +18292,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x2B, 0xB4, 0xF8, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xC9, 0xD3, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xDA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0xA9, 0xB5, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0xBC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, 0x89, 0x97, 0x90, 0x00, -0x00, 0x00, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x00, 0x00, 0x00, 0x30, 0xE7, 0x24, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, @@ -18213,7 +18302,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x01, 0x02, 0x01, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, -0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xFB, 0xCD, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, +0x02, 0x01, 0x02, 0x01, 0x02, 0x02, 0xFF, 0xFF, 0xFB, 0xCD, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x0C, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x42, 0x53, 0x54, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x42, 0x44, 0x53, 0x54, 0x00, 0x0A, 0x47, 0x4D, 0x54, 0x30, 0x42, 0x53, 0x54, 0x2C, 0x4D, 0x33, @@ -18383,7 +18472,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x2A, 0xE9, 0xF1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xB4, 0xF8, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xC9, 0xD3, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xDA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0xA9, 0xB5, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0xBC, 0x90, 0x00, -0x00, 0x00, 0x00, 0x30, 0x89, 0x97, 0x90, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x02, +0x00, 0x00, 0x00, 0x30, 0x89, 0x97, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, 0xE7, 0x24, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, @@ -18393,7 +18482,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x06, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, -0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xFE, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x02, 0xFF, 0xFF, 0xFE, 0x06, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x10, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x15, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x42, 0x53, 0x54, 0x00, 0x47, @@ -18489,9 +18578,9 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x2C, 0xA4, 0xDB, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xCC, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0xBD, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0xAE, 0x80, 0x00, 0x00, 0x00, 0x00, 0x30, 0x64, 0x9F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xCB, 0x00, 0x00, -0x00, 0x00, 0x00, 0x32, 0x72, 0xB4, 0x10, 0x01, 0x02, 0x03, 0x05, 0x04, 0x05, 0x04, 0x03, 0x06, +0x00, 0x00, 0x00, 0x31, 0x96, 0x51, 0x50, 0x01, 0x02, 0x03, 0x05, 0x04, 0x05, 0x04, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, -0x03, 0x06, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x00, 0x00, +0x03, 0x06, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x07, 0x00, 0x00, 0x1C, 0x9C, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x9C, 0x00, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x08, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x0C, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x10, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x14, 0x00, 0x00, 0x38, 0x40, 0x01, 0x19, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x1D, 0x4C, 0x4D, @@ -18577,9 +18666,9 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x2C, 0xA4, 0xDB, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xCC, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0xBD, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0xAE, 0x80, 0x00, 0x00, 0x00, 0x00, 0x30, 0x64, 0x9F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xCB, 0x00, 0x00, -0x00, 0x00, 0x00, 0x32, 0x72, 0xB4, 0x10, 0x01, 0x02, 0x03, 0x05, 0x04, 0x05, 0x04, 0x03, 0x06, +0x00, 0x00, 0x00, 0x31, 0x96, 0x51, 0x50, 0x01, 0x02, 0x03, 0x05, 0x04, 0x05, 0x04, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, -0x03, 0x06, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x00, 0x00, +0x03, 0x06, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x07, 0x00, 0x00, 0x1C, 0x9C, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x9C, 0x00, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x08, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x0C, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x10, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x14, 0x00, 0x00, 0x38, 0x40, 0x01, 0x19, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x1D, 0x4C, 0x4D, @@ -18804,7 +18893,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x2B, 0xB4, 0xF8, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xC9, 0xD3, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xDA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0xA9, 0xB5, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0xBC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, 0x89, 0x97, 0x90, 0x00, -0x00, 0x00, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x00, 0x00, 0x00, 0x30, 0xE7, 0x24, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, @@ -18814,7 +18903,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x01, 0x02, 0x01, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, -0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xFF, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, +0x02, 0x01, 0x02, 0x01, 0x02, 0x02, 0xFF, 0xFF, 0xFF, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x0C, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x42, 0x53, 0x54, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x42, 0x44, 0x53, 0x54, 0x00, 0x0A, 0x47, 0x4D, 0x54, 0x30, 0x42, 0x53, 0x54, 0x2C, 0x4D, 0x33, @@ -19265,10 +19354,10 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x30, 0x64, 0x75, 0x50, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xAE, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x32, 0x4D, 0x91, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x33, 0x3D, 0x90, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x34, 0x2D, 0x73, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x35, 0x1D, 0x72, 0xE0, 0x00, -0x00, 0x00, 0x00, 0x36, 0x32, 0x78, 0x10, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x00, 0x00, 0x00, 0x35, 0xEB, 0x0E, 0xD0, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, -0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x1F, 0x48, 0x00, 0x00, 0x00, 0x00, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x01, 0x00, 0x00, 0x1F, 0x48, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x0A, 0x45, 0x45, 0x54, 0x2D, 0x32, 0x45, 0x45, 0x53, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x33, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x35, @@ -19507,10 +19596,10 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x33, 0x3D, 0xBB, 0x10, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0x96, 0x10, 0x00, 0x00, 0x00, 0x00, 0x35, 0x1D, 0x9D, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0x78, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0xFD, 0x7F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0x94, 0x90, 0x00, -0x00, 0x00, 0x00, 0x3A, 0xBD, 0x43, 0x10, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x04, 0x06, 0x05, +0x00, 0x00, 0x00, 0x3A, 0x50, 0xFD, 0xE0, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x04, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x04, 0x07, 0x04, 0x07, 0x04, 0x07, 0x04, 0x07, 0x04, 0x07, 0x04, 0x07, 0x04, 0x07, 0x04, 0x07, 0x04, 0x08, 0x03, 0x08, 0x03, 0x08, 0x03, 0x08, 0x03, 0x08, 0x03, 0x08, -0x03, 0x08, 0x03, 0x08, 0x03, 0x08, 0x03, 0x08, 0x03, 0x08, 0x03, 0x08, 0x00, 0x00, 0x16, 0xA2, +0x03, 0x08, 0x03, 0x08, 0x03, 0x08, 0x03, 0x08, 0x03, 0x08, 0x03, 0x03, 0x00, 0x00, 0x16, 0xA2, 0x00, 0x00, 0x00, 0x00, 0x16, 0xA2, 0x00, 0x04, 0x00, 0x00, 0x24, 0xB2, 0x01, 0x08, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x0C, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x10, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x14, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x18, 0x00, 0x00, 0x38, 0x40, 0x01, 0x1D, 0x00, 0x00, 0x2A, 0x30, @@ -19899,10 +19988,10 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x2D, 0x94, 0xB0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0x93, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0x92, 0x60, 0x00, 0x00, 0x00, 0x00, 0x30, 0x64, 0x75, 0x50, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xAE, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x32, 0x72, 0x7B, 0xD0, 0x00, -0x00, 0x00, 0x00, 0x33, 0x3D, 0xBB, 0x10, 0x01, 0x02, 0x03, 0x04, 0x03, 0x04, 0x03, 0x02, 0x05, +0x00, 0x00, 0x00, 0x32, 0xC9, 0x8C, 0xE0, 0x01, 0x02, 0x03, 0x04, 0x03, 0x04, 0x03, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, -0x02, 0x05, 0x02, 0x05, 0x00, 0x00, 0x15, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x68, 0x00, 0x04, +0x02, 0x05, 0x02, 0x02, 0x00, 0x00, 0x15, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x68, 0x00, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x08, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x10, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x15, 0x4C, 0x4D, 0x54, 0x00, 0x49, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x43, 0x45, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x53, @@ -19976,11 +20065,11 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x32, 0x72, 0xA6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x3D, 0xAD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x1D, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0x78, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0xFD, 0x7F, 0x10, 0x00, -0x00, 0x00, 0x00, 0x38, 0x1B, 0x94, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xA6, 0x5F, 0x90, 0x01, +0x00, 0x00, 0x00, 0x38, 0x1B, 0x94, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x74, 0x1C, 0x60, 0x01, 0x03, 0x02, 0x03, 0x01, 0x04, 0x05, 0x02, 0x03, 0x02, 0x03, 0x02, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x07, 0x04, 0x07, 0x04, 0x07, 0x04, 0x07, 0x04, 0x07, 0x04, 0x07, 0x04, 0x07, 0x04, 0x07, 0x04, 0x07, 0x04, 0x07, 0x04, -0x07, 0x04, 0x07, 0x00, 0x00, 0x17, 0x34, 0x00, 0x00, 0x00, 0x00, 0x17, 0x34, 0x00, 0x04, 0x00, +0x07, 0x04, 0x04, 0x00, 0x00, 0x17, 0x34, 0x00, 0x00, 0x00, 0x00, 0x17, 0x34, 0x00, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x08, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x11, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x15, 0x00, 0x00, 0x38, 0x40, 0x01, 0x19, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x1D, 0x4C, 0x4D, 0x54, 0x00, 0x54, 0x4D, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, 0x00, @@ -20066,11 +20155,11 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x2C, 0xA4, 0xB1, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xB0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0x93, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0x92, 0x60, 0x00, 0x00, 0x00, 0x00, 0x30, 0x64, 0x75, 0x50, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xAE, 0xE0, 0x00, -0x00, 0x00, 0x00, 0x32, 0x72, 0x7B, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x33, 0x3D, 0xAD, 0x00, 0x01, +0x00, 0x00, 0x00, 0x32, 0x72, 0x7B, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x32, 0xC9, 0x8C, 0xE0, 0x01, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x06, 0x05, 0x06, 0x05, 0x06, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x03, 0x04, 0x03, 0x04, -0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x00, 0x00, 0x1B, 0x08, 0x00, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x04, 0x00, 0x00, 0x1B, 0x08, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xF4, 0x00, 0x04, 0x00, 0x00, 0x18, 0x78, 0x00, 0x08, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0C, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x11, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x15, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x19, 0x00, 0x00, 0x38, 0x40, 0x01, 0x1E, 0x00, 0x00, 0x2A, 0x30, 0x00, @@ -20158,9 +20247,9 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x2C, 0xA4, 0xDB, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xCC, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0xBD, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0xAE, 0x80, 0x00, 0x00, 0x00, 0x00, 0x30, 0x64, 0x9F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xCB, 0x00, 0x00, -0x00, 0x00, 0x00, 0x32, 0x72, 0xB4, 0x10, 0x01, 0x02, 0x03, 0x05, 0x04, 0x05, 0x04, 0x03, 0x06, +0x00, 0x00, 0x00, 0x31, 0x96, 0x51, 0x50, 0x01, 0x02, 0x03, 0x05, 0x04, 0x05, 0x04, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, -0x03, 0x06, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x00, 0x00, +0x03, 0x06, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x07, 0x00, 0x00, 0x1C, 0x9C, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x9C, 0x00, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x08, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x0C, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x10, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x14, 0x00, 0x00, 0x38, 0x40, 0x01, 0x19, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x1D, 0x4C, 0x4D, @@ -20341,10 +20430,10 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x33, 0x3D, 0xAD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x1D, 0x9D, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0x78, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0xFD, 0x7F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0x94, 0x90, 0x00, -0x00, 0x00, 0x00, 0x3E, 0x86, 0x41, 0x90, 0x01, 0x02, 0x03, 0x04, 0x03, 0x05, 0x06, 0x03, 0x06, +0x00, 0x00, 0x00, 0x3E, 0x12, 0x13, 0x60, 0x01, 0x02, 0x03, 0x04, 0x03, 0x05, 0x06, 0x03, 0x06, 0x03, 0x06, 0x05, 0x07, 0x05, 0x07, 0x05, 0x07, 0x05, 0x07, 0x05, 0x07, 0x05, 0x07, 0x05, 0x07, 0x05, 0x07, 0x05, 0x08, 0x04, 0x08, 0x04, 0x08, 0x04, 0x08, 0x04, 0x08, 0x04, 0x08, 0x04, 0x08, -0x04, 0x08, 0x04, 0x08, 0x04, 0x06, 0x03, 0x06, 0x04, 0x08, 0x00, 0x00, 0x17, 0xBC, 0x00, 0x00, +0x04, 0x08, 0x04, 0x08, 0x04, 0x06, 0x03, 0x06, 0x04, 0x04, 0x00, 0x00, 0x17, 0xBC, 0x00, 0x00, 0x00, 0x00, 0x13, 0xB0, 0x00, 0x04, 0x00, 0x00, 0x16, 0x68, 0x00, 0x08, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x10, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x14, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x18, 0x00, 0x00, 0x38, 0x40, 0x01, 0x1D, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x21, @@ -20526,9 +20615,9 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x2C, 0xA4, 0xDB, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xCC, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0xBD, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0xAE, 0x80, 0x00, 0x00, 0x00, 0x00, 0x30, 0x64, 0x9F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xCB, 0x00, 0x00, -0x00, 0x00, 0x00, 0x32, 0x72, 0xB4, 0x10, 0x01, 0x02, 0x03, 0x05, 0x04, 0x05, 0x04, 0x03, 0x06, +0x00, 0x00, 0x00, 0x31, 0x96, 0x51, 0x50, 0x01, 0x02, 0x03, 0x05, 0x04, 0x05, 0x04, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, -0x03, 0x06, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x00, 0x00, +0x03, 0x06, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x07, 0x00, 0x00, 0x1C, 0x9C, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x9C, 0x00, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x08, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x0C, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x10, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x14, 0x00, 0x00, 0x38, 0x40, 0x01, 0x19, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x1D, 0x4C, 0x4D, @@ -20668,7 +20757,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x2B, 0xB4, 0xF8, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xC9, 0xD3, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xDA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0xA9, 0xB5, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0xBC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, 0x89, 0x97, 0x90, 0x00, -0x00, 0x00, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x00, 0x00, 0x00, 0x30, 0xE7, 0x24, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, @@ -20678,7 +20767,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x01, 0x02, 0x01, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, -0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xFF, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, +0x02, 0x01, 0x02, 0x01, 0x02, 0x02, 0xFF, 0xFF, 0xFF, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x0C, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x42, 0x53, 0x54, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x42, 0x44, 0x53, 0x54, 0x00, 0x0A, 0x47, 0x4D, 0x54, 0x30, 0x42, 0x53, 0x54, 0x2C, 0x4D, 0x33, @@ -20771,7 +20860,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x2B, 0xB4, 0xF8, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xC9, 0xD3, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xDA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0xA9, 0xB5, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0xBC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, 0x89, 0x97, 0x90, 0x00, -0x00, 0x00, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x00, 0x00, 0x00, 0x30, 0xE7, 0x24, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, @@ -20781,7 +20870,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x01, 0x02, 0x01, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, -0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xFF, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, +0x02, 0x01, 0x02, 0x01, 0x02, 0x02, 0xFF, 0xFF, 0xFF, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x0C, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x42, 0x53, 0x54, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x42, 0x44, 0x53, 0x54, 0x00, 0x0A, 0x47, 0x4D, 0x54, 0x30, 0x42, 0x53, 0x54, 0x2C, 0x4D, 0x33, @@ -21353,13 +21442,13 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x45, 0x44, 0x6D, 0x90, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0F, 0x82, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x47, 0x24, 0x4F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x47, 0xF8, 0x9F, 0x20, 0x00, 0x00, 0x00, 0x00, 0x49, 0x04, 0x31, 0x90, 0x00, 0x00, 0x00, 0x00, 0x49, 0xD8, 0x81, 0x20, 0x00, -0x00, 0x00, 0x00, 0x4A, 0xE4, 0x13, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0xB3, 0xA0, 0x01, +0x00, 0x00, 0x00, 0x4A, 0xE4, 0x13, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x3D, 0xAB, 0x80, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x04, 0x05, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0xFF, 0xFF, 0x92, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x02, 0xFF, 0xFF, 0x92, 0x4C, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x0C, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x10, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x50, 0x44, 0x54, @@ -22331,18 +22420,17 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1E, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x1A, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x36, 0x17, 0x88, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x41, 0xF8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x09, 0x0F, 0xCA, 0x68, 0x00, 0x00, 0x00, 0x00, 0x09, 0xB5, 0xE7, 0x68, 0x00, -0x00, 0x00, 0x00, 0x56, 0x0F, 0xE6, 0x68, 0x00, 0x00, 0x00, 0x00, 0x5D, 0x98, 0xAF, 0xF0, 0x01, -0x02, 0x03, 0x02, 0x04, 0x05, 0x00, 0x00, 0x9D, 0x78, 0x00, 0x00, 0x00, 0x00, 0x9D, 0x80, 0x00, +0x00, 0x00, 0x00, 0x56, 0x0F, 0xE6, 0x68, 0x00, 0x00, 0x00, 0x00, 0x5D, 0x18, 0xB2, 0x50, 0x01, +0x02, 0x03, 0x02, 0x04, 0x04, 0x00, 0x00, 0x9D, 0x78, 0x00, 0x00, 0x00, 0x00, 0x9D, 0x80, 0x00, 0x04, 0x00, 0x00, 0xA1, 0xB8, 0x00, 0x0A, 0x00, 0x00, 0xAF, 0xC8, 0x01, 0x10, 0x00, 0x00, 0x9A, -0xB0, 0x00, 0x16, 0x00, 0x00, 0xA8, 0xC0, 0x01, 0x1A, 0x4C, 0x4D, 0x54, 0x00, 0x2B, 0x31, 0x31, -0x31, 0x32, 0x00, 0x2B, 0x31, 0x31, 0x33, 0x30, 0x00, 0x2B, 0x31, 0x32, 0x33, 0x30, 0x00, 0x2B, -0x31, 0x31, 0x00, 0x2B, 0x31, 0x32, 0x00, 0x0A, 0x3C, 0x2B, 0x31, 0x31, 0x3E, 0x2D, 0x31, 0x31, -0x3C, 0x2B, 0x31, 0x32, 0x3E, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x31, 0x2E, 0x30, 0x2C, 0x4D, 0x34, -0x2E, 0x31, 0x2E, 0x30, 0x2F, 0x33, 0x0A, 0x00, 0x5D, 0x00, 0x98, 0x02, 0x12, 0xF4, 0x7A, 0x00, -0x00, 0x00, 0x00, +0xB0, 0x00, 0x16, 0x4C, 0x4D, 0x54, 0x00, 0x2B, 0x31, 0x31, 0x31, 0x32, 0x00, 0x2B, 0x31, 0x31, +0x33, 0x30, 0x00, 0x2B, 0x31, 0x32, 0x33, 0x30, 0x00, 0x2B, 0x31, 0x31, 0x00, 0x0A, 0x3C, 0x2B, +0x31, 0x31, 0x3E, 0x2D, 0x31, 0x31, 0x3C, 0x2B, 0x31, 0x32, 0x3E, 0x2C, 0x4D, 0x31, 0x30, 0x2E, +0x31, 0x2E, 0x30, 0x2C, 0x4D, 0x34, 0x2E, 0x31, 0x2E, 0x30, 0x2F, 0x33, 0x0A, 0x00, 0x5D, 0x00, +0x98, 0x02, 0x12, 0xF4, 0x7A, 0x00, 0x00, 0x00, 0x00, /* Pacific/Noumea */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x4E, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -23968,498 +24056,498 @@ const timelib_tzdb_index_entry timezonedb_idx_builtin[597] = { { (char*) "America/Detroit" , 0x013B17 }, { (char*) "America/Dominica" , 0x0143F2 }, { (char*) "America/Edmonton" , 0x014492 }, - { (char*) "America/Eirunepe" , 0x014DDF }, - { (char*) "America/El_Salvador" , 0x01507C }, - { (char*) "America/Ensenada" , 0x015168 }, - { (char*) "America/Fort_Nelson" , 0x015ABA }, - { (char*) "America/Fort_Wayne" , 0x01639A }, - { (char*) "America/Fortaleza" , 0x016A38 }, - { (char*) "America/Glace_Bay" , 0x016D28 }, - { (char*) "America/Godthab" , 0x0175DF }, - { (char*) "America/Goose_Bay" , 0x017D5A }, - { (char*) "America/Grand_Turk" , 0x018A10 }, - { (char*) "America/Grenada" , 0x019146 }, - { (char*) "America/Guadeloupe" , 0x0191E6 }, - { (char*) "America/Guatemala" , 0x019286 }, - { (char*) "America/Guayaquil" , 0x0193AA }, - { (char*) "America/Guyana" , 0x0194B0 }, - { (char*) "America/Halifax" , 0x0195B4 }, - { (char*) "America/Havana" , 0x01A33E }, - { (char*) "America/Hermosillo" , 0x01ACBA }, - { (char*) "America/Indiana/Indianapolis" , 0x01AE94 }, - { (char*) "America/Indiana/Knox" , 0x01B54B }, - { (char*) "America/Indiana/Marengo" , 0x01BEF8 }, - { (char*) "America/Indiana/Petersburg" , 0x01C5E5 }, - { (char*) "America/Indiana/Tell_City" , 0x01CD84 }, - { (char*) "America/Indiana/Vevay" , 0x01D448 }, - { (char*) "America/Indiana/Vincennes" , 0x01DA04 }, - { (char*) "America/Indiana/Winamac" , 0x01E0DA }, - { (char*) "America/Indianapolis" , 0x01E7FE }, - { (char*) "America/Inuvik" , 0x01EE9C }, - { (char*) "America/Iqaluit" , 0x01F6D6 }, - { (char*) "America/Jamaica" , 0x01FF95 }, - { (char*) "America/Jujuy" , 0x020183 }, - { (char*) "America/Juneau" , 0x020599 }, - { (char*) "America/Kentucky/Louisville" , 0x020EEA }, - { (char*) "America/Kentucky/Monticello" , 0x0219F8 }, - { (char*) "America/Knox_IN" , 0x022358 }, - { (char*) "America/Kralendijk" , 0x022CF0 }, - { (char*) "America/La_Paz" , 0x022DF2 }, - { (char*) "America/Lima" , 0x022ED8 }, - { (char*) "America/Los_Angeles" , 0x02306C }, - { (char*) "America/Louisville" , 0x023BA3 }, - { (char*) "America/Lower_Princes" , 0x024693 }, - { (char*) "America/Maceio" , 0x024795 }, - { (char*) "America/Managua" , 0x024A8B }, - { (char*) "America/Manaus" , 0x024C45 }, - { (char*) "America/Marigot" , 0x024EAE }, - { (char*) "America/Martinique" , 0x024FB0 }, - { (char*) "America/Matamoros" , 0x0250A4 }, - { (char*) "America/Mazatlan" , 0x025666 }, - { (char*) "America/Mendoza" , 0x025B0C }, - { (char*) "America/Menominee" , 0x025F3E }, - { (char*) "America/Merida" , 0x02684B }, - { (char*) "America/Metlakatla" , 0x026C54 }, - { (char*) "America/Mexico_City" , 0x027206 }, - { (char*) "America/Miquelon" , 0x0276E6 }, - { (char*) "America/Moncton" , 0x027D66 }, - { (char*) "America/Monterrey" , 0x0289DC }, - { (char*) "America/Montevideo" , 0x028DF2 }, - { (char*) "America/Montreal" , 0x0293D6 }, - { (char*) "America/Montserrat" , 0x02A188 }, - { (char*) "America/Nassau" , 0x02A228 }, - { (char*) "America/New_York" , 0x02AB88 }, - { (char*) "America/Nipigon" , 0x02B988 }, - { (char*) "America/Nome" , 0x02C73A }, - { (char*) "America/Noronha" , 0x02D092 }, - { (char*) "America/North_Dakota/Beulah" , 0x02D36C }, - { (char*) "America/North_Dakota/Center" , 0x02DCE9 }, - { (char*) "America/North_Dakota/New_Salem" , 0x02E666 }, - { (char*) "America/Nuuk" , 0x02EFE9 }, - { (char*) "America/Ojinaga" , 0x02F775 }, - { (char*) "America/Panama" , 0x02FD91 }, - { (char*) "America/Pangnirtung" , 0x02FE53 }, - { (char*) "America/Paramaribo" , 0x0306F9 }, - { (char*) "America/Phoenix" , 0x0307FD }, - { (char*) "America/Port-au-Prince" , 0x030989 }, - { (char*) "America/Port_of_Spain" , 0x030F2F }, - { (char*) "America/Porto_Acre" , 0x030FCF }, - { (char*) "America/Porto_Velho" , 0x031241 }, - { (char*) "America/Puerto_Rico" , 0x031487 }, - { (char*) "America/Punta_Arenas" , 0x031589 }, - { (char*) "America/Rainy_River" , 0x031D17 }, - { (char*) "America/Rankin_Inlet" , 0x032857 }, - { (char*) "America/Recife" , 0x03308B }, - { (char*) "America/Regina" , 0x03335F }, - { (char*) "America/Resolute" , 0x033754 }, - { (char*) "America/Rio_Branco" , 0x033F89 }, - { (char*) "America/Rosario" , 0x0341FF }, - { (char*) "America/Santa_Isabel" , 0x034631 }, - { (char*) "America/Santarem" , 0x034F83 }, - { (char*) "America/Santiago" , 0x0351E6 }, - { (char*) "America/Santo_Domingo" , 0x035BD2 }, - { (char*) "America/Sao_Paulo" , 0x035DA8 }, - { (char*) "America/Scoresbysund" , 0x036380 }, - { (char*) "America/Shiprock" , 0x036B17 }, - { (char*) "America/Sitka" , 0x0374BF }, - { (char*) "America/St_Barthelemy" , 0x037DF7 }, - { (char*) "America/St_Johns" , 0x037EF9 }, - { (char*) "America/St_Kitts" , 0x038D6E }, - { (char*) "America/St_Lucia" , 0x038E0E }, - { (char*) "America/St_Thomas" , 0x038ED0 }, - { (char*) "America/St_Vincent" , 0x038F70 }, - { (char*) "America/Swift_Current" , 0x039032 }, - { (char*) "America/Tegucigalpa" , 0x039280 }, - { (char*) "America/Thule" , 0x039388 }, - { (char*) "America/Thunder_Bay" , 0x039980 }, - { (char*) "America/Tijuana" , 0x03A732 }, - { (char*) "America/Toronto" , 0x03B093 }, - { (char*) "America/Tortola" , 0x03BE62 }, - { (char*) "America/Vancouver" , 0x03BF02 }, - { (char*) "America/Virgin" , 0x03CA73 }, - { (char*) "America/Whitehorse" , 0x03CB75 }, - { (char*) "America/Winnipeg" , 0x03D1E1 }, - { (char*) "America/Yakutat" , 0x03DD3E }, - { (char*) "America/Yellowknife" , 0x03E65B }, - { (char*) "Antarctica/Casey" , 0x03EF83 }, - { (char*) "Antarctica/Davis" , 0x03F106 }, - { (char*) "Antarctica/DumontDUrville" , 0x03F232 }, - { (char*) "Antarctica/Macquarie" , 0x03F302 }, - { (char*) "Antarctica/Mawson" , 0x03FBF2 }, - { (char*) "Antarctica/McMurdo" , 0x03FCBD }, - { (char*) "Antarctica/Palmer" , 0x0404B8 }, - { (char*) "Antarctica/Rothera" , 0x040A46 }, - { (char*) "Antarctica/South_Pole" , 0x040AEF }, - { (char*) "Antarctica/Syowa" , 0x041480 }, - { (char*) "Antarctica/Troll" , 0x041528 }, - { (char*) "Antarctica/Vostok" , 0x0419B5 }, - { (char*) "Arctic/Longyearbyen" , 0x041A5E }, - { (char*) "Asia/Aden" , 0x042364 }, - { (char*) "Asia/Almaty" , 0x042407 }, - { (char*) "Asia/Amman" , 0x0427FC }, - { (char*) "Asia/Anadyr" , 0x042DA1 }, - { (char*) "Asia/Aqtau" , 0x043256 }, - { (char*) "Asia/Aqtobe" , 0x043640 }, - { (char*) "Asia/Ashgabat" , 0x043A3E }, - { (char*) "Asia/Ashkhabad" , 0x043CA7 }, - { (char*) "Asia/Atyrau" , 0x043F10 }, - { (char*) "Asia/Baghdad" , 0x044302 }, - { (char*) "Asia/Bahrain" , 0x0446D7 }, - { (char*) "Asia/Baku" , 0x0447C2 }, - { (char*) "Asia/Bangkok" , 0x044C8B }, - { (char*) "Asia/Barnaul" , 0x044D50 }, - { (char*) "Asia/Beirut" , 0x045221 }, - { (char*) "Asia/Bishkek" , 0x045A97 }, - { (char*) "Asia/Brunei" , 0x045E6C }, - { (char*) "Asia/Calcutta" , 0x045F35 }, - { (char*) "Asia/Chita" , 0x04605E }, - { (char*) "Asia/Choibalsan" , 0x046535 }, - { (char*) "Asia/Chongqing" , 0x0468FA }, - { (char*) "Asia/Chungking" , 0x046B37 }, - { (char*) "Asia/Colombo" , 0x046D74 }, - { (char*) "Asia/Dacca" , 0x046EE6 }, - { (char*) "Asia/Damascus" , 0x047035 }, - { (char*) "Asia/Dhaka" , 0x047792 }, - { (char*) "Asia/Dili" , 0x0478E1 }, - { (char*) "Asia/Dubai" , 0x0479C2 }, - { (char*) "Asia/Dushanbe" , 0x047A65 }, - { (char*) "Asia/Famagusta" , 0x047CB2 }, - { (char*) "Asia/Gaza" , 0x0484B9 }, - { (char*) "Asia/Harbin" , 0x0493AF }, - { (char*) "Asia/Hebron" , 0x0495EC }, - { (char*) "Asia/Ho_Chi_Minh" , 0x04A4FD }, - { (char*) "Asia/Hong_Kong" , 0x04A65A }, - { (char*) "Asia/Hovd" , 0x04AB37 }, - { (char*) "Asia/Irkutsk" , 0x04AEDB }, - { (char*) "Asia/Istanbul" , 0x04B3CE }, - { (char*) "Asia/Jakarta" , 0x04BB67 }, - { (char*) "Asia/Jayapura" , 0x04BCFF }, - { (char*) "Asia/Jerusalem" , 0x04BE1E }, - { (char*) "Asia/Kabul" , 0x04C77E }, - { (char*) "Asia/Kamchatka" , 0x04C84C }, - { (char*) "Asia/Karachi" , 0x04CCEA }, - { (char*) "Asia/Kashgar" , 0x04CE71 }, - { (char*) "Asia/Kathmandu" , 0x04CF14 }, - { (char*) "Asia/Katmandu" , 0x04CFE6 }, - { (char*) "Asia/Khandyga" , 0x04D0B8 }, - { (char*) "Asia/Kolkata" , 0x04D5CB }, - { (char*) "Asia/Krasnoyarsk" , 0x04D6F4 }, - { (char*) "Asia/Kuala_Lumpur" , 0x04DBC2 }, - { (char*) "Asia/Kuching" , 0x04DD73 }, - { (char*) "Asia/Kuwait" , 0x04DF62 }, - { (char*) "Asia/Macao" , 0x04E005 }, - { (char*) "Asia/Macau" , 0x04E4DC }, - { (char*) "Asia/Magadan" , 0x04E9B3 }, - { (char*) "Asia/Makassar" , 0x04EE87 }, - { (char*) "Asia/Manila" , 0x04EFDA }, - { (char*) "Asia/Muscat" , 0x04F12E }, - { (char*) "Asia/Nicosia" , 0x04F1D1 }, - { (char*) "Asia/Novokuznetsk" , 0x04F9BD }, - { (char*) "Asia/Novosibirsk" , 0x04FE59 }, - { (char*) "Asia/Omsk" , 0x050330 }, - { (char*) "Asia/Oral" , 0x0507F2 }, - { (char*) "Asia/Phnom_Penh" , 0x050BEC }, - { (char*) "Asia/Pontianak" , 0x050D11 }, - { (char*) "Asia/Pyongyang" , 0x050E94 }, - { (char*) "Asia/Qatar" , 0x050F8D }, - { (char*) "Asia/Qostanay" , 0x051052 }, - { (char*) "Asia/Qyzylorda" , 0x05145D }, - { (char*) "Asia/Rangoon" , 0x051879 }, - { (char*) "Asia/Riyadh" , 0x051983 }, - { (char*) "Asia/Saigon" , 0x051A26 }, - { (char*) "Asia/Sakhalin" , 0x051B83 }, - { (char*) "Asia/Samarkand" , 0x05204B }, - { (char*) "Asia/Seoul" , 0x05229B }, - { (char*) "Asia/Shanghai" , 0x052510 }, - { (char*) "Asia/Singapore" , 0x052759 }, - { (char*) "Asia/Srednekolymsk" , 0x0528F6 }, - { (char*) "Asia/Taipei" , 0x052DCA }, - { (char*) "Asia/Tashkent" , 0x0530CF }, - { (char*) "Asia/Tbilisi" , 0x05332D }, - { (char*) "Asia/Tehran" , 0x053736 }, - { (char*) "Asia/Tel_Aviv" , 0x053C22 }, - { (char*) "Asia/Thimbu" , 0x054582 }, - { (char*) "Asia/Thimphu" , 0x05464B }, - { (char*) "Asia/Tokyo" , 0x054714 }, - { (char*) "Asia/Tomsk" , 0x054855 }, - { (char*) "Asia/Ujung_Pandang" , 0x054D26 }, - { (char*) "Asia/Ulaanbaatar" , 0x054E30 }, - { (char*) "Asia/Ulan_Bator" , 0x0551B9 }, - { (char*) "Asia/Urumqi" , 0x055532 }, - { (char*) "Asia/Ust-Nera" , 0x0555E2 }, - { (char*) "Asia/Vientiane" , 0x055AD8 }, - { (char*) "Asia/Vladivostok" , 0x055C19 }, - { (char*) "Asia/Yakutsk" , 0x0560E2 }, - { (char*) "Asia/Yangon" , 0x0565AA }, - { (char*) "Asia/Yekaterinburg" , 0x0566B4 }, - { (char*) "Asia/Yerevan" , 0x056B9B }, - { (char*) "Atlantic/Azores" , 0x057018 }, - { (char*) "Atlantic/Bermuda" , 0x057DD4 }, - { (char*) "Atlantic/Canary" , 0x05873C }, - { (char*) "Atlantic/Cape_Verde" , 0x058EBF }, - { (char*) "Atlantic/Faeroe" , 0x058FCB }, - { (char*) "Atlantic/Faroe" , 0x0596EE }, - { (char*) "Atlantic/Jan_Mayen" , 0x059E11 }, - { (char*) "Atlantic/Madeira" , 0x05A717 }, - { (char*) "Atlantic/Reykjavik" , 0x05B4E1 }, - { (char*) "Atlantic/South_Georgia" , 0x05B977 }, - { (char*) "Atlantic/St_Helena" , 0x05BA19 }, - { (char*) "Atlantic/Stanley" , 0x05BADB }, - { (char*) "Australia/ACT" , 0x05BF97 }, - { (char*) "Australia/Adelaide" , 0x05C831 }, - { (char*) "Australia/Brisbane" , 0x05D0EC }, - { (char*) "Australia/Broken_Hill" , 0x05D2B2 }, - { (char*) "Australia/Canberra" , 0x05DB8F }, - { (char*) "Australia/Currie" , 0x05E429 }, - { (char*) "Australia/Darwin" , 0x05ED6B }, - { (char*) "Australia/Eucla" , 0x05EECE }, - { (char*) "Australia/Hobart" , 0x05F0BB }, - { (char*) "Australia/LHI" , 0x05FA05 }, - { (char*) "Australia/Lindeman" , 0x060147 }, - { (char*) "Australia/Lord_Howe" , 0x06034D }, - { (char*) "Australia/Melbourne" , 0x060A9F }, - { (char*) "Australia/North" , 0x061341 }, - { (char*) "Australia/NSW" , 0x061492 }, - { (char*) "Australia/Perth" , 0x061D2C }, - { (char*) "Australia/Queensland" , 0x061F14 }, - { (char*) "Australia/South" , 0x0620C3 }, - { (char*) "Australia/Sydney" , 0x06296F }, - { (char*) "Australia/Tasmania" , 0x063225 }, - { (char*) "Australia/Victoria" , 0x063B67 }, - { (char*) "Australia/West" , 0x064401 }, - { (char*) "Australia/Yancowinna" , 0x0645CB }, - { (char*) "Brazil/Acre" , 0x064E8C }, - { (char*) "Brazil/DeNoronha" , 0x0650FE }, - { (char*) "Brazil/East" , 0x0653C8 }, - { (char*) "Brazil/West" , 0x06596A }, - { (char*) "Canada/Atlantic" , 0x065BC4 }, - { (char*) "Canada/Central" , 0x066930 }, - { (char*) "Canada/Eastern" , 0x067470 }, - { (char*) "Canada/Mountain" , 0x068222 }, - { (char*) "Canada/Newfoundland" , 0x068B4A }, - { (char*) "Canada/Pacific" , 0x06999D }, - { (char*) "Canada/Saskatchewan" , 0x06A4F5 }, - { (char*) "Canada/Yukon" , 0x06A8D5 }, - { (char*) "CET" , 0x06AF2F }, - { (char*) "Chile/Continental" , 0x06B769 }, - { (char*) "Chile/EasterIsland" , 0x06C148 }, - { (char*) "CST6CDT" , 0x06C9FF }, - { (char*) "Cuba" , 0x06D311 }, - { (char*) "EET" , 0x06DC8D }, - { (char*) "Egypt" , 0x06E40D }, - { (char*) "Eire" , 0x06ED78 }, - { (char*) "EST" , 0x06FB28 }, - { (char*) "EST5EDT" , 0x06FBA6 }, - { (char*) "Etc/GMT" , 0x0704B8 }, - { (char*) "Etc/GMT+0" , 0x070536 }, - { (char*) "Etc/GMT+1" , 0x0705B4 }, - { (char*) "Etc/GMT+10" , 0x070634 }, - { (char*) "Etc/GMT+11" , 0x0706B5 }, - { (char*) "Etc/GMT+12" , 0x070736 }, - { (char*) "Etc/GMT+2" , 0x0707B7 }, - { (char*) "Etc/GMT+3" , 0x070837 }, - { (char*) "Etc/GMT+4" , 0x0708B7 }, - { (char*) "Etc/GMT+5" , 0x070937 }, - { (char*) "Etc/GMT+6" , 0x0709B7 }, - { (char*) "Etc/GMT+7" , 0x070A37 }, - { (char*) "Etc/GMT+8" , 0x070AB7 }, - { (char*) "Etc/GMT+9" , 0x070B37 }, - { (char*) "Etc/GMT-0" , 0x070BB7 }, - { (char*) "Etc/GMT-1" , 0x070C35 }, - { (char*) "Etc/GMT-10" , 0x070CB6 }, - { (char*) "Etc/GMT-11" , 0x070D38 }, - { (char*) "Etc/GMT-12" , 0x070DBA }, - { (char*) "Etc/GMT-13" , 0x070E3C }, - { (char*) "Etc/GMT-14" , 0x070EBE }, - { (char*) "Etc/GMT-2" , 0x070F40 }, - { (char*) "Etc/GMT-3" , 0x070FC1 }, - { (char*) "Etc/GMT-4" , 0x071042 }, - { (char*) "Etc/GMT-5" , 0x0710C3 }, - { (char*) "Etc/GMT-6" , 0x071144 }, - { (char*) "Etc/GMT-7" , 0x0711C5 }, - { (char*) "Etc/GMT-8" , 0x071246 }, - { (char*) "Etc/GMT-9" , 0x0712C7 }, - { (char*) "Etc/GMT0" , 0x071348 }, - { (char*) "Etc/Greenwich" , 0x0713C6 }, - { (char*) "Etc/UCT" , 0x071444 }, - { (char*) "Etc/Universal" , 0x0714C2 }, - { (char*) "Etc/UTC" , 0x071540 }, - { (char*) "Etc/Zulu" , 0x0715BE }, - { (char*) "Europe/Amsterdam" , 0x07163C }, - { (char*) "Europe/Andorra" , 0x0721A6 }, - { (char*) "Europe/Astrakhan" , 0x072880 }, - { (char*) "Europe/Athens" , 0x072D1D }, - { (char*) "Europe/Belfast" , 0x0735FF }, - { (char*) "Europe/Belgrade" , 0x07445B }, - { (char*) "Europe/Berlin" , 0x074BE7 }, - { (char*) "Europe/Bratislava" , 0x0754FC }, - { (char*) "Europe/Brussels" , 0x075E05 }, - { (char*) "Europe/Bucharest" , 0x076986 }, - { (char*) "Europe/Budapest" , 0x07721A }, - { (char*) "Europe/Busingen" , 0x077B66 }, - { (char*) "Europe/Chisinau" , 0x0782EF }, - { (char*) "Europe/Copenhagen" , 0x078C51 }, - { (char*) "Europe/Dublin" , 0x0794B6 }, - { (char*) "Europe/Gibraltar" , 0x07A266 }, - { (char*) "Europe/Guernsey" , 0x07AE6E }, - { (char*) "Europe/Helsinki" , 0x07BD0E }, - { (char*) "Europe/Isle_of_Man" , 0x07C486 }, - { (char*) "Europe/Istanbul" , 0x07D2D2 }, - { (char*) "Europe/Jersey" , 0x07DA6B }, - { (char*) "Europe/Kaliningrad" , 0x07E90B }, - { (char*) "Europe/Kiev" , 0x07EF00 }, - { (char*) "Europe/Kirov" , 0x07F754 }, - { (char*) "Europe/Kyiv" , 0x07FC0F }, - { (char*) "Europe/Lisbon" , 0x080472 }, - { (char*) "Europe/Ljubljana" , 0x08123A }, - { (char*) "Europe/London" , 0x0819C6 }, - { (char*) "Europe/Luxembourg" , 0x082822 }, - { (char*) "Europe/Madrid" , 0x0833B0 }, - { (char*) "Europe/Malta" , 0x083E02 }, - { (char*) "Europe/Mariehamn" , 0x08484A }, - { (char*) "Europe/Minsk" , 0x084FC2 }, - { (char*) "Europe/Monaco" , 0x0854E9 }, - { (char*) "Europe/Moscow" , 0x086075 }, - { (char*) "Europe/Nicosia" , 0x086694 }, - { (char*) "Europe/Oslo" , 0x086E72 }, - { (char*) "Europe/Paris" , 0x087732 }, - { (char*) "Europe/Podgorica" , 0x0882D0 }, - { (char*) "Europe/Prague" , 0x088A5C }, - { (char*) "Europe/Riga" , 0x089365 }, - { (char*) "Europe/Rome" , 0x089C07 }, - { (char*) "Europe/Samara" , 0x08A664 }, - { (char*) "Europe/San_Marino" , 0x08AB3A }, - { (char*) "Europe/Sarajevo" , 0x08B597 }, - { (char*) "Europe/Saratov" , 0x08BD23 }, - { (char*) "Europe/Simferopol" , 0x08C1D0 }, - { (char*) "Europe/Skopje" , 0x08C79F }, - { (char*) "Europe/Sofia" , 0x08CF2B }, - { (char*) "Europe/Stockholm" , 0x08D754 }, - { (char*) "Europe/Tallinn" , 0x08DED5 }, - { (char*) "Europe/Tirane" , 0x08E745 }, - { (char*) "Europe/Tiraspol" , 0x08EF75 }, - { (char*) "Europe/Ulyanovsk" , 0x08F8D7 }, - { (char*) "Europe/Uzhgorod" , 0x08FDDA }, - { (char*) "Europe/Vaduz" , 0x09062E }, - { (char*) "Europe/Vatican" , 0x090D9A }, - { (char*) "Europe/Vienna" , 0x0917F7 }, - { (char*) "Europe/Vilnius" , 0x09209B }, - { (char*) "Europe/Volgograd" , 0x092919 }, - { (char*) "Europe/Warsaw" , 0x092DE0 }, - { (char*) "Europe/Zagreb" , 0x09384A }, - { (char*) "Europe/Zaporozhye" , 0x093FD6 }, - { (char*) "Europe/Zurich" , 0x09482A }, - { (char*) "Factory" , 0x094FAB }, - { (char*) "GB" , 0x09502B }, - { (char*) "GB-Eire" , 0x095E87 }, - { (char*) "GMT" , 0x096CE3 }, - { (char*) "GMT+0" , 0x096D61 }, - { (char*) "GMT-0" , 0x096DDF }, - { (char*) "GMT0" , 0x096E5D }, - { (char*) "Greenwich" , 0x096EDB }, - { (char*) "Hongkong" , 0x096F59 }, - { (char*) "HST" , 0x097436 }, - { (char*) "Iceland" , 0x0974B5 }, - { (char*) "Indian/Antananarivo" , 0x097555 }, - { (char*) "Indian/Chagos" , 0x09763C }, - { (char*) "Indian/Christmas" , 0x097701 }, - { (char*) "Indian/Cocos" , 0x0977A4 }, - { (char*) "Indian/Comoro" , 0x097850 }, - { (char*) "Indian/Kerguelen" , 0x0978F1 }, - { (char*) "Indian/Mahe" , 0x097994 }, - { (char*) "Indian/Maldives" , 0x097A37 }, - { (char*) "Indian/Mauritius" , 0x097AFC }, - { (char*) "Indian/Mayotte" , 0x097BEB }, - { (char*) "Indian/Reunion" , 0x097C8C }, - { (char*) "Iran" , 0x097D2F }, - { (char*) "Israel" , 0x09821B }, - { (char*) "Jamaica" , 0x098B7B }, - { (char*) "Japan" , 0x098D69 }, - { (char*) "Kwajalein" , 0x098EAA }, - { (char*) "Libya" , 0x098FE4 }, - { (char*) "MET" , 0x099261 }, - { (char*) "Mexico/BajaNorte" , 0x099A9B }, - { (char*) "Mexico/BajaSur" , 0x09A3ED }, - { (char*) "Mexico/General" , 0x09A861 }, - { (char*) "MST" , 0x09AD33 }, - { (char*) "MST7MDT" , 0x09ADB1 }, - { (char*) "Navajo" , 0x09B6C3 }, - { (char*) "NZ" , 0x09C06B }, - { (char*) "NZ-CHAT" , 0x09C9FC }, - { (char*) "Pacific/Apia" , 0x09D20E }, - { (char*) "Pacific/Auckland" , 0x09D470 }, - { (char*) "Pacific/Bougainville" , 0x09DE14 }, - { (char*) "Pacific/Chatham" , 0x09DF2A }, - { (char*) "Pacific/Chuuk" , 0x09E74B }, - { (char*) "Pacific/Easter" , 0x09E865 }, - { (char*) "Pacific/Efate" , 0x09F129 }, - { (char*) "Pacific/Enderbury" , 0x09F341 }, - { (char*) "Pacific/Fakaofo" , 0x09F429 }, - { (char*) "Pacific/Fiji" , 0x09F4EF }, - { (char*) "Pacific/Funafuti" , 0x09F72F }, - { (char*) "Pacific/Galapagos" , 0x09F7D3 }, - { (char*) "Pacific/Gambier" , 0x09F8D0 }, - { (char*) "Pacific/Guadalcanal" , 0x09F981 }, - { (char*) "Pacific/Guam" , 0x09FA25 }, - { (char*) "Pacific/Honolulu" , 0x09FC1F }, - { (char*) "Pacific/Johnston" , 0x09FD7A }, - { (char*) "Pacific/Kanton" , 0x09FECF }, - { (char*) "Pacific/Kiritimati" , 0x09FFC6 }, - { (char*) "Pacific/Kosrae" , 0x0A00BE }, - { (char*) "Pacific/Kwajalein" , 0x0A0221 }, - { (char*) "Pacific/Majuro" , 0x0A0364 }, - { (char*) "Pacific/Marquesas" , 0x0A04B0 }, - { (char*) "Pacific/Midway" , 0x0A056C }, - { (char*) "Pacific/Nauru" , 0x0A065F }, - { (char*) "Pacific/Niue" , 0x0A0759 }, - { (char*) "Pacific/Norfolk" , 0x0A0822 }, - { (char*) "Pacific/Noumea" , 0x0A0B90 }, - { (char*) "Pacific/Pago_Pago" , 0x0A0CBE }, - { (char*) "Pacific/Palau" , 0x0A0D79 }, - { (char*) "Pacific/Pitcairn" , 0x0A0E2B }, - { (char*) "Pacific/Pohnpei" , 0x0A0EF3 }, - { (char*) "Pacific/Ponape" , 0x0A102E }, - { (char*) "Pacific/Port_Moresby" , 0x0A10D2 }, - { (char*) "Pacific/Rarotonga" , 0x0A11A2 }, - { (char*) "Pacific/Saipan" , 0x0A13FB }, - { (char*) "Pacific/Samoa" , 0x0A15E7 }, - { (char*) "Pacific/Tahiti" , 0x0A16A2 }, - { (char*) "Pacific/Tarawa" , 0x0A1754 }, - { (char*) "Pacific/Tongatapu" , 0x0A1807 }, - { (char*) "Pacific/Truk" , 0x0A1979 }, - { (char*) "Pacific/Wake" , 0x0A1A31 }, - { (char*) "Pacific/Wallis" , 0x0A1AE0 }, - { (char*) "Pacific/Yap" , 0x0A1B84 }, - { (char*) "Poland" , 0x0A1C3C }, - { (char*) "Portugal" , 0x0A26A6 }, - { (char*) "PRC" , 0x0A345B }, - { (char*) "PST8PDT" , 0x0A3698 }, - { (char*) "ROC" , 0x0A3FAA }, - { (char*) "ROK" , 0x0A42AF }, - { (char*) "Singapore" , 0x0A4524 }, - { (char*) "Turkey" , 0x0A46C1 }, - { (char*) "UCT" , 0x0A4E5A }, - { (char*) "Universal" , 0x0A4ED8 }, - { (char*) "US/Alaska" , 0x0A4F56 }, - { (char*) "US/Aleutian" , 0x0A58A5 }, - { (char*) "US/Arizona" , 0x0A61E5 }, - { (char*) "US/Central" , 0x0A6359 }, - { (char*) "US/East-Indiana" , 0x0A716D }, - { (char*) "US/Eastern" , 0x0A780B }, - { (char*) "US/Hawaii" , 0x0A85F7 }, - { (char*) "US/Indiana-Starke" , 0x0A874C }, - { (char*) "US/Michigan" , 0x0A90E4 }, - { (char*) "US/Mountain" , 0x0A99A6 }, - { (char*) "US/Pacific" , 0x0AA34E }, - { (char*) "US/Samoa" , 0x0AAE7E }, - { (char*) "UTC" , 0x0AAF39 }, - { (char*) "W-SU" , 0x0AAFB7 }, - { (char*) "WET" , 0x0AB5C2 }, - { (char*) "Zulu" , 0x0ABD3F }, + { (char*) "America/Eirunepe" , 0x014DDC }, + { (char*) "America/El_Salvador" , 0x015079 }, + { (char*) "America/Ensenada" , 0x015165 }, + { (char*) "America/Fort_Nelson" , 0x015AB7 }, + { (char*) "America/Fort_Wayne" , 0x016397 }, + { (char*) "America/Fortaleza" , 0x016A35 }, + { (char*) "America/Glace_Bay" , 0x016D25 }, + { (char*) "America/Godthab" , 0x0175DC }, + { (char*) "America/Goose_Bay" , 0x017D49 }, + { (char*) "America/Grand_Turk" , 0x0189FF }, + { (char*) "America/Grenada" , 0x019135 }, + { (char*) "America/Guadeloupe" , 0x0191D5 }, + { (char*) "America/Guatemala" , 0x019275 }, + { (char*) "America/Guayaquil" , 0x019399 }, + { (char*) "America/Guyana" , 0x01949F }, + { (char*) "America/Halifax" , 0x0195A3 }, + { (char*) "America/Havana" , 0x01A32D }, + { (char*) "America/Hermosillo" , 0x01ACA9 }, + { (char*) "America/Indiana/Indianapolis" , 0x01AE83 }, + { (char*) "America/Indiana/Knox" , 0x01B53A }, + { (char*) "America/Indiana/Marengo" , 0x01BEE7 }, + { (char*) "America/Indiana/Petersburg" , 0x01C5D4 }, + { (char*) "America/Indiana/Tell_City" , 0x01CD73 }, + { (char*) "America/Indiana/Vevay" , 0x01D437 }, + { (char*) "America/Indiana/Vincennes" , 0x01D9F3 }, + { (char*) "America/Indiana/Winamac" , 0x01E0C9 }, + { (char*) "America/Indianapolis" , 0x01E7ED }, + { (char*) "America/Inuvik" , 0x01EE8B }, + { (char*) "America/Iqaluit" , 0x01F6C5 }, + { (char*) "America/Jamaica" , 0x01FF84 }, + { (char*) "America/Jujuy" , 0x020172 }, + { (char*) "America/Juneau" , 0x020588 }, + { (char*) "America/Kentucky/Louisville" , 0x020ED9 }, + { (char*) "America/Kentucky/Monticello" , 0x0219E7 }, + { (char*) "America/Knox_IN" , 0x022347 }, + { (char*) "America/Kralendijk" , 0x022CDF }, + { (char*) "America/La_Paz" , 0x022DE1 }, + { (char*) "America/Lima" , 0x022EC7 }, + { (char*) "America/Los_Angeles" , 0x02305B }, + { (char*) "America/Louisville" , 0x023B92 }, + { (char*) "America/Lower_Princes" , 0x024682 }, + { (char*) "America/Maceio" , 0x024784 }, + { (char*) "America/Managua" , 0x024A7A }, + { (char*) "America/Manaus" , 0x024C34 }, + { (char*) "America/Marigot" , 0x024E9D }, + { (char*) "America/Martinique" , 0x024F9F }, + { (char*) "America/Matamoros" , 0x025093 }, + { (char*) "America/Mazatlan" , 0x025655 }, + { (char*) "America/Mendoza" , 0x025AFB }, + { (char*) "America/Menominee" , 0x025F2D }, + { (char*) "America/Merida" , 0x02683A }, + { (char*) "America/Metlakatla" , 0x026C43 }, + { (char*) "America/Mexico_City" , 0x0271F5 }, + { (char*) "America/Miquelon" , 0x0276D5 }, + { (char*) "America/Moncton" , 0x027D55 }, + { (char*) "America/Monterrey" , 0x0289CB }, + { (char*) "America/Montevideo" , 0x028DE1 }, + { (char*) "America/Montreal" , 0x0293C5 }, + { (char*) "America/Montserrat" , 0x02A177 }, + { (char*) "America/Nassau" , 0x02A217 }, + { (char*) "America/New_York" , 0x02AB77 }, + { (char*) "America/Nipigon" , 0x02B977 }, + { (char*) "America/Nome" , 0x02C729 }, + { (char*) "America/Noronha" , 0x02D081 }, + { (char*) "America/North_Dakota/Beulah" , 0x02D35B }, + { (char*) "America/North_Dakota/Center" , 0x02DCD8 }, + { (char*) "America/North_Dakota/New_Salem" , 0x02E655 }, + { (char*) "America/Nuuk" , 0x02EFD8 }, + { (char*) "America/Ojinaga" , 0x02F756 }, + { (char*) "America/Panama" , 0x02FD72 }, + { (char*) "America/Pangnirtung" , 0x02FE34 }, + { (char*) "America/Paramaribo" , 0x0306DA }, + { (char*) "America/Phoenix" , 0x0307DE }, + { (char*) "America/Port-au-Prince" , 0x03096A }, + { (char*) "America/Port_of_Spain" , 0x030F10 }, + { (char*) "America/Porto_Acre" , 0x030FB0 }, + { (char*) "America/Porto_Velho" , 0x031222 }, + { (char*) "America/Puerto_Rico" , 0x031468 }, + { (char*) "America/Punta_Arenas" , 0x03156A }, + { (char*) "America/Rainy_River" , 0x031CF8 }, + { (char*) "America/Rankin_Inlet" , 0x032838 }, + { (char*) "America/Recife" , 0x03306C }, + { (char*) "America/Regina" , 0x033340 }, + { (char*) "America/Resolute" , 0x033735 }, + { (char*) "America/Rio_Branco" , 0x033F6A }, + { (char*) "America/Rosario" , 0x0341E0 }, + { (char*) "America/Santa_Isabel" , 0x034612 }, + { (char*) "America/Santarem" , 0x034F64 }, + { (char*) "America/Santiago" , 0x0351C7 }, + { (char*) "America/Santo_Domingo" , 0x035BB3 }, + { (char*) "America/Sao_Paulo" , 0x035D89 }, + { (char*) "America/Scoresbysund" , 0x036361 }, + { (char*) "America/Shiprock" , 0x036B19 }, + { (char*) "America/Sitka" , 0x0374C1 }, + { (char*) "America/St_Barthelemy" , 0x037DF9 }, + { (char*) "America/St_Johns" , 0x037EFB }, + { (char*) "America/St_Kitts" , 0x038D69 }, + { (char*) "America/St_Lucia" , 0x038E09 }, + { (char*) "America/St_Thomas" , 0x038ECB }, + { (char*) "America/St_Vincent" , 0x038F6B }, + { (char*) "America/Swift_Current" , 0x03902D }, + { (char*) "America/Tegucigalpa" , 0x03927B }, + { (char*) "America/Thule" , 0x039383 }, + { (char*) "America/Thunder_Bay" , 0x03997B }, + { (char*) "America/Tijuana" , 0x03A72D }, + { (char*) "America/Toronto" , 0x03B08E }, + { (char*) "America/Tortola" , 0x03BE5E }, + { (char*) "America/Vancouver" , 0x03BEFE }, + { (char*) "America/Virgin" , 0x03CA6F }, + { (char*) "America/Whitehorse" , 0x03CB71 }, + { (char*) "America/Winnipeg" , 0x03D1DD }, + { (char*) "America/Yakutat" , 0x03DD3A }, + { (char*) "America/Yellowknife" , 0x03E657 }, + { (char*) "Antarctica/Casey" , 0x03EF7F }, + { (char*) "Antarctica/Davis" , 0x03F137 }, + { (char*) "Antarctica/DumontDUrville" , 0x03F263 }, + { (char*) "Antarctica/Macquarie" , 0x03F333 }, + { (char*) "Antarctica/Mawson" , 0x03FC23 }, + { (char*) "Antarctica/McMurdo" , 0x03FCEE }, + { (char*) "Antarctica/Palmer" , 0x0404E9 }, + { (char*) "Antarctica/Rothera" , 0x040A77 }, + { (char*) "Antarctica/South_Pole" , 0x040B20 }, + { (char*) "Antarctica/Syowa" , 0x0414B1 }, + { (char*) "Antarctica/Troll" , 0x041559 }, + { (char*) "Antarctica/Vostok" , 0x0419E6 }, + { (char*) "Arctic/Longyearbyen" , 0x041ACD }, + { (char*) "Asia/Aden" , 0x0423D3 }, + { (char*) "Asia/Almaty" , 0x042476 }, + { (char*) "Asia/Amman" , 0x04286B }, + { (char*) "Asia/Anadyr" , 0x042E10 }, + { (char*) "Asia/Aqtau" , 0x0432C5 }, + { (char*) "Asia/Aqtobe" , 0x0436AF }, + { (char*) "Asia/Ashgabat" , 0x043AAD }, + { (char*) "Asia/Ashkhabad" , 0x043D16 }, + { (char*) "Asia/Atyrau" , 0x043F7F }, + { (char*) "Asia/Baghdad" , 0x044371 }, + { (char*) "Asia/Bahrain" , 0x044746 }, + { (char*) "Asia/Baku" , 0x044831 }, + { (char*) "Asia/Bangkok" , 0x044CFA }, + { (char*) "Asia/Barnaul" , 0x044DBF }, + { (char*) "Asia/Beirut" , 0x045290 }, + { (char*) "Asia/Bishkek" , 0x045B06 }, + { (char*) "Asia/Brunei" , 0x045EDB }, + { (char*) "Asia/Calcutta" , 0x045FA4 }, + { (char*) "Asia/Chita" , 0x0460CD }, + { (char*) "Asia/Choibalsan" , 0x0465A4 }, + { (char*) "Asia/Chongqing" , 0x046969 }, + { (char*) "Asia/Chungking" , 0x046BA6 }, + { (char*) "Asia/Colombo" , 0x046DE3 }, + { (char*) "Asia/Dacca" , 0x046F55 }, + { (char*) "Asia/Damascus" , 0x0470A4 }, + { (char*) "Asia/Dhaka" , 0x047801 }, + { (char*) "Asia/Dili" , 0x047950 }, + { (char*) "Asia/Dubai" , 0x047A31 }, + { (char*) "Asia/Dushanbe" , 0x047AD4 }, + { (char*) "Asia/Famagusta" , 0x047D21 }, + { (char*) "Asia/Gaza" , 0x048528 }, + { (char*) "Asia/Harbin" , 0x049454 }, + { (char*) "Asia/Hebron" , 0x049691 }, + { (char*) "Asia/Ho_Chi_Minh" , 0x04A5D8 }, + { (char*) "Asia/Hong_Kong" , 0x04A735 }, + { (char*) "Asia/Hovd" , 0x04AC12 }, + { (char*) "Asia/Irkutsk" , 0x04AFB6 }, + { (char*) "Asia/Istanbul" , 0x04B4A9 }, + { (char*) "Asia/Jakarta" , 0x04BC42 }, + { (char*) "Asia/Jayapura" , 0x04BDDA }, + { (char*) "Asia/Jerusalem" , 0x04BEF9 }, + { (char*) "Asia/Kabul" , 0x04C859 }, + { (char*) "Asia/Kamchatka" , 0x04C927 }, + { (char*) "Asia/Karachi" , 0x04CDC5 }, + { (char*) "Asia/Kashgar" , 0x04CF4C }, + { (char*) "Asia/Kathmandu" , 0x04CFEF }, + { (char*) "Asia/Katmandu" , 0x04D0C1 }, + { (char*) "Asia/Khandyga" , 0x04D193 }, + { (char*) "Asia/Kolkata" , 0x04D6A6 }, + { (char*) "Asia/Krasnoyarsk" , 0x04D7CF }, + { (char*) "Asia/Kuala_Lumpur" , 0x04DC9D }, + { (char*) "Asia/Kuching" , 0x04DE4E }, + { (char*) "Asia/Kuwait" , 0x04E03D }, + { (char*) "Asia/Macao" , 0x04E0E0 }, + { (char*) "Asia/Macau" , 0x04E5B7 }, + { (char*) "Asia/Magadan" , 0x04EA8E }, + { (char*) "Asia/Makassar" , 0x04EF62 }, + { (char*) "Asia/Manila" , 0x04F0B5 }, + { (char*) "Asia/Muscat" , 0x04F209 }, + { (char*) "Asia/Nicosia" , 0x04F2AC }, + { (char*) "Asia/Novokuznetsk" , 0x04FA98 }, + { (char*) "Asia/Novosibirsk" , 0x04FF34 }, + { (char*) "Asia/Omsk" , 0x05040B }, + { (char*) "Asia/Oral" , 0x0508CD }, + { (char*) "Asia/Phnom_Penh" , 0x050CC7 }, + { (char*) "Asia/Pontianak" , 0x050DEC }, + { (char*) "Asia/Pyongyang" , 0x050F6F }, + { (char*) "Asia/Qatar" , 0x051068 }, + { (char*) "Asia/Qostanay" , 0x05112D }, + { (char*) "Asia/Qyzylorda" , 0x051538 }, + { (char*) "Asia/Rangoon" , 0x051954 }, + { (char*) "Asia/Riyadh" , 0x051A5E }, + { (char*) "Asia/Saigon" , 0x051B01 }, + { (char*) "Asia/Sakhalin" , 0x051C5E }, + { (char*) "Asia/Samarkand" , 0x052126 }, + { (char*) "Asia/Seoul" , 0x052376 }, + { (char*) "Asia/Shanghai" , 0x0525EB }, + { (char*) "Asia/Singapore" , 0x052834 }, + { (char*) "Asia/Srednekolymsk" , 0x0529D1 }, + { (char*) "Asia/Taipei" , 0x052EA5 }, + { (char*) "Asia/Tashkent" , 0x0531AA }, + { (char*) "Asia/Tbilisi" , 0x053408 }, + { (char*) "Asia/Tehran" , 0x053811 }, + { (char*) "Asia/Tel_Aviv" , 0x053CFD }, + { (char*) "Asia/Thimbu" , 0x05465D }, + { (char*) "Asia/Thimphu" , 0x054726 }, + { (char*) "Asia/Tokyo" , 0x0547EF }, + { (char*) "Asia/Tomsk" , 0x054930 }, + { (char*) "Asia/Ujung_Pandang" , 0x054E01 }, + { (char*) "Asia/Ulaanbaatar" , 0x054F0B }, + { (char*) "Asia/Ulan_Bator" , 0x055294 }, + { (char*) "Asia/Urumqi" , 0x05560D }, + { (char*) "Asia/Ust-Nera" , 0x0556BD }, + { (char*) "Asia/Vientiane" , 0x055BB3 }, + { (char*) "Asia/Vladivostok" , 0x055CF4 }, + { (char*) "Asia/Yakutsk" , 0x0561BD }, + { (char*) "Asia/Yangon" , 0x056685 }, + { (char*) "Asia/Yekaterinburg" , 0x05678F }, + { (char*) "Asia/Yerevan" , 0x056C76 }, + { (char*) "Atlantic/Azores" , 0x0570F3 }, + { (char*) "Atlantic/Bermuda" , 0x057EAF }, + { (char*) "Atlantic/Canary" , 0x058817 }, + { (char*) "Atlantic/Cape_Verde" , 0x058F9A }, + { (char*) "Atlantic/Faeroe" , 0x0590A6 }, + { (char*) "Atlantic/Faroe" , 0x0597C9 }, + { (char*) "Atlantic/Jan_Mayen" , 0x059EEC }, + { (char*) "Atlantic/Madeira" , 0x05A7F2 }, + { (char*) "Atlantic/Reykjavik" , 0x05B5BC }, + { (char*) "Atlantic/South_Georgia" , 0x05BA52 }, + { (char*) "Atlantic/St_Helena" , 0x05BAF4 }, + { (char*) "Atlantic/Stanley" , 0x05BBB6 }, + { (char*) "Australia/ACT" , 0x05C072 }, + { (char*) "Australia/Adelaide" , 0x05C90C }, + { (char*) "Australia/Brisbane" , 0x05D1C7 }, + { (char*) "Australia/Broken_Hill" , 0x05D38D }, + { (char*) "Australia/Canberra" , 0x05DC6A }, + { (char*) "Australia/Currie" , 0x05E504 }, + { (char*) "Australia/Darwin" , 0x05EE46 }, + { (char*) "Australia/Eucla" , 0x05EFA9 }, + { (char*) "Australia/Hobart" , 0x05F196 }, + { (char*) "Australia/LHI" , 0x05FAE0 }, + { (char*) "Australia/Lindeman" , 0x060222 }, + { (char*) "Australia/Lord_Howe" , 0x060428 }, + { (char*) "Australia/Melbourne" , 0x060B7A }, + { (char*) "Australia/North" , 0x06141C }, + { (char*) "Australia/NSW" , 0x06156D }, + { (char*) "Australia/Perth" , 0x061E07 }, + { (char*) "Australia/Queensland" , 0x061FEF }, + { (char*) "Australia/South" , 0x06219E }, + { (char*) "Australia/Sydney" , 0x062A4A }, + { (char*) "Australia/Tasmania" , 0x063300 }, + { (char*) "Australia/Victoria" , 0x063C42 }, + { (char*) "Australia/West" , 0x0644DC }, + { (char*) "Australia/Yancowinna" , 0x0646A6 }, + { (char*) "Brazil/Acre" , 0x064F67 }, + { (char*) "Brazil/DeNoronha" , 0x0651D9 }, + { (char*) "Brazil/East" , 0x0654A3 }, + { (char*) "Brazil/West" , 0x065A45 }, + { (char*) "Canada/Atlantic" , 0x065C9F }, + { (char*) "Canada/Central" , 0x066A0B }, + { (char*) "Canada/Eastern" , 0x06754B }, + { (char*) "Canada/Mountain" , 0x0682FD }, + { (char*) "Canada/Newfoundland" , 0x068C25 }, + { (char*) "Canada/Pacific" , 0x069A78 }, + { (char*) "Canada/Saskatchewan" , 0x06A5D0 }, + { (char*) "Canada/Yukon" , 0x06A9B0 }, + { (char*) "CET" , 0x06B00A }, + { (char*) "Chile/Continental" , 0x06B844 }, + { (char*) "Chile/EasterIsland" , 0x06C223 }, + { (char*) "CST6CDT" , 0x06CADA }, + { (char*) "Cuba" , 0x06D3EC }, + { (char*) "EET" , 0x06DD68 }, + { (char*) "Egypt" , 0x06E4E8 }, + { (char*) "Eire" , 0x06EE53 }, + { (char*) "EST" , 0x06FC03 }, + { (char*) "EST5EDT" , 0x06FC81 }, + { (char*) "Etc/GMT" , 0x070593 }, + { (char*) "Etc/GMT+0" , 0x070611 }, + { (char*) "Etc/GMT+1" , 0x07068F }, + { (char*) "Etc/GMT+10" , 0x07070F }, + { (char*) "Etc/GMT+11" , 0x070790 }, + { (char*) "Etc/GMT+12" , 0x070811 }, + { (char*) "Etc/GMT+2" , 0x070892 }, + { (char*) "Etc/GMT+3" , 0x070912 }, + { (char*) "Etc/GMT+4" , 0x070992 }, + { (char*) "Etc/GMT+5" , 0x070A12 }, + { (char*) "Etc/GMT+6" , 0x070A92 }, + { (char*) "Etc/GMT+7" , 0x070B12 }, + { (char*) "Etc/GMT+8" , 0x070B92 }, + { (char*) "Etc/GMT+9" , 0x070C12 }, + { (char*) "Etc/GMT-0" , 0x070C92 }, + { (char*) "Etc/GMT-1" , 0x070D10 }, + { (char*) "Etc/GMT-10" , 0x070D91 }, + { (char*) "Etc/GMT-11" , 0x070E13 }, + { (char*) "Etc/GMT-12" , 0x070E95 }, + { (char*) "Etc/GMT-13" , 0x070F17 }, + { (char*) "Etc/GMT-14" , 0x070F99 }, + { (char*) "Etc/GMT-2" , 0x07101B }, + { (char*) "Etc/GMT-3" , 0x07109C }, + { (char*) "Etc/GMT-4" , 0x07111D }, + { (char*) "Etc/GMT-5" , 0x07119E }, + { (char*) "Etc/GMT-6" , 0x07121F }, + { (char*) "Etc/GMT-7" , 0x0712A0 }, + { (char*) "Etc/GMT-8" , 0x071321 }, + { (char*) "Etc/GMT-9" , 0x0713A2 }, + { (char*) "Etc/GMT0" , 0x071423 }, + { (char*) "Etc/Greenwich" , 0x0714A1 }, + { (char*) "Etc/UCT" , 0x07151F }, + { (char*) "Etc/Universal" , 0x07159D }, + { (char*) "Etc/UTC" , 0x07161B }, + { (char*) "Etc/Zulu" , 0x071699 }, + { (char*) "Europe/Amsterdam" , 0x071717 }, + { (char*) "Europe/Andorra" , 0x072281 }, + { (char*) "Europe/Astrakhan" , 0x07295B }, + { (char*) "Europe/Athens" , 0x072DF8 }, + { (char*) "Europe/Belfast" , 0x0736DA }, + { (char*) "Europe/Belgrade" , 0x074536 }, + { (char*) "Europe/Berlin" , 0x074CC2 }, + { (char*) "Europe/Bratislava" , 0x0755D7 }, + { (char*) "Europe/Brussels" , 0x075EE0 }, + { (char*) "Europe/Bucharest" , 0x076A61 }, + { (char*) "Europe/Budapest" , 0x0772F5 }, + { (char*) "Europe/Busingen" , 0x077C41 }, + { (char*) "Europe/Chisinau" , 0x0783CA }, + { (char*) "Europe/Copenhagen" , 0x078D2C }, + { (char*) "Europe/Dublin" , 0x079591 }, + { (char*) "Europe/Gibraltar" , 0x07A341 }, + { (char*) "Europe/Guernsey" , 0x07AF49 }, + { (char*) "Europe/Helsinki" , 0x07BDE9 }, + { (char*) "Europe/Isle_of_Man" , 0x07C561 }, + { (char*) "Europe/Istanbul" , 0x07D3AD }, + { (char*) "Europe/Jersey" , 0x07DB46 }, + { (char*) "Europe/Kaliningrad" , 0x07E9E6 }, + { (char*) "Europe/Kiev" , 0x07EFDB }, + { (char*) "Europe/Kirov" , 0x07F82F }, + { (char*) "Europe/Kyiv" , 0x07FCEA }, + { (char*) "Europe/Lisbon" , 0x08054D }, + { (char*) "Europe/Ljubljana" , 0x081315 }, + { (char*) "Europe/London" , 0x081AA1 }, + { (char*) "Europe/Luxembourg" , 0x0828FD }, + { (char*) "Europe/Madrid" , 0x08348B }, + { (char*) "Europe/Malta" , 0x083EDD }, + { (char*) "Europe/Mariehamn" , 0x084925 }, + { (char*) "Europe/Minsk" , 0x08509D }, + { (char*) "Europe/Monaco" , 0x0855C4 }, + { (char*) "Europe/Moscow" , 0x086150 }, + { (char*) "Europe/Nicosia" , 0x08676F }, + { (char*) "Europe/Oslo" , 0x086F4D }, + { (char*) "Europe/Paris" , 0x08780D }, + { (char*) "Europe/Podgorica" , 0x0883AB }, + { (char*) "Europe/Prague" , 0x088B37 }, + { (char*) "Europe/Riga" , 0x089440 }, + { (char*) "Europe/Rome" , 0x089CE2 }, + { (char*) "Europe/Samara" , 0x08A73F }, + { (char*) "Europe/San_Marino" , 0x08AC15 }, + { (char*) "Europe/Sarajevo" , 0x08B672 }, + { (char*) "Europe/Saratov" , 0x08BDFE }, + { (char*) "Europe/Simferopol" , 0x08C2AB }, + { (char*) "Europe/Skopje" , 0x08C87A }, + { (char*) "Europe/Sofia" , 0x08D006 }, + { (char*) "Europe/Stockholm" , 0x08D82F }, + { (char*) "Europe/Tallinn" , 0x08DFB0 }, + { (char*) "Europe/Tirane" , 0x08E820 }, + { (char*) "Europe/Tiraspol" , 0x08F050 }, + { (char*) "Europe/Ulyanovsk" , 0x08F9B2 }, + { (char*) "Europe/Uzhgorod" , 0x08FEB5 }, + { (char*) "Europe/Vaduz" , 0x090709 }, + { (char*) "Europe/Vatican" , 0x090E75 }, + { (char*) "Europe/Vienna" , 0x0918D2 }, + { (char*) "Europe/Vilnius" , 0x092176 }, + { (char*) "Europe/Volgograd" , 0x0929F4 }, + { (char*) "Europe/Warsaw" , 0x092EBB }, + { (char*) "Europe/Zagreb" , 0x093925 }, + { (char*) "Europe/Zaporozhye" , 0x0940B1 }, + { (char*) "Europe/Zurich" , 0x094905 }, + { (char*) "Factory" , 0x095086 }, + { (char*) "GB" , 0x095106 }, + { (char*) "GB-Eire" , 0x095F62 }, + { (char*) "GMT" , 0x096DBE }, + { (char*) "GMT+0" , 0x096E3C }, + { (char*) "GMT-0" , 0x096EBA }, + { (char*) "GMT0" , 0x096F38 }, + { (char*) "Greenwich" , 0x096FB6 }, + { (char*) "Hongkong" , 0x097034 }, + { (char*) "HST" , 0x097511 }, + { (char*) "Iceland" , 0x097590 }, + { (char*) "Indian/Antananarivo" , 0x097630 }, + { (char*) "Indian/Chagos" , 0x097717 }, + { (char*) "Indian/Christmas" , 0x0977DC }, + { (char*) "Indian/Cocos" , 0x09787F }, + { (char*) "Indian/Comoro" , 0x09792B }, + { (char*) "Indian/Kerguelen" , 0x0979CC }, + { (char*) "Indian/Mahe" , 0x097A6F }, + { (char*) "Indian/Maldives" , 0x097B12 }, + { (char*) "Indian/Mauritius" , 0x097BD7 }, + { (char*) "Indian/Mayotte" , 0x097CC6 }, + { (char*) "Indian/Reunion" , 0x097D67 }, + { (char*) "Iran" , 0x097E0A }, + { (char*) "Israel" , 0x0982F6 }, + { (char*) "Jamaica" , 0x098C56 }, + { (char*) "Japan" , 0x098E44 }, + { (char*) "Kwajalein" , 0x098F85 }, + { (char*) "Libya" , 0x0990BF }, + { (char*) "MET" , 0x09933C }, + { (char*) "Mexico/BajaNorte" , 0x099B76 }, + { (char*) "Mexico/BajaSur" , 0x09A4C8 }, + { (char*) "Mexico/General" , 0x09A93C }, + { (char*) "MST" , 0x09AE0E }, + { (char*) "MST7MDT" , 0x09AE8C }, + { (char*) "Navajo" , 0x09B79E }, + { (char*) "NZ" , 0x09C146 }, + { (char*) "NZ-CHAT" , 0x09CAD7 }, + { (char*) "Pacific/Apia" , 0x09D2E9 }, + { (char*) "Pacific/Auckland" , 0x09D54B }, + { (char*) "Pacific/Bougainville" , 0x09DEEF }, + { (char*) "Pacific/Chatham" , 0x09E005 }, + { (char*) "Pacific/Chuuk" , 0x09E826 }, + { (char*) "Pacific/Easter" , 0x09E940 }, + { (char*) "Pacific/Efate" , 0x09F204 }, + { (char*) "Pacific/Enderbury" , 0x09F41C }, + { (char*) "Pacific/Fakaofo" , 0x09F504 }, + { (char*) "Pacific/Fiji" , 0x09F5CA }, + { (char*) "Pacific/Funafuti" , 0x09F80A }, + { (char*) "Pacific/Galapagos" , 0x09F8AE }, + { (char*) "Pacific/Gambier" , 0x09F9AB }, + { (char*) "Pacific/Guadalcanal" , 0x09FA5C }, + { (char*) "Pacific/Guam" , 0x09FB00 }, + { (char*) "Pacific/Honolulu" , 0x09FCFA }, + { (char*) "Pacific/Johnston" , 0x09FE55 }, + { (char*) "Pacific/Kanton" , 0x09FFAA }, + { (char*) "Pacific/Kiritimati" , 0x0A00A1 }, + { (char*) "Pacific/Kosrae" , 0x0A0199 }, + { (char*) "Pacific/Kwajalein" , 0x0A02FC }, + { (char*) "Pacific/Majuro" , 0x0A043F }, + { (char*) "Pacific/Marquesas" , 0x0A058B }, + { (char*) "Pacific/Midway" , 0x0A0647 }, + { (char*) "Pacific/Nauru" , 0x0A073A }, + { (char*) "Pacific/Niue" , 0x0A0834 }, + { (char*) "Pacific/Norfolk" , 0x0A08FD }, + { (char*) "Pacific/Noumea" , 0x0A0C6B }, + { (char*) "Pacific/Pago_Pago" , 0x0A0D99 }, + { (char*) "Pacific/Palau" , 0x0A0E54 }, + { (char*) "Pacific/Pitcairn" , 0x0A0F06 }, + { (char*) "Pacific/Pohnpei" , 0x0A0FCE }, + { (char*) "Pacific/Ponape" , 0x0A1109 }, + { (char*) "Pacific/Port_Moresby" , 0x0A11AD }, + { (char*) "Pacific/Rarotonga" , 0x0A127D }, + { (char*) "Pacific/Saipan" , 0x0A14D6 }, + { (char*) "Pacific/Samoa" , 0x0A16C2 }, + { (char*) "Pacific/Tahiti" , 0x0A177D }, + { (char*) "Pacific/Tarawa" , 0x0A182F }, + { (char*) "Pacific/Tongatapu" , 0x0A18E2 }, + { (char*) "Pacific/Truk" , 0x0A1A54 }, + { (char*) "Pacific/Wake" , 0x0A1B0C }, + { (char*) "Pacific/Wallis" , 0x0A1BBB }, + { (char*) "Pacific/Yap" , 0x0A1C5F }, + { (char*) "Poland" , 0x0A1D17 }, + { (char*) "Portugal" , 0x0A2781 }, + { (char*) "PRC" , 0x0A3536 }, + { (char*) "PST8PDT" , 0x0A3773 }, + { (char*) "ROC" , 0x0A4085 }, + { (char*) "ROK" , 0x0A438A }, + { (char*) "Singapore" , 0x0A45FF }, + { (char*) "Turkey" , 0x0A479C }, + { (char*) "UCT" , 0x0A4F35 }, + { (char*) "Universal" , 0x0A4FB3 }, + { (char*) "US/Alaska" , 0x0A5031 }, + { (char*) "US/Aleutian" , 0x0A5980 }, + { (char*) "US/Arizona" , 0x0A62C0 }, + { (char*) "US/Central" , 0x0A6434 }, + { (char*) "US/East-Indiana" , 0x0A7248 }, + { (char*) "US/Eastern" , 0x0A78E6 }, + { (char*) "US/Hawaii" , 0x0A86D2 }, + { (char*) "US/Indiana-Starke" , 0x0A8827 }, + { (char*) "US/Michigan" , 0x0A91BF }, + { (char*) "US/Mountain" , 0x0A9A81 }, + { (char*) "US/Pacific" , 0x0AA429 }, + { (char*) "US/Samoa" , 0x0AAF59 }, + { (char*) "UTC" , 0x0AB014 }, + { (char*) "W-SU" , 0x0AB092 }, + { (char*) "WET" , 0x0AB69D }, + { (char*) "Zulu" , 0x0ABE1A }, }; -const unsigned char timelib_timezone_db_data_builtin[703933] = { +const unsigned char timelib_timezone_db_data_builtin[704152] = { /* Africa/Abidjan */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -26616,7 +26704,7 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x54, 0x00, 0x2D, 0x30, 0x34, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x0A, 0x3C, 0x2D, 0x30, 0x33, 0x3E, 0x33, 0x0A, 0x00, 0x5D, 0xE4, 0x75, 0x00, 0xAE, 0x47, 0xE2, 0x00, 0x00, 0x00, 0x1B, 0x43, 0x61, 0x74, 0x61, 0x6D, 0x61, 0x72, 0x63, 0x61, 0x20, 0x28, 0x43, 0x54, 0x29, -0x3B, 0x20, 0x43, 0x68, 0x75, 0x62, 0x75, 0x74, 0x20, 0x28, 0x43, 0x48, 0x29, +0x2C, 0x20, 0x43, 0x68, 0x75, 0x62, 0x75, 0x74, 0x20, 0x28, 0x43, 0x48, 0x29, /* America/Argentina/ComodRivadavia */ 0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -27565,7 +27653,7 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0A, 0x45, 0x53, 0x54, 0x35, 0x0A, 0x00, 0xD3, 0xBA, 0x95, 0x00, 0x86, 0xDA, 0xC9, 0x00, 0x00, 0x00, 0x21, 0x45, 0x53, 0x54, 0x20, -0x2D, 0x20, 0x4F, 0x4E, 0x20, 0x28, 0x41, 0x74, 0x69, 0x6B, 0x6F, 0x6B, 0x61, 0x6E, 0x29, 0x3B, +0x2D, 0x20, 0x4F, 0x4E, 0x20, 0x28, 0x41, 0x74, 0x69, 0x6B, 0x6F, 0x6B, 0x61, 0x6E, 0x29, 0x2C, 0x20, 0x4E, 0x55, 0x20, 0x28, 0x43, 0x6F, 0x72, 0x61, 0x6C, 0x20, 0x48, 0x29, /* America/Atka */ @@ -27930,7 +28018,7 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x00, 0x00, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x0A, 0x3C, 0x2D, 0x30, 0x33, 0x3E, 0x33, 0x0A, 0x00, 0x87, 0x1D, 0xD8, 0x00, 0xC8, 0xAD, 0xB2, 0x00, 0x00, 0x00, 0x12, 0x50, 0x61, -0x72, 0x61, 0x20, 0x28, 0x65, 0x61, 0x73, 0x74, 0x29, 0x3B, 0x20, 0x41, 0x6D, 0x61, 0x70, 0x61, +0x72, 0x61, 0x20, 0x28, 0x65, 0x61, 0x73, 0x74, 0x29, 0x2C, 0x20, 0x41, 0x6D, 0x61, 0x70, 0x61, /* America/Belize */ @@ -28274,7 +28362,7 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x00, 0x00, 0x0A, 0x4D, 0x53, 0x54, 0x37, 0x4D, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xCB, 0xE0, 0xD1, 0x00, 0x61, 0x58, 0xE6, 0x00, 0x00, 0x00, 0x20, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x20, 0x2D, -0x20, 0x49, 0x44, 0x20, 0x28, 0x73, 0x6F, 0x75, 0x74, 0x68, 0x29, 0x3B, 0x20, 0x4F, 0x52, 0x20, +0x20, 0x49, 0x44, 0x20, 0x28, 0x73, 0x6F, 0x75, 0x74, 0x68, 0x29, 0x2C, 0x20, 0x4F, 0x52, 0x20, 0x28, 0x65, 0x61, 0x73, 0x74, 0x29, /* America/Buenos_Aires */ @@ -30084,9 +30172,9 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x54, 0x00, 0x4D, 0x57, 0x54, 0x00, 0x4D, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0A, 0x4D, 0x53, 0x54, 0x37, 0x4D, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xDB, 0x0A, 0x38, -0x00, 0x65, 0x85, 0x95, 0x00, 0x00, 0x00, 0x25, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, -0x20, 0x2D, 0x20, 0x41, 0x42, 0x3B, 0x20, 0x42, 0x43, 0x20, 0x28, 0x45, 0x29, 0x3B, 0x20, 0x4E, -0x54, 0x20, 0x28, 0x45, 0x29, 0x3B, 0x20, 0x53, 0x4B, 0x20, 0x28, 0x57, 0x29, +0x00, 0x65, 0x85, 0x95, 0x00, 0x00, 0x00, 0x22, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, +0x20, 0x2D, 0x20, 0x41, 0x42, 0x2C, 0x20, 0x42, 0x43, 0x28, 0x45, 0x29, 0x2C, 0x20, 0x4E, 0x54, +0x28, 0x45, 0x29, 0x2C, 0x20, 0x53, 0x4B, 0x28, 0x57, 0x29, /* America/Eirunepe */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x42, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -30749,7 +30837,7 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { /* America/Godthab */ 0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x9B, 0x80, 0x68, 0x00, +0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x9B, 0x80, 0x68, 0x00, 0x13, 0x4D, 0x7C, 0x50, 0x14, 0x33, 0xFA, 0x90, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x13, 0xDC, 0x90, 0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, @@ -30771,102 +30859,101 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, -0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, -0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, -0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, -0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, -0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, -0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, -0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, -0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, -0x01, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x66, 0x08, 0xB5, 0x90, +0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, +0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, +0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, +0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, +0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, +0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, +0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x01, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, -0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, -0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, -0x05, 0x06, 0x05, 0x06, 0x05, 0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, -0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, -0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x08, 0xFF, 0xFF, 0xF1, 0xF0, 0x01, 0x0C, 0x4C, -0x4D, 0x54, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x2D, 0x30, 0x31, 0x00, 0x00, -0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x54, 0x5A, 0x69, -0x66, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x75, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0x9B, 0x80, 0x68, -0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x4D, 0x7C, 0x50, 0x00, 0x00, 0x00, 0x00, 0x14, 0x33, 0xFA, -0x90, 0x00, 0x00, 0x00, 0x00, 0x15, 0x23, 0xEB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x16, 0x13, 0xDC, -0x90, 0x00, 0x00, 0x00, 0x00, 0x17, 0x03, 0xCD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x17, 0xF3, 0xBE, -0x90, 0x00, 0x00, 0x00, 0x00, 0x18, 0xE3, 0xAF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x19, 0xD3, 0xA0, -0x90, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xC3, 0x91, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xBC, 0xBD, -0x10, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xAC, 0xAE, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x9C, 0x9F, -0x10, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x8C, 0x90, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x7C, 0x81, -0x10, 0x00, 0x00, 0x00, 0x00, 0x20, 0x6C, 0x72, 0x10, 0x00, 0x00, 0x00, 0x00, 0x21, 0x5C, 0x63, -0x10, 0x00, 0x00, 0x00, 0x00, 0x22, 0x4C, 0x54, 0x10, 0x00, 0x00, 0x00, 0x00, 0x23, 0x3C, 0x45, -0x10, 0x00, 0x00, 0x00, 0x00, 0x24, 0x2C, 0x36, 0x10, 0x00, 0x00, 0x00, 0x00, 0x25, 0x1C, 0x27, -0x10, 0x00, 0x00, 0x00, 0x00, 0x26, 0x0C, 0x18, 0x10, 0x00, 0x00, 0x00, 0x00, 0x27, 0x05, 0x43, -0x90, 0x00, 0x00, 0x00, 0x00, 0x27, 0xF5, 0x34, 0x90, 0x00, 0x00, 0x00, 0x00, 0x28, 0xE5, 0x25, -0x90, 0x00, 0x00, 0x00, 0x00, 0x29, 0xD5, 0x16, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xC5, 0x07, -0x90, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xB4, 0xF8, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xA4, 0xE9, -0x90, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xDA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0xCB, -0x90, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0xBC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, 0x64, 0xAD, -0x90, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x00, 0x00, 0x00, 0x00, 0x32, 0x72, 0xB4, -0x10, 0x00, 0x00, 0x00, 0x00, 0x33, 0x3D, 0xBB, 0x10, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0x96, -0x10, 0x00, 0x00, 0x00, 0x00, 0x35, 0x1D, 0x9D, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0x78, -0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0xFD, 0x7F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0x94, -0x90, 0x00, 0x00, 0x00, 0x00, 0x38, 0xDD, 0x61, 0x10, 0x00, 0x00, 0x00, 0x00, 0x39, 0xFB, 0x76, -0x90, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xBD, 0x43, 0x10, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xDB, 0x58, -0x90, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xA6, 0x5F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0x3A, -0x90, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x86, 0x41, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9B, 0x1C, -0x90, 0x00, 0x00, 0x00, 0x00, 0x40, 0x66, 0x23, 0x90, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x39, -0x10, 0x00, 0x00, 0x00, 0x00, 0x42, 0x46, 0x05, 0x90, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x1B, -0x10, 0x00, 0x00, 0x00, 0x00, 0x44, 0x25, 0xE7, 0x90, 0x00, 0x00, 0x00, 0x00, 0x45, 0x43, 0xFD, -0x10, 0x00, 0x00, 0x00, 0x00, 0x46, 0x05, 0xC9, 0x90, 0x00, 0x00, 0x00, 0x00, 0x47, 0x23, 0xDF, -0x10, 0x00, 0x00, 0x00, 0x00, 0x47, 0xEE, 0xE6, 0x10, 0x00, 0x00, 0x00, 0x00, 0x49, 0x03, 0xC1, -0x10, 0x00, 0x00, 0x00, 0x00, 0x49, 0xCE, 0xC8, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xE3, 0xA3, -0x10, 0x00, 0x00, 0x00, 0x00, 0x4B, 0xAE, 0xAA, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xCC, 0xBF, -0x90, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x8E, 0x8C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xAC, 0xA1, -0x90, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x6E, 0x6E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x50, 0x8C, 0x83, -0x90, 0x00, 0x00, 0x00, 0x00, 0x51, 0x57, 0x8A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x52, 0x6C, 0x65, -0x90, 0x00, 0x00, 0x00, 0x00, 0x53, 0x37, 0x6C, 0x90, 0x00, 0x00, 0x00, 0x00, 0x54, 0x4C, 0x47, -0x90, 0x00, 0x00, 0x00, 0x00, 0x55, 0x17, 0x4E, 0x90, 0x00, 0x00, 0x00, 0x00, 0x56, 0x2C, 0x29, -0x90, 0x00, 0x00, 0x00, 0x00, 0x56, 0xF7, 0x30, 0x90, 0x00, 0x00, 0x00, 0x00, 0x58, 0x15, 0x46, -0x10, 0x00, 0x00, 0x00, 0x00, 0x58, 0xD7, 0x12, 0x90, 0x00, 0x00, 0x00, 0x00, 0x59, 0xF5, 0x28, -0x10, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xB6, 0xF4, 0x90, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xD5, 0x0A, -0x10, 0x00, 0x00, 0x00, 0x00, 0x5C, 0xA0, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xB4, 0xEC, -0x10, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x7F, 0xF3, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x94, 0xCE, -0x10, 0x00, 0x00, 0x00, 0x00, 0x60, 0x5F, 0xD5, 0x10, 0x00, 0x00, 0x00, 0x00, 0x61, 0x7D, 0xEA, -0x90, 0x00, 0x00, 0x00, 0x00, 0x62, 0x3F, 0xB7, 0x10, 0x00, 0x00, 0x00, 0x00, 0x63, 0x5D, 0xCC, -0x90, 0x00, 0x00, 0x00, 0x00, 0x64, 0x1F, 0x99, 0x10, 0x00, 0x00, 0x00, 0x00, 0x65, 0x3D, 0xAE, -0x90, 0x00, 0x00, 0x00, 0x00, 0x66, 0x08, 0xB5, 0x90, 0x00, 0x00, 0x00, 0x00, 0x67, 0x1D, 0x90, -0x90, 0x00, 0x00, 0x00, 0x00, 0x67, 0xE8, 0x97, 0x90, 0x00, 0x00, 0x00, 0x00, 0x68, 0xFD, 0x72, -0x90, 0x00, 0x00, 0x00, 0x00, 0x69, 0xC8, 0x79, 0x90, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xDD, 0x54, -0x90, 0x00, 0x00, 0x00, 0x00, 0x6B, 0xA8, 0x5B, 0x90, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xC6, 0x71, -0x10, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x88, 0x3D, 0x90, 0x00, 0x00, 0x00, 0x00, 0x6E, 0xA6, 0x53, -0x10, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x68, 0x1F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x70, 0x86, 0x35, -0x10, 0x00, 0x00, 0x00, 0x00, 0x71, 0x51, 0x3C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x72, 0x66, 0x17, -0x10, 0x00, 0x00, 0x00, 0x00, 0x73, 0x31, 0x1E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x74, 0x45, 0xF9, -0x10, 0x00, 0x00, 0x00, 0x00, 0x75, 0x11, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x76, 0x2F, 0x15, -0x90, 0x00, 0x00, 0x00, 0x00, 0x76, 0xF0, 0xE2, 0x10, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0E, 0xF7, -0x90, 0x00, 0x00, 0x00, 0x00, 0x78, 0xD0, 0xC4, 0x10, 0x00, 0x00, 0x00, 0x00, 0x79, 0xEE, 0xD9, -0x90, 0x00, 0x00, 0x00, 0x00, 0x7A, 0xB0, 0xA6, 0x10, 0x00, 0x00, 0x00, 0x00, 0x7B, 0xCE, 0xBB, -0x90, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x99, 0xC2, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7D, 0xAE, 0x9D, -0x90, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x79, 0xA4, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x8E, 0x7F, -0x90, 0x01, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, -0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, -0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, -0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x08, 0xFF, 0xFF, 0xF1, 0xF0, 0x01, 0x0C, -0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x2D, 0x30, 0x31, 0x00, -0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x0A, 0x3C, -0x2D, 0x30, 0x32, 0x3E, 0x32, 0x3C, 0x2D, 0x30, 0x31, 0x3E, 0x2C, 0x4D, 0x33, 0x2E, 0x35, 0x2E, -0x30, 0x2F, 0x2D, 0x31, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x30, 0x0A, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, +0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, +0xE3, 0xE0, 0x00, 0x08, 0xFF, 0xFF, 0xF1, 0xF0, 0x01, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, +0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x2D, 0x30, 0x31, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, +0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x54, 0x5A, 0x69, 0x66, 0x33, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, +0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x07, +0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0x9B, 0x80, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, +0x13, 0x4D, 0x7C, 0x50, 0x00, 0x00, 0x00, 0x00, 0x14, 0x33, 0xFA, 0x90, 0x00, 0x00, 0x00, 0x00, +0x15, 0x23, 0xEB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x16, 0x13, 0xDC, 0x90, 0x00, 0x00, 0x00, 0x00, +0x17, 0x03, 0xCD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x17, 0xF3, 0xBE, 0x90, 0x00, 0x00, 0x00, 0x00, +0x18, 0xE3, 0xAF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x19, 0xD3, 0xA0, 0x90, 0x00, 0x00, 0x00, 0x00, +0x1A, 0xC3, 0x91, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xBC, 0xBD, 0x10, 0x00, 0x00, 0x00, 0x00, +0x1C, 0xAC, 0xAE, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x9C, 0x9F, 0x10, 0x00, 0x00, 0x00, 0x00, +0x1E, 0x8C, 0x90, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x7C, 0x81, 0x10, 0x00, 0x00, 0x00, 0x00, +0x20, 0x6C, 0x72, 0x10, 0x00, 0x00, 0x00, 0x00, 0x21, 0x5C, 0x63, 0x10, 0x00, 0x00, 0x00, 0x00, +0x22, 0x4C, 0x54, 0x10, 0x00, 0x00, 0x00, 0x00, 0x23, 0x3C, 0x45, 0x10, 0x00, 0x00, 0x00, 0x00, +0x24, 0x2C, 0x36, 0x10, 0x00, 0x00, 0x00, 0x00, 0x25, 0x1C, 0x27, 0x10, 0x00, 0x00, 0x00, 0x00, +0x26, 0x0C, 0x18, 0x10, 0x00, 0x00, 0x00, 0x00, 0x27, 0x05, 0x43, 0x90, 0x00, 0x00, 0x00, 0x00, +0x27, 0xF5, 0x34, 0x90, 0x00, 0x00, 0x00, 0x00, 0x28, 0xE5, 0x25, 0x90, 0x00, 0x00, 0x00, 0x00, +0x29, 0xD5, 0x16, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xC5, 0x07, 0x90, 0x00, 0x00, 0x00, 0x00, +0x2B, 0xB4, 0xF8, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xA4, 0xE9, 0x90, 0x00, 0x00, 0x00, 0x00, +0x2D, 0x94, 0xDA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0xCB, 0x90, 0x00, 0x00, 0x00, 0x00, +0x2F, 0x74, 0xBC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, 0x64, 0xAD, 0x90, 0x00, 0x00, 0x00, 0x00, +0x31, 0x5D, 0xD9, 0x10, 0x00, 0x00, 0x00, 0x00, 0x32, 0x72, 0xB4, 0x10, 0x00, 0x00, 0x00, 0x00, +0x33, 0x3D, 0xBB, 0x10, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0x96, 0x10, 0x00, 0x00, 0x00, 0x00, +0x35, 0x1D, 0x9D, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0x78, 0x10, 0x00, 0x00, 0x00, 0x00, +0x36, 0xFD, 0x7F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0x94, 0x90, 0x00, 0x00, 0x00, 0x00, +0x38, 0xDD, 0x61, 0x10, 0x00, 0x00, 0x00, 0x00, 0x39, 0xFB, 0x76, 0x90, 0x00, 0x00, 0x00, 0x00, +0x3A, 0xBD, 0x43, 0x10, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xDB, 0x58, 0x90, 0x00, 0x00, 0x00, 0x00, +0x3C, 0xA6, 0x5F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0x3A, 0x90, 0x00, 0x00, 0x00, 0x00, +0x3E, 0x86, 0x41, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9B, 0x1C, 0x90, 0x00, 0x00, 0x00, 0x00, +0x40, 0x66, 0x23, 0x90, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x39, 0x10, 0x00, 0x00, 0x00, 0x00, +0x42, 0x46, 0x05, 0x90, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x1B, 0x10, 0x00, 0x00, 0x00, 0x00, +0x44, 0x25, 0xE7, 0x90, 0x00, 0x00, 0x00, 0x00, 0x45, 0x43, 0xFD, 0x10, 0x00, 0x00, 0x00, 0x00, +0x46, 0x05, 0xC9, 0x90, 0x00, 0x00, 0x00, 0x00, 0x47, 0x23, 0xDF, 0x10, 0x00, 0x00, 0x00, 0x00, +0x47, 0xEE, 0xE6, 0x10, 0x00, 0x00, 0x00, 0x00, 0x49, 0x03, 0xC1, 0x10, 0x00, 0x00, 0x00, 0x00, +0x49, 0xCE, 0xC8, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xE3, 0xA3, 0x10, 0x00, 0x00, 0x00, 0x00, +0x4B, 0xAE, 0xAA, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xCC, 0xBF, 0x90, 0x00, 0x00, 0x00, 0x00, +0x4D, 0x8E, 0x8C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xAC, 0xA1, 0x90, 0x00, 0x00, 0x00, 0x00, +0x4F, 0x6E, 0x6E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x50, 0x8C, 0x83, 0x90, 0x00, 0x00, 0x00, 0x00, +0x51, 0x57, 0x8A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x52, 0x6C, 0x65, 0x90, 0x00, 0x00, 0x00, 0x00, +0x53, 0x37, 0x6C, 0x90, 0x00, 0x00, 0x00, 0x00, 0x54, 0x4C, 0x47, 0x90, 0x00, 0x00, 0x00, 0x00, +0x55, 0x17, 0x4E, 0x90, 0x00, 0x00, 0x00, 0x00, 0x56, 0x2C, 0x29, 0x90, 0x00, 0x00, 0x00, 0x00, +0x56, 0xF7, 0x30, 0x90, 0x00, 0x00, 0x00, 0x00, 0x58, 0x15, 0x46, 0x10, 0x00, 0x00, 0x00, 0x00, +0x58, 0xD7, 0x12, 0x90, 0x00, 0x00, 0x00, 0x00, 0x59, 0xF5, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, +0x5A, 0xB6, 0xF4, 0x90, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xD5, 0x0A, 0x10, 0x00, 0x00, 0x00, 0x00, +0x5C, 0xA0, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xB4, 0xEC, 0x10, 0x00, 0x00, 0x00, 0x00, +0x5E, 0x7F, 0xF3, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x94, 0xCE, 0x10, 0x00, 0x00, 0x00, 0x00, +0x60, 0x5F, 0xD5, 0x10, 0x00, 0x00, 0x00, 0x00, 0x61, 0x7D, 0xEA, 0x90, 0x00, 0x00, 0x00, 0x00, +0x62, 0x3F, 0xB7, 0x10, 0x00, 0x00, 0x00, 0x00, 0x63, 0x5D, 0xCC, 0x90, 0x00, 0x00, 0x00, 0x00, +0x64, 0x1F, 0x99, 0x10, 0x00, 0x00, 0x00, 0x00, 0x66, 0x08, 0xB5, 0x90, 0x00, 0x00, 0x00, 0x00, +0x67, 0x1D, 0x90, 0x90, 0x00, 0x00, 0x00, 0x00, 0x67, 0xE8, 0x97, 0x90, 0x00, 0x00, 0x00, 0x00, +0x68, 0xFD, 0x72, 0x90, 0x00, 0x00, 0x00, 0x00, 0x69, 0xC8, 0x79, 0x90, 0x00, 0x00, 0x00, 0x00, +0x6A, 0xDD, 0x54, 0x90, 0x00, 0x00, 0x00, 0x00, 0x6B, 0xA8, 0x5B, 0x90, 0x00, 0x00, 0x00, 0x00, +0x6C, 0xC6, 0x71, 0x10, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x88, 0x3D, 0x90, 0x00, 0x00, 0x00, 0x00, +0x6E, 0xA6, 0x53, 0x10, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x68, 0x1F, 0x90, 0x00, 0x00, 0x00, 0x00, +0x70, 0x86, 0x35, 0x10, 0x00, 0x00, 0x00, 0x00, 0x71, 0x51, 0x3C, 0x10, 0x00, 0x00, 0x00, 0x00, +0x72, 0x66, 0x17, 0x10, 0x00, 0x00, 0x00, 0x00, 0x73, 0x31, 0x1E, 0x10, 0x00, 0x00, 0x00, 0x00, +0x74, 0x45, 0xF9, 0x10, 0x00, 0x00, 0x00, 0x00, 0x75, 0x11, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, +0x76, 0x2F, 0x15, 0x90, 0x00, 0x00, 0x00, 0x00, 0x76, 0xF0, 0xE2, 0x10, 0x00, 0x00, 0x00, 0x00, +0x78, 0x0E, 0xF7, 0x90, 0x00, 0x00, 0x00, 0x00, 0x78, 0xD0, 0xC4, 0x10, 0x00, 0x00, 0x00, 0x00, +0x79, 0xEE, 0xD9, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7A, 0xB0, 0xA6, 0x10, 0x00, 0x00, 0x00, 0x00, +0x7B, 0xCE, 0xBB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x99, 0xC2, 0x90, 0x00, 0x00, 0x00, 0x00, +0x7D, 0xAE, 0x9D, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x79, 0xA4, 0x90, 0x00, 0x00, 0x00, 0x00, +0x7F, 0x8E, 0x7F, 0x90, 0x01, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, +0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, +0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x08, 0xFF, 0xFF, 0xF1, 0xF0, +0x01, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x2D, 0x30, +0x31, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, +0x0A, 0x3C, 0x2D, 0x30, 0x32, 0x3E, 0x32, 0x3C, 0x2D, 0x30, 0x31, 0x3E, 0x2C, 0x4D, 0x33, 0x2E, +0x35, 0x2E, 0x30, 0x2F, 0x2D, 0x31, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x30, +0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* America/Goose_Bay */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -31494,7 +31581,7 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xCD, 0x75, 0xA8, 0x00, 0xB1, 0x9C, 0xC0, 0x00, 0x00, 0x00, 0x1E, 0x41, 0x74, 0x6C, 0x61, 0x6E, 0x74, 0x69, 0x63, 0x20, 0x2D, 0x20, 0x4E, 0x53, 0x20, 0x28, 0x6D, 0x6F, 0x73, 0x74, 0x20, -0x61, 0x72, 0x65, 0x61, 0x73, 0x29, 0x3B, 0x20, 0x50, 0x45, +0x61, 0x72, 0x65, 0x61, 0x73, 0x29, 0x2C, 0x20, 0x50, 0x45, /* America/Havana */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -36954,7 +37041,7 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { /* America/Nuuk */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x47, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x9B, 0x80, 0x68, 0x00, +0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x9B, 0x80, 0x68, 0x00, 0x13, 0x4D, 0x7C, 0x50, 0x14, 0x33, 0xFA, 0x90, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x13, 0xDC, 0x90, 0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, @@ -36976,103 +37063,102 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, -0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, -0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, -0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, -0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, -0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, -0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, -0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, -0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, -0x01, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x66, 0x08, 0xB5, 0x90, +0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, +0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, +0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, +0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, +0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, +0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, +0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x01, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, -0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, -0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, -0x05, 0x06, 0x05, 0x06, 0x05, 0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, -0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, -0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x08, 0xFF, 0xFF, 0xF1, 0xF0, 0x01, 0x0C, 0x4C, -0x4D, 0x54, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x2D, 0x30, 0x31, 0x00, 0x00, -0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x54, 0x5A, 0x69, -0x66, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x75, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0x9B, 0x80, 0x68, -0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x4D, 0x7C, 0x50, 0x00, 0x00, 0x00, 0x00, 0x14, 0x33, 0xFA, -0x90, 0x00, 0x00, 0x00, 0x00, 0x15, 0x23, 0xEB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x16, 0x13, 0xDC, -0x90, 0x00, 0x00, 0x00, 0x00, 0x17, 0x03, 0xCD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x17, 0xF3, 0xBE, -0x90, 0x00, 0x00, 0x00, 0x00, 0x18, 0xE3, 0xAF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x19, 0xD3, 0xA0, -0x90, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xC3, 0x91, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xBC, 0xBD, -0x10, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xAC, 0xAE, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x9C, 0x9F, -0x10, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x8C, 0x90, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x7C, 0x81, -0x10, 0x00, 0x00, 0x00, 0x00, 0x20, 0x6C, 0x72, 0x10, 0x00, 0x00, 0x00, 0x00, 0x21, 0x5C, 0x63, -0x10, 0x00, 0x00, 0x00, 0x00, 0x22, 0x4C, 0x54, 0x10, 0x00, 0x00, 0x00, 0x00, 0x23, 0x3C, 0x45, -0x10, 0x00, 0x00, 0x00, 0x00, 0x24, 0x2C, 0x36, 0x10, 0x00, 0x00, 0x00, 0x00, 0x25, 0x1C, 0x27, -0x10, 0x00, 0x00, 0x00, 0x00, 0x26, 0x0C, 0x18, 0x10, 0x00, 0x00, 0x00, 0x00, 0x27, 0x05, 0x43, -0x90, 0x00, 0x00, 0x00, 0x00, 0x27, 0xF5, 0x34, 0x90, 0x00, 0x00, 0x00, 0x00, 0x28, 0xE5, 0x25, -0x90, 0x00, 0x00, 0x00, 0x00, 0x29, 0xD5, 0x16, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xC5, 0x07, -0x90, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xB4, 0xF8, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xA4, 0xE9, -0x90, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xDA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0xCB, -0x90, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0xBC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, 0x64, 0xAD, -0x90, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x00, 0x00, 0x00, 0x00, 0x32, 0x72, 0xB4, -0x10, 0x00, 0x00, 0x00, 0x00, 0x33, 0x3D, 0xBB, 0x10, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0x96, -0x10, 0x00, 0x00, 0x00, 0x00, 0x35, 0x1D, 0x9D, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0x78, -0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0xFD, 0x7F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0x94, -0x90, 0x00, 0x00, 0x00, 0x00, 0x38, 0xDD, 0x61, 0x10, 0x00, 0x00, 0x00, 0x00, 0x39, 0xFB, 0x76, -0x90, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xBD, 0x43, 0x10, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xDB, 0x58, -0x90, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xA6, 0x5F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0x3A, -0x90, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x86, 0x41, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9B, 0x1C, -0x90, 0x00, 0x00, 0x00, 0x00, 0x40, 0x66, 0x23, 0x90, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x39, -0x10, 0x00, 0x00, 0x00, 0x00, 0x42, 0x46, 0x05, 0x90, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x1B, -0x10, 0x00, 0x00, 0x00, 0x00, 0x44, 0x25, 0xE7, 0x90, 0x00, 0x00, 0x00, 0x00, 0x45, 0x43, 0xFD, -0x10, 0x00, 0x00, 0x00, 0x00, 0x46, 0x05, 0xC9, 0x90, 0x00, 0x00, 0x00, 0x00, 0x47, 0x23, 0xDF, -0x10, 0x00, 0x00, 0x00, 0x00, 0x47, 0xEE, 0xE6, 0x10, 0x00, 0x00, 0x00, 0x00, 0x49, 0x03, 0xC1, -0x10, 0x00, 0x00, 0x00, 0x00, 0x49, 0xCE, 0xC8, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xE3, 0xA3, -0x10, 0x00, 0x00, 0x00, 0x00, 0x4B, 0xAE, 0xAA, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xCC, 0xBF, -0x90, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x8E, 0x8C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xAC, 0xA1, -0x90, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x6E, 0x6E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x50, 0x8C, 0x83, -0x90, 0x00, 0x00, 0x00, 0x00, 0x51, 0x57, 0x8A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x52, 0x6C, 0x65, -0x90, 0x00, 0x00, 0x00, 0x00, 0x53, 0x37, 0x6C, 0x90, 0x00, 0x00, 0x00, 0x00, 0x54, 0x4C, 0x47, -0x90, 0x00, 0x00, 0x00, 0x00, 0x55, 0x17, 0x4E, 0x90, 0x00, 0x00, 0x00, 0x00, 0x56, 0x2C, 0x29, -0x90, 0x00, 0x00, 0x00, 0x00, 0x56, 0xF7, 0x30, 0x90, 0x00, 0x00, 0x00, 0x00, 0x58, 0x15, 0x46, -0x10, 0x00, 0x00, 0x00, 0x00, 0x58, 0xD7, 0x12, 0x90, 0x00, 0x00, 0x00, 0x00, 0x59, 0xF5, 0x28, -0x10, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xB6, 0xF4, 0x90, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xD5, 0x0A, -0x10, 0x00, 0x00, 0x00, 0x00, 0x5C, 0xA0, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xB4, 0xEC, -0x10, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x7F, 0xF3, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x94, 0xCE, -0x10, 0x00, 0x00, 0x00, 0x00, 0x60, 0x5F, 0xD5, 0x10, 0x00, 0x00, 0x00, 0x00, 0x61, 0x7D, 0xEA, -0x90, 0x00, 0x00, 0x00, 0x00, 0x62, 0x3F, 0xB7, 0x10, 0x00, 0x00, 0x00, 0x00, 0x63, 0x5D, 0xCC, -0x90, 0x00, 0x00, 0x00, 0x00, 0x64, 0x1F, 0x99, 0x10, 0x00, 0x00, 0x00, 0x00, 0x65, 0x3D, 0xAE, -0x90, 0x00, 0x00, 0x00, 0x00, 0x66, 0x08, 0xB5, 0x90, 0x00, 0x00, 0x00, 0x00, 0x67, 0x1D, 0x90, -0x90, 0x00, 0x00, 0x00, 0x00, 0x67, 0xE8, 0x97, 0x90, 0x00, 0x00, 0x00, 0x00, 0x68, 0xFD, 0x72, -0x90, 0x00, 0x00, 0x00, 0x00, 0x69, 0xC8, 0x79, 0x90, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xDD, 0x54, -0x90, 0x00, 0x00, 0x00, 0x00, 0x6B, 0xA8, 0x5B, 0x90, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xC6, 0x71, -0x10, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x88, 0x3D, 0x90, 0x00, 0x00, 0x00, 0x00, 0x6E, 0xA6, 0x53, -0x10, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x68, 0x1F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x70, 0x86, 0x35, -0x10, 0x00, 0x00, 0x00, 0x00, 0x71, 0x51, 0x3C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x72, 0x66, 0x17, -0x10, 0x00, 0x00, 0x00, 0x00, 0x73, 0x31, 0x1E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x74, 0x45, 0xF9, -0x10, 0x00, 0x00, 0x00, 0x00, 0x75, 0x11, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x76, 0x2F, 0x15, -0x90, 0x00, 0x00, 0x00, 0x00, 0x76, 0xF0, 0xE2, 0x10, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0E, 0xF7, -0x90, 0x00, 0x00, 0x00, 0x00, 0x78, 0xD0, 0xC4, 0x10, 0x00, 0x00, 0x00, 0x00, 0x79, 0xEE, 0xD9, -0x90, 0x00, 0x00, 0x00, 0x00, 0x7A, 0xB0, 0xA6, 0x10, 0x00, 0x00, 0x00, 0x00, 0x7B, 0xCE, 0xBB, -0x90, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x99, 0xC2, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7D, 0xAE, 0x9D, -0x90, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x79, 0xA4, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x8E, 0x7F, -0x90, 0x01, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, -0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, -0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, -0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x08, 0xFF, 0xFF, 0xF1, 0xF0, 0x01, 0x0C, -0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x2D, 0x30, 0x31, 0x00, -0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x0A, 0x3C, -0x2D, 0x30, 0x32, 0x3E, 0x32, 0x3C, 0x2D, 0x30, 0x31, 0x3E, 0x2C, 0x4D, 0x33, 0x2E, 0x35, 0x2E, -0x30, 0x2F, 0x2D, 0x31, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x30, 0x0A, 0x00, -0xEB, 0x43, 0xDD, 0x00, 0xC3, 0xB8, 0x2A, 0x00, 0x00, 0x00, 0x11, 0x6D, 0x6F, 0x73, 0x74, 0x20, -0x6F, 0x66, 0x20, 0x47, 0x72, 0x65, 0x65, 0x6E, 0x6C, 0x61, 0x6E, 0x64, +0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, +0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, +0xE3, 0xE0, 0x00, 0x08, 0xFF, 0xFF, 0xF1, 0xF0, 0x01, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, +0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x2D, 0x30, 0x31, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, +0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x54, 0x5A, 0x69, 0x66, 0x33, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, +0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x07, +0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0x9B, 0x80, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, +0x13, 0x4D, 0x7C, 0x50, 0x00, 0x00, 0x00, 0x00, 0x14, 0x33, 0xFA, 0x90, 0x00, 0x00, 0x00, 0x00, +0x15, 0x23, 0xEB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x16, 0x13, 0xDC, 0x90, 0x00, 0x00, 0x00, 0x00, +0x17, 0x03, 0xCD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x17, 0xF3, 0xBE, 0x90, 0x00, 0x00, 0x00, 0x00, +0x18, 0xE3, 0xAF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x19, 0xD3, 0xA0, 0x90, 0x00, 0x00, 0x00, 0x00, +0x1A, 0xC3, 0x91, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xBC, 0xBD, 0x10, 0x00, 0x00, 0x00, 0x00, +0x1C, 0xAC, 0xAE, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x9C, 0x9F, 0x10, 0x00, 0x00, 0x00, 0x00, +0x1E, 0x8C, 0x90, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x7C, 0x81, 0x10, 0x00, 0x00, 0x00, 0x00, +0x20, 0x6C, 0x72, 0x10, 0x00, 0x00, 0x00, 0x00, 0x21, 0x5C, 0x63, 0x10, 0x00, 0x00, 0x00, 0x00, +0x22, 0x4C, 0x54, 0x10, 0x00, 0x00, 0x00, 0x00, 0x23, 0x3C, 0x45, 0x10, 0x00, 0x00, 0x00, 0x00, +0x24, 0x2C, 0x36, 0x10, 0x00, 0x00, 0x00, 0x00, 0x25, 0x1C, 0x27, 0x10, 0x00, 0x00, 0x00, 0x00, +0x26, 0x0C, 0x18, 0x10, 0x00, 0x00, 0x00, 0x00, 0x27, 0x05, 0x43, 0x90, 0x00, 0x00, 0x00, 0x00, +0x27, 0xF5, 0x34, 0x90, 0x00, 0x00, 0x00, 0x00, 0x28, 0xE5, 0x25, 0x90, 0x00, 0x00, 0x00, 0x00, +0x29, 0xD5, 0x16, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xC5, 0x07, 0x90, 0x00, 0x00, 0x00, 0x00, +0x2B, 0xB4, 0xF8, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xA4, 0xE9, 0x90, 0x00, 0x00, 0x00, 0x00, +0x2D, 0x94, 0xDA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0xCB, 0x90, 0x00, 0x00, 0x00, 0x00, +0x2F, 0x74, 0xBC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, 0x64, 0xAD, 0x90, 0x00, 0x00, 0x00, 0x00, +0x31, 0x5D, 0xD9, 0x10, 0x00, 0x00, 0x00, 0x00, 0x32, 0x72, 0xB4, 0x10, 0x00, 0x00, 0x00, 0x00, +0x33, 0x3D, 0xBB, 0x10, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0x96, 0x10, 0x00, 0x00, 0x00, 0x00, +0x35, 0x1D, 0x9D, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0x78, 0x10, 0x00, 0x00, 0x00, 0x00, +0x36, 0xFD, 0x7F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0x94, 0x90, 0x00, 0x00, 0x00, 0x00, +0x38, 0xDD, 0x61, 0x10, 0x00, 0x00, 0x00, 0x00, 0x39, 0xFB, 0x76, 0x90, 0x00, 0x00, 0x00, 0x00, +0x3A, 0xBD, 0x43, 0x10, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xDB, 0x58, 0x90, 0x00, 0x00, 0x00, 0x00, +0x3C, 0xA6, 0x5F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0x3A, 0x90, 0x00, 0x00, 0x00, 0x00, +0x3E, 0x86, 0x41, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9B, 0x1C, 0x90, 0x00, 0x00, 0x00, 0x00, +0x40, 0x66, 0x23, 0x90, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x39, 0x10, 0x00, 0x00, 0x00, 0x00, +0x42, 0x46, 0x05, 0x90, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x1B, 0x10, 0x00, 0x00, 0x00, 0x00, +0x44, 0x25, 0xE7, 0x90, 0x00, 0x00, 0x00, 0x00, 0x45, 0x43, 0xFD, 0x10, 0x00, 0x00, 0x00, 0x00, +0x46, 0x05, 0xC9, 0x90, 0x00, 0x00, 0x00, 0x00, 0x47, 0x23, 0xDF, 0x10, 0x00, 0x00, 0x00, 0x00, +0x47, 0xEE, 0xE6, 0x10, 0x00, 0x00, 0x00, 0x00, 0x49, 0x03, 0xC1, 0x10, 0x00, 0x00, 0x00, 0x00, +0x49, 0xCE, 0xC8, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xE3, 0xA3, 0x10, 0x00, 0x00, 0x00, 0x00, +0x4B, 0xAE, 0xAA, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xCC, 0xBF, 0x90, 0x00, 0x00, 0x00, 0x00, +0x4D, 0x8E, 0x8C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xAC, 0xA1, 0x90, 0x00, 0x00, 0x00, 0x00, +0x4F, 0x6E, 0x6E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x50, 0x8C, 0x83, 0x90, 0x00, 0x00, 0x00, 0x00, +0x51, 0x57, 0x8A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x52, 0x6C, 0x65, 0x90, 0x00, 0x00, 0x00, 0x00, +0x53, 0x37, 0x6C, 0x90, 0x00, 0x00, 0x00, 0x00, 0x54, 0x4C, 0x47, 0x90, 0x00, 0x00, 0x00, 0x00, +0x55, 0x17, 0x4E, 0x90, 0x00, 0x00, 0x00, 0x00, 0x56, 0x2C, 0x29, 0x90, 0x00, 0x00, 0x00, 0x00, +0x56, 0xF7, 0x30, 0x90, 0x00, 0x00, 0x00, 0x00, 0x58, 0x15, 0x46, 0x10, 0x00, 0x00, 0x00, 0x00, +0x58, 0xD7, 0x12, 0x90, 0x00, 0x00, 0x00, 0x00, 0x59, 0xF5, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, +0x5A, 0xB6, 0xF4, 0x90, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xD5, 0x0A, 0x10, 0x00, 0x00, 0x00, 0x00, +0x5C, 0xA0, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xB4, 0xEC, 0x10, 0x00, 0x00, 0x00, 0x00, +0x5E, 0x7F, 0xF3, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x94, 0xCE, 0x10, 0x00, 0x00, 0x00, 0x00, +0x60, 0x5F, 0xD5, 0x10, 0x00, 0x00, 0x00, 0x00, 0x61, 0x7D, 0xEA, 0x90, 0x00, 0x00, 0x00, 0x00, +0x62, 0x3F, 0xB7, 0x10, 0x00, 0x00, 0x00, 0x00, 0x63, 0x5D, 0xCC, 0x90, 0x00, 0x00, 0x00, 0x00, +0x64, 0x1F, 0x99, 0x10, 0x00, 0x00, 0x00, 0x00, 0x66, 0x08, 0xB5, 0x90, 0x00, 0x00, 0x00, 0x00, +0x67, 0x1D, 0x90, 0x90, 0x00, 0x00, 0x00, 0x00, 0x67, 0xE8, 0x97, 0x90, 0x00, 0x00, 0x00, 0x00, +0x68, 0xFD, 0x72, 0x90, 0x00, 0x00, 0x00, 0x00, 0x69, 0xC8, 0x79, 0x90, 0x00, 0x00, 0x00, 0x00, +0x6A, 0xDD, 0x54, 0x90, 0x00, 0x00, 0x00, 0x00, 0x6B, 0xA8, 0x5B, 0x90, 0x00, 0x00, 0x00, 0x00, +0x6C, 0xC6, 0x71, 0x10, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x88, 0x3D, 0x90, 0x00, 0x00, 0x00, 0x00, +0x6E, 0xA6, 0x53, 0x10, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x68, 0x1F, 0x90, 0x00, 0x00, 0x00, 0x00, +0x70, 0x86, 0x35, 0x10, 0x00, 0x00, 0x00, 0x00, 0x71, 0x51, 0x3C, 0x10, 0x00, 0x00, 0x00, 0x00, +0x72, 0x66, 0x17, 0x10, 0x00, 0x00, 0x00, 0x00, 0x73, 0x31, 0x1E, 0x10, 0x00, 0x00, 0x00, 0x00, +0x74, 0x45, 0xF9, 0x10, 0x00, 0x00, 0x00, 0x00, 0x75, 0x11, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, +0x76, 0x2F, 0x15, 0x90, 0x00, 0x00, 0x00, 0x00, 0x76, 0xF0, 0xE2, 0x10, 0x00, 0x00, 0x00, 0x00, +0x78, 0x0E, 0xF7, 0x90, 0x00, 0x00, 0x00, 0x00, 0x78, 0xD0, 0xC4, 0x10, 0x00, 0x00, 0x00, 0x00, +0x79, 0xEE, 0xD9, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7A, 0xB0, 0xA6, 0x10, 0x00, 0x00, 0x00, 0x00, +0x7B, 0xCE, 0xBB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x99, 0xC2, 0x90, 0x00, 0x00, 0x00, 0x00, +0x7D, 0xAE, 0x9D, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x79, 0xA4, 0x90, 0x00, 0x00, 0x00, 0x00, +0x7F, 0x8E, 0x7F, 0x90, 0x01, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, +0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, +0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x08, 0xFF, 0xFF, 0xF1, 0xF0, +0x01, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x2D, 0x30, +0x31, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, +0x0A, 0x3C, 0x2D, 0x30, 0x32, 0x3E, 0x32, 0x3C, 0x2D, 0x30, 0x31, 0x3E, 0x2C, 0x4D, 0x33, 0x2E, +0x35, 0x2E, 0x30, 0x2F, 0x2D, 0x31, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x30, +0x0A, 0x00, 0xEB, 0x43, 0xDD, 0x00, 0xC3, 0xB8, 0x2A, 0x00, 0x00, 0x00, 0x11, 0x6D, 0x6F, 0x73, +0x74, 0x20, 0x6F, 0x66, 0x20, 0x47, 0x72, 0x65, 0x65, 0x6E, 0x6C, 0x61, 0x6E, 0x64, /* America/Ojinaga */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x4D, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -38866,8 +38952,8 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { /* America/Scoresbysund */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x47, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x9B, 0x80, 0x4C, 0x18, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x9B, 0x80, 0x4C, 0x18, 0x13, 0x4D, 0x6E, 0x40, 0x14, 0x34, 0x24, 0xC0, 0x15, 0x23, 0xF9, 0xA0, 0x16, 0x13, 0xDC, 0x90, 0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, @@ -38902,16 +38988,17 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, -0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, -0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, -0x04, 0x05, 0x04, 0x05, 0x04, 0xFF, 0xFF, 0xEB, 0x68, 0x00, 0x00, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, +0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, +0x08, 0x07, 0x08, 0x07, 0x08, 0xFF, 0xFF, 0xEB, 0x68, 0x00, 0x00, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x04, 0xFF, 0xFF, 0xF1, 0xF0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x04, 0xFF, 0xFF, 0xF1, -0xF0, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0C, 0x4C, -0x4D, 0x54, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x2D, 0x30, 0x31, 0x00, 0x2B, 0x30, 0x30, 0x00, 0x00, -0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x54, 0x5A, 0x69, -0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x75, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0x9B, 0x80, 0x4C, +0xF0, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0C, 0xFF, +0xFF, 0xF1, 0xF0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x2D, +0x30, 0x32, 0x00, 0x2D, 0x30, 0x31, 0x00, 0x2B, 0x30, 0x30, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, +0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x54, 0x5A, 0x69, +0x66, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x75, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0x9B, 0x80, 0x4C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x13, 0x4D, 0x6E, 0x40, 0x00, 0x00, 0x00, 0x00, 0x14, 0x34, 0x24, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x15, 0x23, 0xF9, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x16, 0x13, 0xDC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x17, 0x03, 0xCD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x17, 0xF3, 0xBE, @@ -38975,18 +39062,19 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, -0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, -0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, -0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0xFF, 0xFF, 0xEB, 0x68, 0x00, 0x00, 0xFF, 0xFF, 0xE3, 0xE0, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, +0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, +0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0xFF, 0xFF, 0xEB, 0x68, 0x00, 0x00, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x04, 0xFF, 0xFF, 0xF1, 0xF0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x04, 0xFF, 0xFF, 0xF1, 0xF0, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0C, -0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x2D, 0x30, 0x31, 0x00, 0x2B, 0x30, 0x30, 0x00, -0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x0A, 0x3C, -0x2D, 0x30, 0x31, 0x3E, 0x31, 0x3C, 0x2B, 0x30, 0x30, 0x3E, 0x2C, 0x4D, 0x33, 0x2E, 0x35, 0x2E, -0x30, 0x2F, 0x30, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x31, 0x0A, 0x00, 0xF4, -0xE0, 0xCD, 0x00, 0xF1, 0x23, 0xC5, 0x00, 0x00, 0x00, 0x1D, 0x53, 0x63, 0x6F, 0x72, 0x65, 0x73, -0x62, 0x79, 0x73, 0x75, 0x6E, 0x64, 0x2F, 0x49, 0x74, 0x74, 0x6F, 0x71, 0x71, 0x6F, 0x72, 0x74, -0x6F, 0x6F, 0x72, 0x6D, 0x69, 0x69, 0x74, +0xFF, 0xFF, 0xF1, 0xF0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, +0x2D, 0x30, 0x32, 0x00, 0x2D, 0x30, 0x31, 0x00, 0x2B, 0x30, 0x30, 0x00, 0x00, 0x00, 0x01, 0x01, +0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x0A, 0x3C, +0x2D, 0x30, 0x32, 0x3E, 0x32, 0x3C, 0x2D, 0x30, 0x31, 0x3E, 0x2C, 0x4D, 0x33, 0x2E, 0x35, 0x2E, +0x30, 0x2F, 0x2D, 0x31, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x30, 0x0A, 0x00, +0xF4, 0xE0, 0xCD, 0x00, 0xF1, 0x23, 0xC5, 0x00, 0x00, 0x00, 0x1D, 0x53, 0x63, 0x6F, 0x72, 0x65, +0x73, 0x62, 0x79, 0x73, 0x75, 0x6E, 0x64, 0x2F, 0x49, 0x74, 0x74, 0x6F, 0x71, 0x71, 0x6F, 0x72, +0x74, 0x6F, 0x6F, 0x72, 0x6D, 0x69, 0x69, 0x74, /* America/Shiprock */ 0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -39544,9 +39632,8 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x4E, 0x53, 0x54, 0x33, 0x3A, 0x33, 0x30, 0x4E, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xD1, 0xE8, 0xFA, 0x00, 0xC2, 0x38, 0x0D, 0x00, -0x00, 0x00, 0x22, 0x4E, 0x65, 0x77, 0x66, 0x6F, 0x75, 0x6E, 0x64, 0x6C, 0x61, 0x6E, 0x64, 0x3B, -0x20, 0x4C, 0x61, 0x62, 0x72, 0x61, 0x64, 0x6F, 0x72, 0x20, 0x28, 0x73, 0x6F, 0x75, 0x74, 0x68, -0x65, 0x61, 0x73, 0x74, 0x29, +0x00, 0x00, 0x1B, 0x4E, 0x65, 0x77, 0x66, 0x6F, 0x75, 0x6E, 0x64, 0x6C, 0x61, 0x6E, 0x64, 0x2C, +0x20, 0x4C, 0x61, 0x62, 0x72, 0x61, 0x64, 0x6F, 0x72, 0x20, 0x28, 0x53, 0x45, 0x29, /* America/St_Kitts */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x4B, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -40355,8 +40442,9 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x45, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0A, 0x45, 0x53, 0x54, 0x35, 0x45, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xCB, 0xEF, 0x08, 0x00, 0x99, 0x87, 0x62, 0x00, 0x00, -0x00, 0x1D, 0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x2D, 0x20, 0x4F, 0x4E, 0x2C, 0x20, -0x51, 0x43, 0x20, 0x28, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x61, 0x72, 0x65, 0x61, 0x73, 0x29, +0x00, 0x1E, 0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x2D, 0x20, 0x4F, 0x4E, 0x20, 0x26, +0x20, 0x51, 0x43, 0x20, 0x28, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x61, 0x72, 0x65, 0x61, 0x73, 0x29, + /* America/Tortola */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x56, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -40863,7 +40951,7 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x36, 0x43, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xD5, 0x71, 0xED, 0x00, 0x7E, 0x6B, 0x47, 0x00, 0x00, 0x00, 0x1D, 0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, 0x2D, 0x20, 0x4F, 0x4E, 0x20, 0x28, 0x77, 0x65, -0x73, 0x74, 0x29, 0x3B, 0x20, 0x4D, 0x61, 0x6E, 0x69, 0x74, 0x6F, 0x62, 0x61, +0x73, 0x74, 0x29, 0x2C, 0x20, 0x4D, 0x61, 0x6E, 0x69, 0x74, 0x6F, 0x62, 0x61, /* America/Yakutat */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -41164,30 +41252,33 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { /* Antarctica/Casey */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x41, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0C, 0xFE, 0x1E, 0xCC, 0x80, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0C, 0xFE, 0x1E, 0xCC, 0x80, 0x4A, 0xDA, 0x06, 0x20, 0x4B, 0x8F, 0xCA, 0xF0, 0x4E, 0xA9, 0x9C, 0x20, 0x4F, 0x43, 0xCD, 0x90, 0x58, 0x0A, 0x3B, 0x80, 0x5A, 0xA4, 0x0F, 0x10, 0x5B, 0xB9, 0x14, 0x40, 0x5C, 0x8D, 0x1D, 0x80, -0x5D, 0x96, 0x45, 0x30, 0x5E, 0x63, 0xC5, 0x00, 0x5F, 0x78, 0xA0, 0x3C, 0x01, 0x02, 0x01, 0x02, -0x03, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x70, 0x80, 0x00, 0x04, 0x00, 0x00, 0x9A, 0xB0, 0x00, 0x08, 0x00, 0x00, 0x70, 0x80, 0x00, 0x04, -0x00, 0x00, 0x9A, 0xB0, 0x00, 0x08, 0x2D, 0x30, 0x30, 0x00, 0x2B, 0x30, 0x38, 0x00, 0x2B, 0x31, -0x31, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x54, 0x5A, 0x69, 0x66, -0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, -0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x1E, 0xCC, 0x80, -0x00, 0x00, 0x00, 0x00, 0x4A, 0xDA, 0x06, 0x20, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x8F, 0xCA, 0xF0, -0x00, 0x00, 0x00, 0x00, 0x4E, 0xA9, 0x9C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x43, 0xCD, 0x90, -0x00, 0x00, 0x00, 0x00, 0x58, 0x0A, 0x3B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xA4, 0x0F, 0x10, -0x00, 0x00, 0x00, 0x00, 0x5B, 0xB9, 0x14, 0x40, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x8D, 0x1D, 0x80, -0x00, 0x00, 0x00, 0x00, 0x5D, 0x96, 0x45, 0x30, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x63, 0xC5, 0x00, -0x00, 0x00, 0x00, 0x00, 0x5F, 0x78, 0xA0, 0x3C, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x01, 0x02, -0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x80, 0x00, 0x04, -0x00, 0x00, 0x9A, 0xB0, 0x00, 0x08, 0x00, 0x00, 0x70, 0x80, 0x00, 0x04, 0x00, 0x00, 0x9A, 0xB0, -0x00, 0x08, 0x2D, 0x30, 0x30, 0x00, 0x2B, 0x30, 0x38, 0x00, 0x2B, 0x31, 0x31, 0x00, 0x00, 0x00, -0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0A, 0x3C, 0x2B, 0x31, 0x31, 0x3E, 0x2D, 0x31, -0x31, 0x0A, 0x00, 0x24, 0x30, 0x52, 0x01, 0xBB, 0x4B, 0x12, 0x00, 0x00, 0x00, 0x05, 0x43, 0x61, -0x73, 0x65, 0x79, +0x5D, 0x96, 0x45, 0x30, 0x5E, 0x63, 0xC5, 0x00, 0x5F, 0x78, 0xA0, 0x3C, 0x60, 0x4C, 0xB7, 0x50, +0x61, 0x58, 0x82, 0x3C, 0x62, 0x2C, 0x99, 0x50, 0x63, 0x38, 0x64, 0x3C, 0x64, 0x08, 0xB1, 0x00, +0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x80, 0x00, 0x04, 0x00, 0x00, 0x9A, +0xB0, 0x00, 0x08, 0x00, 0x00, 0x70, 0x80, 0x00, 0x04, 0x2D, 0x30, 0x30, 0x00, 0x2B, 0x30, 0x38, +0x00, 0x2B, 0x31, 0x31, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x54, 0x5A, 0x69, +0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x1E, 0xCC, +0x80, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xDA, 0x06, 0x20, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x8F, 0xCA, +0xF0, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xA9, 0x9C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x43, 0xCD, +0x90, 0x00, 0x00, 0x00, 0x00, 0x58, 0x0A, 0x3B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xA4, 0x0F, +0x10, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xB9, 0x14, 0x40, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x8D, 0x1D, +0x80, 0x00, 0x00, 0x00, 0x00, 0x5D, 0x96, 0x45, 0x30, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x63, 0xC5, +0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x78, 0xA0, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x60, 0x4C, 0xB7, +0x50, 0x00, 0x00, 0x00, 0x00, 0x61, 0x58, 0x82, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x62, 0x2C, 0x99, +0x50, 0x00, 0x00, 0x00, 0x00, 0x63, 0x38, 0x64, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x64, 0x08, 0xB1, +0x00, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x80, 0x00, 0x04, 0x00, 0x00, +0x9A, 0xB0, 0x00, 0x08, 0x00, 0x00, 0x70, 0x80, 0x00, 0x04, 0x2D, 0x30, 0x30, 0x00, 0x2B, 0x30, +0x38, 0x00, 0x2B, 0x31, 0x31, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x0A, 0x3C, +0x2B, 0x30, 0x38, 0x3E, 0x2D, 0x38, 0x0A, 0x00, 0x24, 0x30, 0x52, 0x01, 0xBB, 0x4B, 0x12, 0x00, +0x00, 0x00, 0x05, 0x43, 0x61, 0x73, 0x65, 0x79, /* Antarctica/Davis */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x41, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -41868,15 +41959,19 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { /* Antarctica/Vostok */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x41, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0xE9, 0x58, 0x89, 0x80, -0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x60, 0x00, 0x04, 0x2D, 0x30, 0x30, -0x00, 0x2B, 0x30, 0x36, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0xE9, 0x58, 0x89, 0x80, +0x2D, 0x4D, 0x39, 0x10, 0x2E, 0xB5, 0x85, 0x00, 0x65, 0x7F, 0x45, 0x30, 0x01, 0x00, 0x01, 0x02, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x70, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50, +0x00, 0x08, 0x2D, 0x30, 0x30, 0x00, 0x2B, 0x30, 0x37, 0x00, 0x2B, 0x30, 0x35, 0x00, 0x54, 0x5A, +0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, -0x08, 0xFF, 0xFF, 0xFF, 0xFF, 0xE9, 0x58, 0x89, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x54, 0x60, 0x00, 0x04, 0x2D, 0x30, 0x30, 0x00, 0x2B, 0x30, 0x36, 0x00, 0x0A, 0x3C, -0x2B, 0x30, 0x36, 0x3E, 0x2D, 0x36, 0x0A, 0x00, 0x11, 0xB3, 0x3F, 0x01, 0xB5, 0xC6, 0x4F, 0x00, -0x00, 0x00, 0x06, 0x56, 0x6F, 0x73, 0x74, 0x6F, 0x6B, +0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0xFF, 0xFF, 0xFF, 0xFF, 0xE9, 0x58, +0x89, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x4D, 0x39, 0x10, 0x00, 0x00, 0x00, 0x00, 0x2E, 0xB5, +0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0x7F, 0x45, 0x30, 0x01, 0x00, 0x01, 0x02, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x70, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50, 0x00, 0x08, +0x2D, 0x30, 0x30, 0x00, 0x2B, 0x30, 0x37, 0x00, 0x2B, 0x30, 0x35, 0x00, 0x0A, 0x3C, 0x2B, 0x30, +0x35, 0x3E, 0x2D, 0x35, 0x0A, 0x00, 0x11, 0xB3, 0x3F, 0x01, 0xB5, 0xC6, 0x4F, 0x00, 0x00, 0x00, +0x06, 0x56, 0x6F, 0x73, 0x74, 0x6F, 0x6B, /* Arctic/Longyearbyen */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x53, 0x4A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -43717,7 +43812,7 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x01, 0x30, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x15, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, +0x00, 0x01, 0x36, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x15, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0xBD, 0x4A, 0xB0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x59, 0xCF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0xFA, 0xA6, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xC9, 0x38, 0x9C, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xCC, 0xE5, 0xEB, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xCD, 0xAC, 0xFE, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xCE, @@ -43844,9 +43939,12 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x8B, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBD, 0x84, 0xE3, 0x70, 0x00, 0x00, 0x00, 0x00, 0xBE, 0x6B, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBF, 0x52, 0x50, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x4B, 0x8A, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x28, 0xF7, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xC1, -0x57, 0x2A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC2, 0xFF, 0x9F, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC3, -0x2D, 0xD2, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0xCD, 0x0C, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC5, -0x04, 0x79, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xA3, 0xB3, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xC6, +0x57, 0x2A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x69, 0x91, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC2, +0x2B, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0xFF, 0x9F, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC3, +0x2D, 0xD2, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x49, 0x73, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC4, +0x0B, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0xCD, 0x0C, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC5, +0x04, 0x79, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC5, 0x29, 0x55, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC5, +0xF4, 0x6A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xA3, 0xB3, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xD1, 0xE6, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC7, 0x09, 0x37, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC7, 0xD4, 0x4C, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x71, 0x20, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xC8, 0xA8, 0x8E, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0xE9, 0x19, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC9, @@ -43888,17 +43986,17 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, -0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x00, 0x00, 0x20, 0x50, 0x00, -0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x1C, -0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, -0x00, 0x1C, 0x20, 0x00, 0x11, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, -0x11, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, -0x45, 0x45, 0x54, 0x00, 0x49, 0x44, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x00, 0x01, 0x01, 0x00, -0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x0A, 0x45, 0x45, 0x54, 0x2D, 0x32, 0x45, 0x45, 0x53, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x34, 0x2E, -0x34, 0x2F, 0x35, 0x30, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x0A, -0x00, 0xB9, 0x64, 0xF0, 0x01, 0x47, 0x40, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x47, 0x61, 0x7A, 0x61, -0x20, 0x53, 0x74, 0x72, 0x69, 0x70, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x00, 0x00, 0x20, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, +0x20, 0x00, 0x09, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, +0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x11, 0x00, 0x00, 0x2A, 0x30, 0x01, +0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x11, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x4C, 0x4D, 0x54, +0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x49, 0x44, 0x54, 0x00, 0x49, 0x53, +0x54, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x45, 0x45, 0x54, 0x2D, 0x32, 0x45, 0x45, 0x53, 0x54, +0x2C, 0x4D, 0x33, 0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x34, +0x2E, 0x34, 0x2F, 0x35, 0x30, 0x0A, 0x00, 0xB9, 0x64, 0xF0, 0x01, 0x47, 0x40, 0x0A, 0x00, 0x00, +0x00, 0x0A, 0x47, 0x61, 0x7A, 0x61, 0x20, 0x53, 0x74, 0x72, 0x69, 0x70, /* Asia/Harbin */ 0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -43997,7 +44095,7 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x00, 0x49, 0x53, 0x54, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x32, 0x00, 0x00, 0x00, +0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x38, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x15, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0xBD, 0x4A, 0x19, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x59, 0xCF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0xFA, 0xA6, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xC9, 0x38, 0x9C, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xCC, 0xE5, 0xEB, 0x80, 0xFF, 0xFF, 0xFF, @@ -44126,8 +44224,11 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x00, 0xBD, 0x84, 0xE3, 0x70, 0x00, 0x00, 0x00, 0x00, 0xBE, 0x6B, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBF, 0x52, 0x50, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x4B, 0x8A, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x28, 0xF7, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x57, 0x2A, 0x80, 0x00, 0x00, 0x00, +0x00, 0xC1, 0x69, 0x91, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC2, 0x2B, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0xFF, 0x9F, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x2D, 0xD2, 0x00, 0x00, 0x00, 0x00, +0x00, 0xC3, 0x49, 0x73, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x0B, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0xCD, 0x0C, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC5, 0x04, 0x79, 0x80, 0x00, 0x00, 0x00, +0x00, 0xC5, 0x29, 0x55, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC5, 0xF4, 0x6A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xA3, 0xB3, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xD1, 0xE6, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC7, 0x09, 0x37, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC7, 0xD4, 0x4C, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x71, 0x20, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xC8, 0xA8, 0x8E, 0x00, 0x00, 0x00, 0x00, @@ -44170,17 +44271,17 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, -0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x00, 0x00, 0x20, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x2A, -0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, -0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, -0x11, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x11, 0x00, 0x00, 0x1C, -0x20, 0x00, 0x09, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, -0x49, 0x44, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, -0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x45, 0x45, 0x54, -0x2D, 0x32, 0x45, 0x45, 0x53, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, -0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x0A, 0x00, 0xB9, 0x71, 0xF5, -0x01, 0x48, 0x35, 0x7C, 0x00, 0x00, 0x00, 0x09, 0x57, 0x65, 0x73, 0x74, 0x20, 0x42, 0x61, 0x6E, -0x6B, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x00, 0x00, 0x20, +0xE7, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, +0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x2A, 0x30, 0x01, +0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x11, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, 0x00, 0x1C, +0x20, 0x00, 0x11, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, +0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x49, 0x44, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x00, 0x01, +0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x0A, 0x45, 0x45, 0x54, 0x2D, 0x32, 0x45, 0x45, 0x53, 0x54, 0x2C, 0x4D, 0x33, 0x2E, +0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, +0x30, 0x0A, 0x00, 0xB9, 0x71, 0xF5, 0x01, 0x48, 0x35, 0x7C, 0x00, 0x00, 0x00, 0x09, 0x57, 0x65, +0x73, 0x74, 0x20, 0x42, 0x61, 0x6E, 0x6B, /* Asia/Ho_Chi_Minh */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x56, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -44598,7 +44699,7 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x30, 0x00, 0x57, 0x49, 0x54, 0x00, 0x0A, 0x57, 0x49, 0x54, 0x2D, 0x39, 0x0A, 0x00, 0x85, 0x76, 0xAA, 0x01, 0xE9, 0x59, 0x70, 0x00, 0x00, 0x00, 0x36, 0x4E, 0x65, 0x77, 0x20, 0x47, 0x75, 0x69, 0x6E, 0x65, 0x61, 0x20, 0x28, 0x57, 0x65, 0x73, 0x74, 0x20, 0x50, 0x61, 0x70, 0x75, 0x61, 0x20, -0x2F, 0x20, 0x49, 0x72, 0x69, 0x61, 0x6E, 0x20, 0x4A, 0x61, 0x79, 0x61, 0x29, 0x3B, 0x20, 0x4D, +0x2F, 0x20, 0x49, 0x72, 0x69, 0x61, 0x6E, 0x20, 0x4A, 0x61, 0x79, 0x61, 0x29, 0x2C, 0x20, 0x4D, 0x61, 0x6C, 0x75, 0x6B, 0x75, 0x73, 0x2F, 0x4D, 0x6F, 0x6C, 0x75, 0x63, 0x63, 0x61, 0x73, /* Asia/Jerusalem */ @@ -45435,10 +45536,10 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x10, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x4D, 0x54, 0x00, 0x2B, 0x30, 0x38, 0x00, 0x2B, 0x30, 0x39, 0x00, 0x57, 0x49, 0x54, 0x41, 0x00, 0x0A, 0x57, 0x49, 0x54, 0x41, 0x2D, 0x38, 0x0A, 0x00, 0x81, 0x85, 0x8D, 0x01, 0xC8, 0xD9, 0x1F, 0x00, 0x00, 0x00, 0x49, 0x42, 0x6F, 0x72, 0x6E, 0x65, 0x6F, -0x20, 0x28, 0x65, 0x61, 0x73, 0x74, 0x2C, 0x20, 0x73, 0x6F, 0x75, 0x74, 0x68, 0x29, 0x3B, 0x20, +0x20, 0x28, 0x65, 0x61, 0x73, 0x74, 0x2C, 0x20, 0x73, 0x6F, 0x75, 0x74, 0x68, 0x29, 0x2C, 0x20, 0x53, 0x75, 0x6C, 0x61, 0x77, 0x65, 0x73, 0x69, 0x2F, 0x43, 0x65, 0x6C, 0x65, 0x62, 0x65, 0x73, 0x2C, 0x20, 0x42, 0x61, 0x6C, 0x69, 0x2C, 0x20, 0x4E, 0x75, 0x73, 0x61, 0x20, 0x54, 0x65, 0x6E, -0x67, 0x61, 0x72, 0x72, 0x61, 0x3B, 0x20, 0x54, 0x69, 0x6D, 0x6F, 0x72, 0x20, 0x28, 0x77, 0x65, +0x67, 0x61, 0x72, 0x72, 0x61, 0x2C, 0x20, 0x54, 0x69, 0x6D, 0x6F, 0x72, 0x20, 0x28, 0x77, 0x65, 0x73, 0x74, 0x29, /* Asia/Manila */ @@ -46485,7 +46586,7 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x00, 0x2B, 0x31, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0A, 0x3C, 0x2B, 0x31, 0x31, 0x3E, 0x2D, 0x31, 0x31, 0x0A, 0x00, 0xF0, 0x46, 0x6A, 0x01, 0xFD, 0x36, 0x12, 0x00, 0x00, 0x00, 0x1E, 0x4D, 0x53, 0x4B, 0x2B, 0x30, 0x38, 0x20, 0x2D, 0x20, 0x53, -0x61, 0x6B, 0x68, 0x61, 0x20, 0x28, 0x45, 0x29, 0x3B, 0x20, 0x4E, 0x20, 0x4B, 0x75, 0x72, 0x69, +0x61, 0x6B, 0x68, 0x61, 0x20, 0x28, 0x45, 0x29, 0x2C, 0x20, 0x4E, 0x20, 0x4B, 0x75, 0x72, 0x69, 0x6C, 0x20, 0x49, 0x73, /* Asia/Taipei */ @@ -69999,4 +70100,4 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { }; #endif -const timelib_tzdb timezonedb_builtin = { "2023.3", 597, timezonedb_idx_builtin, timelib_timezone_db_data_builtin }; +const timelib_tzdb timezonedb_builtin = { "2023.4", 597, timezonedb_idx_builtin, timelib_timezone_db_data_builtin }; From 9f3e120dc0c7a3f1fdd8e98e36079448fb2f1600 Mon Sep 17 00:00:00 2001 From: Derick Rethans Date: Tue, 2 Jan 2024 10:21:28 +0000 Subject: [PATCH 56/59] Updated to version 2023.4 (2023d) --- ext/date/lib/timezonedb.h | 2983 +++++++++++++++++++------------------ 1 file changed, 1542 insertions(+), 1441 deletions(-) diff --git a/ext/date/lib/timezonedb.h b/ext/date/lib/timezonedb.h index 94397084d7bb2..366c85c7a7786 100644 --- a/ext/date/lib/timezonedb.h +++ b/ext/date/lib/timezonedb.h @@ -114,498 +114,498 @@ const timelib_tzdb_index_entry timezonedb_idx_builtin[597] = { { (char*) "America/Detroit" , 0x00C3B0 }, { (char*) "America/Dominica" , 0x00C758 }, { (char*) "America/Edmonton" , 0x00C7E6 }, - { (char*) "America/Eirunepe" , 0x00CBE1 }, - { (char*) "America/El_Salvador" , 0x00CDB0 }, - { (char*) "America/Ensenada" , 0x00CE6C }, - { (char*) "America/Fort_Nelson" , 0x00D279 }, - { (char*) "America/Fort_Wayne" , 0x00D841 }, - { (char*) "America/Fortaleza" , 0x00DA60 }, - { (char*) "America/Glace_Bay" , 0x00DC76 }, - { (char*) "America/Godthab" , 0x00E00D }, - { (char*) "America/Goose_Bay" , 0x00E3DE }, - { (char*) "America/Grand_Turk" , 0x00EA36 }, - { (char*) "America/Grenada" , 0x00ED97 }, - { (char*) "America/Guadeloupe" , 0x00EE25 }, - { (char*) "America/Guatemala" , 0x00EEB3 }, - { (char*) "America/Guayaquil" , 0x00EF93 }, - { (char*) "America/Guyana" , 0x00F064 }, - { (char*) "America/Halifax" , 0x00F125 }, - { (char*) "America/Havana" , 0x00F7D7 }, - { (char*) "America/Hermosillo" , 0x00FC40 }, - { (char*) "America/Indiana/Indianapolis" , 0x00FD70 }, - { (char*) "America/Indiana/Knox" , 0x00FFA8 }, - { (char*) "America/Indiana/Marengo" , 0x0103C1 }, - { (char*) "America/Indiana/Petersburg" , 0x01061B }, - { (char*) "America/Indiana/Tell_City" , 0x0108E5 }, - { (char*) "America/Indiana/Vevay" , 0x010B0F }, - { (char*) "America/Indiana/Vincennes" , 0x010CA6 }, - { (char*) "America/Indiana/Winamac" , 0x010EFC }, - { (char*) "America/Indianapolis" , 0x011182 }, - { (char*) "America/Inuvik" , 0x0113A1 }, - { (char*) "America/Iqaluit" , 0x0116F2 }, - { (char*) "America/Jamaica" , 0x011A6E }, - { (char*) "America/Jujuy" , 0x011BCD }, - { (char*) "America/Juneau" , 0x011E8B }, - { (char*) "America/Kentucky/Louisville" , 0x012271 }, - { (char*) "America/Kentucky/Monticello" , 0x012775 }, - { (char*) "America/Knox_IN" , 0x012B61 }, - { (char*) "America/Kralendijk" , 0x012F65 }, - { (char*) "America/La_Paz" , 0x013022 }, - { (char*) "America/Lima" , 0x0130D8 }, - { (char*) "America/Los_Angeles" , 0x0131FF }, - { (char*) "America/Louisville" , 0x013720 }, - { (char*) "America/Lower_Princes" , 0x013C06 }, - { (char*) "America/Maceio" , 0x013CC3 }, - { (char*) "America/Managua" , 0x013ED5 }, - { (char*) "America/Manaus" , 0x014008 }, - { (char*) "America/Marigot" , 0x0141BF }, - { (char*) "America/Martinique" , 0x01427C }, - { (char*) "America/Matamoros" , 0x01433A }, - { (char*) "America/Mazatlan" , 0x014527 }, - { (char*) "America/Mendoza" , 0x014833 }, - { (char*) "America/Menominee" , 0x014B03 }, - { (char*) "America/Merida" , 0x014EC3 }, - { (char*) "America/Metlakatla" , 0x01516E }, - { (char*) "America/Mexico_City" , 0x0153E4 }, - { (char*) "America/Miquelon" , 0x015703 }, - { (char*) "America/Moncton" , 0x015935 }, - { (char*) "America/Monterrey" , 0x015F2E }, - { (char*) "America/Montevideo" , 0x0161F4 }, - { (char*) "America/Montreal" , 0x0165C9 }, - { (char*) "America/Montserrat" , 0x016C8A }, - { (char*) "America/Nassau" , 0x016D18 }, - { (char*) "America/New_York" , 0x017112 }, - { (char*) "America/Nipigon" , 0x017802 }, - { (char*) "America/Nome" , 0x017EC3 }, - { (char*) "America/Noronha" , 0x0182AB }, - { (char*) "America/North_Dakota/Beulah" , 0x0184AB }, - { (char*) "America/North_Dakota/Center" , 0x0188DF }, - { (char*) "America/North_Dakota/New_Salem" , 0x018CDE }, - { (char*) "America/Nuuk" , 0x0190E3 }, - { (char*) "America/Ojinaga" , 0x0194C5 }, - { (char*) "America/Panama" , 0x0197B2 }, - { (char*) "America/Pangnirtung" , 0x019853 }, - { (char*) "America/Paramaribo" , 0x019BB6 }, - { (char*) "America/Phoenix" , 0x019C7D }, - { (char*) "America/Port-au-Prince" , 0x019D91 }, - { (char*) "America/Port_of_Spain" , 0x019FD2 }, - { (char*) "America/Porto_Acre" , 0x01A060 }, - { (char*) "America/Porto_Velho" , 0x01A20E }, - { (char*) "America/Puerto_Rico" , 0x01A3AC }, - { (char*) "America/Punta_Arenas" , 0x01A469 }, - { (char*) "America/Rainy_River" , 0x01A94B }, - { (char*) "America/Rankin_Inlet" , 0x01AE65 }, - { (char*) "America/Recife" , 0x01B1AE }, - { (char*) "America/Regina" , 0x01B3A8 }, - { (char*) "America/Resolute" , 0x01B647 }, - { (char*) "America/Rio_Branco" , 0x01B991 }, - { (char*) "America/Rosario" , 0x01BB43 }, - { (char*) "America/Santa_Isabel" , 0x01BE13 }, - { (char*) "America/Santarem" , 0x01C220 }, - { (char*) "America/Santiago" , 0x01C3D0 }, - { (char*) "America/Santo_Domingo" , 0x01C933 }, - { (char*) "America/Sao_Paulo" , 0x01CA7C }, - { (char*) "America/Scoresbysund" , 0x01CE76 }, - { (char*) "America/Shiprock" , 0x01D07E }, - { (char*) "America/Sitka" , 0x01D49C }, - { (char*) "America/St_Barthelemy" , 0x01D877 }, - { (char*) "America/St_Johns" , 0x01D934 }, - { (char*) "America/St_Kitts" , 0x01E0B8 }, - { (char*) "America/St_Lucia" , 0x01E146 }, - { (char*) "America/St_Thomas" , 0x01E1E7 }, - { (char*) "America/St_Vincent" , 0x01E275 }, - { (char*) "America/Swift_Current" , 0x01E316 }, - { (char*) "America/Tegucigalpa" , 0x01E4A4 }, - { (char*) "America/Thule" , 0x01E572 }, - { (char*) "America/Thunder_Bay" , 0x01E753 }, - { (char*) "America/Tijuana" , 0x01EE14 }, - { (char*) "America/Toronto" , 0x01F230 }, - { (char*) "America/Tortola" , 0x01F90E }, - { (char*) "America/Vancouver" , 0x01F99C }, - { (char*) "America/Virgin" , 0x01FEF3 }, - { (char*) "America/Whitehorse" , 0x01FFB0 }, - { (char*) "America/Winnipeg" , 0x0203D3 }, - { (char*) "America/Yakutat" , 0x02090A }, - { (char*) "America/Yellowknife" , 0x020CD8 }, - { (char*) "Antarctica/Casey" , 0x0210AE }, - { (char*) "Antarctica/Davis" , 0x0211B2 }, - { (char*) "Antarctica/DumontDUrville" , 0x021288 }, - { (char*) "Antarctica/Macquarie" , 0x02133C }, - { (char*) "Antarctica/Mawson" , 0x021728 }, - { (char*) "Antarctica/McMurdo" , 0x0217D2 }, - { (char*) "Antarctica/Palmer" , 0x021B04 }, - { (char*) "Antarctica/Rothera" , 0x021E8D }, - { (char*) "Antarctica/South_Pole" , 0x021F24 }, - { (char*) "Antarctica/Syowa" , 0x022343 }, - { (char*) "Antarctica/Troll" , 0x0223D9 }, - { (char*) "Antarctica/Vostok" , 0x02249B }, - { (char*) "Arctic/Longyearbyen" , 0x022532 }, - { (char*) "Asia/Aden" , 0x0227FF }, - { (char*) "Asia/Almaty" , 0x022890 }, - { (char*) "Asia/Amman" , 0x022B0F }, - { (char*) "Asia/Anadyr" , 0x022EBB }, - { (char*) "Asia/Aqtau" , 0x0231C1 }, - { (char*) "Asia/Aqtobe" , 0x023440 }, - { (char*) "Asia/Ashgabat" , 0x0236C0 }, - { (char*) "Asia/Ashkhabad" , 0x023843 }, - { (char*) "Asia/Atyrau" , 0x0239C6 }, - { (char*) "Asia/Baghdad" , 0x023C4F }, - { (char*) "Asia/Bahrain" , 0x023ED1 }, - { (char*) "Asia/Baku" , 0x023F8A }, - { (char*) "Asia/Bangkok" , 0x02427E }, - { (char*) "Asia/Barnaul" , 0x024322 }, - { (char*) "Asia/Beirut" , 0x02462D }, - { (char*) "Asia/Bishkek" , 0x024915 }, - { (char*) "Asia/Brunei" , 0x024B8B }, - { (char*) "Asia/Calcutta" , 0x024C31 }, - { (char*) "Asia/Chita" , 0x024D19 }, - { (char*) "Asia/Choibalsan" , 0x025027 }, - { (char*) "Asia/Chongqing" , 0x0252B0 }, - { (char*) "Asia/Chungking" , 0x025445 }, - { (char*) "Asia/Colombo" , 0x0255DA }, - { (char*) "Asia/Dacca" , 0x0256DD }, - { (char*) "Asia/Damascus" , 0x0257D0 }, - { (char*) "Asia/Dhaka" , 0x025CAE }, - { (char*) "Asia/Dili" , 0x025DA1 }, - { (char*) "Asia/Dubai" , 0x025E57 }, - { (char*) "Asia/Dushanbe" , 0x025EE8 }, - { (char*) "Asia/Famagusta" , 0x026062 }, - { (char*) "Asia/Gaza" , 0x026429 }, - { (char*) "Asia/Harbin" , 0x026E15 }, - { (char*) "Asia/Hebron" , 0x026FAA }, - { (char*) "Asia/Ho_Chi_Minh" , 0x0279A7 }, - { (char*) "Asia/Hong_Kong" , 0x027A9F }, - { (char*) "Asia/Hovd" , 0x027DB2 }, - { (char*) "Asia/Irkutsk" , 0x02803B }, - { (char*) "Asia/Istanbul" , 0x028359 }, - { (char*) "Asia/Jakarta" , 0x028815 }, - { (char*) "Asia/Jayapura" , 0x028926 }, - { (char*) "Asia/Jerusalem" , 0x028A13 }, - { (char*) "Asia/Kabul" , 0x028E51 }, - { (char*) "Asia/Kamchatka" , 0x028EFC }, - { (char*) "Asia/Karachi" , 0x0291F1 }, - { (char*) "Asia/Kashgar" , 0x029307 }, - { (char*) "Asia/Kathmandu" , 0x029398 }, - { (char*) "Asia/Katmandu" , 0x029445 }, - { (char*) "Asia/Khandyga" , 0x0294F2 }, - { (char*) "Asia/Kolkata" , 0x029823 }, - { (char*) "Asia/Krasnoyarsk" , 0x02990B }, - { (char*) "Asia/Kuala_Lumpur" , 0x029C15 }, - { (char*) "Asia/Kuching" , 0x029D35 }, - { (char*) "Asia/Kuwait" , 0x029E8F }, - { (char*) "Asia/Macao" , 0x029F20 }, - { (char*) "Asia/Macau" , 0x02A243 }, - { (char*) "Asia/Magadan" , 0x02A566 }, - { (char*) "Asia/Makassar" , 0x02A871 }, - { (char*) "Asia/Manila" , 0x02A984 }, - { (char*) "Asia/Muscat" , 0x02AA7E }, - { (char*) "Asia/Nicosia" , 0x02AB0F }, - { (char*) "Asia/Novokuznetsk" , 0x02AD7E }, - { (char*) "Asia/Novosibirsk" , 0x02B071 }, - { (char*) "Asia/Omsk" , 0x02B382 }, - { (char*) "Asia/Oral" , 0x02B680 }, - { (char*) "Asia/Phnom_Penh" , 0x02B90C }, - { (char*) "Asia/Pontianak" , 0x02B9E0 }, - { (char*) "Asia/Pyongyang" , 0x02BAF9 }, - { (char*) "Asia/Qatar" , 0x02BBBC }, - { (char*) "Asia/Qostanay" , 0x02BC60 }, - { (char*) "Asia/Qyzylorda" , 0x02BEED }, - { (char*) "Asia/Rangoon" , 0x02C186 }, - { (char*) "Asia/Riyadh" , 0x02C24D }, - { (char*) "Asia/Saigon" , 0x02C2DE }, - { (char*) "Asia/Sakhalin" , 0x02C3D6 }, - { (char*) "Asia/Samarkand" , 0x02C6ED }, - { (char*) "Asia/Seoul" , 0x02C878 }, - { (char*) "Asia/Shanghai" , 0x02CA23 }, - { (char*) "Asia/Singapore" , 0x02CBC4 }, - { (char*) "Asia/Srednekolymsk" , 0x02CCD0 }, - { (char*) "Asia/Taipei" , 0x02CFE0 }, - { (char*) "Asia/Tashkent" , 0x02D1EB }, - { (char*) "Asia/Tbilisi" , 0x02D376 }, - { (char*) "Asia/Tehran" , 0x02D5F7 }, - { (char*) "Asia/Tel_Aviv" , 0x02D92F }, - { (char*) "Asia/Thimbu" , 0x02DD6D }, - { (char*) "Asia/Thimphu" , 0x02DE13 }, - { (char*) "Asia/Tokyo" , 0x02DEB9 }, - { (char*) "Asia/Tomsk" , 0x02DF9A }, - { (char*) "Asia/Ujung_Pandang" , 0x02E2A5 }, - { (char*) "Asia/Ulaanbaatar" , 0x02E36F }, - { (char*) "Asia/Ulan_Bator" , 0x02E5DD }, - { (char*) "Asia/Urumqi" , 0x02E83B }, - { (char*) "Asia/Ust-Nera" , 0x02E8D9 }, - { (char*) "Asia/Vientiane" , 0x02EBFC }, - { (char*) "Asia/Vladivostok" , 0x02ECE2 }, - { (char*) "Asia/Yakutsk" , 0x02EFE7 }, - { (char*) "Asia/Yangon" , 0x02F2EB }, - { (char*) "Asia/Yekaterinburg" , 0x02F3B2 }, - { (char*) "Asia/Yerevan" , 0x02F6C4 }, - { (char*) "Atlantic/Azores" , 0x02F994 }, - { (char*) "Atlantic/Bermuda" , 0x02FF53 }, - { (char*) "Atlantic/Canary" , 0x03035F }, - { (char*) "Atlantic/Cape_Verde" , 0x030557 }, - { (char*) "Atlantic/Faeroe" , 0x030612 }, - { (char*) "Atlantic/Faroe" , 0x0307D7 }, - { (char*) "Atlantic/Jan_Mayen" , 0x03099C }, - { (char*) "Atlantic/Madeira" , 0x030C69 }, - { (char*) "Atlantic/Reykjavik" , 0x031231 }, - { (char*) "Atlantic/South_Georgia" , 0x03152E }, - { (char*) "Atlantic/St_Helena" , 0x0315BE }, - { (char*) "Atlantic/Stanley" , 0x03165F }, - { (char*) "Australia/ACT" , 0x031980 }, - { (char*) "Australia/Adelaide" , 0x031D14 }, - { (char*) "Australia/Brisbane" , 0x0320C8 }, - { (char*) "Australia/Broken_Hill" , 0x03220C }, - { (char*) "Australia/Canberra" , 0x0325E1 }, - { (char*) "Australia/Currie" , 0x032975 }, - { (char*) "Australia/Darwin" , 0x032D6C }, - { (char*) "Australia/Eucla" , 0x032E74 }, - { (char*) "Australia/Hobart" , 0x032FD3 }, - { (char*) "Australia/LHI" , 0x0333D2 }, - { (char*) "Australia/Lindeman" , 0x033692 }, - { (char*) "Australia/Lord_Howe" , 0x033802 }, - { (char*) "Australia/Melbourne" , 0x033AD2 }, - { (char*) "Australia/North" , 0x033E6E }, - { (char*) "Australia/NSW" , 0x033F64 }, - { (char*) "Australia/Perth" , 0x0342F8 }, - { (char*) "Australia/Queensland" , 0x034454 }, - { (char*) "Australia/South" , 0x034581 }, - { (char*) "Australia/Sydney" , 0x034926 }, - { (char*) "Australia/Tasmania" , 0x034CD6 }, - { (char*) "Australia/Victoria" , 0x0350CD }, - { (char*) "Australia/West" , 0x035461 }, - { (char*) "Australia/Yancowinna" , 0x03559F }, - { (char*) "Brazil/Acre" , 0x035958 }, - { (char*) "Brazil/DeNoronha" , 0x035B06 }, - { (char*) "Brazil/East" , 0x035CF6 }, - { (char*) "Brazil/West" , 0x0360BA }, - { (char*) "Canada/Atlantic" , 0x036262 }, - { (char*) "Canada/Central" , 0x0368F6 }, - { (char*) "Canada/Eastern" , 0x036E10 }, - { (char*) "Canada/Mountain" , 0x0374D1 }, - { (char*) "Canada/Newfoundland" , 0x0378A7 }, - { (char*) "Canada/Pacific" , 0x038009 }, - { (char*) "Canada/Saskatchewan" , 0x038547 }, - { (char*) "Canada/Yukon" , 0x0387D1 }, - { (char*) "CET" , 0x038BE2 }, - { (char*) "Chile/Continental" , 0x038E5B }, - { (char*) "Chile/EasterIsland" , 0x0393B1 }, - { (char*) "CST6CDT" , 0x039853 }, - { (char*) "Cuba" , 0x039C16 }, - { (char*) "EET" , 0x03A07F }, - { (char*) "Egypt" , 0x03A27C }, - { (char*) "Eire" , 0x03A7A5 }, - { (char*) "EST" , 0x03AD89 }, - { (char*) "EST5EDT" , 0x03AE04 }, - { (char*) "Etc/GMT" , 0x03B1C7 }, - { (char*) "Etc/GMT+0" , 0x03B242 }, - { (char*) "Etc/GMT+1" , 0x03B2BD }, - { (char*) "Etc/GMT+10" , 0x03B33A }, - { (char*) "Etc/GMT+11" , 0x03B3B8 }, - { (char*) "Etc/GMT+12" , 0x03B436 }, - { (char*) "Etc/GMT+2" , 0x03B4B4 }, - { (char*) "Etc/GMT+3" , 0x03B531 }, - { (char*) "Etc/GMT+4" , 0x03B5AE }, - { (char*) "Etc/GMT+5" , 0x03B62B }, - { (char*) "Etc/GMT+6" , 0x03B6A8 }, - { (char*) "Etc/GMT+7" , 0x03B725 }, - { (char*) "Etc/GMT+8" , 0x03B7A2 }, - { (char*) "Etc/GMT+9" , 0x03B81F }, - { (char*) "Etc/GMT-0" , 0x03B89C }, - { (char*) "Etc/GMT-1" , 0x03B917 }, - { (char*) "Etc/GMT-10" , 0x03B995 }, - { (char*) "Etc/GMT-11" , 0x03BA14 }, - { (char*) "Etc/GMT-12" , 0x03BA93 }, - { (char*) "Etc/GMT-13" , 0x03BB12 }, - { (char*) "Etc/GMT-14" , 0x03BB91 }, - { (char*) "Etc/GMT-2" , 0x03BC10 }, - { (char*) "Etc/GMT-3" , 0x03BC8E }, - { (char*) "Etc/GMT-4" , 0x03BD0C }, - { (char*) "Etc/GMT-5" , 0x03BD8A }, - { (char*) "Etc/GMT-6" , 0x03BE08 }, - { (char*) "Etc/GMT-7" , 0x03BE86 }, - { (char*) "Etc/GMT-8" , 0x03BF04 }, - { (char*) "Etc/GMT-9" , 0x03BF82 }, - { (char*) "Etc/GMT0" , 0x03C000 }, - { (char*) "Etc/Greenwich" , 0x03C07B }, - { (char*) "Etc/UCT" , 0x03C0F6 }, - { (char*) "Etc/Universal" , 0x03C171 }, - { (char*) "Etc/UTC" , 0x03C1EC }, - { (char*) "Etc/Zulu" , 0x03C267 }, - { (char*) "Europe/Amsterdam" , 0x03C2E2 }, - { (char*) "Europe/Andorra" , 0x03C71D }, - { (char*) "Europe/Astrakhan" , 0x03C8AE }, - { (char*) "Europe/Athens" , 0x03CBA2 }, - { (char*) "Europe/Belfast" , 0x03CE58 }, - { (char*) "Europe/Belgrade" , 0x03D4A3 }, - { (char*) "Europe/Berlin" , 0x03D68D }, - { (char*) "Europe/Bratislava" , 0x03D969 }, - { (char*) "Europe/Brussels" , 0x03DC48 }, - { (char*) "Europe/Bucharest" , 0x03E0A3 }, - { (char*) "Europe/Budapest" , 0x03E344 }, - { (char*) "Europe/Busingen" , 0x03E64E }, - { (char*) "Europe/Chisinau" , 0x03E853 }, - { (char*) "Europe/Copenhagen" , 0x03EB52 }, - { (char*) "Europe/Dublin" , 0x03EDCD }, - { (char*) "Europe/Gibraltar" , 0x03F3B1 }, - { (char*) "Europe/Guernsey" , 0x03F881 }, - { (char*) "Europe/Helsinki" , 0x03FED8 }, - { (char*) "Europe/Isle_of_Man" , 0x0400C5 }, - { (char*) "Europe/Istanbul" , 0x040710 }, - { (char*) "Europe/Jersey" , 0x040BCC }, - { (char*) "Europe/Kaliningrad" , 0x041223 }, - { (char*) "Europe/Kiev" , 0x0415CB }, - { (char*) "Europe/Kirov" , 0x041805 }, - { (char*) "Europe/Kyiv" , 0x041AFE }, - { (char*) "Europe/Lisbon" , 0x041D47 }, - { (char*) "Europe/Ljubljana" , 0x042314 }, - { (char*) "Europe/London" , 0x0424FE }, - { (char*) "Europe/Luxembourg" , 0x042B49 }, - { (char*) "Europe/Madrid" , 0x042F94 }, - { (char*) "Europe/Malta" , 0x043331 }, - { (char*) "Europe/Mariehamn" , 0x0436DD }, - { (char*) "Europe/Minsk" , 0x0438CA }, - { (char*) "Europe/Monaco" , 0x043BFE }, - { (char*) "Europe/Moscow" , 0x044064 }, - { (char*) "Europe/Nicosia" , 0x044410 }, - { (char*) "Europe/Oslo" , 0x044671 }, - { (char*) "Europe/Paris" , 0x044921 }, - { (char*) "Europe/Podgorica" , 0x044D7E }, - { (char*) "Europe/Prague" , 0x044F68 }, - { (char*) "Europe/Riga" , 0x045247 }, - { (char*) "Europe/Rome" , 0x045509 }, - { (char*) "Europe/Samara" , 0x0458C8 }, - { (char*) "Europe/San_Marino" , 0x045BC9 }, - { (char*) "Europe/Sarajevo" , 0x045F88 }, - { (char*) "Europe/Saratov" , 0x046172 }, - { (char*) "Europe/Simferopol" , 0x046464 }, - { (char*) "Europe/Skopje" , 0x0467D7 }, - { (char*) "Europe/Sofia" , 0x0469C1 }, - { (char*) "Europe/Stockholm" , 0x046C1D }, - { (char*) "Europe/Tallinn" , 0x046E1A }, - { (char*) "Europe/Tirane" , 0x0470C9 }, - { (char*) "Europe/Tiraspol" , 0x047331 }, - { (char*) "Europe/Ulyanovsk" , 0x047630 }, - { (char*) "Europe/Uzhgorod" , 0x047946 }, - { (char*) "Europe/Vaduz" , 0x047B80 }, - { (char*) "Europe/Vatican" , 0x047D6A }, - { (char*) "Europe/Vienna" , 0x048129 }, - { (char*) "Europe/Vilnius" , 0x0483C7 }, - { (char*) "Europe/Volgograd" , 0x048677 }, - { (char*) "Europe/Warsaw" , 0x048986 }, - { (char*) "Europe/Zagreb" , 0x048D2D }, - { (char*) "Europe/Zaporozhye" , 0x048F17 }, - { (char*) "Europe/Zurich" , 0x049151 }, - { (char*) "Factory" , 0x04934E }, - { (char*) "GB" , 0x0493CB }, - { (char*) "GB-Eire" , 0x049A16 }, - { (char*) "GMT" , 0x04A061 }, - { (char*) "GMT+0" , 0x04A0DC }, - { (char*) "GMT-0" , 0x04A157 }, - { (char*) "GMT0" , 0x04A1D2 }, - { (char*) "Greenwich" , 0x04A24D }, - { (char*) "Hongkong" , 0x04A2C8 }, - { (char*) "HST" , 0x04A5DB }, - { (char*) "Iceland" , 0x04A657 }, - { (char*) "Indian/Antananarivo" , 0x04A6E5 }, - { (char*) "Indian/Chagos" , 0x04A791 }, - { (char*) "Indian/Christmas" , 0x04A835 }, - { (char*) "Indian/Cocos" , 0x04A8C6 }, - { (char*) "Indian/Comoro" , 0x04A95E }, - { (char*) "Indian/Kerguelen" , 0x04A9ED }, - { (char*) "Indian/Mahe" , 0x04AA7E }, - { (char*) "Indian/Maldives" , 0x04AB0F }, - { (char*) "Indian/Mauritius" , 0x04ABB3 }, - { (char*) "Indian/Mayotte" , 0x04AC72 }, - { (char*) "Indian/Reunion" , 0x04AD01 }, - { (char*) "Iran" , 0x04AD92 }, - { (char*) "Israel" , 0x04B0CA }, - { (char*) "Jamaica" , 0x04B508 }, - { (char*) "Japan" , 0x04B667 }, - { (char*) "Kwajalein" , 0x04B748 }, - { (char*) "Libya" , 0x04B82F }, - { (char*) "MET" , 0x04B9EA }, - { (char*) "Mexico/BajaNorte" , 0x04BC63 }, - { (char*) "Mexico/BajaSur" , 0x04C070 }, - { (char*) "Mexico/General" , 0x04C34A }, - { (char*) "MST" , 0x04C65B }, - { (char*) "MST7MDT" , 0x04C6D6 }, - { (char*) "Navajo" , 0x04CA99 }, - { (char*) "NZ" , 0x04CEB7 }, - { (char*) "NZ-CHAT" , 0x04D2D6 }, - { (char*) "Pacific/Apia" , 0x04D60A }, - { (char*) "Pacific/Auckland" , 0x04D7AD }, - { (char*) "Pacific/Bougainville" , 0x04DBDF }, - { (char*) "Pacific/Chatham" , 0x04DCC0 }, - { (char*) "Pacific/Chuuk" , 0x04E003 }, - { (char*) "Pacific/Easter" , 0x04E0E1 }, - { (char*) "Pacific/Efate" , 0x04E590 }, - { (char*) "Pacific/Enderbury" , 0x04E6F2 }, - { (char*) "Pacific/Fakaofo" , 0x04E7AA }, - { (char*) "Pacific/Fiji" , 0x04E84F }, - { (char*) "Pacific/Funafuti" , 0x04E9E7 }, - { (char*) "Pacific/Galapagos" , 0x04EA79 }, - { (char*) "Pacific/Gambier" , 0x04EB45 }, - { (char*) "Pacific/Guadalcanal" , 0x04EBE4 }, - { (char*) "Pacific/Guam" , 0x04EC76 }, - { (char*) "Pacific/Honolulu" , 0x04EDE0 }, - { (char*) "Pacific/Johnston" , 0x04EECF }, - { (char*) "Pacific/Kanton" , 0x04EFB8 }, - { (char*) "Pacific/Kiritimati" , 0x04F07F }, - { (char*) "Pacific/Kosrae" , 0x04F145 }, - { (char*) "Pacific/Kwajalein" , 0x04F249 }, - { (char*) "Pacific/Majuro" , 0x04F339 }, - { (char*) "Pacific/Marquesas" , 0x04F437 }, - { (char*) "Pacific/Midway" , 0x04F4DF }, - { (char*) "Pacific/Nauru" , 0x04F5A2 }, - { (char*) "Pacific/Niue" , 0x04F665 }, - { (char*) "Pacific/Norfolk" , 0x04F70B }, - { (char*) "Pacific/Noumea" , 0x04F80E }, - { (char*) "Pacific/Pago_Pago" , 0x04F8E0 }, - { (char*) "Pacific/Palau" , 0x04F97E }, - { (char*) "Pacific/Pitcairn" , 0x04FA1E }, - { (char*) "Pacific/Pohnpei" , 0x04FAC3 }, - { (char*) "Pacific/Ponape" , 0x04FBB3 }, - { (char*) "Pacific/Port_Moresby" , 0x04FC45 }, - { (char*) "Pacific/Rarotonga" , 0x04FD03 }, - { (char*) "Pacific/Saipan" , 0x04FEA5 }, - { (char*) "Pacific/Samoa" , 0x050006 }, - { (char*) "Pacific/Tahiti" , 0x0500A4 }, - { (char*) "Pacific/Tarawa" , 0x050144 }, - { (char*) "Pacific/Tongatapu" , 0x0501E5 }, - { (char*) "Pacific/Truk" , 0x0502DE }, - { (char*) "Pacific/Wake" , 0x050384 }, - { (char*) "Pacific/Wallis" , 0x050421 }, - { (char*) "Pacific/Yap" , 0x0504B3 }, - { (char*) "Poland" , 0x050559 }, - { (char*) "Portugal" , 0x050900 }, - { (char*) "PRC" , 0x050EBA }, - { (char*) "PST8PDT" , 0x05104F }, - { (char*) "ROC" , 0x051412 }, - { (char*) "ROK" , 0x05161D }, - { (char*) "Singapore" , 0x0517C8 }, - { (char*) "Turkey" , 0x0518D4 }, - { (char*) "UCT" , 0x051D90 }, - { (char*) "Universal" , 0x051E0B }, - { (char*) "US/Alaska" , 0x051E86 }, - { (char*) "US/Aleutian" , 0x052263 }, - { (char*) "US/Arizona" , 0x052638 }, - { (char*) "US/Central" , 0x052734 }, - { (char*) "US/East-Indiana" , 0x052E1A }, - { (char*) "US/Eastern" , 0x053039 }, - { (char*) "US/Hawaii" , 0x053715 }, - { (char*) "US/Indiana-Starke" , 0x0537FE }, - { (char*) "US/Michigan" , 0x053C02 }, - { (char*) "US/Mountain" , 0x053F91 }, - { (char*) "US/Pacific" , 0x0543AF }, - { (char*) "US/Samoa" , 0x0548C9 }, - { (char*) "UTC" , 0x054967 }, - { (char*) "W-SU" , 0x0549E2 }, - { (char*) "WET" , 0x054D7A }, - { (char*) "Zulu" , 0x054F74 }, + { (char*) "America/Eirunepe" , 0x00CBDE }, + { (char*) "America/El_Salvador" , 0x00CDAD }, + { (char*) "America/Ensenada" , 0x00CE69 }, + { (char*) "America/Fort_Nelson" , 0x00D276 }, + { (char*) "America/Fort_Wayne" , 0x00D83E }, + { (char*) "America/Fortaleza" , 0x00DA5D }, + { (char*) "America/Glace_Bay" , 0x00DC73 }, + { (char*) "America/Godthab" , 0x00E00A }, + { (char*) "America/Goose_Bay" , 0x00E3DB }, + { (char*) "America/Grand_Turk" , 0x00EA33 }, + { (char*) "America/Grenada" , 0x00ED94 }, + { (char*) "America/Guadeloupe" , 0x00EE22 }, + { (char*) "America/Guatemala" , 0x00EEB0 }, + { (char*) "America/Guayaquil" , 0x00EF90 }, + { (char*) "America/Guyana" , 0x00F061 }, + { (char*) "America/Halifax" , 0x00F122 }, + { (char*) "America/Havana" , 0x00F7D4 }, + { (char*) "America/Hermosillo" , 0x00FC3D }, + { (char*) "America/Indiana/Indianapolis" , 0x00FD6D }, + { (char*) "America/Indiana/Knox" , 0x00FFA5 }, + { (char*) "America/Indiana/Marengo" , 0x0103BE }, + { (char*) "America/Indiana/Petersburg" , 0x010618 }, + { (char*) "America/Indiana/Tell_City" , 0x0108E2 }, + { (char*) "America/Indiana/Vevay" , 0x010B0C }, + { (char*) "America/Indiana/Vincennes" , 0x010CA3 }, + { (char*) "America/Indiana/Winamac" , 0x010EF9 }, + { (char*) "America/Indianapolis" , 0x011176 }, + { (char*) "America/Inuvik" , 0x011395 }, + { (char*) "America/Iqaluit" , 0x0116E6 }, + { (char*) "America/Jamaica" , 0x011A62 }, + { (char*) "America/Jujuy" , 0x011BC1 }, + { (char*) "America/Juneau" , 0x011E7F }, + { (char*) "America/Kentucky/Louisville" , 0x012265 }, + { (char*) "America/Kentucky/Monticello" , 0x012769 }, + { (char*) "America/Knox_IN" , 0x012B55 }, + { (char*) "America/Kralendijk" , 0x012F59 }, + { (char*) "America/La_Paz" , 0x013016 }, + { (char*) "America/Lima" , 0x0130CC }, + { (char*) "America/Los_Angeles" , 0x0131F3 }, + { (char*) "America/Louisville" , 0x013714 }, + { (char*) "America/Lower_Princes" , 0x013BFA }, + { (char*) "America/Maceio" , 0x013CB7 }, + { (char*) "America/Managua" , 0x013EC9 }, + { (char*) "America/Manaus" , 0x013FFC }, + { (char*) "America/Marigot" , 0x0141B3 }, + { (char*) "America/Martinique" , 0x014270 }, + { (char*) "America/Matamoros" , 0x01432E }, + { (char*) "America/Mazatlan" , 0x01451B }, + { (char*) "America/Mendoza" , 0x014827 }, + { (char*) "America/Menominee" , 0x014AF7 }, + { (char*) "America/Merida" , 0x014EB7 }, + { (char*) "America/Metlakatla" , 0x015162 }, + { (char*) "America/Mexico_City" , 0x0153CF }, + { (char*) "America/Miquelon" , 0x0156EE }, + { (char*) "America/Moncton" , 0x015920 }, + { (char*) "America/Monterrey" , 0x015F19 }, + { (char*) "America/Montevideo" , 0x0161DF }, + { (char*) "America/Montreal" , 0x0165B4 }, + { (char*) "America/Montserrat" , 0x016C75 }, + { (char*) "America/Nassau" , 0x016D03 }, + { (char*) "America/New_York" , 0x0170FD }, + { (char*) "America/Nipigon" , 0x0177ED }, + { (char*) "America/Nome" , 0x017EAE }, + { (char*) "America/Noronha" , 0x018296 }, + { (char*) "America/North_Dakota/Beulah" , 0x018496 }, + { (char*) "America/North_Dakota/Center" , 0x0188CA }, + { (char*) "America/North_Dakota/New_Salem" , 0x018CC9 }, + { (char*) "America/Nuuk" , 0x0190CE }, + { (char*) "America/Ojinaga" , 0x0194B0 }, + { (char*) "America/Panama" , 0x0197A6 }, + { (char*) "America/Pangnirtung" , 0x019847 }, + { (char*) "America/Paramaribo" , 0x019BAA }, + { (char*) "America/Phoenix" , 0x019C71 }, + { (char*) "America/Port-au-Prince" , 0x019D85 }, + { (char*) "America/Port_of_Spain" , 0x019FC6 }, + { (char*) "America/Porto_Acre" , 0x01A054 }, + { (char*) "America/Porto_Velho" , 0x01A202 }, + { (char*) "America/Puerto_Rico" , 0x01A3A0 }, + { (char*) "America/Punta_Arenas" , 0x01A45D }, + { (char*) "America/Rainy_River" , 0x01A93F }, + { (char*) "America/Rankin_Inlet" , 0x01AE59 }, + { (char*) "America/Recife" , 0x01B1A2 }, + { (char*) "America/Regina" , 0x01B39C }, + { (char*) "America/Resolute" , 0x01B63B }, + { (char*) "America/Rio_Branco" , 0x01B985 }, + { (char*) "America/Rosario" , 0x01BB37 }, + { (char*) "America/Santa_Isabel" , 0x01BE07 }, + { (char*) "America/Santarem" , 0x01C214 }, + { (char*) "America/Santiago" , 0x01C3C4 }, + { (char*) "America/Santo_Domingo" , 0x01C927 }, + { (char*) "America/Sao_Paulo" , 0x01CA70 }, + { (char*) "America/Scoresbysund" , 0x01CE6A }, + { (char*) "America/Shiprock" , 0x01D26B }, + { (char*) "America/Sitka" , 0x01D689 }, + { (char*) "America/St_Barthelemy" , 0x01DA64 }, + { (char*) "America/St_Johns" , 0x01DB21 }, + { (char*) "America/St_Kitts" , 0x01E29E }, + { (char*) "America/St_Lucia" , 0x01E32C }, + { (char*) "America/St_Thomas" , 0x01E3CD }, + { (char*) "America/St_Vincent" , 0x01E45B }, + { (char*) "America/Swift_Current" , 0x01E4FC }, + { (char*) "America/Tegucigalpa" , 0x01E68A }, + { (char*) "America/Thule" , 0x01E758 }, + { (char*) "America/Thunder_Bay" , 0x01E939 }, + { (char*) "America/Tijuana" , 0x01EFFA }, + { (char*) "America/Toronto" , 0x01F416 }, + { (char*) "America/Tortola" , 0x01FAF5 }, + { (char*) "America/Vancouver" , 0x01FB83 }, + { (char*) "America/Virgin" , 0x0200DA }, + { (char*) "America/Whitehorse" , 0x020197 }, + { (char*) "America/Winnipeg" , 0x0205BA }, + { (char*) "America/Yakutat" , 0x020AF1 }, + { (char*) "America/Yellowknife" , 0x020EBF }, + { (char*) "Antarctica/Casey" , 0x021295 }, + { (char*) "Antarctica/Davis" , 0x0213C5 }, + { (char*) "Antarctica/DumontDUrville" , 0x02149B }, + { (char*) "Antarctica/Macquarie" , 0x02154F }, + { (char*) "Antarctica/Mawson" , 0x02193B }, + { (char*) "Antarctica/McMurdo" , 0x0219E5 }, + { (char*) "Antarctica/Palmer" , 0x021D17 }, + { (char*) "Antarctica/Rothera" , 0x0220A0 }, + { (char*) "Antarctica/South_Pole" , 0x022137 }, + { (char*) "Antarctica/Syowa" , 0x022556 }, + { (char*) "Antarctica/Troll" , 0x0225EC }, + { (char*) "Antarctica/Vostok" , 0x02269B }, + { (char*) "Arctic/Longyearbyen" , 0x022757 }, + { (char*) "Asia/Aden" , 0x022A24 }, + { (char*) "Asia/Almaty" , 0x022AB5 }, + { (char*) "Asia/Amman" , 0x022D34 }, + { (char*) "Asia/Anadyr" , 0x0230E0 }, + { (char*) "Asia/Aqtau" , 0x0233E6 }, + { (char*) "Asia/Aqtobe" , 0x023665 }, + { (char*) "Asia/Ashgabat" , 0x0238E5 }, + { (char*) "Asia/Ashkhabad" , 0x023A68 }, + { (char*) "Asia/Atyrau" , 0x023BEB }, + { (char*) "Asia/Baghdad" , 0x023E74 }, + { (char*) "Asia/Bahrain" , 0x0240F6 }, + { (char*) "Asia/Baku" , 0x0241AF }, + { (char*) "Asia/Bangkok" , 0x0244A3 }, + { (char*) "Asia/Barnaul" , 0x024547 }, + { (char*) "Asia/Beirut" , 0x024852 }, + { (char*) "Asia/Bishkek" , 0x024B3A }, + { (char*) "Asia/Brunei" , 0x024DB0 }, + { (char*) "Asia/Calcutta" , 0x024E56 }, + { (char*) "Asia/Chita" , 0x024F3E }, + { (char*) "Asia/Choibalsan" , 0x02524C }, + { (char*) "Asia/Chongqing" , 0x0254D5 }, + { (char*) "Asia/Chungking" , 0x02566A }, + { (char*) "Asia/Colombo" , 0x0257FF }, + { (char*) "Asia/Dacca" , 0x025902 }, + { (char*) "Asia/Damascus" , 0x0259F5 }, + { (char*) "Asia/Dhaka" , 0x025ED3 }, + { (char*) "Asia/Dili" , 0x025FC6 }, + { (char*) "Asia/Dubai" , 0x02607C }, + { (char*) "Asia/Dushanbe" , 0x02610D }, + { (char*) "Asia/Famagusta" , 0x026287 }, + { (char*) "Asia/Gaza" , 0x02664E }, + { (char*) "Asia/Harbin" , 0x0271FC }, + { (char*) "Asia/Hebron" , 0x027391 }, + { (char*) "Asia/Ho_Chi_Minh" , 0x027F50 }, + { (char*) "Asia/Hong_Kong" , 0x028048 }, + { (char*) "Asia/Hovd" , 0x02835B }, + { (char*) "Asia/Irkutsk" , 0x0285E4 }, + { (char*) "Asia/Istanbul" , 0x028902 }, + { (char*) "Asia/Jakarta" , 0x028DBE }, + { (char*) "Asia/Jayapura" , 0x028ECF }, + { (char*) "Asia/Jerusalem" , 0x028FBC }, + { (char*) "Asia/Kabul" , 0x0293FA }, + { (char*) "Asia/Kamchatka" , 0x0294A5 }, + { (char*) "Asia/Karachi" , 0x02979A }, + { (char*) "Asia/Kashgar" , 0x0298B0 }, + { (char*) "Asia/Kathmandu" , 0x029941 }, + { (char*) "Asia/Katmandu" , 0x0299EE }, + { (char*) "Asia/Khandyga" , 0x029A9B }, + { (char*) "Asia/Kolkata" , 0x029DCC }, + { (char*) "Asia/Krasnoyarsk" , 0x029EB4 }, + { (char*) "Asia/Kuala_Lumpur" , 0x02A1BE }, + { (char*) "Asia/Kuching" , 0x02A2DE }, + { (char*) "Asia/Kuwait" , 0x02A438 }, + { (char*) "Asia/Macao" , 0x02A4C9 }, + { (char*) "Asia/Macau" , 0x02A7EC }, + { (char*) "Asia/Magadan" , 0x02AB0F }, + { (char*) "Asia/Makassar" , 0x02AE1A }, + { (char*) "Asia/Manila" , 0x02AF2D }, + { (char*) "Asia/Muscat" , 0x02B027 }, + { (char*) "Asia/Nicosia" , 0x02B0B8 }, + { (char*) "Asia/Novokuznetsk" , 0x02B327 }, + { (char*) "Asia/Novosibirsk" , 0x02B61A }, + { (char*) "Asia/Omsk" , 0x02B92B }, + { (char*) "Asia/Oral" , 0x02BC29 }, + { (char*) "Asia/Phnom_Penh" , 0x02BEB5 }, + { (char*) "Asia/Pontianak" , 0x02BF89 }, + { (char*) "Asia/Pyongyang" , 0x02C0A2 }, + { (char*) "Asia/Qatar" , 0x02C165 }, + { (char*) "Asia/Qostanay" , 0x02C209 }, + { (char*) "Asia/Qyzylorda" , 0x02C496 }, + { (char*) "Asia/Rangoon" , 0x02C72F }, + { (char*) "Asia/Riyadh" , 0x02C7F6 }, + { (char*) "Asia/Saigon" , 0x02C887 }, + { (char*) "Asia/Sakhalin" , 0x02C97F }, + { (char*) "Asia/Samarkand" , 0x02CC96 }, + { (char*) "Asia/Seoul" , 0x02CE21 }, + { (char*) "Asia/Shanghai" , 0x02CFCC }, + { (char*) "Asia/Singapore" , 0x02D16D }, + { (char*) "Asia/Srednekolymsk" , 0x02D279 }, + { (char*) "Asia/Taipei" , 0x02D589 }, + { (char*) "Asia/Tashkent" , 0x02D794 }, + { (char*) "Asia/Tbilisi" , 0x02D91F }, + { (char*) "Asia/Tehran" , 0x02DBA0 }, + { (char*) "Asia/Tel_Aviv" , 0x02DED8 }, + { (char*) "Asia/Thimbu" , 0x02E316 }, + { (char*) "Asia/Thimphu" , 0x02E3BC }, + { (char*) "Asia/Tokyo" , 0x02E462 }, + { (char*) "Asia/Tomsk" , 0x02E543 }, + { (char*) "Asia/Ujung_Pandang" , 0x02E84E }, + { (char*) "Asia/Ulaanbaatar" , 0x02E918 }, + { (char*) "Asia/Ulan_Bator" , 0x02EB86 }, + { (char*) "Asia/Urumqi" , 0x02EDE4 }, + { (char*) "Asia/Ust-Nera" , 0x02EE82 }, + { (char*) "Asia/Vientiane" , 0x02F1A5 }, + { (char*) "Asia/Vladivostok" , 0x02F28B }, + { (char*) "Asia/Yakutsk" , 0x02F590 }, + { (char*) "Asia/Yangon" , 0x02F894 }, + { (char*) "Asia/Yekaterinburg" , 0x02F95B }, + { (char*) "Asia/Yerevan" , 0x02FC6D }, + { (char*) "Atlantic/Azores" , 0x02FF3D }, + { (char*) "Atlantic/Bermuda" , 0x0304FC }, + { (char*) "Atlantic/Canary" , 0x030908 }, + { (char*) "Atlantic/Cape_Verde" , 0x030B00 }, + { (char*) "Atlantic/Faeroe" , 0x030BBB }, + { (char*) "Atlantic/Faroe" , 0x030D80 }, + { (char*) "Atlantic/Jan_Mayen" , 0x030F45 }, + { (char*) "Atlantic/Madeira" , 0x031212 }, + { (char*) "Atlantic/Reykjavik" , 0x0317DA }, + { (char*) "Atlantic/South_Georgia" , 0x031AD7 }, + { (char*) "Atlantic/St_Helena" , 0x031B67 }, + { (char*) "Atlantic/Stanley" , 0x031C08 }, + { (char*) "Australia/ACT" , 0x031F29 }, + { (char*) "Australia/Adelaide" , 0x0322BD }, + { (char*) "Australia/Brisbane" , 0x032671 }, + { (char*) "Australia/Broken_Hill" , 0x0327B5 }, + { (char*) "Australia/Canberra" , 0x032B8A }, + { (char*) "Australia/Currie" , 0x032F1E }, + { (char*) "Australia/Darwin" , 0x033315 }, + { (char*) "Australia/Eucla" , 0x03341D }, + { (char*) "Australia/Hobart" , 0x03357C }, + { (char*) "Australia/LHI" , 0x03397B }, + { (char*) "Australia/Lindeman" , 0x033C3B }, + { (char*) "Australia/Lord_Howe" , 0x033DAB }, + { (char*) "Australia/Melbourne" , 0x03407B }, + { (char*) "Australia/North" , 0x034417 }, + { (char*) "Australia/NSW" , 0x03450D }, + { (char*) "Australia/Perth" , 0x0348A1 }, + { (char*) "Australia/Queensland" , 0x0349FD }, + { (char*) "Australia/South" , 0x034B2A }, + { (char*) "Australia/Sydney" , 0x034ECF }, + { (char*) "Australia/Tasmania" , 0x03527F }, + { (char*) "Australia/Victoria" , 0x035676 }, + { (char*) "Australia/West" , 0x035A0A }, + { (char*) "Australia/Yancowinna" , 0x035B48 }, + { (char*) "Brazil/Acre" , 0x035F01 }, + { (char*) "Brazil/DeNoronha" , 0x0360AF }, + { (char*) "Brazil/East" , 0x03629F }, + { (char*) "Brazil/West" , 0x036663 }, + { (char*) "Canada/Atlantic" , 0x03680B }, + { (char*) "Canada/Central" , 0x036E9F }, + { (char*) "Canada/Eastern" , 0x0373B9 }, + { (char*) "Canada/Mountain" , 0x037A7A }, + { (char*) "Canada/Newfoundland" , 0x037E50 }, + { (char*) "Canada/Pacific" , 0x0385B2 }, + { (char*) "Canada/Saskatchewan" , 0x038AF0 }, + { (char*) "Canada/Yukon" , 0x038D7A }, + { (char*) "CET" , 0x03918B }, + { (char*) "Chile/Continental" , 0x039404 }, + { (char*) "Chile/EasterIsland" , 0x03995A }, + { (char*) "CST6CDT" , 0x039DFC }, + { (char*) "Cuba" , 0x03A1BF }, + { (char*) "EET" , 0x03A628 }, + { (char*) "Egypt" , 0x03A825 }, + { (char*) "Eire" , 0x03AD4E }, + { (char*) "EST" , 0x03B332 }, + { (char*) "EST5EDT" , 0x03B3AD }, + { (char*) "Etc/GMT" , 0x03B770 }, + { (char*) "Etc/GMT+0" , 0x03B7EB }, + { (char*) "Etc/GMT+1" , 0x03B866 }, + { (char*) "Etc/GMT+10" , 0x03B8E3 }, + { (char*) "Etc/GMT+11" , 0x03B961 }, + { (char*) "Etc/GMT+12" , 0x03B9DF }, + { (char*) "Etc/GMT+2" , 0x03BA5D }, + { (char*) "Etc/GMT+3" , 0x03BADA }, + { (char*) "Etc/GMT+4" , 0x03BB57 }, + { (char*) "Etc/GMT+5" , 0x03BBD4 }, + { (char*) "Etc/GMT+6" , 0x03BC51 }, + { (char*) "Etc/GMT+7" , 0x03BCCE }, + { (char*) "Etc/GMT+8" , 0x03BD4B }, + { (char*) "Etc/GMT+9" , 0x03BDC8 }, + { (char*) "Etc/GMT-0" , 0x03BE45 }, + { (char*) "Etc/GMT-1" , 0x03BEC0 }, + { (char*) "Etc/GMT-10" , 0x03BF3E }, + { (char*) "Etc/GMT-11" , 0x03BFBD }, + { (char*) "Etc/GMT-12" , 0x03C03C }, + { (char*) "Etc/GMT-13" , 0x03C0BB }, + { (char*) "Etc/GMT-14" , 0x03C13A }, + { (char*) "Etc/GMT-2" , 0x03C1B9 }, + { (char*) "Etc/GMT-3" , 0x03C237 }, + { (char*) "Etc/GMT-4" , 0x03C2B5 }, + { (char*) "Etc/GMT-5" , 0x03C333 }, + { (char*) "Etc/GMT-6" , 0x03C3B1 }, + { (char*) "Etc/GMT-7" , 0x03C42F }, + { (char*) "Etc/GMT-8" , 0x03C4AD }, + { (char*) "Etc/GMT-9" , 0x03C52B }, + { (char*) "Etc/GMT0" , 0x03C5A9 }, + { (char*) "Etc/Greenwich" , 0x03C624 }, + { (char*) "Etc/UCT" , 0x03C69F }, + { (char*) "Etc/Universal" , 0x03C71A }, + { (char*) "Etc/UTC" , 0x03C795 }, + { (char*) "Etc/Zulu" , 0x03C810 }, + { (char*) "Europe/Amsterdam" , 0x03C88B }, + { (char*) "Europe/Andorra" , 0x03CCC6 }, + { (char*) "Europe/Astrakhan" , 0x03CE57 }, + { (char*) "Europe/Athens" , 0x03D14B }, + { (char*) "Europe/Belfast" , 0x03D401 }, + { (char*) "Europe/Belgrade" , 0x03DA4C }, + { (char*) "Europe/Berlin" , 0x03DC36 }, + { (char*) "Europe/Bratislava" , 0x03DF12 }, + { (char*) "Europe/Brussels" , 0x03E1F1 }, + { (char*) "Europe/Bucharest" , 0x03E64C }, + { (char*) "Europe/Budapest" , 0x03E8ED }, + { (char*) "Europe/Busingen" , 0x03EBF7 }, + { (char*) "Europe/Chisinau" , 0x03EDFC }, + { (char*) "Europe/Copenhagen" , 0x03F0FB }, + { (char*) "Europe/Dublin" , 0x03F376 }, + { (char*) "Europe/Gibraltar" , 0x03F95A }, + { (char*) "Europe/Guernsey" , 0x03FE2A }, + { (char*) "Europe/Helsinki" , 0x040481 }, + { (char*) "Europe/Isle_of_Man" , 0x04066E }, + { (char*) "Europe/Istanbul" , 0x040CB9 }, + { (char*) "Europe/Jersey" , 0x041175 }, + { (char*) "Europe/Kaliningrad" , 0x0417CC }, + { (char*) "Europe/Kiev" , 0x041B74 }, + { (char*) "Europe/Kirov" , 0x041DAE }, + { (char*) "Europe/Kyiv" , 0x0420A7 }, + { (char*) "Europe/Lisbon" , 0x0422F0 }, + { (char*) "Europe/Ljubljana" , 0x0428BD }, + { (char*) "Europe/London" , 0x042AA7 }, + { (char*) "Europe/Luxembourg" , 0x0430F2 }, + { (char*) "Europe/Madrid" , 0x04353D }, + { (char*) "Europe/Malta" , 0x0438DA }, + { (char*) "Europe/Mariehamn" , 0x043C86 }, + { (char*) "Europe/Minsk" , 0x043E73 }, + { (char*) "Europe/Monaco" , 0x0441A7 }, + { (char*) "Europe/Moscow" , 0x04460D }, + { (char*) "Europe/Nicosia" , 0x0449B9 }, + { (char*) "Europe/Oslo" , 0x044C1A }, + { (char*) "Europe/Paris" , 0x044ECA }, + { (char*) "Europe/Podgorica" , 0x045327 }, + { (char*) "Europe/Prague" , 0x045511 }, + { (char*) "Europe/Riga" , 0x0457F0 }, + { (char*) "Europe/Rome" , 0x045AB2 }, + { (char*) "Europe/Samara" , 0x045E71 }, + { (char*) "Europe/San_Marino" , 0x046172 }, + { (char*) "Europe/Sarajevo" , 0x046531 }, + { (char*) "Europe/Saratov" , 0x04671B }, + { (char*) "Europe/Simferopol" , 0x046A0D }, + { (char*) "Europe/Skopje" , 0x046D80 }, + { (char*) "Europe/Sofia" , 0x046F6A }, + { (char*) "Europe/Stockholm" , 0x0471C6 }, + { (char*) "Europe/Tallinn" , 0x0473C3 }, + { (char*) "Europe/Tirane" , 0x047672 }, + { (char*) "Europe/Tiraspol" , 0x0478DA }, + { (char*) "Europe/Ulyanovsk" , 0x047BD9 }, + { (char*) "Europe/Uzhgorod" , 0x047EEF }, + { (char*) "Europe/Vaduz" , 0x048129 }, + { (char*) "Europe/Vatican" , 0x048313 }, + { (char*) "Europe/Vienna" , 0x0486D2 }, + { (char*) "Europe/Vilnius" , 0x048970 }, + { (char*) "Europe/Volgograd" , 0x048C20 }, + { (char*) "Europe/Warsaw" , 0x048F2F }, + { (char*) "Europe/Zagreb" , 0x0492D6 }, + { (char*) "Europe/Zaporozhye" , 0x0494C0 }, + { (char*) "Europe/Zurich" , 0x0496FA }, + { (char*) "Factory" , 0x0498F7 }, + { (char*) "GB" , 0x049974 }, + { (char*) "GB-Eire" , 0x049FBF }, + { (char*) "GMT" , 0x04A60A }, + { (char*) "GMT+0" , 0x04A685 }, + { (char*) "GMT-0" , 0x04A700 }, + { (char*) "GMT0" , 0x04A77B }, + { (char*) "Greenwich" , 0x04A7F6 }, + { (char*) "Hongkong" , 0x04A871 }, + { (char*) "HST" , 0x04AB84 }, + { (char*) "Iceland" , 0x04AC00 }, + { (char*) "Indian/Antananarivo" , 0x04AC8E }, + { (char*) "Indian/Chagos" , 0x04AD3A }, + { (char*) "Indian/Christmas" , 0x04ADDE }, + { (char*) "Indian/Cocos" , 0x04AE6F }, + { (char*) "Indian/Comoro" , 0x04AF07 }, + { (char*) "Indian/Kerguelen" , 0x04AF96 }, + { (char*) "Indian/Mahe" , 0x04B027 }, + { (char*) "Indian/Maldives" , 0x04B0B8 }, + { (char*) "Indian/Mauritius" , 0x04B15C }, + { (char*) "Indian/Mayotte" , 0x04B21B }, + { (char*) "Indian/Reunion" , 0x04B2AA }, + { (char*) "Iran" , 0x04B33B }, + { (char*) "Israel" , 0x04B673 }, + { (char*) "Jamaica" , 0x04BAB1 }, + { (char*) "Japan" , 0x04BC10 }, + { (char*) "Kwajalein" , 0x04BCF1 }, + { (char*) "Libya" , 0x04BDD8 }, + { (char*) "MET" , 0x04BF93 }, + { (char*) "Mexico/BajaNorte" , 0x04C20C }, + { (char*) "Mexico/BajaSur" , 0x04C619 }, + { (char*) "Mexico/General" , 0x04C8F3 }, + { (char*) "MST" , 0x04CC04 }, + { (char*) "MST7MDT" , 0x04CC7F }, + { (char*) "Navajo" , 0x04D042 }, + { (char*) "NZ" , 0x04D460 }, + { (char*) "NZ-CHAT" , 0x04D87F }, + { (char*) "Pacific/Apia" , 0x04DBB3 }, + { (char*) "Pacific/Auckland" , 0x04DD56 }, + { (char*) "Pacific/Bougainville" , 0x04E188 }, + { (char*) "Pacific/Chatham" , 0x04E269 }, + { (char*) "Pacific/Chuuk" , 0x04E5AC }, + { (char*) "Pacific/Easter" , 0x04E68A }, + { (char*) "Pacific/Efate" , 0x04EB39 }, + { (char*) "Pacific/Enderbury" , 0x04EC9B }, + { (char*) "Pacific/Fakaofo" , 0x04ED53 }, + { (char*) "Pacific/Fiji" , 0x04EDF8 }, + { (char*) "Pacific/Funafuti" , 0x04EF90 }, + { (char*) "Pacific/Galapagos" , 0x04F022 }, + { (char*) "Pacific/Gambier" , 0x04F0EE }, + { (char*) "Pacific/Guadalcanal" , 0x04F18D }, + { (char*) "Pacific/Guam" , 0x04F21F }, + { (char*) "Pacific/Honolulu" , 0x04F389 }, + { (char*) "Pacific/Johnston" , 0x04F478 }, + { (char*) "Pacific/Kanton" , 0x04F561 }, + { (char*) "Pacific/Kiritimati" , 0x04F628 }, + { (char*) "Pacific/Kosrae" , 0x04F6EE }, + { (char*) "Pacific/Kwajalein" , 0x04F7F2 }, + { (char*) "Pacific/Majuro" , 0x04F8E2 }, + { (char*) "Pacific/Marquesas" , 0x04F9E0 }, + { (char*) "Pacific/Midway" , 0x04FA88 }, + { (char*) "Pacific/Nauru" , 0x04FB4B }, + { (char*) "Pacific/Niue" , 0x04FC0E }, + { (char*) "Pacific/Norfolk" , 0x04FCB4 }, + { (char*) "Pacific/Noumea" , 0x04FDAD }, + { (char*) "Pacific/Pago_Pago" , 0x04FE7F }, + { (char*) "Pacific/Palau" , 0x04FF1D }, + { (char*) "Pacific/Pitcairn" , 0x04FFBD }, + { (char*) "Pacific/Pohnpei" , 0x050062 }, + { (char*) "Pacific/Ponape" , 0x050152 }, + { (char*) "Pacific/Port_Moresby" , 0x0501E4 }, + { (char*) "Pacific/Rarotonga" , 0x0502A2 }, + { (char*) "Pacific/Saipan" , 0x050444 }, + { (char*) "Pacific/Samoa" , 0x0505A5 }, + { (char*) "Pacific/Tahiti" , 0x050643 }, + { (char*) "Pacific/Tarawa" , 0x0506E3 }, + { (char*) "Pacific/Tongatapu" , 0x050784 }, + { (char*) "Pacific/Truk" , 0x05087D }, + { (char*) "Pacific/Wake" , 0x050923 }, + { (char*) "Pacific/Wallis" , 0x0509C0 }, + { (char*) "Pacific/Yap" , 0x050A52 }, + { (char*) "Poland" , 0x050AF8 }, + { (char*) "Portugal" , 0x050E9F }, + { (char*) "PRC" , 0x051459 }, + { (char*) "PST8PDT" , 0x0515EE }, + { (char*) "ROC" , 0x0519B1 }, + { (char*) "ROK" , 0x051BBC }, + { (char*) "Singapore" , 0x051D67 }, + { (char*) "Turkey" , 0x051E73 }, + { (char*) "UCT" , 0x05232F }, + { (char*) "Universal" , 0x0523AA }, + { (char*) "US/Alaska" , 0x052425 }, + { (char*) "US/Aleutian" , 0x052802 }, + { (char*) "US/Arizona" , 0x052BD7 }, + { (char*) "US/Central" , 0x052CD3 }, + { (char*) "US/East-Indiana" , 0x0533B9 }, + { (char*) "US/Eastern" , 0x0535D8 }, + { (char*) "US/Hawaii" , 0x053CB4 }, + { (char*) "US/Indiana-Starke" , 0x053D9D }, + { (char*) "US/Michigan" , 0x0541A1 }, + { (char*) "US/Mountain" , 0x054530 }, + { (char*) "US/Pacific" , 0x05494E }, + { (char*) "US/Samoa" , 0x054E68 }, + { (char*) "UTC" , 0x054F06 }, + { (char*) "W-SU" , 0x054F81 }, + { (char*) "WET" , 0x055319 }, + { (char*) "Zulu" , 0x055513 }, }; -const unsigned char timelib_timezone_db_data_builtin[348143] = { +const unsigned char timelib_timezone_db_data_builtin[349582] = { /* Africa/Abidjan */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -2070,7 +2070,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x01, 0x10, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x34, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x0A, 0x3C, 0x2D, 0x30, 0x33, 0x3E, 0x33, 0x0A, 0x00, 0x5D, 0xE4, 0x75, 0x00, 0xAE, 0x47, 0xE2, 0x00, 0x00, 0x00, 0x1B, -0x43, 0x61, 0x74, 0x61, 0x6D, 0x61, 0x72, 0x63, 0x61, 0x20, 0x28, 0x43, 0x54, 0x29, 0x3B, 0x20, +0x43, 0x61, 0x74, 0x61, 0x6D, 0x61, 0x72, 0x63, 0x61, 0x20, 0x28, 0x43, 0x54, 0x29, 0x2C, 0x20, 0x43, 0x68, 0x75, 0x62, 0x75, 0x74, 0x20, 0x28, 0x43, 0x48, 0x29, /* America/Argentina/ComodRivadavia */ @@ -2696,7 +2696,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x0A, 0x45, 0x53, 0x54, 0x35, 0x0A, 0x00, 0xD3, 0xBA, 0x95, 0x00, 0x86, 0xDA, 0xC9, 0x00, 0x00, 0x00, 0x21, 0x45, 0x53, 0x54, 0x20, -0x2D, 0x20, 0x4F, 0x4E, 0x20, 0x28, 0x41, 0x74, 0x69, 0x6B, 0x6F, 0x6B, 0x61, 0x6E, 0x29, 0x3B, +0x2D, 0x20, 0x4F, 0x4E, 0x20, 0x28, 0x41, 0x74, 0x69, 0x6B, 0x6F, 0x6B, 0x61, 0x6E, 0x29, 0x2C, 0x20, 0x4E, 0x55, 0x20, 0x28, 0x43, 0x6F, 0x72, 0x61, 0x6C, 0x20, 0x48, 0x29, /* America/Atka */ @@ -2907,7 +2907,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x0A, 0x3C, 0x2D, 0x30, 0x33, 0x3E, 0x33, 0x0A, 0x00, 0x87, 0x1D, 0xD8, 0x00, 0xC8, 0xAD, 0xB2, 0x00, 0x00, 0x00, 0x12, 0x50, 0x61, 0x72, 0x61, 0x20, 0x28, 0x65, 0x61, 0x73, 0x74, -0x29, 0x3B, 0x20, 0x41, 0x6D, 0x61, 0x70, 0x61, +0x29, 0x2C, 0x20, 0x41, 0x6D, 0x61, 0x70, 0x61, /* America/Belize */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x42, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -3106,7 +3106,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x4D, 0x53, 0x54, 0x37, 0x4D, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xCB, 0xE0, 0xD1, 0x00, 0x61, 0x58, 0xE6, 0x00, 0x00, 0x00, 0x20, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x20, 0x2D, 0x20, 0x49, 0x44, -0x20, 0x28, 0x73, 0x6F, 0x75, 0x74, 0x68, 0x29, 0x3B, 0x20, 0x4F, 0x52, 0x20, 0x28, 0x65, 0x61, +0x20, 0x28, 0x73, 0x6F, 0x75, 0x74, 0x68, 0x29, 0x2C, 0x20, 0x4F, 0x52, 0x20, 0x28, 0x65, 0x61, 0x73, 0x74, 0x29, /* America/Buenos_Aires */ @@ -4141,9 +4141,9 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x4D, 0x57, 0x54, 0x00, 0x4D, 0x50, 0x54, 0x00, 0x0A, 0x4D, 0x53, 0x54, 0x37, 0x4D, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xDB, 0x0A, 0x38, 0x00, 0x65, -0x85, 0x95, 0x00, 0x00, 0x00, 0x25, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x20, 0x2D, -0x20, 0x41, 0x42, 0x3B, 0x20, 0x42, 0x43, 0x20, 0x28, 0x45, 0x29, 0x3B, 0x20, 0x4E, 0x54, 0x20, -0x28, 0x45, 0x29, 0x3B, 0x20, 0x53, 0x4B, 0x20, 0x28, 0x57, 0x29, +0x85, 0x95, 0x00, 0x00, 0x00, 0x22, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x20, 0x2D, +0x20, 0x41, 0x42, 0x2C, 0x20, 0x42, 0x43, 0x28, 0x45, 0x29, 0x2C, 0x20, 0x4E, 0x54, 0x28, 0x45, +0x29, 0x2C, 0x20, 0x53, 0x4B, 0x28, 0x57, 0x29, /* America/Eirunepe */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x42, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -4243,13 +4243,13 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x45, 0x44, 0x6D, 0x90, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0F, 0x82, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x47, 0x24, 0x4F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x47, 0xF8, 0x9F, 0x20, 0x00, 0x00, 0x00, 0x00, 0x49, 0x04, 0x31, 0x90, 0x00, 0x00, 0x00, 0x00, 0x49, 0xD8, 0x81, 0x20, 0x00, -0x00, 0x00, 0x00, 0x4A, 0xE4, 0x13, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0xB3, 0xA0, 0x01, +0x00, 0x00, 0x00, 0x4A, 0xE4, 0x13, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x3D, 0xAB, 0x80, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x04, 0x05, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0xFF, 0xFF, 0x92, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x02, 0xFF, 0xFF, 0x92, 0x4C, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x0C, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x10, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x50, 0x44, 0x54, @@ -4540,7 +4540,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, -0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x03, 0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x0A, 0x3C, 0x2D, 0x30, 0x32, 0x3E, 0x32, 0x3C, 0x2D, 0x30, 0x31, 0x3E, @@ -4630,7 +4630,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x47, 0xD3, 0x60, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x49, 0x0D, 0x17, 0xEC, 0x00, 0x00, 0x00, 0x00, 0x49, 0xB3, 0x42, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xEC, 0xF9, 0xEC, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0x5F, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xD6, 0x16, 0x6C, 0x00, -0x00, 0x00, 0x00, 0x4D, 0x7C, 0x41, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xB6, 0x14, 0x50, 0x01, +0x00, 0x00, 0x00, 0x4D, 0x7C, 0x41, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xAF, 0x60, 0xB0, 0x01, 0x02, 0x01, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x06, 0x05, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, @@ -4640,7 +4640,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x09, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, -0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0xFF, 0xFF, 0xC7, 0x5C, 0x00, 0x00, 0xFF, 0xFF, 0xCE, +0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x07, 0xFF, 0xFF, 0xC7, 0x5C, 0x00, 0x00, 0xFF, 0xFF, 0xCE, 0x94, 0x00, 0x04, 0xFF, 0xFF, 0xDC, 0xA4, 0x01, 0x08, 0xFF, 0xFF, 0xCE, 0xC8, 0x00, 0x04, 0xFF, 0xFF, 0xDC, 0xD8, 0x01, 0x08, 0xFF, 0xFF, 0xDC, 0xD8, 0x01, 0x0C, 0xFF, 0xFF, 0xDC, 0xD8, 0x01, 0x10, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x14, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x18, 0xFF, 0xFF, 0xE3, @@ -4886,7 +4886,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x0A, 0x41, 0x53, 0x54, 0x34, 0x41, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xCD, 0x75, 0xA8, 0x00, 0xB1, 0x9C, 0xC0, 0x00, 0x00, 0x00, 0x1E, 0x41, 0x74, 0x6C, 0x61, 0x6E, 0x74, 0x69, 0x63, 0x20, 0x2D, 0x20, 0x4E, -0x53, 0x20, 0x28, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x61, 0x72, 0x65, 0x61, 0x73, 0x29, 0x3B, 0x20, +0x53, 0x20, 0x28, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x61, 0x72, 0x65, 0x61, 0x73, 0x29, 0x2C, 0x20, 0x50, 0x45, /* America/Havana */ @@ -5288,7 +5288,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x1C, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x1C, 0xFF, 0xFF, 0xFF, 0xFF, 0x5E, 0x03, 0xFE, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0x9E, 0xA6, 0x2C, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xBA, 0xF9, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0x86, 0x0E, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xA1, 0x9A, 0xDB, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x88, 0xFE, 0x80, 0xFF, @@ -5311,19 +5311,18 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0xFF, 0xFF, 0xFF, 0xEF, 0xAF, 0xE0, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xB8, 0x1C, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA7, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x97, 0xFE, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x01, 0x87, 0xE1, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x76, 0x70, 0x00, -0x00, 0x00, 0x00, 0x45, 0x44, 0x51, 0x70, 0x00, 0x00, 0x00, 0x00, 0x45, 0xF3, 0xB7, 0x00, 0x00, -0x00, 0x00, 0x00, 0x47, 0x2D, 0x5F, 0xE0, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x02, 0x01, +0x00, 0x00, 0x00, 0x45, 0x44, 0x51, 0x70, 0x00, 0x00, 0x00, 0x00, 0x45, 0xF3, 0xB7, 0x00, 0x02, +0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, -0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x05, 0x06, 0x05, -0x06, 0x05, 0x01, 0x02, 0x06, 0x05, 0xFF, 0xFF, 0xAE, 0xCF, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, -0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, -0xB9, 0xB0, 0x01, 0x10, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x14, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x18, -0x4C, 0x4D, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, -0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x45, 0x44, 0x54, 0x00, 0x0A, 0x45, 0x53, 0x54, -0x35, 0x45, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, -0x31, 0x2E, 0x30, 0x0A, 0x00, 0xC7, 0xF7, 0xF2, 0x00, 0x8E, 0x83, 0x2E, 0x00, 0x00, 0x00, 0x16, -0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x2D, 0x20, 0x49, 0x4E, 0x20, 0x28, 0x50, 0x75, -0x6C, 0x61, 0x73, 0x6B, 0x69, 0x29, +0x02, 0x01, 0x02, 0x01, 0x02, 0x05, 0x06, 0x05, 0x06, 0x05, 0x01, 0x02, 0x06, 0xFF, 0xFF, 0xAE, +0xCF, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, +0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x10, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, +0x14, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x18, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, +0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x45, +0x44, 0x54, 0x00, 0x0A, 0x45, 0x53, 0x54, 0x35, 0x45, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, +0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xC7, 0xF7, 0xF2, 0x00, +0x8E, 0x83, 0x2E, 0x00, 0x00, 0x00, 0x16, 0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x2D, +0x20, 0x49, 0x4E, 0x20, 0x28, 0x50, 0x75, 0x6C, 0x61, 0x73, 0x6B, 0x69, 0x29, /* America/Indianapolis */ 0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -6192,9 +6191,9 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x45, 0x44, 0x51, 0x70, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0F, 0x66, 0x80, 0x00, 0x00, 0x00, 0x00, 0x47, 0x24, 0x33, 0x70, 0x00, 0x00, 0x00, 0x00, 0x47, 0xF8, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x04, 0x15, 0x70, 0x00, 0x00, 0x00, 0x00, 0x49, 0xD8, 0x65, 0x00, 0x00, -0x00, 0x00, 0x00, 0x4A, 0xE3, 0xF7, 0x70, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0x97, 0x80, 0x01, +0x00, 0x00, 0x00, 0x4A, 0xE3, 0xF7, 0x70, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x3D, 0x8F, 0x60, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, -0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x01, 0xFF, 0xFF, 0xA4, 0x98, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x0A, 0x43, 0x53, 0x54, 0x36, 0x43, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, @@ -6416,7 +6415,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x1E, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x1E, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xC2, 0xFD, 0xD1, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0x87, 0x30, 0x1A, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x89, 0x1A, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x61, 0x26, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xB8, 0x47, 0x20, 0xFF, @@ -6438,19 +6437,18 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x56, 0xE5, 0x48, 0x30, 0x00, 0x00, 0x00, 0x00, 0x58, 0x1E, 0xFF, 0x20, 0x00, 0x00, 0x00, 0x00, 0x58, 0xC5, 0x2A, 0x30, 0x00, 0x00, 0x00, 0x00, 0x59, 0xFE, 0xE1, 0x20, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xA5, 0x0C, 0x30, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xDE, 0xC3, 0x20, 0x00, -0x00, 0x00, 0x00, 0x5C, 0x44, 0x46, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x84, 0xEE, 0x30, 0x01, -0x02, 0x03, 0x04, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, +0x00, 0x00, 0x00, 0x5C, 0x44, 0x46, 0xA0, 0x01, 0x02, 0x03, 0x04, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, -0x05, 0x02, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x02, 0x06, 0x07, 0x00, 0x00, 0xD6, 0x26, 0x00, -0x00, 0xFF, 0xFF, 0x84, 0xA6, 0x00, 0x00, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x04, 0xFF, 0xFF, 0x9D, -0x90, 0x01, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x0C, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x10, 0xFF, -0xFF, 0x81, 0x70, 0x00, 0x14, 0xFF, 0xFF, 0x8F, 0x80, 0x01, 0x19, 0x4C, 0x4D, 0x54, 0x00, 0x50, -0x53, 0x54, 0x00, 0x50, 0x57, 0x54, 0x00, 0x50, 0x50, 0x54, 0x00, 0x50, 0x44, 0x54, 0x00, 0x41, -0x4B, 0x53, 0x54, 0x00, 0x41, 0x4B, 0x44, 0x54, 0x00, 0x0A, 0x41, 0x4B, 0x53, 0x54, 0x39, 0x41, -0x4B, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, -0x2E, 0x30, 0x0A, 0x00, 0xDD, 0x72, 0x36, 0x00, 0x49, 0xE3, 0x79, 0x00, 0x00, 0x00, 0x17, 0x41, -0x6C, 0x61, 0x73, 0x6B, 0x61, 0x20, 0x2D, 0x20, 0x41, 0x6E, 0x6E, 0x65, 0x74, 0x74, 0x65, 0x20, -0x49, 0x73, 0x6C, 0x61, 0x6E, 0x64, +0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, +0x02, 0x06, 0x00, 0x00, 0xD6, 0x26, 0x00, 0x00, 0xFF, 0xFF, 0x84, 0xA6, 0x00, 0x00, 0xFF, 0xFF, +0x8F, 0x80, 0x00, 0x04, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x0C, +0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x10, 0xFF, 0xFF, 0x81, 0x70, 0x00, 0x14, 0xFF, 0xFF, 0x8F, 0x80, +0x01, 0x19, 0x4C, 0x4D, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x50, 0x57, 0x54, 0x00, 0x50, 0x50, +0x54, 0x00, 0x50, 0x44, 0x54, 0x00, 0x41, 0x4B, 0x53, 0x54, 0x00, 0x41, 0x4B, 0x44, 0x54, 0x00, +0x0A, 0x41, 0x4B, 0x53, 0x54, 0x39, 0x41, 0x4B, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, +0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xDD, 0x72, 0x36, 0x00, 0x49, +0xE3, 0x79, 0x00, 0x00, 0x00, 0x17, 0x41, 0x6C, 0x61, 0x73, 0x6B, 0x61, 0x20, 0x2D, 0x20, 0x41, +0x6E, 0x6E, 0x65, 0x74, 0x74, 0x65, 0x20, 0x49, 0x73, 0x6C, 0x61, 0x6E, 0x64, /* America/Mexico_City */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x4D, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -6621,7 +6619,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x3F, 0x9B, 0x38, 0xEC, 0x00, 0x00, 0x00, 0x00, 0x40, 0x6F, 0x88, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x55, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x42, 0x4F, 0x6A, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x37, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x4C, 0x7C, 0x00, -0x00, 0x00, 0x00, 0x45, 0x44, 0x19, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x45, 0xF3, 0x9A, 0xE0, 0x01, +0x00, 0x00, 0x00, 0x45, 0x44, 0x19, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x45, 0x98, 0x87, 0x40, 0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x04, 0x05, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, @@ -6631,7 +6629,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, -0x02, 0xFF, 0xFF, 0xC3, 0x44, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, +0x03, 0xFF, 0xFF, 0xC3, 0x44, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x08, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x0C, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x10, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x41, 0x44, 0x54, 0x00, 0x41, 0x53, 0x54, 0x00, 0x41, 0x57, 0x54, 0x00, 0x41, 0x50, 0x54, 0x00, 0x0A, 0x41, 0x53, @@ -7523,7 +7521,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, -0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x03, 0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x0A, 0x3C, 0x2D, 0x30, 0x32, 0x3E, 0x32, 0x3C, 0x2D, 0x30, 0x31, 0x3E, @@ -7538,7 +7536,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0xFF, 0xFF, 0xFF, 0xFF, 0xA5, 0xB6, 0xE8, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xAF, 0xF2, 0x6E, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xB6, 0x66, 0x56, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xB7, 0x43, 0xD2, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xB8, 0x0C, 0x36, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xB8, 0xFD, 0x86, 0xF0, 0x00, @@ -7568,18 +7566,19 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x5C, 0x84, 0xD2, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xBE, 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x64, 0xB4, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x9E, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x4D, 0xD0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x61, 0x87, 0x87, 0x80, 0x00, -0x00, 0x00, 0x00, 0x62, 0x2D, 0xB2, 0x90, 0x00, 0x00, 0x00, 0x00, 0x63, 0x5E, 0x2F, 0x00, 0x01, -0x02, 0x01, 0x03, 0x01, 0x02, 0x04, 0x02, 0x04, 0x02, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, +0x00, 0x00, 0x00, 0x62, 0x2D, 0xB2, 0x90, 0x00, 0x00, 0x00, 0x00, 0x63, 0x5E, 0x2F, 0x00, 0x00, +0x00, 0x00, 0x00, 0x63, 0x86, 0xF1, 0x60, 0x01, 0x02, 0x01, 0x03, 0x01, 0x02, 0x04, 0x02, 0x04, +0x02, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, -0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x02, 0xFF, 0xFF, 0x9E, 0x1C, 0x00, -0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xAB, -0xA0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x10, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, -0x00, 0x43, 0x53, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x0A, 0x43, 0x53, -0x54, 0x36, 0x43, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, -0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xB6, 0x71, 0xBA, 0x00, 0x73, 0x54, 0xBD, 0x00, 0x00, 0x00, -0x1C, 0x43, 0x68, 0x69, 0x68, 0x75, 0x61, 0x68, 0x75, 0x61, 0x20, 0x28, 0x55, 0x53, 0x20, 0x62, -0x6F, 0x72, 0x64, 0x65, 0x72, 0x20, 0x2D, 0x20, 0x65, 0x61, 0x73, 0x74, 0x29, +0x01, 0x03, 0x02, 0x02, 0xFF, 0xFF, 0x9E, 0x1C, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, +0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, +0x01, 0x10, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x4D, 0x44, +0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x0A, 0x43, 0x53, 0x54, 0x36, 0x43, 0x44, 0x54, 0x2C, 0x4D, +0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xB6, +0x71, 0xBA, 0x00, 0x73, 0x54, 0xBD, 0x00, 0x00, 0x00, 0x1C, 0x43, 0x68, 0x69, 0x68, 0x75, 0x61, +0x68, 0x75, 0x61, 0x20, 0x28, 0x55, 0x53, 0x20, 0x62, 0x6F, 0x72, 0x64, 0x65, 0x72, 0x20, 0x2D, +0x20, 0x65, 0x61, 0x73, 0x74, 0x29, /* America/Panama */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x50, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -8291,13 +8290,13 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x45, 0x44, 0x6D, 0x90, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0F, 0x82, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x47, 0x24, 0x4F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x47, 0xF8, 0x9F, 0x20, 0x00, 0x00, 0x00, 0x00, 0x49, 0x04, 0x31, 0x90, 0x00, 0x00, 0x00, 0x00, 0x49, 0xD8, 0x81, 0x20, 0x00, -0x00, 0x00, 0x00, 0x4A, 0xE4, 0x13, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0xB3, 0xA0, 0x01, +0x00, 0x00, 0x00, 0x4A, 0xE4, 0x13, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x3D, 0xAB, 0x80, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x04, 0x05, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0xFF, 0xFF, 0x92, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x02, 0xFF, 0xFF, 0x92, 0x4C, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x0C, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x10, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x50, 0x44, 0x54, @@ -8517,9 +8516,9 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x50, 0x48, 0x50, 0x32, 0x01, 0x47, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x10, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0x9B, 0x80, 0x4C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x13, 0x4D, 0x6E, 0x40, 0x00, 0x00, 0x00, 0x00, 0x14, 0x34, 0x24, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x15, 0x23, 0xF9, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x16, 0x13, 0xDC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x17, 0x03, 0xCD, 0x90, 0x00, @@ -8536,17 +8535,49 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x2A, 0xC5, 0x07, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xB4, 0xF8, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xA4, 0xE9, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xDA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0xCB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0xBC, 0x90, 0x00, -0x00, 0x00, 0x00, 0x30, 0x64, 0xAD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x01, +0x00, 0x00, 0x00, 0x30, 0x64, 0xAD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x00, +0x00, 0x00, 0x00, 0x32, 0x72, 0xB4, 0x10, 0x00, 0x00, 0x00, 0x00, 0x33, 0x3D, 0xBB, 0x10, 0x00, +0x00, 0x00, 0x00, 0x34, 0x52, 0x96, 0x10, 0x00, 0x00, 0x00, 0x00, 0x35, 0x1D, 0x9D, 0x10, 0x00, +0x00, 0x00, 0x00, 0x36, 0x32, 0x78, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0xFD, 0x7F, 0x10, 0x00, +0x00, 0x00, 0x00, 0x38, 0x1B, 0x94, 0x90, 0x00, 0x00, 0x00, 0x00, 0x38, 0xDD, 0x61, 0x10, 0x00, +0x00, 0x00, 0x00, 0x39, 0xFB, 0x76, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xBD, 0x43, 0x10, 0x00, +0x00, 0x00, 0x00, 0x3B, 0xDB, 0x58, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xA6, 0x5F, 0x90, 0x00, +0x00, 0x00, 0x00, 0x3D, 0xBB, 0x3A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x86, 0x41, 0x90, 0x00, +0x00, 0x00, 0x00, 0x3F, 0x9B, 0x1C, 0x90, 0x00, 0x00, 0x00, 0x00, 0x40, 0x66, 0x23, 0x90, 0x00, +0x00, 0x00, 0x00, 0x41, 0x84, 0x39, 0x10, 0x00, 0x00, 0x00, 0x00, 0x42, 0x46, 0x05, 0x90, 0x00, +0x00, 0x00, 0x00, 0x43, 0x64, 0x1B, 0x10, 0x00, 0x00, 0x00, 0x00, 0x44, 0x25, 0xE7, 0x90, 0x00, +0x00, 0x00, 0x00, 0x45, 0x43, 0xFD, 0x10, 0x00, 0x00, 0x00, 0x00, 0x46, 0x05, 0xC9, 0x90, 0x00, +0x00, 0x00, 0x00, 0x47, 0x23, 0xDF, 0x10, 0x00, 0x00, 0x00, 0x00, 0x47, 0xEE, 0xE6, 0x10, 0x00, +0x00, 0x00, 0x00, 0x49, 0x03, 0xC1, 0x10, 0x00, 0x00, 0x00, 0x00, 0x49, 0xCE, 0xC8, 0x10, 0x00, +0x00, 0x00, 0x00, 0x4A, 0xE3, 0xA3, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4B, 0xAE, 0xAA, 0x10, 0x00, +0x00, 0x00, 0x00, 0x4C, 0xCC, 0xBF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x8E, 0x8C, 0x10, 0x00, +0x00, 0x00, 0x00, 0x4E, 0xAC, 0xA1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x6E, 0x6E, 0x10, 0x00, +0x00, 0x00, 0x00, 0x50, 0x8C, 0x83, 0x90, 0x00, 0x00, 0x00, 0x00, 0x51, 0x57, 0x8A, 0x90, 0x00, +0x00, 0x00, 0x00, 0x52, 0x6C, 0x65, 0x90, 0x00, 0x00, 0x00, 0x00, 0x53, 0x37, 0x6C, 0x90, 0x00, +0x00, 0x00, 0x00, 0x54, 0x4C, 0x47, 0x90, 0x00, 0x00, 0x00, 0x00, 0x55, 0x17, 0x4E, 0x90, 0x00, +0x00, 0x00, 0x00, 0x56, 0x2C, 0x29, 0x90, 0x00, 0x00, 0x00, 0x00, 0x56, 0xF7, 0x30, 0x90, 0x00, +0x00, 0x00, 0x00, 0x58, 0x15, 0x46, 0x10, 0x00, 0x00, 0x00, 0x00, 0x58, 0xD7, 0x12, 0x90, 0x00, +0x00, 0x00, 0x00, 0x59, 0xF5, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xB6, 0xF4, 0x90, 0x00, +0x00, 0x00, 0x00, 0x5B, 0xD5, 0x0A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5C, 0xA0, 0x11, 0x10, 0x00, +0x00, 0x00, 0x00, 0x5D, 0xB4, 0xEC, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x7F, 0xF3, 0x10, 0x00, +0x00, 0x00, 0x00, 0x5F, 0x94, 0xCE, 0x10, 0x00, 0x00, 0x00, 0x00, 0x60, 0x5F, 0xD5, 0x10, 0x00, +0x00, 0x00, 0x00, 0x61, 0x7D, 0xEA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x62, 0x3F, 0xB7, 0x10, 0x00, +0x00, 0x00, 0x00, 0x63, 0x5D, 0xCC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x64, 0x1F, 0x99, 0x10, 0x00, +0x00, 0x00, 0x00, 0x65, 0x3D, 0xAE, 0x90, 0x00, 0x00, 0x00, 0x00, 0x66, 0x08, 0xB5, 0x90, 0x01, 0x02, 0x01, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, -0x04, 0xFF, 0xFF, 0xEB, 0x68, 0x00, 0x00, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x04, 0xFF, 0xFF, 0xF1, -0xF0, 0x01, 0x08, 0xFF, 0xFF, 0xF1, 0xF0, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0C, 0x4C, -0x4D, 0x54, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x2D, 0x30, 0x31, 0x00, 0x2B, 0x30, 0x30, 0x00, 0x0A, -0x3C, 0x2D, 0x30, 0x31, 0x3E, 0x31, 0x3C, 0x2B, 0x30, 0x30, 0x3E, 0x2C, 0x4D, 0x33, 0x2E, 0x35, -0x2E, 0x30, 0x2F, 0x30, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x31, 0x0A, 0x00, -0xF4, 0xE0, 0xCD, 0x00, 0xF1, 0x23, 0xC5, 0x00, 0x00, 0x00, 0x1D, 0x53, 0x63, 0x6F, 0x72, 0x65, -0x73, 0x62, 0x79, 0x73, 0x75, 0x6E, 0x64, 0x2F, 0x49, 0x74, 0x74, 0x6F, 0x71, 0x71, 0x6F, 0x72, -0x74, 0x6F, 0x6F, 0x72, 0x6D, 0x69, 0x69, 0x74, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, +0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x02, 0xFF, 0xFF, 0xEB, 0x68, 0x00, 0x00, 0xFF, +0xFF, 0xE3, 0xE0, 0x00, 0x04, 0xFF, 0xFF, 0xF1, 0xF0, 0x01, 0x08, 0xFF, 0xFF, 0xF1, 0xF0, 0x00, +0x08, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x2D, +0x30, 0x31, 0x00, 0x2B, 0x30, 0x30, 0x00, 0x0A, 0x3C, 0x2D, 0x30, 0x32, 0x3E, 0x32, 0x3C, 0x2D, +0x30, 0x31, 0x3E, 0x2C, 0x4D, 0x33, 0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x2D, 0x31, 0x2C, 0x4D, 0x31, +0x30, 0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x30, 0x0A, 0x00, 0xF4, 0xE0, 0xCD, 0x00, 0xF1, 0x23, 0xC5, +0x00, 0x00, 0x00, 0x1D, 0x53, 0x63, 0x6F, 0x72, 0x65, 0x73, 0x62, 0x79, 0x73, 0x75, 0x6E, 0x64, +0x2F, 0x49, 0x74, 0x74, 0x6F, 0x71, 0x71, 0x6F, 0x72, 0x74, 0x6F, 0x6F, 0x72, 0x6D, 0x69, 0x69, +0x74, /* America/Shiprock */ 0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -8794,7 +8825,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x49, 0x0D, 0x10, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x49, 0xB3, 0x3B, 0xF4, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xEC, 0xF2, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0x58, 0x74, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xD6, 0x0F, 0x64, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x7C, 0x3A, 0x74, 0x00, -0x00, 0x00, 0x00, 0x4E, 0xB6, 0x0D, 0x48, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x00, 0x00, 0x00, 0x4E, 0xAF, 0x59, 0xA8, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x06, 0x05, 0x04, 0x03, 0x04, @@ -8806,16 +8837,15 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x03, 0x04, 0x07, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, -0x03, 0x04, 0xFF, 0xFF, 0xCE, 0x94, 0x00, 0x00, 0xFF, 0xFF, 0xDC, 0xA4, 0x01, 0x04, 0xFF, 0xFF, +0x03, 0x03, 0xFF, 0xFF, 0xCE, 0x94, 0x00, 0x00, 0xFF, 0xFF, 0xDC, 0xA4, 0x01, 0x04, 0xFF, 0xFF, 0xCE, 0x94, 0x00, 0x08, 0xFF, 0xFF, 0xDC, 0xD8, 0x01, 0x04, 0xFF, 0xFF, 0xCE, 0xC8, 0x00, 0x08, 0xFF, 0xFF, 0xDC, 0xD8, 0x01, 0x0C, 0xFF, 0xFF, 0xDC, 0xD8, 0x01, 0x10, 0xFF, 0xFF, 0xEA, 0xE8, 0x01, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x4E, 0x44, 0x54, 0x00, 0x4E, 0x53, 0x54, 0x00, 0x4E, 0x50, 0x54, 0x00, 0x4E, 0x57, 0x54, 0x00, 0x4E, 0x44, 0x44, 0x54, 0x00, 0x0A, 0x4E, 0x53, 0x54, 0x33, 0x3A, 0x33, 0x30, 0x4E, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xD1, 0xE8, 0xFA, 0x00, 0xC2, 0x38, 0x0D, 0x00, 0x00, -0x00, 0x22, 0x4E, 0x65, 0x77, 0x66, 0x6F, 0x75, 0x6E, 0x64, 0x6C, 0x61, 0x6E, 0x64, 0x3B, 0x20, -0x4C, 0x61, 0x62, 0x72, 0x61, 0x64, 0x6F, 0x72, 0x20, 0x28, 0x73, 0x6F, 0x75, 0x74, 0x68, 0x65, -0x61, 0x73, 0x74, 0x29, +0x00, 0x1B, 0x4E, 0x65, 0x77, 0x66, 0x6F, 0x75, 0x6E, 0x64, 0x6C, 0x61, 0x6E, 0x64, 0x2C, 0x20, +0x4C, 0x61, 0x62, 0x72, 0x61, 0x64, 0x6F, 0x72, 0x20, 0x28, 0x53, 0x45, 0x29, /* America/St_Kitts */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x4B, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -9104,13 +9134,13 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x45, 0x44, 0x6D, 0x90, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0F, 0x82, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x47, 0x24, 0x4F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x47, 0xF8, 0x9F, 0x20, 0x00, 0x00, 0x00, 0x00, 0x49, 0x04, 0x31, 0x90, 0x00, 0x00, 0x00, 0x00, 0x49, 0xD8, 0x81, 0x20, 0x00, -0x00, 0x00, 0x00, 0x4A, 0xE4, 0x13, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0xB3, 0xA0, 0x01, +0x00, 0x00, 0x00, 0x4A, 0xE4, 0x13, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x3D, 0xAB, 0x80, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x04, 0x05, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0xFF, 0xFF, 0x92, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x02, 0xFF, 0xFF, 0x92, 0x4C, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x0C, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x10, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x50, 0x44, 0x54, @@ -9228,8 +9258,8 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x45, 0x53, 0x54, 0x00, 0x45, 0x57, 0x54, 0x00, 0x45, 0x50, 0x54, 0x00, 0x0A, 0x45, 0x53, 0x54, 0x35, 0x45, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xCB, 0xEF, 0x08, 0x00, 0x99, 0x87, 0x62, 0x00, 0x00, 0x00, -0x1D, 0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x2D, 0x20, 0x4F, 0x4E, 0x2C, 0x20, 0x51, -0x43, 0x20, 0x28, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x61, 0x72, 0x65, 0x61, 0x73, 0x29, +0x1E, 0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x2D, 0x20, 0x4F, 0x4E, 0x20, 0x26, 0x20, +0x51, 0x43, 0x20, 0x28, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x61, 0x72, 0x65, 0x61, 0x73, 0x29, /* America/Tortola */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x56, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -9496,7 +9526,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x0A, 0x43, 0x53, 0x54, 0x36, 0x43, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xD5, 0x71, 0xED, 0x00, 0x7E, 0x6B, 0x47, 0x00, 0x00, 0x00, 0x1D, 0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, -0x6C, 0x20, 0x2D, 0x20, 0x4F, 0x4E, 0x20, 0x28, 0x77, 0x65, 0x73, 0x74, 0x29, 0x3B, 0x20, 0x4D, +0x6C, 0x20, 0x2D, 0x20, 0x4F, 0x4E, 0x20, 0x28, 0x77, 0x65, 0x73, 0x74, 0x29, 0x2C, 0x20, 0x4D, 0x61, 0x6E, 0x69, 0x74, 0x6F, 0x62, 0x61, /* America/Yakutat */ @@ -9632,18 +9662,21 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x1E, 0xCC, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xDA, 0x06, 0x20, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x8F, 0xCA, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xA9, 0x9C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x43, 0xCD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x58, 0x0A, 0x3B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xA4, 0x0F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xB9, 0x14, 0x40, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x8D, 0x1D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x5D, 0x96, 0x45, 0x30, 0x00, -0x00, 0x00, 0x00, 0x5E, 0x63, 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x78, 0xA0, 0x3C, 0x01, -0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x70, 0x80, 0x00, 0x04, 0x00, 0x00, 0x9A, 0xB0, 0x00, 0x08, 0x2D, 0x30, 0x30, -0x00, 0x2B, 0x30, 0x38, 0x00, 0x2B, 0x31, 0x31, 0x00, 0x0A, 0x3C, 0x2B, 0x31, 0x31, 0x3E, 0x2D, -0x31, 0x31, 0x0A, 0x00, 0x24, 0x30, 0x52, 0x01, 0xBB, 0x4B, 0x12, 0x00, 0x00, 0x00, 0x05, 0x43, -0x61, 0x73, 0x65, 0x79, +0x00, 0x00, 0x00, 0x5E, 0x63, 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x78, 0xA0, 0x3C, 0x00, +0x00, 0x00, 0x00, 0x60, 0x4C, 0xB7, 0x50, 0x00, 0x00, 0x00, 0x00, 0x61, 0x58, 0x82, 0x3C, 0x00, +0x00, 0x00, 0x00, 0x62, 0x2C, 0x99, 0x50, 0x00, 0x00, 0x00, 0x00, 0x63, 0x38, 0x64, 0x3C, 0x00, +0x00, 0x00, 0x00, 0x64, 0x08, 0xB1, 0x00, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x70, 0x80, 0x00, 0x04, 0x00, 0x00, 0x9A, 0xB0, 0x00, 0x08, 0x2D, 0x30, 0x30, 0x00, 0x2B, 0x30, +0x38, 0x00, 0x2B, 0x31, 0x31, 0x00, 0x0A, 0x3C, 0x2B, 0x30, 0x38, 0x3E, 0x2D, 0x38, 0x0A, 0x00, +0x24, 0x30, 0x52, 0x01, 0xBB, 0x4B, 0x12, 0x00, 0x00, 0x00, 0x05, 0x43, 0x61, 0x73, 0x65, 0x79, + /* Antarctica/Davis */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x41, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -9727,13 +9760,13 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x46, 0x05, 0x4B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x07, 0xB1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0xF7, 0xA2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0xE7, 0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0xD7, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xC7, 0x75, 0x00, 0x00, -0x00, 0x00, 0x00, 0x4D, 0x97, 0x48, 0x00, 0x01, 0x02, 0x01, 0x00, 0x01, 0x02, 0x01, 0x02, 0x01, +0x00, 0x00, 0x00, 0x4D, 0x1D, 0xD3, 0xD0, 0x01, 0x02, 0x01, 0x00, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, -0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0xA0, 0x00, 0x04, 0x00, 0x00, +0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0xA0, 0x00, 0x04, 0x00, 0x00, 0x9A, 0xB0, 0x01, 0x09, 0x2D, 0x30, 0x30, 0x00, 0x41, 0x45, 0x53, 0x54, 0x00, 0x41, 0x45, 0x44, 0x54, 0x00, 0x0A, 0x41, 0x45, 0x53, 0x54, 0x2D, 0x31, 0x30, 0x41, 0x45, 0x44, 0x54, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x31, 0x2E, 0x30, 0x2C, 0x4D, 0x34, 0x2E, 0x31, 0x2E, 0x30, 0x2F, 0x33, 0x0A, @@ -9964,14 +9997,12 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x00, -0x00, 0x00, 0x00, 0x42, 0x0D, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x46, 0x05, 0x90, 0x02, -0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x04, 0x00, 0x00, 0x00, -0x00, 0x00, 0x08, 0x2D, 0x30, 0x30, 0x00, 0x2B, 0x30, 0x32, 0x00, 0x2B, 0x30, 0x30, 0x00, 0x0A, -0x3C, 0x2B, 0x30, 0x30, 0x3E, 0x30, 0x3C, 0x2B, 0x30, 0x32, 0x3E, 0x2D, 0x32, 0x2C, 0x4D, 0x33, -0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x31, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x33, -0x0A, 0x00, 0x1B, 0x72, 0xCD, 0x01, 0x16, 0x86, 0xBC, 0x00, 0x00, 0x00, 0x05, 0x54, 0x72, 0x6F, -0x6C, 0x6C, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, +0x00, 0x00, 0x00, 0x42, 0x0D, 0x47, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x04, 0x2D, 0x30, 0x30, 0x00, 0x2B, 0x30, 0x30, 0x00, 0x0A, 0x3C, 0x2B, 0x30, +0x30, 0x3E, 0x30, 0x3C, 0x2B, 0x30, 0x32, 0x3E, 0x2D, 0x32, 0x2C, 0x4D, 0x33, 0x2E, 0x35, 0x2E, +0x30, 0x2F, 0x31, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x33, 0x0A, 0x00, 0x1B, +0x72, 0xCD, 0x01, 0x16, 0x86, 0xBC, 0x00, 0x00, 0x00, 0x05, 0x54, 0x72, 0x6F, 0x6C, 0x6C, /* Antarctica/Vostok */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x41, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -9979,11 +10010,13 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0xFF, -0xFF, 0xFF, 0xFF, 0xE9, 0x58, 0x89, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x54, 0x60, 0x00, 0x04, 0x2D, 0x30, 0x30, 0x00, 0x2B, 0x30, 0x36, 0x00, 0x0A, 0x3C, 0x2B, 0x30, -0x36, 0x3E, 0x2D, 0x36, 0x0A, 0x00, 0x11, 0xB3, 0x3F, 0x01, 0xB5, 0xC6, 0x4F, 0x00, 0x00, 0x00, -0x06, 0x56, 0x6F, 0x73, 0x74, 0x6F, 0x6B, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0xFF, +0xFF, 0xFF, 0xFF, 0xE9, 0x58, 0x89, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x4D, 0x39, 0x10, 0x00, +0x00, 0x00, 0x00, 0x2E, 0xB5, 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0x7F, 0x45, 0x30, 0x01, +0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x70, 0x00, 0x04, 0x00, +0x00, 0x46, 0x50, 0x00, 0x08, 0x2D, 0x30, 0x30, 0x00, 0x2B, 0x30, 0x37, 0x00, 0x2B, 0x30, 0x35, +0x00, 0x0A, 0x3C, 0x2B, 0x30, 0x35, 0x3E, 0x2D, 0x35, 0x0A, 0x00, 0x11, 0xB3, 0x3F, 0x01, 0xB5, +0xC6, 0x4F, 0x00, 0x00, 0x00, 0x06, 0x56, 0x6F, 0x73, 0x74, 0x6F, 0x6B, /* Arctic/Longyearbyen */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x53, 0x4A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -11078,7 +11111,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x15, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x36, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x15, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0xBD, 0x4A, 0xB0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x59, 0xCF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0xFA, 0xA6, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xC9, 0x38, 0x9C, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xCC, 0xE5, 0xEB, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xCD, 0xAC, 0xFE, 0x00, 0xFF, @@ -11205,10 +11238,35 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0xBC, 0x8B, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBD, 0x84, 0xE3, 0x70, 0x00, 0x00, 0x00, 0x00, 0xBE, 0x6B, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBF, 0x52, 0x50, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x4B, 0x8A, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x28, 0xF7, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xC1, 0x57, 0x2A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC2, 0xFF, 0x9F, 0x70, 0x00, -0x00, 0x00, 0x00, 0xC3, 0x2D, 0xD2, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0xCD, 0x0C, 0x70, 0x00, -0x00, 0x00, 0x00, 0xC5, 0x04, 0x79, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xA3, 0xB3, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xC6, 0xD1, 0xE6, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC7, 0x09, 0x37, 0x70, 0x02, +0x00, 0x00, 0x00, 0xC1, 0x57, 0x2A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x69, 0x91, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC2, 0x2B, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0xFF, 0x9F, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC3, 0x2D, 0xD2, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x49, 0x73, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC4, 0x0B, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0xCD, 0x0C, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC5, 0x04, 0x79, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC5, 0x29, 0x55, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC5, 0xF4, 0x6A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xA3, 0xB3, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xC6, 0xD1, 0xE6, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC7, 0x09, 0x37, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC7, 0xD4, 0x4C, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x71, 0x20, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xC8, 0xA8, 0x8E, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0xE9, 0x19, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC9, 0xB4, 0x2E, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCA, 0x47, 0xC8, 0x70, 0x00, +0x00, 0x00, 0x00, 0xCA, 0x7F, 0x35, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCA, 0xD2, 0x35, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xCB, 0x94, 0x10, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCC, 0x1E, 0x6F, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xCC, 0x4C, 0xA2, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCC, 0xB2, 0x17, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xCD, 0x73, 0xF2, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCD, 0xEB, 0xDC, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xCE, 0x23, 0x4A, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCE, 0x91, 0xF9, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xCF, 0x5D, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCF, 0xC2, 0x84, 0x70, 0x00, +0x00, 0x00, 0x00, 0xCF, 0xF0, 0xB7, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x71, 0xDB, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xD1, 0x3C, 0xF1, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD1, 0x99, 0x2B, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xD1, 0xC7, 0x5E, 0x80, 0x00, 0x00, 0x00, 0x00, 0xD2, 0x51, 0xBD, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xD3, 0x1C, 0xD3, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD3, 0x66, 0x98, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xD3, 0x9E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD4, 0x31, 0x9F, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xD4, 0xFC, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD5, 0x3D, 0x40, 0x70, 0x00, +0x00, 0x00, 0x00, 0xD5, 0x6B, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD6, 0x1A, 0xBC, 0x70, 0x00, +0x00, 0x00, 0x00, 0xD6, 0xDC, 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD7, 0x0A, 0xAD, 0x70, 0x00, +0x00, 0x00, 0x00, 0xD7, 0x42, 0x1A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xD7, 0xFA, 0x9E, 0x70, 0x00, +0x00, 0x00, 0x00, 0xD8, 0xBC, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0xE1, 0x54, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xD9, 0x18, 0xC2, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD9, 0xDA, 0x80, 0x70, 0x00, +0x00, 0x00, 0x00, 0xDA, 0xA5, 0x95, 0x80, 0x00, 0x00, 0x00, 0x00, 0xDA, 0xB7, 0xFC, 0x70, 0x00, +0x00, 0x00, 0x00, 0xDA, 0xE6, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDB, 0xBA, 0x62, 0x70, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, @@ -11225,13 +11283,16 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, -0x02, 0x01, 0x02, 0x00, 0x00, 0x20, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, -0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, -0x11, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x49, 0x44, -0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x0A, 0x45, 0x45, 0x54, 0x2D, 0x32, 0x45, 0x45, 0x53, 0x54, -0x2C, 0x4D, 0x33, 0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x34, -0x2E, 0x34, 0x2F, 0x35, 0x30, 0x0A, 0x00, 0xB9, 0x64, 0xF0, 0x01, 0x47, 0x40, 0x0A, 0x00, 0x00, -0x00, 0x0A, 0x47, 0x61, 0x7A, 0x61, 0x20, 0x53, 0x74, 0x72, 0x69, 0x70, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x20, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, +0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, 0x00, 0x1C, +0x20, 0x00, 0x11, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, +0x49, 0x44, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x0A, 0x45, 0x45, 0x54, 0x2D, 0x32, 0x45, 0x45, +0x53, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x2C, 0x4D, 0x31, 0x30, +0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x0A, 0x00, 0xB9, 0x64, 0xF0, 0x01, 0x47, 0x40, 0x0A, +0x00, 0x00, 0x00, 0x0A, 0x47, 0x61, 0x7A, 0x61, 0x20, 0x53, 0x74, 0x72, 0x69, 0x70, /* Asia/Harbin */ 0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -11267,7 +11328,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x15, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x38, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x15, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0xBD, 0x4A, 0x19, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x59, 0xCF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0xFA, 0xA6, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xC9, 0x38, 0x9C, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xCC, 0xE5, 0xEB, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xCD, 0xAC, 0xFE, 0x00, 0xFF, @@ -11395,10 +11456,35 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0xBC, 0x8B, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBD, 0x84, 0xE3, 0x70, 0x00, 0x00, 0x00, 0x00, 0xBE, 0x6B, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBF, 0x52, 0x50, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x4B, 0x8A, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x28, 0xF7, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xC1, 0x57, 0x2A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC2, 0xFF, 0x9F, 0x70, 0x00, -0x00, 0x00, 0x00, 0xC3, 0x2D, 0xD2, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0xCD, 0x0C, 0x70, 0x00, -0x00, 0x00, 0x00, 0xC5, 0x04, 0x79, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xA3, 0xB3, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xC6, 0xD1, 0xE6, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC7, 0x09, 0x37, 0x70, 0x02, +0x00, 0x00, 0x00, 0xC1, 0x57, 0x2A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x69, 0x91, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC2, 0x2B, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0xFF, 0x9F, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC3, 0x2D, 0xD2, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x49, 0x73, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC4, 0x0B, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0xCD, 0x0C, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC5, 0x04, 0x79, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC5, 0x29, 0x55, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC5, 0xF4, 0x6A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xA3, 0xB3, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xC6, 0xD1, 0xE6, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC7, 0x09, 0x37, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC7, 0xD4, 0x4C, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x71, 0x20, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xC8, 0xA8, 0x8E, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0xE9, 0x19, 0x70, 0x00, +0x00, 0x00, 0x00, 0xC9, 0xB4, 0x2E, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCA, 0x47, 0xC8, 0x70, 0x00, +0x00, 0x00, 0x00, 0xCA, 0x7F, 0x35, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCA, 0xD2, 0x35, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xCB, 0x94, 0x10, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCC, 0x1E, 0x6F, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xCC, 0x4C, 0xA2, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCC, 0xB2, 0x17, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xCD, 0x73, 0xF2, 0x80, 0x00, 0x00, 0x00, 0x00, 0xCD, 0xEB, 0xDC, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xCE, 0x23, 0x4A, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCE, 0x91, 0xF9, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xCF, 0x5D, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCF, 0xC2, 0x84, 0x70, 0x00, +0x00, 0x00, 0x00, 0xCF, 0xF0, 0xB7, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x71, 0xDB, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xD1, 0x3C, 0xF1, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD1, 0x99, 0x2B, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xD1, 0xC7, 0x5E, 0x80, 0x00, 0x00, 0x00, 0x00, 0xD2, 0x51, 0xBD, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xD3, 0x1C, 0xD3, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD3, 0x66, 0x98, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xD3, 0x9E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD4, 0x31, 0x9F, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xD4, 0xFC, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD5, 0x3D, 0x40, 0x70, 0x00, +0x00, 0x00, 0x00, 0xD5, 0x6B, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD6, 0x1A, 0xBC, 0x70, 0x00, +0x00, 0x00, 0x00, 0xD6, 0xDC, 0x97, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD7, 0x0A, 0xAD, 0x70, 0x00, +0x00, 0x00, 0x00, 0xD7, 0x42, 0x1A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xD7, 0xFA, 0x9E, 0x70, 0x00, +0x00, 0x00, 0x00, 0xD8, 0xBC, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0xE1, 0x54, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xD9, 0x18, 0xC2, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD9, 0xDA, 0x80, 0x70, 0x00, +0x00, 0x00, 0x00, 0xDA, 0xA5, 0x95, 0x80, 0x00, 0x00, 0x00, 0x00, 0xDA, 0xB7, 0xFC, 0x70, 0x00, +0x00, 0x00, 0x00, 0xDA, 0xE6, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDB, 0xBA, 0x62, 0x70, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, @@ -11415,13 +11501,16 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, -0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x20, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, -0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, 0x00, 0x1C, -0x20, 0x00, 0x11, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, -0x49, 0x44, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x0A, 0x45, 0x45, 0x54, 0x2D, 0x32, 0x45, 0x45, -0x53, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x2C, 0x4D, 0x31, 0x30, -0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x0A, 0x00, 0xB9, 0x71, 0xF5, 0x01, 0x48, 0x35, 0x7C, -0x00, 0x00, 0x00, 0x09, 0x57, 0x65, 0x73, 0x74, 0x20, 0x42, 0x61, 0x6E, 0x6B, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x20, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x2A, +0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, +0x00, 0x1C, 0x20, 0x00, 0x11, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, +0x54, 0x00, 0x49, 0x44, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x0A, 0x45, 0x45, 0x54, 0x2D, 0x32, +0x45, 0x45, 0x53, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x2C, 0x4D, +0x31, 0x30, 0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x0A, 0x00, 0xB9, 0x71, 0xF5, 0x01, 0x48, +0x35, 0x7C, 0x00, 0x00, 0x00, 0x09, 0x57, 0x65, 0x73, 0x74, 0x20, 0x42, 0x61, 0x6E, 0x6B, /* Asia/Ho_Chi_Minh */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x56, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -11700,7 +11789,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x57, 0x49, 0x54, 0x00, 0x0A, 0x57, 0x49, 0x54, 0x2D, 0x39, 0x0A, 0x00, 0x85, 0x76, 0xAA, 0x01, 0xE9, 0x59, 0x70, 0x00, 0x00, 0x00, 0x36, 0x4E, 0x65, 0x77, 0x20, 0x47, 0x75, 0x69, 0x6E, 0x65, 0x61, 0x20, 0x28, 0x57, 0x65, 0x73, 0x74, 0x20, 0x50, 0x61, 0x70, 0x75, 0x61, 0x20, 0x2F, 0x20, -0x49, 0x72, 0x69, 0x61, 0x6E, 0x20, 0x4A, 0x61, 0x79, 0x61, 0x29, 0x3B, 0x20, 0x4D, 0x61, 0x6C, +0x49, 0x72, 0x69, 0x61, 0x6E, 0x20, 0x4A, 0x61, 0x79, 0x61, 0x29, 0x2C, 0x20, 0x4D, 0x61, 0x6C, 0x75, 0x6B, 0x75, 0x73, 0x2F, 0x4D, 0x6F, 0x6C, 0x75, 0x63, 0x63, 0x61, 0x73, /* Asia/Jerusalem */ @@ -12244,10 +12333,10 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x10, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x4D, 0x54, 0x00, 0x2B, 0x30, 0x38, 0x00, 0x2B, 0x30, 0x39, 0x00, 0x57, 0x49, 0x54, 0x41, 0x00, 0x0A, 0x57, 0x49, 0x54, 0x41, 0x2D, 0x38, 0x0A, 0x00, 0x81, 0x85, 0x8D, 0x01, 0xC8, 0xD9, 0x1F, 0x00, 0x00, 0x00, 0x49, 0x42, 0x6F, 0x72, 0x6E, 0x65, 0x6F, -0x20, 0x28, 0x65, 0x61, 0x73, 0x74, 0x2C, 0x20, 0x73, 0x6F, 0x75, 0x74, 0x68, 0x29, 0x3B, 0x20, +0x20, 0x28, 0x65, 0x61, 0x73, 0x74, 0x2C, 0x20, 0x73, 0x6F, 0x75, 0x74, 0x68, 0x29, 0x2C, 0x20, 0x53, 0x75, 0x6C, 0x61, 0x77, 0x65, 0x73, 0x69, 0x2F, 0x43, 0x65, 0x6C, 0x65, 0x62, 0x65, 0x73, 0x2C, 0x20, 0x42, 0x61, 0x6C, 0x69, 0x2C, 0x20, 0x4E, 0x75, 0x73, 0x61, 0x20, 0x54, 0x65, 0x6E, -0x67, 0x61, 0x72, 0x72, 0x61, 0x3B, 0x20, 0x54, 0x69, 0x6D, 0x6F, 0x72, 0x20, 0x28, 0x77, 0x65, +0x67, 0x61, 0x72, 0x72, 0x61, 0x2C, 0x20, 0x54, 0x69, 0x6D, 0x6F, 0x72, 0x20, 0x28, 0x77, 0x65, 0x73, 0x74, 0x29, /* Asia/Manila */ @@ -12311,10 +12400,10 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x30, 0x64, 0x75, 0x50, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xAE, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x32, 0x4D, 0x91, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x33, 0x3D, 0x90, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x34, 0x2D, 0x73, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x35, 0x1D, 0x72, 0xE0, 0x00, -0x00, 0x00, 0x00, 0x36, 0x32, 0x78, 0x10, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x00, 0x00, 0x00, 0x35, 0xEB, 0x0E, 0xD0, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, -0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x1F, 0x48, 0x00, 0x00, 0x00, 0x00, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x01, 0x00, 0x00, 0x1F, 0x48, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x0A, 0x45, 0x45, 0x54, 0x2D, 0x32, 0x45, 0x45, 0x53, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x33, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x35, @@ -12917,7 +13006,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x2B, 0x31, 0x30, 0x00, 0x2B, 0x31, 0x32, 0x00, 0x2B, 0x31, 0x31, 0x00, 0x0A, 0x3C, 0x2B, 0x31, 0x31, 0x3E, 0x2D, 0x31, 0x31, 0x0A, 0x00, 0xF0, 0x46, 0x6A, 0x01, 0xFD, 0x36, 0x12, 0x00, 0x00, 0x00, 0x1E, 0x4D, 0x53, 0x4B, 0x2B, 0x30, 0x38, 0x20, 0x2D, 0x20, 0x53, 0x61, 0x6B, 0x68, 0x61, -0x20, 0x28, 0x45, 0x29, 0x3B, 0x20, 0x4E, 0x20, 0x4B, 0x75, 0x72, 0x69, 0x6C, 0x20, 0x49, 0x73, +0x20, 0x28, 0x45, 0x29, 0x2C, 0x20, 0x4E, 0x20, 0x4B, 0x75, 0x72, 0x69, 0x6C, 0x20, 0x49, 0x73, /* Asia/Taipei */ @@ -15882,7 +15971,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x49, 0x0D, 0x10, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x49, 0xB3, 0x3B, 0xF4, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xEC, 0xF2, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0x58, 0x74, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xD6, 0x0F, 0x64, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x7C, 0x3A, 0x74, 0x00, -0x00, 0x00, 0x00, 0x4E, 0xB6, 0x0D, 0x48, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x00, 0x00, 0x00, 0x4E, 0xAF, 0x59, 0xA8, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x06, 0x05, 0x04, 0x03, 0x04, @@ -15894,7 +15983,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x03, 0x04, 0x07, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, -0x03, 0x04, 0xFF, 0xFF, 0xCE, 0x94, 0x00, 0x00, 0xFF, 0xFF, 0xDC, 0xA4, 0x01, 0x04, 0xFF, 0xFF, +0x03, 0x03, 0xFF, 0xFF, 0xCE, 0x94, 0x00, 0x00, 0xFF, 0xFF, 0xDC, 0xA4, 0x01, 0x04, 0xFF, 0xFF, 0xCE, 0x94, 0x00, 0x08, 0xFF, 0xFF, 0xDC, 0xD8, 0x01, 0x04, 0xFF, 0xFF, 0xCE, 0xC8, 0x00, 0x08, 0xFF, 0xFF, 0xDC, 0xD8, 0x01, 0x0C, 0xFF, 0xFF, 0xDC, 0xD8, 0x01, 0x10, 0xFF, 0xFF, 0xEA, 0xE8, 0x01, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x4E, 0x44, 0x54, 0x00, 0x4E, 0x53, 0x54, 0x00, 0x4E, 0x50, @@ -17362,7 +17451,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x2B, 0xB4, 0xF8, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xC9, 0xD3, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xDA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0xA9, 0xB5, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0xBC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, 0x89, 0x97, 0x90, 0x00, -0x00, 0x00, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x00, 0x00, 0x00, 0x30, 0xE7, 0x24, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, @@ -17372,7 +17461,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x01, 0x02, 0x01, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, -0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xFF, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, +0x02, 0x01, 0x02, 0x01, 0x02, 0x02, 0xFF, 0xFF, 0xFF, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x0C, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x42, 0x53, 0x54, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x42, 0x44, 0x53, 0x54, 0x00, 0x0A, 0x47, 0x4D, 0x54, 0x30, 0x42, 0x53, 0x54, 0x2C, 0x4D, 0x33, @@ -17614,10 +17703,10 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x2D, 0x94, 0xB0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0x93, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0x92, 0x60, 0x00, 0x00, 0x00, 0x00, 0x30, 0x64, 0x75, 0x50, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xAE, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x32, 0x72, 0x7B, 0xD0, 0x00, -0x00, 0x00, 0x00, 0x33, 0x3D, 0xBB, 0x10, 0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x00, 0x00, 0x00, 0x32, 0xC9, 0x8C, 0xE0, 0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x03, 0x00, 0x00, 0x18, 0x78, 0x00, 0x00, 0x00, 0x00, 0x18, 0x78, 0x00, 0x04, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x08, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x42, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x0A, 0x45, 0x45, 0x54, 0x2D, 0x32, 0x45, 0x45, 0x53, @@ -17747,11 +17836,11 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x2C, 0xA4, 0xB1, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xB0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0x93, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0x92, 0x60, 0x00, 0x00, 0x00, 0x00, 0x30, 0x64, 0x75, 0x50, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xAE, 0xE0, 0x00, -0x00, 0x00, 0x00, 0x32, 0x72, 0x7B, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x33, 0x3D, 0xAD, 0x00, 0x01, +0x00, 0x00, 0x00, 0x32, 0x72, 0x7B, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x32, 0xC9, 0x8C, 0xE0, 0x01, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x06, 0x05, 0x06, 0x05, 0x06, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x03, 0x04, 0x03, 0x04, -0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x00, 0x00, 0x1B, 0x08, 0x00, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x04, 0x00, 0x00, 0x1B, 0x08, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xF4, 0x00, 0x04, 0x00, 0x00, 0x18, 0x78, 0x00, 0x08, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0C, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x11, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x15, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x19, 0x00, 0x00, 0x38, 0x40, 0x01, 0x1E, 0x00, 0x00, 0x2A, 0x30, 0x00, @@ -18065,7 +18154,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x2A, 0xE9, 0xF1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xB4, 0xF8, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xC9, 0xD3, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xDA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0xA9, 0xB5, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0xBC, 0x90, 0x00, -0x00, 0x00, 0x00, 0x30, 0x89, 0x97, 0x90, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x02, +0x00, 0x00, 0x00, 0x30, 0x89, 0x97, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, 0xE7, 0x24, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, @@ -18075,7 +18164,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x06, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, -0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xFD, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x02, 0xFF, 0xFF, 0xFD, 0x9F, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x10, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x15, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x42, 0x53, 0x54, 0x00, 0x47, @@ -18203,7 +18292,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x2B, 0xB4, 0xF8, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xC9, 0xD3, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xDA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0xA9, 0xB5, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0xBC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, 0x89, 0x97, 0x90, 0x00, -0x00, 0x00, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x00, 0x00, 0x00, 0x30, 0xE7, 0x24, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, @@ -18213,7 +18302,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x01, 0x02, 0x01, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, -0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xFB, 0xCD, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, +0x02, 0x01, 0x02, 0x01, 0x02, 0x02, 0xFF, 0xFF, 0xFB, 0xCD, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x0C, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x42, 0x53, 0x54, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x42, 0x44, 0x53, 0x54, 0x00, 0x0A, 0x47, 0x4D, 0x54, 0x30, 0x42, 0x53, 0x54, 0x2C, 0x4D, 0x33, @@ -18383,7 +18472,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x2A, 0xE9, 0xF1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xB4, 0xF8, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xC9, 0xD3, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xDA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0xA9, 0xB5, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0xBC, 0x90, 0x00, -0x00, 0x00, 0x00, 0x30, 0x89, 0x97, 0x90, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x02, +0x00, 0x00, 0x00, 0x30, 0x89, 0x97, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, 0xE7, 0x24, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, @@ -18393,7 +18482,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x06, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, -0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xFE, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x02, 0xFF, 0xFF, 0xFE, 0x06, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x10, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x15, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x42, 0x53, 0x54, 0x00, 0x47, @@ -18489,9 +18578,9 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x2C, 0xA4, 0xDB, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xCC, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0xBD, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0xAE, 0x80, 0x00, 0x00, 0x00, 0x00, 0x30, 0x64, 0x9F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xCB, 0x00, 0x00, -0x00, 0x00, 0x00, 0x32, 0x72, 0xB4, 0x10, 0x01, 0x02, 0x03, 0x05, 0x04, 0x05, 0x04, 0x03, 0x06, +0x00, 0x00, 0x00, 0x31, 0x96, 0x51, 0x50, 0x01, 0x02, 0x03, 0x05, 0x04, 0x05, 0x04, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, -0x03, 0x06, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x00, 0x00, +0x03, 0x06, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x07, 0x00, 0x00, 0x1C, 0x9C, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x9C, 0x00, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x08, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x0C, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x10, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x14, 0x00, 0x00, 0x38, 0x40, 0x01, 0x19, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x1D, 0x4C, 0x4D, @@ -18577,9 +18666,9 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x2C, 0xA4, 0xDB, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xCC, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0xBD, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0xAE, 0x80, 0x00, 0x00, 0x00, 0x00, 0x30, 0x64, 0x9F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xCB, 0x00, 0x00, -0x00, 0x00, 0x00, 0x32, 0x72, 0xB4, 0x10, 0x01, 0x02, 0x03, 0x05, 0x04, 0x05, 0x04, 0x03, 0x06, +0x00, 0x00, 0x00, 0x31, 0x96, 0x51, 0x50, 0x01, 0x02, 0x03, 0x05, 0x04, 0x05, 0x04, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, -0x03, 0x06, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x00, 0x00, +0x03, 0x06, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x07, 0x00, 0x00, 0x1C, 0x9C, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x9C, 0x00, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x08, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x0C, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x10, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x14, 0x00, 0x00, 0x38, 0x40, 0x01, 0x19, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x1D, 0x4C, 0x4D, @@ -18804,7 +18893,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x2B, 0xB4, 0xF8, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xC9, 0xD3, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xDA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0xA9, 0xB5, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0xBC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, 0x89, 0x97, 0x90, 0x00, -0x00, 0x00, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x00, 0x00, 0x00, 0x30, 0xE7, 0x24, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, @@ -18814,7 +18903,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x01, 0x02, 0x01, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, -0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xFF, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, +0x02, 0x01, 0x02, 0x01, 0x02, 0x02, 0xFF, 0xFF, 0xFF, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x0C, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x42, 0x53, 0x54, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x42, 0x44, 0x53, 0x54, 0x00, 0x0A, 0x47, 0x4D, 0x54, 0x30, 0x42, 0x53, 0x54, 0x2C, 0x4D, 0x33, @@ -19265,10 +19354,10 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x30, 0x64, 0x75, 0x50, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xAE, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x32, 0x4D, 0x91, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x33, 0x3D, 0x90, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x34, 0x2D, 0x73, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x35, 0x1D, 0x72, 0xE0, 0x00, -0x00, 0x00, 0x00, 0x36, 0x32, 0x78, 0x10, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x00, 0x00, 0x00, 0x35, 0xEB, 0x0E, 0xD0, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, -0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x1F, 0x48, 0x00, 0x00, 0x00, 0x00, +0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x01, 0x00, 0x00, 0x1F, 0x48, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x0A, 0x45, 0x45, 0x54, 0x2D, 0x32, 0x45, 0x45, 0x53, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x33, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x35, @@ -19507,10 +19596,10 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x33, 0x3D, 0xBB, 0x10, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0x96, 0x10, 0x00, 0x00, 0x00, 0x00, 0x35, 0x1D, 0x9D, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0x78, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0xFD, 0x7F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0x94, 0x90, 0x00, -0x00, 0x00, 0x00, 0x3A, 0xBD, 0x43, 0x10, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x04, 0x06, 0x05, +0x00, 0x00, 0x00, 0x3A, 0x50, 0xFD, 0xE0, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x04, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x04, 0x07, 0x04, 0x07, 0x04, 0x07, 0x04, 0x07, 0x04, 0x07, 0x04, 0x07, 0x04, 0x07, 0x04, 0x07, 0x04, 0x08, 0x03, 0x08, 0x03, 0x08, 0x03, 0x08, 0x03, 0x08, 0x03, 0x08, -0x03, 0x08, 0x03, 0x08, 0x03, 0x08, 0x03, 0x08, 0x03, 0x08, 0x03, 0x08, 0x00, 0x00, 0x16, 0xA2, +0x03, 0x08, 0x03, 0x08, 0x03, 0x08, 0x03, 0x08, 0x03, 0x08, 0x03, 0x03, 0x00, 0x00, 0x16, 0xA2, 0x00, 0x00, 0x00, 0x00, 0x16, 0xA2, 0x00, 0x04, 0x00, 0x00, 0x24, 0xB2, 0x01, 0x08, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x0C, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x10, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x14, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x18, 0x00, 0x00, 0x38, 0x40, 0x01, 0x1D, 0x00, 0x00, 0x2A, 0x30, @@ -19899,10 +19988,10 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x2D, 0x94, 0xB0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0x93, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0x92, 0x60, 0x00, 0x00, 0x00, 0x00, 0x30, 0x64, 0x75, 0x50, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xAE, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x32, 0x72, 0x7B, 0xD0, 0x00, -0x00, 0x00, 0x00, 0x33, 0x3D, 0xBB, 0x10, 0x01, 0x02, 0x03, 0x04, 0x03, 0x04, 0x03, 0x02, 0x05, +0x00, 0x00, 0x00, 0x32, 0xC9, 0x8C, 0xE0, 0x01, 0x02, 0x03, 0x04, 0x03, 0x04, 0x03, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, -0x02, 0x05, 0x02, 0x05, 0x00, 0x00, 0x15, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x68, 0x00, 0x04, +0x02, 0x05, 0x02, 0x02, 0x00, 0x00, 0x15, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x68, 0x00, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x08, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x10, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x15, 0x4C, 0x4D, 0x54, 0x00, 0x49, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x43, 0x45, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x53, @@ -19976,11 +20065,11 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x32, 0x72, 0xA6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x3D, 0xAD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x1D, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0x78, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0xFD, 0x7F, 0x10, 0x00, -0x00, 0x00, 0x00, 0x38, 0x1B, 0x94, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xA6, 0x5F, 0x90, 0x01, +0x00, 0x00, 0x00, 0x38, 0x1B, 0x94, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x74, 0x1C, 0x60, 0x01, 0x03, 0x02, 0x03, 0x01, 0x04, 0x05, 0x02, 0x03, 0x02, 0x03, 0x02, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x07, 0x04, 0x07, 0x04, 0x07, 0x04, 0x07, 0x04, 0x07, 0x04, 0x07, 0x04, 0x07, 0x04, 0x07, 0x04, 0x07, 0x04, 0x07, 0x04, -0x07, 0x04, 0x07, 0x00, 0x00, 0x17, 0x34, 0x00, 0x00, 0x00, 0x00, 0x17, 0x34, 0x00, 0x04, 0x00, +0x07, 0x04, 0x04, 0x00, 0x00, 0x17, 0x34, 0x00, 0x00, 0x00, 0x00, 0x17, 0x34, 0x00, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x08, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x11, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x15, 0x00, 0x00, 0x38, 0x40, 0x01, 0x19, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x1D, 0x4C, 0x4D, 0x54, 0x00, 0x54, 0x4D, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, 0x00, @@ -20066,11 +20155,11 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x2C, 0xA4, 0xB1, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xB0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0x93, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0x92, 0x60, 0x00, 0x00, 0x00, 0x00, 0x30, 0x64, 0x75, 0x50, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xAE, 0xE0, 0x00, -0x00, 0x00, 0x00, 0x32, 0x72, 0x7B, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x33, 0x3D, 0xAD, 0x00, 0x01, +0x00, 0x00, 0x00, 0x32, 0x72, 0x7B, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x32, 0xC9, 0x8C, 0xE0, 0x01, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x06, 0x05, 0x06, 0x05, 0x06, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x03, 0x04, 0x03, 0x04, -0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x00, 0x00, 0x1B, 0x08, 0x00, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x04, 0x00, 0x00, 0x1B, 0x08, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xF4, 0x00, 0x04, 0x00, 0x00, 0x18, 0x78, 0x00, 0x08, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0C, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x11, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x15, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x19, 0x00, 0x00, 0x38, 0x40, 0x01, 0x1E, 0x00, 0x00, 0x2A, 0x30, 0x00, @@ -20158,9 +20247,9 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x2C, 0xA4, 0xDB, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xCC, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0xBD, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0xAE, 0x80, 0x00, 0x00, 0x00, 0x00, 0x30, 0x64, 0x9F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xCB, 0x00, 0x00, -0x00, 0x00, 0x00, 0x32, 0x72, 0xB4, 0x10, 0x01, 0x02, 0x03, 0x05, 0x04, 0x05, 0x04, 0x03, 0x06, +0x00, 0x00, 0x00, 0x31, 0x96, 0x51, 0x50, 0x01, 0x02, 0x03, 0x05, 0x04, 0x05, 0x04, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, -0x03, 0x06, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x00, 0x00, +0x03, 0x06, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x07, 0x00, 0x00, 0x1C, 0x9C, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x9C, 0x00, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x08, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x0C, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x10, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x14, 0x00, 0x00, 0x38, 0x40, 0x01, 0x19, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x1D, 0x4C, 0x4D, @@ -20341,10 +20430,10 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x33, 0x3D, 0xAD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x1D, 0x9D, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0x78, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0xFD, 0x7F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0x94, 0x90, 0x00, -0x00, 0x00, 0x00, 0x3E, 0x86, 0x41, 0x90, 0x01, 0x02, 0x03, 0x04, 0x03, 0x05, 0x06, 0x03, 0x06, +0x00, 0x00, 0x00, 0x3E, 0x12, 0x13, 0x60, 0x01, 0x02, 0x03, 0x04, 0x03, 0x05, 0x06, 0x03, 0x06, 0x03, 0x06, 0x05, 0x07, 0x05, 0x07, 0x05, 0x07, 0x05, 0x07, 0x05, 0x07, 0x05, 0x07, 0x05, 0x07, 0x05, 0x07, 0x05, 0x08, 0x04, 0x08, 0x04, 0x08, 0x04, 0x08, 0x04, 0x08, 0x04, 0x08, 0x04, 0x08, -0x04, 0x08, 0x04, 0x08, 0x04, 0x06, 0x03, 0x06, 0x04, 0x08, 0x00, 0x00, 0x17, 0xBC, 0x00, 0x00, +0x04, 0x08, 0x04, 0x08, 0x04, 0x06, 0x03, 0x06, 0x04, 0x04, 0x00, 0x00, 0x17, 0xBC, 0x00, 0x00, 0x00, 0x00, 0x13, 0xB0, 0x00, 0x04, 0x00, 0x00, 0x16, 0x68, 0x00, 0x08, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x10, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x14, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x18, 0x00, 0x00, 0x38, 0x40, 0x01, 0x1D, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x21, @@ -20526,9 +20615,9 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x2C, 0xA4, 0xDB, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xCC, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0xBD, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0xAE, 0x80, 0x00, 0x00, 0x00, 0x00, 0x30, 0x64, 0x9F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xCB, 0x00, 0x00, -0x00, 0x00, 0x00, 0x32, 0x72, 0xB4, 0x10, 0x01, 0x02, 0x03, 0x05, 0x04, 0x05, 0x04, 0x03, 0x06, +0x00, 0x00, 0x00, 0x31, 0x96, 0x51, 0x50, 0x01, 0x02, 0x03, 0x05, 0x04, 0x05, 0x04, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, -0x03, 0x06, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x00, 0x00, +0x03, 0x06, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x02, 0x07, 0x07, 0x00, 0x00, 0x1C, 0x9C, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x9C, 0x00, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x08, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x0C, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x10, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x14, 0x00, 0x00, 0x38, 0x40, 0x01, 0x19, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x1D, 0x4C, 0x4D, @@ -20668,7 +20757,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x2B, 0xB4, 0xF8, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xC9, 0xD3, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xDA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0xA9, 0xB5, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0xBC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, 0x89, 0x97, 0x90, 0x00, -0x00, 0x00, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x00, 0x00, 0x00, 0x30, 0xE7, 0x24, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, @@ -20678,7 +20767,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x01, 0x02, 0x01, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, -0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xFF, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, +0x02, 0x01, 0x02, 0x01, 0x02, 0x02, 0xFF, 0xFF, 0xFF, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x0C, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x42, 0x53, 0x54, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x42, 0x44, 0x53, 0x54, 0x00, 0x0A, 0x47, 0x4D, 0x54, 0x30, 0x42, 0x53, 0x54, 0x2C, 0x4D, 0x33, @@ -20771,7 +20860,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x2B, 0xB4, 0xF8, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xC9, 0xD3, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xDA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0xA9, 0xB5, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0xBC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, 0x89, 0x97, 0x90, 0x00, -0x00, 0x00, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x00, 0x00, 0x00, 0x30, 0xE7, 0x24, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, @@ -20781,7 +20870,7 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x01, 0x02, 0x01, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, -0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xFF, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, +0x02, 0x01, 0x02, 0x01, 0x02, 0x02, 0xFF, 0xFF, 0xFF, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x0C, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x42, 0x53, 0x54, 0x00, 0x47, 0x4D, 0x54, 0x00, 0x42, 0x44, 0x53, 0x54, 0x00, 0x0A, 0x47, 0x4D, 0x54, 0x30, 0x42, 0x53, 0x54, 0x2C, 0x4D, 0x33, @@ -21353,13 +21442,13 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x45, 0x44, 0x6D, 0x90, 0x00, 0x00, 0x00, 0x00, 0x46, 0x0F, 0x82, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x47, 0x24, 0x4F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x47, 0xF8, 0x9F, 0x20, 0x00, 0x00, 0x00, 0x00, 0x49, 0x04, 0x31, 0x90, 0x00, 0x00, 0x00, 0x00, 0x49, 0xD8, 0x81, 0x20, 0x00, -0x00, 0x00, 0x00, 0x4A, 0xE4, 0x13, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0xB3, 0xA0, 0x01, +0x00, 0x00, 0x00, 0x4A, 0xE4, 0x13, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x3D, 0xAB, 0x80, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x04, 0x05, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0xFF, 0xFF, 0x92, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x02, 0xFF, 0xFF, 0x92, 0x4C, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x0C, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x10, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x50, 0x44, 0x54, @@ -22331,18 +22420,17 @@ const unsigned char timelib_timezone_db_data_builtin[348143] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1E, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x1A, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x36, 0x17, 0x88, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x41, 0xF8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x09, 0x0F, 0xCA, 0x68, 0x00, 0x00, 0x00, 0x00, 0x09, 0xB5, 0xE7, 0x68, 0x00, -0x00, 0x00, 0x00, 0x56, 0x0F, 0xE6, 0x68, 0x00, 0x00, 0x00, 0x00, 0x5D, 0x98, 0xAF, 0xF0, 0x01, -0x02, 0x03, 0x02, 0x04, 0x05, 0x00, 0x00, 0x9D, 0x78, 0x00, 0x00, 0x00, 0x00, 0x9D, 0x80, 0x00, +0x00, 0x00, 0x00, 0x56, 0x0F, 0xE6, 0x68, 0x00, 0x00, 0x00, 0x00, 0x5D, 0x18, 0xB2, 0x50, 0x01, +0x02, 0x03, 0x02, 0x04, 0x04, 0x00, 0x00, 0x9D, 0x78, 0x00, 0x00, 0x00, 0x00, 0x9D, 0x80, 0x00, 0x04, 0x00, 0x00, 0xA1, 0xB8, 0x00, 0x0A, 0x00, 0x00, 0xAF, 0xC8, 0x01, 0x10, 0x00, 0x00, 0x9A, -0xB0, 0x00, 0x16, 0x00, 0x00, 0xA8, 0xC0, 0x01, 0x1A, 0x4C, 0x4D, 0x54, 0x00, 0x2B, 0x31, 0x31, -0x31, 0x32, 0x00, 0x2B, 0x31, 0x31, 0x33, 0x30, 0x00, 0x2B, 0x31, 0x32, 0x33, 0x30, 0x00, 0x2B, -0x31, 0x31, 0x00, 0x2B, 0x31, 0x32, 0x00, 0x0A, 0x3C, 0x2B, 0x31, 0x31, 0x3E, 0x2D, 0x31, 0x31, -0x3C, 0x2B, 0x31, 0x32, 0x3E, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x31, 0x2E, 0x30, 0x2C, 0x4D, 0x34, -0x2E, 0x31, 0x2E, 0x30, 0x2F, 0x33, 0x0A, 0x00, 0x5D, 0x00, 0x98, 0x02, 0x12, 0xF4, 0x7A, 0x00, -0x00, 0x00, 0x00, +0xB0, 0x00, 0x16, 0x4C, 0x4D, 0x54, 0x00, 0x2B, 0x31, 0x31, 0x31, 0x32, 0x00, 0x2B, 0x31, 0x31, +0x33, 0x30, 0x00, 0x2B, 0x31, 0x32, 0x33, 0x30, 0x00, 0x2B, 0x31, 0x31, 0x00, 0x0A, 0x3C, 0x2B, +0x31, 0x31, 0x3E, 0x2D, 0x31, 0x31, 0x3C, 0x2B, 0x31, 0x32, 0x3E, 0x2C, 0x4D, 0x31, 0x30, 0x2E, +0x31, 0x2E, 0x30, 0x2C, 0x4D, 0x34, 0x2E, 0x31, 0x2E, 0x30, 0x2F, 0x33, 0x0A, 0x00, 0x5D, 0x00, +0x98, 0x02, 0x12, 0xF4, 0x7A, 0x00, 0x00, 0x00, 0x00, /* Pacific/Noumea */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x4E, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -23968,498 +24056,498 @@ const timelib_tzdb_index_entry timezonedb_idx_builtin[597] = { { (char*) "America/Detroit" , 0x013B17 }, { (char*) "America/Dominica" , 0x0143F2 }, { (char*) "America/Edmonton" , 0x014492 }, - { (char*) "America/Eirunepe" , 0x014DDF }, - { (char*) "America/El_Salvador" , 0x01507C }, - { (char*) "America/Ensenada" , 0x015168 }, - { (char*) "America/Fort_Nelson" , 0x015ABA }, - { (char*) "America/Fort_Wayne" , 0x01639A }, - { (char*) "America/Fortaleza" , 0x016A38 }, - { (char*) "America/Glace_Bay" , 0x016D28 }, - { (char*) "America/Godthab" , 0x0175DF }, - { (char*) "America/Goose_Bay" , 0x017D5A }, - { (char*) "America/Grand_Turk" , 0x018A10 }, - { (char*) "America/Grenada" , 0x019146 }, - { (char*) "America/Guadeloupe" , 0x0191E6 }, - { (char*) "America/Guatemala" , 0x019286 }, - { (char*) "America/Guayaquil" , 0x0193AA }, - { (char*) "America/Guyana" , 0x0194B0 }, - { (char*) "America/Halifax" , 0x0195B4 }, - { (char*) "America/Havana" , 0x01A33E }, - { (char*) "America/Hermosillo" , 0x01ACBA }, - { (char*) "America/Indiana/Indianapolis" , 0x01AE94 }, - { (char*) "America/Indiana/Knox" , 0x01B54B }, - { (char*) "America/Indiana/Marengo" , 0x01BEF8 }, - { (char*) "America/Indiana/Petersburg" , 0x01C5E5 }, - { (char*) "America/Indiana/Tell_City" , 0x01CD84 }, - { (char*) "America/Indiana/Vevay" , 0x01D448 }, - { (char*) "America/Indiana/Vincennes" , 0x01DA04 }, - { (char*) "America/Indiana/Winamac" , 0x01E0DA }, - { (char*) "America/Indianapolis" , 0x01E7FE }, - { (char*) "America/Inuvik" , 0x01EE9C }, - { (char*) "America/Iqaluit" , 0x01F6D6 }, - { (char*) "America/Jamaica" , 0x01FF95 }, - { (char*) "America/Jujuy" , 0x020183 }, - { (char*) "America/Juneau" , 0x020599 }, - { (char*) "America/Kentucky/Louisville" , 0x020EEA }, - { (char*) "America/Kentucky/Monticello" , 0x0219F8 }, - { (char*) "America/Knox_IN" , 0x022358 }, - { (char*) "America/Kralendijk" , 0x022CF0 }, - { (char*) "America/La_Paz" , 0x022DF2 }, - { (char*) "America/Lima" , 0x022ED8 }, - { (char*) "America/Los_Angeles" , 0x02306C }, - { (char*) "America/Louisville" , 0x023BA3 }, - { (char*) "America/Lower_Princes" , 0x024693 }, - { (char*) "America/Maceio" , 0x024795 }, - { (char*) "America/Managua" , 0x024A8B }, - { (char*) "America/Manaus" , 0x024C45 }, - { (char*) "America/Marigot" , 0x024EAE }, - { (char*) "America/Martinique" , 0x024FB0 }, - { (char*) "America/Matamoros" , 0x0250A4 }, - { (char*) "America/Mazatlan" , 0x025666 }, - { (char*) "America/Mendoza" , 0x025B0C }, - { (char*) "America/Menominee" , 0x025F3E }, - { (char*) "America/Merida" , 0x02684B }, - { (char*) "America/Metlakatla" , 0x026C54 }, - { (char*) "America/Mexico_City" , 0x027206 }, - { (char*) "America/Miquelon" , 0x0276E6 }, - { (char*) "America/Moncton" , 0x027D66 }, - { (char*) "America/Monterrey" , 0x0289DC }, - { (char*) "America/Montevideo" , 0x028DF2 }, - { (char*) "America/Montreal" , 0x0293D6 }, - { (char*) "America/Montserrat" , 0x02A188 }, - { (char*) "America/Nassau" , 0x02A228 }, - { (char*) "America/New_York" , 0x02AB88 }, - { (char*) "America/Nipigon" , 0x02B988 }, - { (char*) "America/Nome" , 0x02C73A }, - { (char*) "America/Noronha" , 0x02D092 }, - { (char*) "America/North_Dakota/Beulah" , 0x02D36C }, - { (char*) "America/North_Dakota/Center" , 0x02DCE9 }, - { (char*) "America/North_Dakota/New_Salem" , 0x02E666 }, - { (char*) "America/Nuuk" , 0x02EFE9 }, - { (char*) "America/Ojinaga" , 0x02F775 }, - { (char*) "America/Panama" , 0x02FD91 }, - { (char*) "America/Pangnirtung" , 0x02FE53 }, - { (char*) "America/Paramaribo" , 0x0306F9 }, - { (char*) "America/Phoenix" , 0x0307FD }, - { (char*) "America/Port-au-Prince" , 0x030989 }, - { (char*) "America/Port_of_Spain" , 0x030F2F }, - { (char*) "America/Porto_Acre" , 0x030FCF }, - { (char*) "America/Porto_Velho" , 0x031241 }, - { (char*) "America/Puerto_Rico" , 0x031487 }, - { (char*) "America/Punta_Arenas" , 0x031589 }, - { (char*) "America/Rainy_River" , 0x031D17 }, - { (char*) "America/Rankin_Inlet" , 0x032857 }, - { (char*) "America/Recife" , 0x03308B }, - { (char*) "America/Regina" , 0x03335F }, - { (char*) "America/Resolute" , 0x033754 }, - { (char*) "America/Rio_Branco" , 0x033F89 }, - { (char*) "America/Rosario" , 0x0341FF }, - { (char*) "America/Santa_Isabel" , 0x034631 }, - { (char*) "America/Santarem" , 0x034F83 }, - { (char*) "America/Santiago" , 0x0351E6 }, - { (char*) "America/Santo_Domingo" , 0x035BD2 }, - { (char*) "America/Sao_Paulo" , 0x035DA8 }, - { (char*) "America/Scoresbysund" , 0x036380 }, - { (char*) "America/Shiprock" , 0x036B17 }, - { (char*) "America/Sitka" , 0x0374BF }, - { (char*) "America/St_Barthelemy" , 0x037DF7 }, - { (char*) "America/St_Johns" , 0x037EF9 }, - { (char*) "America/St_Kitts" , 0x038D6E }, - { (char*) "America/St_Lucia" , 0x038E0E }, - { (char*) "America/St_Thomas" , 0x038ED0 }, - { (char*) "America/St_Vincent" , 0x038F70 }, - { (char*) "America/Swift_Current" , 0x039032 }, - { (char*) "America/Tegucigalpa" , 0x039280 }, - { (char*) "America/Thule" , 0x039388 }, - { (char*) "America/Thunder_Bay" , 0x039980 }, - { (char*) "America/Tijuana" , 0x03A732 }, - { (char*) "America/Toronto" , 0x03B093 }, - { (char*) "America/Tortola" , 0x03BE62 }, - { (char*) "America/Vancouver" , 0x03BF02 }, - { (char*) "America/Virgin" , 0x03CA73 }, - { (char*) "America/Whitehorse" , 0x03CB75 }, - { (char*) "America/Winnipeg" , 0x03D1E1 }, - { (char*) "America/Yakutat" , 0x03DD3E }, - { (char*) "America/Yellowknife" , 0x03E65B }, - { (char*) "Antarctica/Casey" , 0x03EF83 }, - { (char*) "Antarctica/Davis" , 0x03F106 }, - { (char*) "Antarctica/DumontDUrville" , 0x03F232 }, - { (char*) "Antarctica/Macquarie" , 0x03F302 }, - { (char*) "Antarctica/Mawson" , 0x03FBF2 }, - { (char*) "Antarctica/McMurdo" , 0x03FCBD }, - { (char*) "Antarctica/Palmer" , 0x0404B8 }, - { (char*) "Antarctica/Rothera" , 0x040A46 }, - { (char*) "Antarctica/South_Pole" , 0x040AEF }, - { (char*) "Antarctica/Syowa" , 0x041480 }, - { (char*) "Antarctica/Troll" , 0x041528 }, - { (char*) "Antarctica/Vostok" , 0x0419B5 }, - { (char*) "Arctic/Longyearbyen" , 0x041A5E }, - { (char*) "Asia/Aden" , 0x042364 }, - { (char*) "Asia/Almaty" , 0x042407 }, - { (char*) "Asia/Amman" , 0x0427FC }, - { (char*) "Asia/Anadyr" , 0x042DA1 }, - { (char*) "Asia/Aqtau" , 0x043256 }, - { (char*) "Asia/Aqtobe" , 0x043640 }, - { (char*) "Asia/Ashgabat" , 0x043A3E }, - { (char*) "Asia/Ashkhabad" , 0x043CA7 }, - { (char*) "Asia/Atyrau" , 0x043F10 }, - { (char*) "Asia/Baghdad" , 0x044302 }, - { (char*) "Asia/Bahrain" , 0x0446D7 }, - { (char*) "Asia/Baku" , 0x0447C2 }, - { (char*) "Asia/Bangkok" , 0x044C8B }, - { (char*) "Asia/Barnaul" , 0x044D50 }, - { (char*) "Asia/Beirut" , 0x045221 }, - { (char*) "Asia/Bishkek" , 0x045A97 }, - { (char*) "Asia/Brunei" , 0x045E6C }, - { (char*) "Asia/Calcutta" , 0x045F35 }, - { (char*) "Asia/Chita" , 0x04605E }, - { (char*) "Asia/Choibalsan" , 0x046535 }, - { (char*) "Asia/Chongqing" , 0x0468FA }, - { (char*) "Asia/Chungking" , 0x046B37 }, - { (char*) "Asia/Colombo" , 0x046D74 }, - { (char*) "Asia/Dacca" , 0x046EE6 }, - { (char*) "Asia/Damascus" , 0x047035 }, - { (char*) "Asia/Dhaka" , 0x047792 }, - { (char*) "Asia/Dili" , 0x0478E1 }, - { (char*) "Asia/Dubai" , 0x0479C2 }, - { (char*) "Asia/Dushanbe" , 0x047A65 }, - { (char*) "Asia/Famagusta" , 0x047CB2 }, - { (char*) "Asia/Gaza" , 0x0484B9 }, - { (char*) "Asia/Harbin" , 0x0493AF }, - { (char*) "Asia/Hebron" , 0x0495EC }, - { (char*) "Asia/Ho_Chi_Minh" , 0x04A4FD }, - { (char*) "Asia/Hong_Kong" , 0x04A65A }, - { (char*) "Asia/Hovd" , 0x04AB37 }, - { (char*) "Asia/Irkutsk" , 0x04AEDB }, - { (char*) "Asia/Istanbul" , 0x04B3CE }, - { (char*) "Asia/Jakarta" , 0x04BB67 }, - { (char*) "Asia/Jayapura" , 0x04BCFF }, - { (char*) "Asia/Jerusalem" , 0x04BE1E }, - { (char*) "Asia/Kabul" , 0x04C77E }, - { (char*) "Asia/Kamchatka" , 0x04C84C }, - { (char*) "Asia/Karachi" , 0x04CCEA }, - { (char*) "Asia/Kashgar" , 0x04CE71 }, - { (char*) "Asia/Kathmandu" , 0x04CF14 }, - { (char*) "Asia/Katmandu" , 0x04CFE6 }, - { (char*) "Asia/Khandyga" , 0x04D0B8 }, - { (char*) "Asia/Kolkata" , 0x04D5CB }, - { (char*) "Asia/Krasnoyarsk" , 0x04D6F4 }, - { (char*) "Asia/Kuala_Lumpur" , 0x04DBC2 }, - { (char*) "Asia/Kuching" , 0x04DD73 }, - { (char*) "Asia/Kuwait" , 0x04DF62 }, - { (char*) "Asia/Macao" , 0x04E005 }, - { (char*) "Asia/Macau" , 0x04E4DC }, - { (char*) "Asia/Magadan" , 0x04E9B3 }, - { (char*) "Asia/Makassar" , 0x04EE87 }, - { (char*) "Asia/Manila" , 0x04EFDA }, - { (char*) "Asia/Muscat" , 0x04F12E }, - { (char*) "Asia/Nicosia" , 0x04F1D1 }, - { (char*) "Asia/Novokuznetsk" , 0x04F9BD }, - { (char*) "Asia/Novosibirsk" , 0x04FE59 }, - { (char*) "Asia/Omsk" , 0x050330 }, - { (char*) "Asia/Oral" , 0x0507F2 }, - { (char*) "Asia/Phnom_Penh" , 0x050BEC }, - { (char*) "Asia/Pontianak" , 0x050D11 }, - { (char*) "Asia/Pyongyang" , 0x050E94 }, - { (char*) "Asia/Qatar" , 0x050F8D }, - { (char*) "Asia/Qostanay" , 0x051052 }, - { (char*) "Asia/Qyzylorda" , 0x05145D }, - { (char*) "Asia/Rangoon" , 0x051879 }, - { (char*) "Asia/Riyadh" , 0x051983 }, - { (char*) "Asia/Saigon" , 0x051A26 }, - { (char*) "Asia/Sakhalin" , 0x051B83 }, - { (char*) "Asia/Samarkand" , 0x05204B }, - { (char*) "Asia/Seoul" , 0x05229B }, - { (char*) "Asia/Shanghai" , 0x052510 }, - { (char*) "Asia/Singapore" , 0x052759 }, - { (char*) "Asia/Srednekolymsk" , 0x0528F6 }, - { (char*) "Asia/Taipei" , 0x052DCA }, - { (char*) "Asia/Tashkent" , 0x0530CF }, - { (char*) "Asia/Tbilisi" , 0x05332D }, - { (char*) "Asia/Tehran" , 0x053736 }, - { (char*) "Asia/Tel_Aviv" , 0x053C22 }, - { (char*) "Asia/Thimbu" , 0x054582 }, - { (char*) "Asia/Thimphu" , 0x05464B }, - { (char*) "Asia/Tokyo" , 0x054714 }, - { (char*) "Asia/Tomsk" , 0x054855 }, - { (char*) "Asia/Ujung_Pandang" , 0x054D26 }, - { (char*) "Asia/Ulaanbaatar" , 0x054E30 }, - { (char*) "Asia/Ulan_Bator" , 0x0551B9 }, - { (char*) "Asia/Urumqi" , 0x055532 }, - { (char*) "Asia/Ust-Nera" , 0x0555E2 }, - { (char*) "Asia/Vientiane" , 0x055AD8 }, - { (char*) "Asia/Vladivostok" , 0x055C19 }, - { (char*) "Asia/Yakutsk" , 0x0560E2 }, - { (char*) "Asia/Yangon" , 0x0565AA }, - { (char*) "Asia/Yekaterinburg" , 0x0566B4 }, - { (char*) "Asia/Yerevan" , 0x056B9B }, - { (char*) "Atlantic/Azores" , 0x057018 }, - { (char*) "Atlantic/Bermuda" , 0x057DD4 }, - { (char*) "Atlantic/Canary" , 0x05873C }, - { (char*) "Atlantic/Cape_Verde" , 0x058EBF }, - { (char*) "Atlantic/Faeroe" , 0x058FCB }, - { (char*) "Atlantic/Faroe" , 0x0596EE }, - { (char*) "Atlantic/Jan_Mayen" , 0x059E11 }, - { (char*) "Atlantic/Madeira" , 0x05A717 }, - { (char*) "Atlantic/Reykjavik" , 0x05B4E1 }, - { (char*) "Atlantic/South_Georgia" , 0x05B977 }, - { (char*) "Atlantic/St_Helena" , 0x05BA19 }, - { (char*) "Atlantic/Stanley" , 0x05BADB }, - { (char*) "Australia/ACT" , 0x05BF97 }, - { (char*) "Australia/Adelaide" , 0x05C831 }, - { (char*) "Australia/Brisbane" , 0x05D0EC }, - { (char*) "Australia/Broken_Hill" , 0x05D2B2 }, - { (char*) "Australia/Canberra" , 0x05DB8F }, - { (char*) "Australia/Currie" , 0x05E429 }, - { (char*) "Australia/Darwin" , 0x05ED6B }, - { (char*) "Australia/Eucla" , 0x05EECE }, - { (char*) "Australia/Hobart" , 0x05F0BB }, - { (char*) "Australia/LHI" , 0x05FA05 }, - { (char*) "Australia/Lindeman" , 0x060147 }, - { (char*) "Australia/Lord_Howe" , 0x06034D }, - { (char*) "Australia/Melbourne" , 0x060A9F }, - { (char*) "Australia/North" , 0x061341 }, - { (char*) "Australia/NSW" , 0x061492 }, - { (char*) "Australia/Perth" , 0x061D2C }, - { (char*) "Australia/Queensland" , 0x061F14 }, - { (char*) "Australia/South" , 0x0620C3 }, - { (char*) "Australia/Sydney" , 0x06296F }, - { (char*) "Australia/Tasmania" , 0x063225 }, - { (char*) "Australia/Victoria" , 0x063B67 }, - { (char*) "Australia/West" , 0x064401 }, - { (char*) "Australia/Yancowinna" , 0x0645CB }, - { (char*) "Brazil/Acre" , 0x064E8C }, - { (char*) "Brazil/DeNoronha" , 0x0650FE }, - { (char*) "Brazil/East" , 0x0653C8 }, - { (char*) "Brazil/West" , 0x06596A }, - { (char*) "Canada/Atlantic" , 0x065BC4 }, - { (char*) "Canada/Central" , 0x066930 }, - { (char*) "Canada/Eastern" , 0x067470 }, - { (char*) "Canada/Mountain" , 0x068222 }, - { (char*) "Canada/Newfoundland" , 0x068B4A }, - { (char*) "Canada/Pacific" , 0x06999D }, - { (char*) "Canada/Saskatchewan" , 0x06A4F5 }, - { (char*) "Canada/Yukon" , 0x06A8D5 }, - { (char*) "CET" , 0x06AF2F }, - { (char*) "Chile/Continental" , 0x06B769 }, - { (char*) "Chile/EasterIsland" , 0x06C148 }, - { (char*) "CST6CDT" , 0x06C9FF }, - { (char*) "Cuba" , 0x06D311 }, - { (char*) "EET" , 0x06DC8D }, - { (char*) "Egypt" , 0x06E40D }, - { (char*) "Eire" , 0x06ED78 }, - { (char*) "EST" , 0x06FB28 }, - { (char*) "EST5EDT" , 0x06FBA6 }, - { (char*) "Etc/GMT" , 0x0704B8 }, - { (char*) "Etc/GMT+0" , 0x070536 }, - { (char*) "Etc/GMT+1" , 0x0705B4 }, - { (char*) "Etc/GMT+10" , 0x070634 }, - { (char*) "Etc/GMT+11" , 0x0706B5 }, - { (char*) "Etc/GMT+12" , 0x070736 }, - { (char*) "Etc/GMT+2" , 0x0707B7 }, - { (char*) "Etc/GMT+3" , 0x070837 }, - { (char*) "Etc/GMT+4" , 0x0708B7 }, - { (char*) "Etc/GMT+5" , 0x070937 }, - { (char*) "Etc/GMT+6" , 0x0709B7 }, - { (char*) "Etc/GMT+7" , 0x070A37 }, - { (char*) "Etc/GMT+8" , 0x070AB7 }, - { (char*) "Etc/GMT+9" , 0x070B37 }, - { (char*) "Etc/GMT-0" , 0x070BB7 }, - { (char*) "Etc/GMT-1" , 0x070C35 }, - { (char*) "Etc/GMT-10" , 0x070CB6 }, - { (char*) "Etc/GMT-11" , 0x070D38 }, - { (char*) "Etc/GMT-12" , 0x070DBA }, - { (char*) "Etc/GMT-13" , 0x070E3C }, - { (char*) "Etc/GMT-14" , 0x070EBE }, - { (char*) "Etc/GMT-2" , 0x070F40 }, - { (char*) "Etc/GMT-3" , 0x070FC1 }, - { (char*) "Etc/GMT-4" , 0x071042 }, - { (char*) "Etc/GMT-5" , 0x0710C3 }, - { (char*) "Etc/GMT-6" , 0x071144 }, - { (char*) "Etc/GMT-7" , 0x0711C5 }, - { (char*) "Etc/GMT-8" , 0x071246 }, - { (char*) "Etc/GMT-9" , 0x0712C7 }, - { (char*) "Etc/GMT0" , 0x071348 }, - { (char*) "Etc/Greenwich" , 0x0713C6 }, - { (char*) "Etc/UCT" , 0x071444 }, - { (char*) "Etc/Universal" , 0x0714C2 }, - { (char*) "Etc/UTC" , 0x071540 }, - { (char*) "Etc/Zulu" , 0x0715BE }, - { (char*) "Europe/Amsterdam" , 0x07163C }, - { (char*) "Europe/Andorra" , 0x0721A6 }, - { (char*) "Europe/Astrakhan" , 0x072880 }, - { (char*) "Europe/Athens" , 0x072D1D }, - { (char*) "Europe/Belfast" , 0x0735FF }, - { (char*) "Europe/Belgrade" , 0x07445B }, - { (char*) "Europe/Berlin" , 0x074BE7 }, - { (char*) "Europe/Bratislava" , 0x0754FC }, - { (char*) "Europe/Brussels" , 0x075E05 }, - { (char*) "Europe/Bucharest" , 0x076986 }, - { (char*) "Europe/Budapest" , 0x07721A }, - { (char*) "Europe/Busingen" , 0x077B66 }, - { (char*) "Europe/Chisinau" , 0x0782EF }, - { (char*) "Europe/Copenhagen" , 0x078C51 }, - { (char*) "Europe/Dublin" , 0x0794B6 }, - { (char*) "Europe/Gibraltar" , 0x07A266 }, - { (char*) "Europe/Guernsey" , 0x07AE6E }, - { (char*) "Europe/Helsinki" , 0x07BD0E }, - { (char*) "Europe/Isle_of_Man" , 0x07C486 }, - { (char*) "Europe/Istanbul" , 0x07D2D2 }, - { (char*) "Europe/Jersey" , 0x07DA6B }, - { (char*) "Europe/Kaliningrad" , 0x07E90B }, - { (char*) "Europe/Kiev" , 0x07EF00 }, - { (char*) "Europe/Kirov" , 0x07F754 }, - { (char*) "Europe/Kyiv" , 0x07FC0F }, - { (char*) "Europe/Lisbon" , 0x080472 }, - { (char*) "Europe/Ljubljana" , 0x08123A }, - { (char*) "Europe/London" , 0x0819C6 }, - { (char*) "Europe/Luxembourg" , 0x082822 }, - { (char*) "Europe/Madrid" , 0x0833B0 }, - { (char*) "Europe/Malta" , 0x083E02 }, - { (char*) "Europe/Mariehamn" , 0x08484A }, - { (char*) "Europe/Minsk" , 0x084FC2 }, - { (char*) "Europe/Monaco" , 0x0854E9 }, - { (char*) "Europe/Moscow" , 0x086075 }, - { (char*) "Europe/Nicosia" , 0x086694 }, - { (char*) "Europe/Oslo" , 0x086E72 }, - { (char*) "Europe/Paris" , 0x087732 }, - { (char*) "Europe/Podgorica" , 0x0882D0 }, - { (char*) "Europe/Prague" , 0x088A5C }, - { (char*) "Europe/Riga" , 0x089365 }, - { (char*) "Europe/Rome" , 0x089C07 }, - { (char*) "Europe/Samara" , 0x08A664 }, - { (char*) "Europe/San_Marino" , 0x08AB3A }, - { (char*) "Europe/Sarajevo" , 0x08B597 }, - { (char*) "Europe/Saratov" , 0x08BD23 }, - { (char*) "Europe/Simferopol" , 0x08C1D0 }, - { (char*) "Europe/Skopje" , 0x08C79F }, - { (char*) "Europe/Sofia" , 0x08CF2B }, - { (char*) "Europe/Stockholm" , 0x08D754 }, - { (char*) "Europe/Tallinn" , 0x08DED5 }, - { (char*) "Europe/Tirane" , 0x08E745 }, - { (char*) "Europe/Tiraspol" , 0x08EF75 }, - { (char*) "Europe/Ulyanovsk" , 0x08F8D7 }, - { (char*) "Europe/Uzhgorod" , 0x08FDDA }, - { (char*) "Europe/Vaduz" , 0x09062E }, - { (char*) "Europe/Vatican" , 0x090D9A }, - { (char*) "Europe/Vienna" , 0x0917F7 }, - { (char*) "Europe/Vilnius" , 0x09209B }, - { (char*) "Europe/Volgograd" , 0x092919 }, - { (char*) "Europe/Warsaw" , 0x092DE0 }, - { (char*) "Europe/Zagreb" , 0x09384A }, - { (char*) "Europe/Zaporozhye" , 0x093FD6 }, - { (char*) "Europe/Zurich" , 0x09482A }, - { (char*) "Factory" , 0x094FAB }, - { (char*) "GB" , 0x09502B }, - { (char*) "GB-Eire" , 0x095E87 }, - { (char*) "GMT" , 0x096CE3 }, - { (char*) "GMT+0" , 0x096D61 }, - { (char*) "GMT-0" , 0x096DDF }, - { (char*) "GMT0" , 0x096E5D }, - { (char*) "Greenwich" , 0x096EDB }, - { (char*) "Hongkong" , 0x096F59 }, - { (char*) "HST" , 0x097436 }, - { (char*) "Iceland" , 0x0974B5 }, - { (char*) "Indian/Antananarivo" , 0x097555 }, - { (char*) "Indian/Chagos" , 0x09763C }, - { (char*) "Indian/Christmas" , 0x097701 }, - { (char*) "Indian/Cocos" , 0x0977A4 }, - { (char*) "Indian/Comoro" , 0x097850 }, - { (char*) "Indian/Kerguelen" , 0x0978F1 }, - { (char*) "Indian/Mahe" , 0x097994 }, - { (char*) "Indian/Maldives" , 0x097A37 }, - { (char*) "Indian/Mauritius" , 0x097AFC }, - { (char*) "Indian/Mayotte" , 0x097BEB }, - { (char*) "Indian/Reunion" , 0x097C8C }, - { (char*) "Iran" , 0x097D2F }, - { (char*) "Israel" , 0x09821B }, - { (char*) "Jamaica" , 0x098B7B }, - { (char*) "Japan" , 0x098D69 }, - { (char*) "Kwajalein" , 0x098EAA }, - { (char*) "Libya" , 0x098FE4 }, - { (char*) "MET" , 0x099261 }, - { (char*) "Mexico/BajaNorte" , 0x099A9B }, - { (char*) "Mexico/BajaSur" , 0x09A3ED }, - { (char*) "Mexico/General" , 0x09A861 }, - { (char*) "MST" , 0x09AD33 }, - { (char*) "MST7MDT" , 0x09ADB1 }, - { (char*) "Navajo" , 0x09B6C3 }, - { (char*) "NZ" , 0x09C06B }, - { (char*) "NZ-CHAT" , 0x09C9FC }, - { (char*) "Pacific/Apia" , 0x09D20E }, - { (char*) "Pacific/Auckland" , 0x09D470 }, - { (char*) "Pacific/Bougainville" , 0x09DE14 }, - { (char*) "Pacific/Chatham" , 0x09DF2A }, - { (char*) "Pacific/Chuuk" , 0x09E74B }, - { (char*) "Pacific/Easter" , 0x09E865 }, - { (char*) "Pacific/Efate" , 0x09F129 }, - { (char*) "Pacific/Enderbury" , 0x09F341 }, - { (char*) "Pacific/Fakaofo" , 0x09F429 }, - { (char*) "Pacific/Fiji" , 0x09F4EF }, - { (char*) "Pacific/Funafuti" , 0x09F72F }, - { (char*) "Pacific/Galapagos" , 0x09F7D3 }, - { (char*) "Pacific/Gambier" , 0x09F8D0 }, - { (char*) "Pacific/Guadalcanal" , 0x09F981 }, - { (char*) "Pacific/Guam" , 0x09FA25 }, - { (char*) "Pacific/Honolulu" , 0x09FC1F }, - { (char*) "Pacific/Johnston" , 0x09FD7A }, - { (char*) "Pacific/Kanton" , 0x09FECF }, - { (char*) "Pacific/Kiritimati" , 0x09FFC6 }, - { (char*) "Pacific/Kosrae" , 0x0A00BE }, - { (char*) "Pacific/Kwajalein" , 0x0A0221 }, - { (char*) "Pacific/Majuro" , 0x0A0364 }, - { (char*) "Pacific/Marquesas" , 0x0A04B0 }, - { (char*) "Pacific/Midway" , 0x0A056C }, - { (char*) "Pacific/Nauru" , 0x0A065F }, - { (char*) "Pacific/Niue" , 0x0A0759 }, - { (char*) "Pacific/Norfolk" , 0x0A0822 }, - { (char*) "Pacific/Noumea" , 0x0A0B90 }, - { (char*) "Pacific/Pago_Pago" , 0x0A0CBE }, - { (char*) "Pacific/Palau" , 0x0A0D79 }, - { (char*) "Pacific/Pitcairn" , 0x0A0E2B }, - { (char*) "Pacific/Pohnpei" , 0x0A0EF3 }, - { (char*) "Pacific/Ponape" , 0x0A102E }, - { (char*) "Pacific/Port_Moresby" , 0x0A10D2 }, - { (char*) "Pacific/Rarotonga" , 0x0A11A2 }, - { (char*) "Pacific/Saipan" , 0x0A13FB }, - { (char*) "Pacific/Samoa" , 0x0A15E7 }, - { (char*) "Pacific/Tahiti" , 0x0A16A2 }, - { (char*) "Pacific/Tarawa" , 0x0A1754 }, - { (char*) "Pacific/Tongatapu" , 0x0A1807 }, - { (char*) "Pacific/Truk" , 0x0A1979 }, - { (char*) "Pacific/Wake" , 0x0A1A31 }, - { (char*) "Pacific/Wallis" , 0x0A1AE0 }, - { (char*) "Pacific/Yap" , 0x0A1B84 }, - { (char*) "Poland" , 0x0A1C3C }, - { (char*) "Portugal" , 0x0A26A6 }, - { (char*) "PRC" , 0x0A345B }, - { (char*) "PST8PDT" , 0x0A3698 }, - { (char*) "ROC" , 0x0A3FAA }, - { (char*) "ROK" , 0x0A42AF }, - { (char*) "Singapore" , 0x0A4524 }, - { (char*) "Turkey" , 0x0A46C1 }, - { (char*) "UCT" , 0x0A4E5A }, - { (char*) "Universal" , 0x0A4ED8 }, - { (char*) "US/Alaska" , 0x0A4F56 }, - { (char*) "US/Aleutian" , 0x0A58A5 }, - { (char*) "US/Arizona" , 0x0A61E5 }, - { (char*) "US/Central" , 0x0A6359 }, - { (char*) "US/East-Indiana" , 0x0A716D }, - { (char*) "US/Eastern" , 0x0A780B }, - { (char*) "US/Hawaii" , 0x0A85F7 }, - { (char*) "US/Indiana-Starke" , 0x0A874C }, - { (char*) "US/Michigan" , 0x0A90E4 }, - { (char*) "US/Mountain" , 0x0A99A6 }, - { (char*) "US/Pacific" , 0x0AA34E }, - { (char*) "US/Samoa" , 0x0AAE7E }, - { (char*) "UTC" , 0x0AAF39 }, - { (char*) "W-SU" , 0x0AAFB7 }, - { (char*) "WET" , 0x0AB5C2 }, - { (char*) "Zulu" , 0x0ABD3F }, + { (char*) "America/Eirunepe" , 0x014DDC }, + { (char*) "America/El_Salvador" , 0x015079 }, + { (char*) "America/Ensenada" , 0x015165 }, + { (char*) "America/Fort_Nelson" , 0x015AB7 }, + { (char*) "America/Fort_Wayne" , 0x016397 }, + { (char*) "America/Fortaleza" , 0x016A35 }, + { (char*) "America/Glace_Bay" , 0x016D25 }, + { (char*) "America/Godthab" , 0x0175DC }, + { (char*) "America/Goose_Bay" , 0x017D49 }, + { (char*) "America/Grand_Turk" , 0x0189FF }, + { (char*) "America/Grenada" , 0x019135 }, + { (char*) "America/Guadeloupe" , 0x0191D5 }, + { (char*) "America/Guatemala" , 0x019275 }, + { (char*) "America/Guayaquil" , 0x019399 }, + { (char*) "America/Guyana" , 0x01949F }, + { (char*) "America/Halifax" , 0x0195A3 }, + { (char*) "America/Havana" , 0x01A32D }, + { (char*) "America/Hermosillo" , 0x01ACA9 }, + { (char*) "America/Indiana/Indianapolis" , 0x01AE83 }, + { (char*) "America/Indiana/Knox" , 0x01B53A }, + { (char*) "America/Indiana/Marengo" , 0x01BEE7 }, + { (char*) "America/Indiana/Petersburg" , 0x01C5D4 }, + { (char*) "America/Indiana/Tell_City" , 0x01CD73 }, + { (char*) "America/Indiana/Vevay" , 0x01D437 }, + { (char*) "America/Indiana/Vincennes" , 0x01D9F3 }, + { (char*) "America/Indiana/Winamac" , 0x01E0C9 }, + { (char*) "America/Indianapolis" , 0x01E7ED }, + { (char*) "America/Inuvik" , 0x01EE8B }, + { (char*) "America/Iqaluit" , 0x01F6C5 }, + { (char*) "America/Jamaica" , 0x01FF84 }, + { (char*) "America/Jujuy" , 0x020172 }, + { (char*) "America/Juneau" , 0x020588 }, + { (char*) "America/Kentucky/Louisville" , 0x020ED9 }, + { (char*) "America/Kentucky/Monticello" , 0x0219E7 }, + { (char*) "America/Knox_IN" , 0x022347 }, + { (char*) "America/Kralendijk" , 0x022CDF }, + { (char*) "America/La_Paz" , 0x022DE1 }, + { (char*) "America/Lima" , 0x022EC7 }, + { (char*) "America/Los_Angeles" , 0x02305B }, + { (char*) "America/Louisville" , 0x023B92 }, + { (char*) "America/Lower_Princes" , 0x024682 }, + { (char*) "America/Maceio" , 0x024784 }, + { (char*) "America/Managua" , 0x024A7A }, + { (char*) "America/Manaus" , 0x024C34 }, + { (char*) "America/Marigot" , 0x024E9D }, + { (char*) "America/Martinique" , 0x024F9F }, + { (char*) "America/Matamoros" , 0x025093 }, + { (char*) "America/Mazatlan" , 0x025655 }, + { (char*) "America/Mendoza" , 0x025AFB }, + { (char*) "America/Menominee" , 0x025F2D }, + { (char*) "America/Merida" , 0x02683A }, + { (char*) "America/Metlakatla" , 0x026C43 }, + { (char*) "America/Mexico_City" , 0x0271F5 }, + { (char*) "America/Miquelon" , 0x0276D5 }, + { (char*) "America/Moncton" , 0x027D55 }, + { (char*) "America/Monterrey" , 0x0289CB }, + { (char*) "America/Montevideo" , 0x028DE1 }, + { (char*) "America/Montreal" , 0x0293C5 }, + { (char*) "America/Montserrat" , 0x02A177 }, + { (char*) "America/Nassau" , 0x02A217 }, + { (char*) "America/New_York" , 0x02AB77 }, + { (char*) "America/Nipigon" , 0x02B977 }, + { (char*) "America/Nome" , 0x02C729 }, + { (char*) "America/Noronha" , 0x02D081 }, + { (char*) "America/North_Dakota/Beulah" , 0x02D35B }, + { (char*) "America/North_Dakota/Center" , 0x02DCD8 }, + { (char*) "America/North_Dakota/New_Salem" , 0x02E655 }, + { (char*) "America/Nuuk" , 0x02EFD8 }, + { (char*) "America/Ojinaga" , 0x02F756 }, + { (char*) "America/Panama" , 0x02FD72 }, + { (char*) "America/Pangnirtung" , 0x02FE34 }, + { (char*) "America/Paramaribo" , 0x0306DA }, + { (char*) "America/Phoenix" , 0x0307DE }, + { (char*) "America/Port-au-Prince" , 0x03096A }, + { (char*) "America/Port_of_Spain" , 0x030F10 }, + { (char*) "America/Porto_Acre" , 0x030FB0 }, + { (char*) "America/Porto_Velho" , 0x031222 }, + { (char*) "America/Puerto_Rico" , 0x031468 }, + { (char*) "America/Punta_Arenas" , 0x03156A }, + { (char*) "America/Rainy_River" , 0x031CF8 }, + { (char*) "America/Rankin_Inlet" , 0x032838 }, + { (char*) "America/Recife" , 0x03306C }, + { (char*) "America/Regina" , 0x033340 }, + { (char*) "America/Resolute" , 0x033735 }, + { (char*) "America/Rio_Branco" , 0x033F6A }, + { (char*) "America/Rosario" , 0x0341E0 }, + { (char*) "America/Santa_Isabel" , 0x034612 }, + { (char*) "America/Santarem" , 0x034F64 }, + { (char*) "America/Santiago" , 0x0351C7 }, + { (char*) "America/Santo_Domingo" , 0x035BB3 }, + { (char*) "America/Sao_Paulo" , 0x035D89 }, + { (char*) "America/Scoresbysund" , 0x036361 }, + { (char*) "America/Shiprock" , 0x036B19 }, + { (char*) "America/Sitka" , 0x0374C1 }, + { (char*) "America/St_Barthelemy" , 0x037DF9 }, + { (char*) "America/St_Johns" , 0x037EFB }, + { (char*) "America/St_Kitts" , 0x038D69 }, + { (char*) "America/St_Lucia" , 0x038E09 }, + { (char*) "America/St_Thomas" , 0x038ECB }, + { (char*) "America/St_Vincent" , 0x038F6B }, + { (char*) "America/Swift_Current" , 0x03902D }, + { (char*) "America/Tegucigalpa" , 0x03927B }, + { (char*) "America/Thule" , 0x039383 }, + { (char*) "America/Thunder_Bay" , 0x03997B }, + { (char*) "America/Tijuana" , 0x03A72D }, + { (char*) "America/Toronto" , 0x03B08E }, + { (char*) "America/Tortola" , 0x03BE5E }, + { (char*) "America/Vancouver" , 0x03BEFE }, + { (char*) "America/Virgin" , 0x03CA6F }, + { (char*) "America/Whitehorse" , 0x03CB71 }, + { (char*) "America/Winnipeg" , 0x03D1DD }, + { (char*) "America/Yakutat" , 0x03DD3A }, + { (char*) "America/Yellowknife" , 0x03E657 }, + { (char*) "Antarctica/Casey" , 0x03EF7F }, + { (char*) "Antarctica/Davis" , 0x03F137 }, + { (char*) "Antarctica/DumontDUrville" , 0x03F263 }, + { (char*) "Antarctica/Macquarie" , 0x03F333 }, + { (char*) "Antarctica/Mawson" , 0x03FC23 }, + { (char*) "Antarctica/McMurdo" , 0x03FCEE }, + { (char*) "Antarctica/Palmer" , 0x0404E9 }, + { (char*) "Antarctica/Rothera" , 0x040A77 }, + { (char*) "Antarctica/South_Pole" , 0x040B20 }, + { (char*) "Antarctica/Syowa" , 0x0414B1 }, + { (char*) "Antarctica/Troll" , 0x041559 }, + { (char*) "Antarctica/Vostok" , 0x0419E6 }, + { (char*) "Arctic/Longyearbyen" , 0x041ACD }, + { (char*) "Asia/Aden" , 0x0423D3 }, + { (char*) "Asia/Almaty" , 0x042476 }, + { (char*) "Asia/Amman" , 0x04286B }, + { (char*) "Asia/Anadyr" , 0x042E10 }, + { (char*) "Asia/Aqtau" , 0x0432C5 }, + { (char*) "Asia/Aqtobe" , 0x0436AF }, + { (char*) "Asia/Ashgabat" , 0x043AAD }, + { (char*) "Asia/Ashkhabad" , 0x043D16 }, + { (char*) "Asia/Atyrau" , 0x043F7F }, + { (char*) "Asia/Baghdad" , 0x044371 }, + { (char*) "Asia/Bahrain" , 0x044746 }, + { (char*) "Asia/Baku" , 0x044831 }, + { (char*) "Asia/Bangkok" , 0x044CFA }, + { (char*) "Asia/Barnaul" , 0x044DBF }, + { (char*) "Asia/Beirut" , 0x045290 }, + { (char*) "Asia/Bishkek" , 0x045B06 }, + { (char*) "Asia/Brunei" , 0x045EDB }, + { (char*) "Asia/Calcutta" , 0x045FA4 }, + { (char*) "Asia/Chita" , 0x0460CD }, + { (char*) "Asia/Choibalsan" , 0x0465A4 }, + { (char*) "Asia/Chongqing" , 0x046969 }, + { (char*) "Asia/Chungking" , 0x046BA6 }, + { (char*) "Asia/Colombo" , 0x046DE3 }, + { (char*) "Asia/Dacca" , 0x046F55 }, + { (char*) "Asia/Damascus" , 0x0470A4 }, + { (char*) "Asia/Dhaka" , 0x047801 }, + { (char*) "Asia/Dili" , 0x047950 }, + { (char*) "Asia/Dubai" , 0x047A31 }, + { (char*) "Asia/Dushanbe" , 0x047AD4 }, + { (char*) "Asia/Famagusta" , 0x047D21 }, + { (char*) "Asia/Gaza" , 0x048528 }, + { (char*) "Asia/Harbin" , 0x049454 }, + { (char*) "Asia/Hebron" , 0x049691 }, + { (char*) "Asia/Ho_Chi_Minh" , 0x04A5D8 }, + { (char*) "Asia/Hong_Kong" , 0x04A735 }, + { (char*) "Asia/Hovd" , 0x04AC12 }, + { (char*) "Asia/Irkutsk" , 0x04AFB6 }, + { (char*) "Asia/Istanbul" , 0x04B4A9 }, + { (char*) "Asia/Jakarta" , 0x04BC42 }, + { (char*) "Asia/Jayapura" , 0x04BDDA }, + { (char*) "Asia/Jerusalem" , 0x04BEF9 }, + { (char*) "Asia/Kabul" , 0x04C859 }, + { (char*) "Asia/Kamchatka" , 0x04C927 }, + { (char*) "Asia/Karachi" , 0x04CDC5 }, + { (char*) "Asia/Kashgar" , 0x04CF4C }, + { (char*) "Asia/Kathmandu" , 0x04CFEF }, + { (char*) "Asia/Katmandu" , 0x04D0C1 }, + { (char*) "Asia/Khandyga" , 0x04D193 }, + { (char*) "Asia/Kolkata" , 0x04D6A6 }, + { (char*) "Asia/Krasnoyarsk" , 0x04D7CF }, + { (char*) "Asia/Kuala_Lumpur" , 0x04DC9D }, + { (char*) "Asia/Kuching" , 0x04DE4E }, + { (char*) "Asia/Kuwait" , 0x04E03D }, + { (char*) "Asia/Macao" , 0x04E0E0 }, + { (char*) "Asia/Macau" , 0x04E5B7 }, + { (char*) "Asia/Magadan" , 0x04EA8E }, + { (char*) "Asia/Makassar" , 0x04EF62 }, + { (char*) "Asia/Manila" , 0x04F0B5 }, + { (char*) "Asia/Muscat" , 0x04F209 }, + { (char*) "Asia/Nicosia" , 0x04F2AC }, + { (char*) "Asia/Novokuznetsk" , 0x04FA98 }, + { (char*) "Asia/Novosibirsk" , 0x04FF34 }, + { (char*) "Asia/Omsk" , 0x05040B }, + { (char*) "Asia/Oral" , 0x0508CD }, + { (char*) "Asia/Phnom_Penh" , 0x050CC7 }, + { (char*) "Asia/Pontianak" , 0x050DEC }, + { (char*) "Asia/Pyongyang" , 0x050F6F }, + { (char*) "Asia/Qatar" , 0x051068 }, + { (char*) "Asia/Qostanay" , 0x05112D }, + { (char*) "Asia/Qyzylorda" , 0x051538 }, + { (char*) "Asia/Rangoon" , 0x051954 }, + { (char*) "Asia/Riyadh" , 0x051A5E }, + { (char*) "Asia/Saigon" , 0x051B01 }, + { (char*) "Asia/Sakhalin" , 0x051C5E }, + { (char*) "Asia/Samarkand" , 0x052126 }, + { (char*) "Asia/Seoul" , 0x052376 }, + { (char*) "Asia/Shanghai" , 0x0525EB }, + { (char*) "Asia/Singapore" , 0x052834 }, + { (char*) "Asia/Srednekolymsk" , 0x0529D1 }, + { (char*) "Asia/Taipei" , 0x052EA5 }, + { (char*) "Asia/Tashkent" , 0x0531AA }, + { (char*) "Asia/Tbilisi" , 0x053408 }, + { (char*) "Asia/Tehran" , 0x053811 }, + { (char*) "Asia/Tel_Aviv" , 0x053CFD }, + { (char*) "Asia/Thimbu" , 0x05465D }, + { (char*) "Asia/Thimphu" , 0x054726 }, + { (char*) "Asia/Tokyo" , 0x0547EF }, + { (char*) "Asia/Tomsk" , 0x054930 }, + { (char*) "Asia/Ujung_Pandang" , 0x054E01 }, + { (char*) "Asia/Ulaanbaatar" , 0x054F0B }, + { (char*) "Asia/Ulan_Bator" , 0x055294 }, + { (char*) "Asia/Urumqi" , 0x05560D }, + { (char*) "Asia/Ust-Nera" , 0x0556BD }, + { (char*) "Asia/Vientiane" , 0x055BB3 }, + { (char*) "Asia/Vladivostok" , 0x055CF4 }, + { (char*) "Asia/Yakutsk" , 0x0561BD }, + { (char*) "Asia/Yangon" , 0x056685 }, + { (char*) "Asia/Yekaterinburg" , 0x05678F }, + { (char*) "Asia/Yerevan" , 0x056C76 }, + { (char*) "Atlantic/Azores" , 0x0570F3 }, + { (char*) "Atlantic/Bermuda" , 0x057EAF }, + { (char*) "Atlantic/Canary" , 0x058817 }, + { (char*) "Atlantic/Cape_Verde" , 0x058F9A }, + { (char*) "Atlantic/Faeroe" , 0x0590A6 }, + { (char*) "Atlantic/Faroe" , 0x0597C9 }, + { (char*) "Atlantic/Jan_Mayen" , 0x059EEC }, + { (char*) "Atlantic/Madeira" , 0x05A7F2 }, + { (char*) "Atlantic/Reykjavik" , 0x05B5BC }, + { (char*) "Atlantic/South_Georgia" , 0x05BA52 }, + { (char*) "Atlantic/St_Helena" , 0x05BAF4 }, + { (char*) "Atlantic/Stanley" , 0x05BBB6 }, + { (char*) "Australia/ACT" , 0x05C072 }, + { (char*) "Australia/Adelaide" , 0x05C90C }, + { (char*) "Australia/Brisbane" , 0x05D1C7 }, + { (char*) "Australia/Broken_Hill" , 0x05D38D }, + { (char*) "Australia/Canberra" , 0x05DC6A }, + { (char*) "Australia/Currie" , 0x05E504 }, + { (char*) "Australia/Darwin" , 0x05EE46 }, + { (char*) "Australia/Eucla" , 0x05EFA9 }, + { (char*) "Australia/Hobart" , 0x05F196 }, + { (char*) "Australia/LHI" , 0x05FAE0 }, + { (char*) "Australia/Lindeman" , 0x060222 }, + { (char*) "Australia/Lord_Howe" , 0x060428 }, + { (char*) "Australia/Melbourne" , 0x060B7A }, + { (char*) "Australia/North" , 0x06141C }, + { (char*) "Australia/NSW" , 0x06156D }, + { (char*) "Australia/Perth" , 0x061E07 }, + { (char*) "Australia/Queensland" , 0x061FEF }, + { (char*) "Australia/South" , 0x06219E }, + { (char*) "Australia/Sydney" , 0x062A4A }, + { (char*) "Australia/Tasmania" , 0x063300 }, + { (char*) "Australia/Victoria" , 0x063C42 }, + { (char*) "Australia/West" , 0x0644DC }, + { (char*) "Australia/Yancowinna" , 0x0646A6 }, + { (char*) "Brazil/Acre" , 0x064F67 }, + { (char*) "Brazil/DeNoronha" , 0x0651D9 }, + { (char*) "Brazil/East" , 0x0654A3 }, + { (char*) "Brazil/West" , 0x065A45 }, + { (char*) "Canada/Atlantic" , 0x065C9F }, + { (char*) "Canada/Central" , 0x066A0B }, + { (char*) "Canada/Eastern" , 0x06754B }, + { (char*) "Canada/Mountain" , 0x0682FD }, + { (char*) "Canada/Newfoundland" , 0x068C25 }, + { (char*) "Canada/Pacific" , 0x069A78 }, + { (char*) "Canada/Saskatchewan" , 0x06A5D0 }, + { (char*) "Canada/Yukon" , 0x06A9B0 }, + { (char*) "CET" , 0x06B00A }, + { (char*) "Chile/Continental" , 0x06B844 }, + { (char*) "Chile/EasterIsland" , 0x06C223 }, + { (char*) "CST6CDT" , 0x06CADA }, + { (char*) "Cuba" , 0x06D3EC }, + { (char*) "EET" , 0x06DD68 }, + { (char*) "Egypt" , 0x06E4E8 }, + { (char*) "Eire" , 0x06EE53 }, + { (char*) "EST" , 0x06FC03 }, + { (char*) "EST5EDT" , 0x06FC81 }, + { (char*) "Etc/GMT" , 0x070593 }, + { (char*) "Etc/GMT+0" , 0x070611 }, + { (char*) "Etc/GMT+1" , 0x07068F }, + { (char*) "Etc/GMT+10" , 0x07070F }, + { (char*) "Etc/GMT+11" , 0x070790 }, + { (char*) "Etc/GMT+12" , 0x070811 }, + { (char*) "Etc/GMT+2" , 0x070892 }, + { (char*) "Etc/GMT+3" , 0x070912 }, + { (char*) "Etc/GMT+4" , 0x070992 }, + { (char*) "Etc/GMT+5" , 0x070A12 }, + { (char*) "Etc/GMT+6" , 0x070A92 }, + { (char*) "Etc/GMT+7" , 0x070B12 }, + { (char*) "Etc/GMT+8" , 0x070B92 }, + { (char*) "Etc/GMT+9" , 0x070C12 }, + { (char*) "Etc/GMT-0" , 0x070C92 }, + { (char*) "Etc/GMT-1" , 0x070D10 }, + { (char*) "Etc/GMT-10" , 0x070D91 }, + { (char*) "Etc/GMT-11" , 0x070E13 }, + { (char*) "Etc/GMT-12" , 0x070E95 }, + { (char*) "Etc/GMT-13" , 0x070F17 }, + { (char*) "Etc/GMT-14" , 0x070F99 }, + { (char*) "Etc/GMT-2" , 0x07101B }, + { (char*) "Etc/GMT-3" , 0x07109C }, + { (char*) "Etc/GMT-4" , 0x07111D }, + { (char*) "Etc/GMT-5" , 0x07119E }, + { (char*) "Etc/GMT-6" , 0x07121F }, + { (char*) "Etc/GMT-7" , 0x0712A0 }, + { (char*) "Etc/GMT-8" , 0x071321 }, + { (char*) "Etc/GMT-9" , 0x0713A2 }, + { (char*) "Etc/GMT0" , 0x071423 }, + { (char*) "Etc/Greenwich" , 0x0714A1 }, + { (char*) "Etc/UCT" , 0x07151F }, + { (char*) "Etc/Universal" , 0x07159D }, + { (char*) "Etc/UTC" , 0x07161B }, + { (char*) "Etc/Zulu" , 0x071699 }, + { (char*) "Europe/Amsterdam" , 0x071717 }, + { (char*) "Europe/Andorra" , 0x072281 }, + { (char*) "Europe/Astrakhan" , 0x07295B }, + { (char*) "Europe/Athens" , 0x072DF8 }, + { (char*) "Europe/Belfast" , 0x0736DA }, + { (char*) "Europe/Belgrade" , 0x074536 }, + { (char*) "Europe/Berlin" , 0x074CC2 }, + { (char*) "Europe/Bratislava" , 0x0755D7 }, + { (char*) "Europe/Brussels" , 0x075EE0 }, + { (char*) "Europe/Bucharest" , 0x076A61 }, + { (char*) "Europe/Budapest" , 0x0772F5 }, + { (char*) "Europe/Busingen" , 0x077C41 }, + { (char*) "Europe/Chisinau" , 0x0783CA }, + { (char*) "Europe/Copenhagen" , 0x078D2C }, + { (char*) "Europe/Dublin" , 0x079591 }, + { (char*) "Europe/Gibraltar" , 0x07A341 }, + { (char*) "Europe/Guernsey" , 0x07AF49 }, + { (char*) "Europe/Helsinki" , 0x07BDE9 }, + { (char*) "Europe/Isle_of_Man" , 0x07C561 }, + { (char*) "Europe/Istanbul" , 0x07D3AD }, + { (char*) "Europe/Jersey" , 0x07DB46 }, + { (char*) "Europe/Kaliningrad" , 0x07E9E6 }, + { (char*) "Europe/Kiev" , 0x07EFDB }, + { (char*) "Europe/Kirov" , 0x07F82F }, + { (char*) "Europe/Kyiv" , 0x07FCEA }, + { (char*) "Europe/Lisbon" , 0x08054D }, + { (char*) "Europe/Ljubljana" , 0x081315 }, + { (char*) "Europe/London" , 0x081AA1 }, + { (char*) "Europe/Luxembourg" , 0x0828FD }, + { (char*) "Europe/Madrid" , 0x08348B }, + { (char*) "Europe/Malta" , 0x083EDD }, + { (char*) "Europe/Mariehamn" , 0x084925 }, + { (char*) "Europe/Minsk" , 0x08509D }, + { (char*) "Europe/Monaco" , 0x0855C4 }, + { (char*) "Europe/Moscow" , 0x086150 }, + { (char*) "Europe/Nicosia" , 0x08676F }, + { (char*) "Europe/Oslo" , 0x086F4D }, + { (char*) "Europe/Paris" , 0x08780D }, + { (char*) "Europe/Podgorica" , 0x0883AB }, + { (char*) "Europe/Prague" , 0x088B37 }, + { (char*) "Europe/Riga" , 0x089440 }, + { (char*) "Europe/Rome" , 0x089CE2 }, + { (char*) "Europe/Samara" , 0x08A73F }, + { (char*) "Europe/San_Marino" , 0x08AC15 }, + { (char*) "Europe/Sarajevo" , 0x08B672 }, + { (char*) "Europe/Saratov" , 0x08BDFE }, + { (char*) "Europe/Simferopol" , 0x08C2AB }, + { (char*) "Europe/Skopje" , 0x08C87A }, + { (char*) "Europe/Sofia" , 0x08D006 }, + { (char*) "Europe/Stockholm" , 0x08D82F }, + { (char*) "Europe/Tallinn" , 0x08DFB0 }, + { (char*) "Europe/Tirane" , 0x08E820 }, + { (char*) "Europe/Tiraspol" , 0x08F050 }, + { (char*) "Europe/Ulyanovsk" , 0x08F9B2 }, + { (char*) "Europe/Uzhgorod" , 0x08FEB5 }, + { (char*) "Europe/Vaduz" , 0x090709 }, + { (char*) "Europe/Vatican" , 0x090E75 }, + { (char*) "Europe/Vienna" , 0x0918D2 }, + { (char*) "Europe/Vilnius" , 0x092176 }, + { (char*) "Europe/Volgograd" , 0x0929F4 }, + { (char*) "Europe/Warsaw" , 0x092EBB }, + { (char*) "Europe/Zagreb" , 0x093925 }, + { (char*) "Europe/Zaporozhye" , 0x0940B1 }, + { (char*) "Europe/Zurich" , 0x094905 }, + { (char*) "Factory" , 0x095086 }, + { (char*) "GB" , 0x095106 }, + { (char*) "GB-Eire" , 0x095F62 }, + { (char*) "GMT" , 0x096DBE }, + { (char*) "GMT+0" , 0x096E3C }, + { (char*) "GMT-0" , 0x096EBA }, + { (char*) "GMT0" , 0x096F38 }, + { (char*) "Greenwich" , 0x096FB6 }, + { (char*) "Hongkong" , 0x097034 }, + { (char*) "HST" , 0x097511 }, + { (char*) "Iceland" , 0x097590 }, + { (char*) "Indian/Antananarivo" , 0x097630 }, + { (char*) "Indian/Chagos" , 0x097717 }, + { (char*) "Indian/Christmas" , 0x0977DC }, + { (char*) "Indian/Cocos" , 0x09787F }, + { (char*) "Indian/Comoro" , 0x09792B }, + { (char*) "Indian/Kerguelen" , 0x0979CC }, + { (char*) "Indian/Mahe" , 0x097A6F }, + { (char*) "Indian/Maldives" , 0x097B12 }, + { (char*) "Indian/Mauritius" , 0x097BD7 }, + { (char*) "Indian/Mayotte" , 0x097CC6 }, + { (char*) "Indian/Reunion" , 0x097D67 }, + { (char*) "Iran" , 0x097E0A }, + { (char*) "Israel" , 0x0982F6 }, + { (char*) "Jamaica" , 0x098C56 }, + { (char*) "Japan" , 0x098E44 }, + { (char*) "Kwajalein" , 0x098F85 }, + { (char*) "Libya" , 0x0990BF }, + { (char*) "MET" , 0x09933C }, + { (char*) "Mexico/BajaNorte" , 0x099B76 }, + { (char*) "Mexico/BajaSur" , 0x09A4C8 }, + { (char*) "Mexico/General" , 0x09A93C }, + { (char*) "MST" , 0x09AE0E }, + { (char*) "MST7MDT" , 0x09AE8C }, + { (char*) "Navajo" , 0x09B79E }, + { (char*) "NZ" , 0x09C146 }, + { (char*) "NZ-CHAT" , 0x09CAD7 }, + { (char*) "Pacific/Apia" , 0x09D2E9 }, + { (char*) "Pacific/Auckland" , 0x09D54B }, + { (char*) "Pacific/Bougainville" , 0x09DEEF }, + { (char*) "Pacific/Chatham" , 0x09E005 }, + { (char*) "Pacific/Chuuk" , 0x09E826 }, + { (char*) "Pacific/Easter" , 0x09E940 }, + { (char*) "Pacific/Efate" , 0x09F204 }, + { (char*) "Pacific/Enderbury" , 0x09F41C }, + { (char*) "Pacific/Fakaofo" , 0x09F504 }, + { (char*) "Pacific/Fiji" , 0x09F5CA }, + { (char*) "Pacific/Funafuti" , 0x09F80A }, + { (char*) "Pacific/Galapagos" , 0x09F8AE }, + { (char*) "Pacific/Gambier" , 0x09F9AB }, + { (char*) "Pacific/Guadalcanal" , 0x09FA5C }, + { (char*) "Pacific/Guam" , 0x09FB00 }, + { (char*) "Pacific/Honolulu" , 0x09FCFA }, + { (char*) "Pacific/Johnston" , 0x09FE55 }, + { (char*) "Pacific/Kanton" , 0x09FFAA }, + { (char*) "Pacific/Kiritimati" , 0x0A00A1 }, + { (char*) "Pacific/Kosrae" , 0x0A0199 }, + { (char*) "Pacific/Kwajalein" , 0x0A02FC }, + { (char*) "Pacific/Majuro" , 0x0A043F }, + { (char*) "Pacific/Marquesas" , 0x0A058B }, + { (char*) "Pacific/Midway" , 0x0A0647 }, + { (char*) "Pacific/Nauru" , 0x0A073A }, + { (char*) "Pacific/Niue" , 0x0A0834 }, + { (char*) "Pacific/Norfolk" , 0x0A08FD }, + { (char*) "Pacific/Noumea" , 0x0A0C6B }, + { (char*) "Pacific/Pago_Pago" , 0x0A0D99 }, + { (char*) "Pacific/Palau" , 0x0A0E54 }, + { (char*) "Pacific/Pitcairn" , 0x0A0F06 }, + { (char*) "Pacific/Pohnpei" , 0x0A0FCE }, + { (char*) "Pacific/Ponape" , 0x0A1109 }, + { (char*) "Pacific/Port_Moresby" , 0x0A11AD }, + { (char*) "Pacific/Rarotonga" , 0x0A127D }, + { (char*) "Pacific/Saipan" , 0x0A14D6 }, + { (char*) "Pacific/Samoa" , 0x0A16C2 }, + { (char*) "Pacific/Tahiti" , 0x0A177D }, + { (char*) "Pacific/Tarawa" , 0x0A182F }, + { (char*) "Pacific/Tongatapu" , 0x0A18E2 }, + { (char*) "Pacific/Truk" , 0x0A1A54 }, + { (char*) "Pacific/Wake" , 0x0A1B0C }, + { (char*) "Pacific/Wallis" , 0x0A1BBB }, + { (char*) "Pacific/Yap" , 0x0A1C5F }, + { (char*) "Poland" , 0x0A1D17 }, + { (char*) "Portugal" , 0x0A2781 }, + { (char*) "PRC" , 0x0A3536 }, + { (char*) "PST8PDT" , 0x0A3773 }, + { (char*) "ROC" , 0x0A4085 }, + { (char*) "ROK" , 0x0A438A }, + { (char*) "Singapore" , 0x0A45FF }, + { (char*) "Turkey" , 0x0A479C }, + { (char*) "UCT" , 0x0A4F35 }, + { (char*) "Universal" , 0x0A4FB3 }, + { (char*) "US/Alaska" , 0x0A5031 }, + { (char*) "US/Aleutian" , 0x0A5980 }, + { (char*) "US/Arizona" , 0x0A62C0 }, + { (char*) "US/Central" , 0x0A6434 }, + { (char*) "US/East-Indiana" , 0x0A7248 }, + { (char*) "US/Eastern" , 0x0A78E6 }, + { (char*) "US/Hawaii" , 0x0A86D2 }, + { (char*) "US/Indiana-Starke" , 0x0A8827 }, + { (char*) "US/Michigan" , 0x0A91BF }, + { (char*) "US/Mountain" , 0x0A9A81 }, + { (char*) "US/Pacific" , 0x0AA429 }, + { (char*) "US/Samoa" , 0x0AAF59 }, + { (char*) "UTC" , 0x0AB014 }, + { (char*) "W-SU" , 0x0AB092 }, + { (char*) "WET" , 0x0AB69D }, + { (char*) "Zulu" , 0x0ABE1A }, }; -const unsigned char timelib_timezone_db_data_builtin[703933] = { +const unsigned char timelib_timezone_db_data_builtin[704152] = { /* Africa/Abidjan */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -26616,7 +26704,7 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x54, 0x00, 0x2D, 0x30, 0x34, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x0A, 0x3C, 0x2D, 0x30, 0x33, 0x3E, 0x33, 0x0A, 0x00, 0x5D, 0xE4, 0x75, 0x00, 0xAE, 0x47, 0xE2, 0x00, 0x00, 0x00, 0x1B, 0x43, 0x61, 0x74, 0x61, 0x6D, 0x61, 0x72, 0x63, 0x61, 0x20, 0x28, 0x43, 0x54, 0x29, -0x3B, 0x20, 0x43, 0x68, 0x75, 0x62, 0x75, 0x74, 0x20, 0x28, 0x43, 0x48, 0x29, +0x2C, 0x20, 0x43, 0x68, 0x75, 0x62, 0x75, 0x74, 0x20, 0x28, 0x43, 0x48, 0x29, /* America/Argentina/ComodRivadavia */ 0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -27565,7 +27653,7 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0A, 0x45, 0x53, 0x54, 0x35, 0x0A, 0x00, 0xD3, 0xBA, 0x95, 0x00, 0x86, 0xDA, 0xC9, 0x00, 0x00, 0x00, 0x21, 0x45, 0x53, 0x54, 0x20, -0x2D, 0x20, 0x4F, 0x4E, 0x20, 0x28, 0x41, 0x74, 0x69, 0x6B, 0x6F, 0x6B, 0x61, 0x6E, 0x29, 0x3B, +0x2D, 0x20, 0x4F, 0x4E, 0x20, 0x28, 0x41, 0x74, 0x69, 0x6B, 0x6F, 0x6B, 0x61, 0x6E, 0x29, 0x2C, 0x20, 0x4E, 0x55, 0x20, 0x28, 0x43, 0x6F, 0x72, 0x61, 0x6C, 0x20, 0x48, 0x29, /* America/Atka */ @@ -27930,7 +28018,7 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x00, 0x00, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x0A, 0x3C, 0x2D, 0x30, 0x33, 0x3E, 0x33, 0x0A, 0x00, 0x87, 0x1D, 0xD8, 0x00, 0xC8, 0xAD, 0xB2, 0x00, 0x00, 0x00, 0x12, 0x50, 0x61, -0x72, 0x61, 0x20, 0x28, 0x65, 0x61, 0x73, 0x74, 0x29, 0x3B, 0x20, 0x41, 0x6D, 0x61, 0x70, 0x61, +0x72, 0x61, 0x20, 0x28, 0x65, 0x61, 0x73, 0x74, 0x29, 0x2C, 0x20, 0x41, 0x6D, 0x61, 0x70, 0x61, /* America/Belize */ @@ -28274,7 +28362,7 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x00, 0x00, 0x0A, 0x4D, 0x53, 0x54, 0x37, 0x4D, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xCB, 0xE0, 0xD1, 0x00, 0x61, 0x58, 0xE6, 0x00, 0x00, 0x00, 0x20, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x20, 0x2D, -0x20, 0x49, 0x44, 0x20, 0x28, 0x73, 0x6F, 0x75, 0x74, 0x68, 0x29, 0x3B, 0x20, 0x4F, 0x52, 0x20, +0x20, 0x49, 0x44, 0x20, 0x28, 0x73, 0x6F, 0x75, 0x74, 0x68, 0x29, 0x2C, 0x20, 0x4F, 0x52, 0x20, 0x28, 0x65, 0x61, 0x73, 0x74, 0x29, /* America/Buenos_Aires */ @@ -30084,9 +30172,9 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x54, 0x00, 0x4D, 0x57, 0x54, 0x00, 0x4D, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0A, 0x4D, 0x53, 0x54, 0x37, 0x4D, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xDB, 0x0A, 0x38, -0x00, 0x65, 0x85, 0x95, 0x00, 0x00, 0x00, 0x25, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, -0x20, 0x2D, 0x20, 0x41, 0x42, 0x3B, 0x20, 0x42, 0x43, 0x20, 0x28, 0x45, 0x29, 0x3B, 0x20, 0x4E, -0x54, 0x20, 0x28, 0x45, 0x29, 0x3B, 0x20, 0x53, 0x4B, 0x20, 0x28, 0x57, 0x29, +0x00, 0x65, 0x85, 0x95, 0x00, 0x00, 0x00, 0x22, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, +0x20, 0x2D, 0x20, 0x41, 0x42, 0x2C, 0x20, 0x42, 0x43, 0x28, 0x45, 0x29, 0x2C, 0x20, 0x4E, 0x54, +0x28, 0x45, 0x29, 0x2C, 0x20, 0x53, 0x4B, 0x28, 0x57, 0x29, /* America/Eirunepe */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x42, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -30749,7 +30837,7 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { /* America/Godthab */ 0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x9B, 0x80, 0x68, 0x00, +0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x9B, 0x80, 0x68, 0x00, 0x13, 0x4D, 0x7C, 0x50, 0x14, 0x33, 0xFA, 0x90, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x13, 0xDC, 0x90, 0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, @@ -30771,102 +30859,101 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, -0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, -0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, -0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, -0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, -0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, -0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, -0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, -0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, -0x01, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x66, 0x08, 0xB5, 0x90, +0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, +0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, +0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, +0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, +0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, +0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, +0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x01, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, -0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, -0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, -0x05, 0x06, 0x05, 0x06, 0x05, 0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, -0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, -0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x08, 0xFF, 0xFF, 0xF1, 0xF0, 0x01, 0x0C, 0x4C, -0x4D, 0x54, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x2D, 0x30, 0x31, 0x00, 0x00, -0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x54, 0x5A, 0x69, -0x66, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x75, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0x9B, 0x80, 0x68, -0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x4D, 0x7C, 0x50, 0x00, 0x00, 0x00, 0x00, 0x14, 0x33, 0xFA, -0x90, 0x00, 0x00, 0x00, 0x00, 0x15, 0x23, 0xEB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x16, 0x13, 0xDC, -0x90, 0x00, 0x00, 0x00, 0x00, 0x17, 0x03, 0xCD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x17, 0xF3, 0xBE, -0x90, 0x00, 0x00, 0x00, 0x00, 0x18, 0xE3, 0xAF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x19, 0xD3, 0xA0, -0x90, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xC3, 0x91, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xBC, 0xBD, -0x10, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xAC, 0xAE, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x9C, 0x9F, -0x10, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x8C, 0x90, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x7C, 0x81, -0x10, 0x00, 0x00, 0x00, 0x00, 0x20, 0x6C, 0x72, 0x10, 0x00, 0x00, 0x00, 0x00, 0x21, 0x5C, 0x63, -0x10, 0x00, 0x00, 0x00, 0x00, 0x22, 0x4C, 0x54, 0x10, 0x00, 0x00, 0x00, 0x00, 0x23, 0x3C, 0x45, -0x10, 0x00, 0x00, 0x00, 0x00, 0x24, 0x2C, 0x36, 0x10, 0x00, 0x00, 0x00, 0x00, 0x25, 0x1C, 0x27, -0x10, 0x00, 0x00, 0x00, 0x00, 0x26, 0x0C, 0x18, 0x10, 0x00, 0x00, 0x00, 0x00, 0x27, 0x05, 0x43, -0x90, 0x00, 0x00, 0x00, 0x00, 0x27, 0xF5, 0x34, 0x90, 0x00, 0x00, 0x00, 0x00, 0x28, 0xE5, 0x25, -0x90, 0x00, 0x00, 0x00, 0x00, 0x29, 0xD5, 0x16, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xC5, 0x07, -0x90, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xB4, 0xF8, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xA4, 0xE9, -0x90, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xDA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0xCB, -0x90, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0xBC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, 0x64, 0xAD, -0x90, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x00, 0x00, 0x00, 0x00, 0x32, 0x72, 0xB4, -0x10, 0x00, 0x00, 0x00, 0x00, 0x33, 0x3D, 0xBB, 0x10, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0x96, -0x10, 0x00, 0x00, 0x00, 0x00, 0x35, 0x1D, 0x9D, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0x78, -0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0xFD, 0x7F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0x94, -0x90, 0x00, 0x00, 0x00, 0x00, 0x38, 0xDD, 0x61, 0x10, 0x00, 0x00, 0x00, 0x00, 0x39, 0xFB, 0x76, -0x90, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xBD, 0x43, 0x10, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xDB, 0x58, -0x90, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xA6, 0x5F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0x3A, -0x90, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x86, 0x41, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9B, 0x1C, -0x90, 0x00, 0x00, 0x00, 0x00, 0x40, 0x66, 0x23, 0x90, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x39, -0x10, 0x00, 0x00, 0x00, 0x00, 0x42, 0x46, 0x05, 0x90, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x1B, -0x10, 0x00, 0x00, 0x00, 0x00, 0x44, 0x25, 0xE7, 0x90, 0x00, 0x00, 0x00, 0x00, 0x45, 0x43, 0xFD, -0x10, 0x00, 0x00, 0x00, 0x00, 0x46, 0x05, 0xC9, 0x90, 0x00, 0x00, 0x00, 0x00, 0x47, 0x23, 0xDF, -0x10, 0x00, 0x00, 0x00, 0x00, 0x47, 0xEE, 0xE6, 0x10, 0x00, 0x00, 0x00, 0x00, 0x49, 0x03, 0xC1, -0x10, 0x00, 0x00, 0x00, 0x00, 0x49, 0xCE, 0xC8, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xE3, 0xA3, -0x10, 0x00, 0x00, 0x00, 0x00, 0x4B, 0xAE, 0xAA, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xCC, 0xBF, -0x90, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x8E, 0x8C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xAC, 0xA1, -0x90, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x6E, 0x6E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x50, 0x8C, 0x83, -0x90, 0x00, 0x00, 0x00, 0x00, 0x51, 0x57, 0x8A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x52, 0x6C, 0x65, -0x90, 0x00, 0x00, 0x00, 0x00, 0x53, 0x37, 0x6C, 0x90, 0x00, 0x00, 0x00, 0x00, 0x54, 0x4C, 0x47, -0x90, 0x00, 0x00, 0x00, 0x00, 0x55, 0x17, 0x4E, 0x90, 0x00, 0x00, 0x00, 0x00, 0x56, 0x2C, 0x29, -0x90, 0x00, 0x00, 0x00, 0x00, 0x56, 0xF7, 0x30, 0x90, 0x00, 0x00, 0x00, 0x00, 0x58, 0x15, 0x46, -0x10, 0x00, 0x00, 0x00, 0x00, 0x58, 0xD7, 0x12, 0x90, 0x00, 0x00, 0x00, 0x00, 0x59, 0xF5, 0x28, -0x10, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xB6, 0xF4, 0x90, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xD5, 0x0A, -0x10, 0x00, 0x00, 0x00, 0x00, 0x5C, 0xA0, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xB4, 0xEC, -0x10, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x7F, 0xF3, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x94, 0xCE, -0x10, 0x00, 0x00, 0x00, 0x00, 0x60, 0x5F, 0xD5, 0x10, 0x00, 0x00, 0x00, 0x00, 0x61, 0x7D, 0xEA, -0x90, 0x00, 0x00, 0x00, 0x00, 0x62, 0x3F, 0xB7, 0x10, 0x00, 0x00, 0x00, 0x00, 0x63, 0x5D, 0xCC, -0x90, 0x00, 0x00, 0x00, 0x00, 0x64, 0x1F, 0x99, 0x10, 0x00, 0x00, 0x00, 0x00, 0x65, 0x3D, 0xAE, -0x90, 0x00, 0x00, 0x00, 0x00, 0x66, 0x08, 0xB5, 0x90, 0x00, 0x00, 0x00, 0x00, 0x67, 0x1D, 0x90, -0x90, 0x00, 0x00, 0x00, 0x00, 0x67, 0xE8, 0x97, 0x90, 0x00, 0x00, 0x00, 0x00, 0x68, 0xFD, 0x72, -0x90, 0x00, 0x00, 0x00, 0x00, 0x69, 0xC8, 0x79, 0x90, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xDD, 0x54, -0x90, 0x00, 0x00, 0x00, 0x00, 0x6B, 0xA8, 0x5B, 0x90, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xC6, 0x71, -0x10, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x88, 0x3D, 0x90, 0x00, 0x00, 0x00, 0x00, 0x6E, 0xA6, 0x53, -0x10, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x68, 0x1F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x70, 0x86, 0x35, -0x10, 0x00, 0x00, 0x00, 0x00, 0x71, 0x51, 0x3C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x72, 0x66, 0x17, -0x10, 0x00, 0x00, 0x00, 0x00, 0x73, 0x31, 0x1E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x74, 0x45, 0xF9, -0x10, 0x00, 0x00, 0x00, 0x00, 0x75, 0x11, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x76, 0x2F, 0x15, -0x90, 0x00, 0x00, 0x00, 0x00, 0x76, 0xF0, 0xE2, 0x10, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0E, 0xF7, -0x90, 0x00, 0x00, 0x00, 0x00, 0x78, 0xD0, 0xC4, 0x10, 0x00, 0x00, 0x00, 0x00, 0x79, 0xEE, 0xD9, -0x90, 0x00, 0x00, 0x00, 0x00, 0x7A, 0xB0, 0xA6, 0x10, 0x00, 0x00, 0x00, 0x00, 0x7B, 0xCE, 0xBB, -0x90, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x99, 0xC2, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7D, 0xAE, 0x9D, -0x90, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x79, 0xA4, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x8E, 0x7F, -0x90, 0x01, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, -0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, -0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, -0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x08, 0xFF, 0xFF, 0xF1, 0xF0, 0x01, 0x0C, -0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x2D, 0x30, 0x31, 0x00, -0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x0A, 0x3C, -0x2D, 0x30, 0x32, 0x3E, 0x32, 0x3C, 0x2D, 0x30, 0x31, 0x3E, 0x2C, 0x4D, 0x33, 0x2E, 0x35, 0x2E, -0x30, 0x2F, 0x2D, 0x31, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x30, 0x0A, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, +0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, +0xE3, 0xE0, 0x00, 0x08, 0xFF, 0xFF, 0xF1, 0xF0, 0x01, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, +0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x2D, 0x30, 0x31, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, +0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x54, 0x5A, 0x69, 0x66, 0x33, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, +0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x07, +0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0x9B, 0x80, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, +0x13, 0x4D, 0x7C, 0x50, 0x00, 0x00, 0x00, 0x00, 0x14, 0x33, 0xFA, 0x90, 0x00, 0x00, 0x00, 0x00, +0x15, 0x23, 0xEB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x16, 0x13, 0xDC, 0x90, 0x00, 0x00, 0x00, 0x00, +0x17, 0x03, 0xCD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x17, 0xF3, 0xBE, 0x90, 0x00, 0x00, 0x00, 0x00, +0x18, 0xE3, 0xAF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x19, 0xD3, 0xA0, 0x90, 0x00, 0x00, 0x00, 0x00, +0x1A, 0xC3, 0x91, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xBC, 0xBD, 0x10, 0x00, 0x00, 0x00, 0x00, +0x1C, 0xAC, 0xAE, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x9C, 0x9F, 0x10, 0x00, 0x00, 0x00, 0x00, +0x1E, 0x8C, 0x90, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x7C, 0x81, 0x10, 0x00, 0x00, 0x00, 0x00, +0x20, 0x6C, 0x72, 0x10, 0x00, 0x00, 0x00, 0x00, 0x21, 0x5C, 0x63, 0x10, 0x00, 0x00, 0x00, 0x00, +0x22, 0x4C, 0x54, 0x10, 0x00, 0x00, 0x00, 0x00, 0x23, 0x3C, 0x45, 0x10, 0x00, 0x00, 0x00, 0x00, +0x24, 0x2C, 0x36, 0x10, 0x00, 0x00, 0x00, 0x00, 0x25, 0x1C, 0x27, 0x10, 0x00, 0x00, 0x00, 0x00, +0x26, 0x0C, 0x18, 0x10, 0x00, 0x00, 0x00, 0x00, 0x27, 0x05, 0x43, 0x90, 0x00, 0x00, 0x00, 0x00, +0x27, 0xF5, 0x34, 0x90, 0x00, 0x00, 0x00, 0x00, 0x28, 0xE5, 0x25, 0x90, 0x00, 0x00, 0x00, 0x00, +0x29, 0xD5, 0x16, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xC5, 0x07, 0x90, 0x00, 0x00, 0x00, 0x00, +0x2B, 0xB4, 0xF8, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xA4, 0xE9, 0x90, 0x00, 0x00, 0x00, 0x00, +0x2D, 0x94, 0xDA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0xCB, 0x90, 0x00, 0x00, 0x00, 0x00, +0x2F, 0x74, 0xBC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, 0x64, 0xAD, 0x90, 0x00, 0x00, 0x00, 0x00, +0x31, 0x5D, 0xD9, 0x10, 0x00, 0x00, 0x00, 0x00, 0x32, 0x72, 0xB4, 0x10, 0x00, 0x00, 0x00, 0x00, +0x33, 0x3D, 0xBB, 0x10, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0x96, 0x10, 0x00, 0x00, 0x00, 0x00, +0x35, 0x1D, 0x9D, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0x78, 0x10, 0x00, 0x00, 0x00, 0x00, +0x36, 0xFD, 0x7F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0x94, 0x90, 0x00, 0x00, 0x00, 0x00, +0x38, 0xDD, 0x61, 0x10, 0x00, 0x00, 0x00, 0x00, 0x39, 0xFB, 0x76, 0x90, 0x00, 0x00, 0x00, 0x00, +0x3A, 0xBD, 0x43, 0x10, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xDB, 0x58, 0x90, 0x00, 0x00, 0x00, 0x00, +0x3C, 0xA6, 0x5F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0x3A, 0x90, 0x00, 0x00, 0x00, 0x00, +0x3E, 0x86, 0x41, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9B, 0x1C, 0x90, 0x00, 0x00, 0x00, 0x00, +0x40, 0x66, 0x23, 0x90, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x39, 0x10, 0x00, 0x00, 0x00, 0x00, +0x42, 0x46, 0x05, 0x90, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x1B, 0x10, 0x00, 0x00, 0x00, 0x00, +0x44, 0x25, 0xE7, 0x90, 0x00, 0x00, 0x00, 0x00, 0x45, 0x43, 0xFD, 0x10, 0x00, 0x00, 0x00, 0x00, +0x46, 0x05, 0xC9, 0x90, 0x00, 0x00, 0x00, 0x00, 0x47, 0x23, 0xDF, 0x10, 0x00, 0x00, 0x00, 0x00, +0x47, 0xEE, 0xE6, 0x10, 0x00, 0x00, 0x00, 0x00, 0x49, 0x03, 0xC1, 0x10, 0x00, 0x00, 0x00, 0x00, +0x49, 0xCE, 0xC8, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xE3, 0xA3, 0x10, 0x00, 0x00, 0x00, 0x00, +0x4B, 0xAE, 0xAA, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xCC, 0xBF, 0x90, 0x00, 0x00, 0x00, 0x00, +0x4D, 0x8E, 0x8C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xAC, 0xA1, 0x90, 0x00, 0x00, 0x00, 0x00, +0x4F, 0x6E, 0x6E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x50, 0x8C, 0x83, 0x90, 0x00, 0x00, 0x00, 0x00, +0x51, 0x57, 0x8A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x52, 0x6C, 0x65, 0x90, 0x00, 0x00, 0x00, 0x00, +0x53, 0x37, 0x6C, 0x90, 0x00, 0x00, 0x00, 0x00, 0x54, 0x4C, 0x47, 0x90, 0x00, 0x00, 0x00, 0x00, +0x55, 0x17, 0x4E, 0x90, 0x00, 0x00, 0x00, 0x00, 0x56, 0x2C, 0x29, 0x90, 0x00, 0x00, 0x00, 0x00, +0x56, 0xF7, 0x30, 0x90, 0x00, 0x00, 0x00, 0x00, 0x58, 0x15, 0x46, 0x10, 0x00, 0x00, 0x00, 0x00, +0x58, 0xD7, 0x12, 0x90, 0x00, 0x00, 0x00, 0x00, 0x59, 0xF5, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, +0x5A, 0xB6, 0xF4, 0x90, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xD5, 0x0A, 0x10, 0x00, 0x00, 0x00, 0x00, +0x5C, 0xA0, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xB4, 0xEC, 0x10, 0x00, 0x00, 0x00, 0x00, +0x5E, 0x7F, 0xF3, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x94, 0xCE, 0x10, 0x00, 0x00, 0x00, 0x00, +0x60, 0x5F, 0xD5, 0x10, 0x00, 0x00, 0x00, 0x00, 0x61, 0x7D, 0xEA, 0x90, 0x00, 0x00, 0x00, 0x00, +0x62, 0x3F, 0xB7, 0x10, 0x00, 0x00, 0x00, 0x00, 0x63, 0x5D, 0xCC, 0x90, 0x00, 0x00, 0x00, 0x00, +0x64, 0x1F, 0x99, 0x10, 0x00, 0x00, 0x00, 0x00, 0x66, 0x08, 0xB5, 0x90, 0x00, 0x00, 0x00, 0x00, +0x67, 0x1D, 0x90, 0x90, 0x00, 0x00, 0x00, 0x00, 0x67, 0xE8, 0x97, 0x90, 0x00, 0x00, 0x00, 0x00, +0x68, 0xFD, 0x72, 0x90, 0x00, 0x00, 0x00, 0x00, 0x69, 0xC8, 0x79, 0x90, 0x00, 0x00, 0x00, 0x00, +0x6A, 0xDD, 0x54, 0x90, 0x00, 0x00, 0x00, 0x00, 0x6B, 0xA8, 0x5B, 0x90, 0x00, 0x00, 0x00, 0x00, +0x6C, 0xC6, 0x71, 0x10, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x88, 0x3D, 0x90, 0x00, 0x00, 0x00, 0x00, +0x6E, 0xA6, 0x53, 0x10, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x68, 0x1F, 0x90, 0x00, 0x00, 0x00, 0x00, +0x70, 0x86, 0x35, 0x10, 0x00, 0x00, 0x00, 0x00, 0x71, 0x51, 0x3C, 0x10, 0x00, 0x00, 0x00, 0x00, +0x72, 0x66, 0x17, 0x10, 0x00, 0x00, 0x00, 0x00, 0x73, 0x31, 0x1E, 0x10, 0x00, 0x00, 0x00, 0x00, +0x74, 0x45, 0xF9, 0x10, 0x00, 0x00, 0x00, 0x00, 0x75, 0x11, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, +0x76, 0x2F, 0x15, 0x90, 0x00, 0x00, 0x00, 0x00, 0x76, 0xF0, 0xE2, 0x10, 0x00, 0x00, 0x00, 0x00, +0x78, 0x0E, 0xF7, 0x90, 0x00, 0x00, 0x00, 0x00, 0x78, 0xD0, 0xC4, 0x10, 0x00, 0x00, 0x00, 0x00, +0x79, 0xEE, 0xD9, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7A, 0xB0, 0xA6, 0x10, 0x00, 0x00, 0x00, 0x00, +0x7B, 0xCE, 0xBB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x99, 0xC2, 0x90, 0x00, 0x00, 0x00, 0x00, +0x7D, 0xAE, 0x9D, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x79, 0xA4, 0x90, 0x00, 0x00, 0x00, 0x00, +0x7F, 0x8E, 0x7F, 0x90, 0x01, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, +0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, +0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x08, 0xFF, 0xFF, 0xF1, 0xF0, +0x01, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x2D, 0x30, +0x31, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, +0x0A, 0x3C, 0x2D, 0x30, 0x32, 0x3E, 0x32, 0x3C, 0x2D, 0x30, 0x31, 0x3E, 0x2C, 0x4D, 0x33, 0x2E, +0x35, 0x2E, 0x30, 0x2F, 0x2D, 0x31, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x30, +0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* America/Goose_Bay */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -31494,7 +31581,7 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xCD, 0x75, 0xA8, 0x00, 0xB1, 0x9C, 0xC0, 0x00, 0x00, 0x00, 0x1E, 0x41, 0x74, 0x6C, 0x61, 0x6E, 0x74, 0x69, 0x63, 0x20, 0x2D, 0x20, 0x4E, 0x53, 0x20, 0x28, 0x6D, 0x6F, 0x73, 0x74, 0x20, -0x61, 0x72, 0x65, 0x61, 0x73, 0x29, 0x3B, 0x20, 0x50, 0x45, +0x61, 0x72, 0x65, 0x61, 0x73, 0x29, 0x2C, 0x20, 0x50, 0x45, /* America/Havana */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -36954,7 +37041,7 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { /* America/Nuuk */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x47, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x9B, 0x80, 0x68, 0x00, +0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x9B, 0x80, 0x68, 0x00, 0x13, 0x4D, 0x7C, 0x50, 0x14, 0x33, 0xFA, 0x90, 0x15, 0x23, 0xEB, 0x90, 0x16, 0x13, 0xDC, 0x90, 0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, @@ -36976,103 +37063,102 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x56, 0xF7, 0x30, 0x90, 0x58, 0x15, 0x46, 0x10, 0x58, 0xD7, 0x12, 0x90, 0x59, 0xF5, 0x28, 0x10, 0x5A, 0xB6, 0xF4, 0x90, 0x5B, 0xD5, 0x0A, 0x10, 0x5C, 0xA0, 0x11, 0x10, 0x5D, 0xB4, 0xEC, 0x10, 0x5E, 0x7F, 0xF3, 0x10, 0x5F, 0x94, 0xCE, 0x10, 0x60, 0x5F, 0xD5, 0x10, 0x61, 0x7D, 0xEA, 0x90, -0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x65, 0x3D, 0xAE, 0x90, -0x66, 0x08, 0xB5, 0x90, 0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, -0x69, 0xC8, 0x79, 0x90, 0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, -0x6D, 0x88, 0x3D, 0x90, 0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, -0x71, 0x51, 0x3C, 0x10, 0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, -0x75, 0x11, 0x00, 0x10, 0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, -0x78, 0xD0, 0xC4, 0x10, 0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, -0x7C, 0x99, 0xC2, 0x90, 0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, -0x01, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x62, 0x3F, 0xB7, 0x10, 0x63, 0x5D, 0xCC, 0x90, 0x64, 0x1F, 0x99, 0x10, 0x66, 0x08, 0xB5, 0x90, +0x67, 0x1D, 0x90, 0x90, 0x67, 0xE8, 0x97, 0x90, 0x68, 0xFD, 0x72, 0x90, 0x69, 0xC8, 0x79, 0x90, +0x6A, 0xDD, 0x54, 0x90, 0x6B, 0xA8, 0x5B, 0x90, 0x6C, 0xC6, 0x71, 0x10, 0x6D, 0x88, 0x3D, 0x90, +0x6E, 0xA6, 0x53, 0x10, 0x6F, 0x68, 0x1F, 0x90, 0x70, 0x86, 0x35, 0x10, 0x71, 0x51, 0x3C, 0x10, +0x72, 0x66, 0x17, 0x10, 0x73, 0x31, 0x1E, 0x10, 0x74, 0x45, 0xF9, 0x10, 0x75, 0x11, 0x00, 0x10, +0x76, 0x2F, 0x15, 0x90, 0x76, 0xF0, 0xE2, 0x10, 0x78, 0x0E, 0xF7, 0x90, 0x78, 0xD0, 0xC4, 0x10, +0x79, 0xEE, 0xD9, 0x90, 0x7A, 0xB0, 0xA6, 0x10, 0x7B, 0xCE, 0xBB, 0x90, 0x7C, 0x99, 0xC2, 0x90, +0x7D, 0xAE, 0x9D, 0x90, 0x7E, 0x79, 0xA4, 0x90, 0x7F, 0x8E, 0x7F, 0x90, 0x01, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, -0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, -0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, -0x05, 0x06, 0x05, 0x06, 0x05, 0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, -0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, -0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x08, 0xFF, 0xFF, 0xF1, 0xF0, 0x01, 0x0C, 0x4C, -0x4D, 0x54, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x2D, 0x30, 0x31, 0x00, 0x00, -0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x54, 0x5A, 0x69, -0x66, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x75, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0x9B, 0x80, 0x68, -0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x4D, 0x7C, 0x50, 0x00, 0x00, 0x00, 0x00, 0x14, 0x33, 0xFA, -0x90, 0x00, 0x00, 0x00, 0x00, 0x15, 0x23, 0xEB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x16, 0x13, 0xDC, -0x90, 0x00, 0x00, 0x00, 0x00, 0x17, 0x03, 0xCD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x17, 0xF3, 0xBE, -0x90, 0x00, 0x00, 0x00, 0x00, 0x18, 0xE3, 0xAF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x19, 0xD3, 0xA0, -0x90, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xC3, 0x91, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xBC, 0xBD, -0x10, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xAC, 0xAE, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x9C, 0x9F, -0x10, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x8C, 0x90, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x7C, 0x81, -0x10, 0x00, 0x00, 0x00, 0x00, 0x20, 0x6C, 0x72, 0x10, 0x00, 0x00, 0x00, 0x00, 0x21, 0x5C, 0x63, -0x10, 0x00, 0x00, 0x00, 0x00, 0x22, 0x4C, 0x54, 0x10, 0x00, 0x00, 0x00, 0x00, 0x23, 0x3C, 0x45, -0x10, 0x00, 0x00, 0x00, 0x00, 0x24, 0x2C, 0x36, 0x10, 0x00, 0x00, 0x00, 0x00, 0x25, 0x1C, 0x27, -0x10, 0x00, 0x00, 0x00, 0x00, 0x26, 0x0C, 0x18, 0x10, 0x00, 0x00, 0x00, 0x00, 0x27, 0x05, 0x43, -0x90, 0x00, 0x00, 0x00, 0x00, 0x27, 0xF5, 0x34, 0x90, 0x00, 0x00, 0x00, 0x00, 0x28, 0xE5, 0x25, -0x90, 0x00, 0x00, 0x00, 0x00, 0x29, 0xD5, 0x16, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xC5, 0x07, -0x90, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xB4, 0xF8, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xA4, 0xE9, -0x90, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xDA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0xCB, -0x90, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0xBC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, 0x64, 0xAD, -0x90, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xD9, 0x10, 0x00, 0x00, 0x00, 0x00, 0x32, 0x72, 0xB4, -0x10, 0x00, 0x00, 0x00, 0x00, 0x33, 0x3D, 0xBB, 0x10, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0x96, -0x10, 0x00, 0x00, 0x00, 0x00, 0x35, 0x1D, 0x9D, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0x78, -0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0xFD, 0x7F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0x94, -0x90, 0x00, 0x00, 0x00, 0x00, 0x38, 0xDD, 0x61, 0x10, 0x00, 0x00, 0x00, 0x00, 0x39, 0xFB, 0x76, -0x90, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xBD, 0x43, 0x10, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xDB, 0x58, -0x90, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xA6, 0x5F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0x3A, -0x90, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x86, 0x41, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9B, 0x1C, -0x90, 0x00, 0x00, 0x00, 0x00, 0x40, 0x66, 0x23, 0x90, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x39, -0x10, 0x00, 0x00, 0x00, 0x00, 0x42, 0x46, 0x05, 0x90, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x1B, -0x10, 0x00, 0x00, 0x00, 0x00, 0x44, 0x25, 0xE7, 0x90, 0x00, 0x00, 0x00, 0x00, 0x45, 0x43, 0xFD, -0x10, 0x00, 0x00, 0x00, 0x00, 0x46, 0x05, 0xC9, 0x90, 0x00, 0x00, 0x00, 0x00, 0x47, 0x23, 0xDF, -0x10, 0x00, 0x00, 0x00, 0x00, 0x47, 0xEE, 0xE6, 0x10, 0x00, 0x00, 0x00, 0x00, 0x49, 0x03, 0xC1, -0x10, 0x00, 0x00, 0x00, 0x00, 0x49, 0xCE, 0xC8, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xE3, 0xA3, -0x10, 0x00, 0x00, 0x00, 0x00, 0x4B, 0xAE, 0xAA, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xCC, 0xBF, -0x90, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x8E, 0x8C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xAC, 0xA1, -0x90, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x6E, 0x6E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x50, 0x8C, 0x83, -0x90, 0x00, 0x00, 0x00, 0x00, 0x51, 0x57, 0x8A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x52, 0x6C, 0x65, -0x90, 0x00, 0x00, 0x00, 0x00, 0x53, 0x37, 0x6C, 0x90, 0x00, 0x00, 0x00, 0x00, 0x54, 0x4C, 0x47, -0x90, 0x00, 0x00, 0x00, 0x00, 0x55, 0x17, 0x4E, 0x90, 0x00, 0x00, 0x00, 0x00, 0x56, 0x2C, 0x29, -0x90, 0x00, 0x00, 0x00, 0x00, 0x56, 0xF7, 0x30, 0x90, 0x00, 0x00, 0x00, 0x00, 0x58, 0x15, 0x46, -0x10, 0x00, 0x00, 0x00, 0x00, 0x58, 0xD7, 0x12, 0x90, 0x00, 0x00, 0x00, 0x00, 0x59, 0xF5, 0x28, -0x10, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xB6, 0xF4, 0x90, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xD5, 0x0A, -0x10, 0x00, 0x00, 0x00, 0x00, 0x5C, 0xA0, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xB4, 0xEC, -0x10, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x7F, 0xF3, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x94, 0xCE, -0x10, 0x00, 0x00, 0x00, 0x00, 0x60, 0x5F, 0xD5, 0x10, 0x00, 0x00, 0x00, 0x00, 0x61, 0x7D, 0xEA, -0x90, 0x00, 0x00, 0x00, 0x00, 0x62, 0x3F, 0xB7, 0x10, 0x00, 0x00, 0x00, 0x00, 0x63, 0x5D, 0xCC, -0x90, 0x00, 0x00, 0x00, 0x00, 0x64, 0x1F, 0x99, 0x10, 0x00, 0x00, 0x00, 0x00, 0x65, 0x3D, 0xAE, -0x90, 0x00, 0x00, 0x00, 0x00, 0x66, 0x08, 0xB5, 0x90, 0x00, 0x00, 0x00, 0x00, 0x67, 0x1D, 0x90, -0x90, 0x00, 0x00, 0x00, 0x00, 0x67, 0xE8, 0x97, 0x90, 0x00, 0x00, 0x00, 0x00, 0x68, 0xFD, 0x72, -0x90, 0x00, 0x00, 0x00, 0x00, 0x69, 0xC8, 0x79, 0x90, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xDD, 0x54, -0x90, 0x00, 0x00, 0x00, 0x00, 0x6B, 0xA8, 0x5B, 0x90, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xC6, 0x71, -0x10, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x88, 0x3D, 0x90, 0x00, 0x00, 0x00, 0x00, 0x6E, 0xA6, 0x53, -0x10, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x68, 0x1F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x70, 0x86, 0x35, -0x10, 0x00, 0x00, 0x00, 0x00, 0x71, 0x51, 0x3C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x72, 0x66, 0x17, -0x10, 0x00, 0x00, 0x00, 0x00, 0x73, 0x31, 0x1E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x74, 0x45, 0xF9, -0x10, 0x00, 0x00, 0x00, 0x00, 0x75, 0x11, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x76, 0x2F, 0x15, -0x90, 0x00, 0x00, 0x00, 0x00, 0x76, 0xF0, 0xE2, 0x10, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0E, 0xF7, -0x90, 0x00, 0x00, 0x00, 0x00, 0x78, 0xD0, 0xC4, 0x10, 0x00, 0x00, 0x00, 0x00, 0x79, 0xEE, 0xD9, -0x90, 0x00, 0x00, 0x00, 0x00, 0x7A, 0xB0, 0xA6, 0x10, 0x00, 0x00, 0x00, 0x00, 0x7B, 0xCE, 0xBB, -0x90, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x99, 0xC2, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7D, 0xAE, 0x9D, -0x90, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x79, 0xA4, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x8E, 0x7F, -0x90, 0x01, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, -0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, -0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, -0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x08, 0xFF, 0xFF, 0xF1, 0xF0, 0x01, 0x0C, -0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x2D, 0x30, 0x31, 0x00, -0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x0A, 0x3C, -0x2D, 0x30, 0x32, 0x3E, 0x32, 0x3C, 0x2D, 0x30, 0x31, 0x3E, 0x2C, 0x4D, 0x33, 0x2E, 0x35, 0x2E, -0x30, 0x2F, 0x2D, 0x31, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x30, 0x0A, 0x00, -0xEB, 0x43, 0xDD, 0x00, 0xC3, 0xB8, 0x2A, 0x00, 0x00, 0x00, 0x11, 0x6D, 0x6F, 0x73, 0x74, 0x20, -0x6F, 0x66, 0x20, 0x47, 0x72, 0x65, 0x65, 0x6E, 0x6C, 0x61, 0x6E, 0x64, +0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, +0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, +0xE3, 0xE0, 0x00, 0x08, 0xFF, 0xFF, 0xF1, 0xF0, 0x01, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, +0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x2D, 0x30, 0x31, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, +0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x54, 0x5A, 0x69, 0x66, 0x33, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, +0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x07, +0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0x9B, 0x80, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, +0x13, 0x4D, 0x7C, 0x50, 0x00, 0x00, 0x00, 0x00, 0x14, 0x33, 0xFA, 0x90, 0x00, 0x00, 0x00, 0x00, +0x15, 0x23, 0xEB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x16, 0x13, 0xDC, 0x90, 0x00, 0x00, 0x00, 0x00, +0x17, 0x03, 0xCD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x17, 0xF3, 0xBE, 0x90, 0x00, 0x00, 0x00, 0x00, +0x18, 0xE3, 0xAF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x19, 0xD3, 0xA0, 0x90, 0x00, 0x00, 0x00, 0x00, +0x1A, 0xC3, 0x91, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xBC, 0xBD, 0x10, 0x00, 0x00, 0x00, 0x00, +0x1C, 0xAC, 0xAE, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x9C, 0x9F, 0x10, 0x00, 0x00, 0x00, 0x00, +0x1E, 0x8C, 0x90, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x7C, 0x81, 0x10, 0x00, 0x00, 0x00, 0x00, +0x20, 0x6C, 0x72, 0x10, 0x00, 0x00, 0x00, 0x00, 0x21, 0x5C, 0x63, 0x10, 0x00, 0x00, 0x00, 0x00, +0x22, 0x4C, 0x54, 0x10, 0x00, 0x00, 0x00, 0x00, 0x23, 0x3C, 0x45, 0x10, 0x00, 0x00, 0x00, 0x00, +0x24, 0x2C, 0x36, 0x10, 0x00, 0x00, 0x00, 0x00, 0x25, 0x1C, 0x27, 0x10, 0x00, 0x00, 0x00, 0x00, +0x26, 0x0C, 0x18, 0x10, 0x00, 0x00, 0x00, 0x00, 0x27, 0x05, 0x43, 0x90, 0x00, 0x00, 0x00, 0x00, +0x27, 0xF5, 0x34, 0x90, 0x00, 0x00, 0x00, 0x00, 0x28, 0xE5, 0x25, 0x90, 0x00, 0x00, 0x00, 0x00, +0x29, 0xD5, 0x16, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xC5, 0x07, 0x90, 0x00, 0x00, 0x00, 0x00, +0x2B, 0xB4, 0xF8, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xA4, 0xE9, 0x90, 0x00, 0x00, 0x00, 0x00, +0x2D, 0x94, 0xDA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0xCB, 0x90, 0x00, 0x00, 0x00, 0x00, +0x2F, 0x74, 0xBC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, 0x64, 0xAD, 0x90, 0x00, 0x00, 0x00, 0x00, +0x31, 0x5D, 0xD9, 0x10, 0x00, 0x00, 0x00, 0x00, 0x32, 0x72, 0xB4, 0x10, 0x00, 0x00, 0x00, 0x00, +0x33, 0x3D, 0xBB, 0x10, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0x96, 0x10, 0x00, 0x00, 0x00, 0x00, +0x35, 0x1D, 0x9D, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0x78, 0x10, 0x00, 0x00, 0x00, 0x00, +0x36, 0xFD, 0x7F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0x94, 0x90, 0x00, 0x00, 0x00, 0x00, +0x38, 0xDD, 0x61, 0x10, 0x00, 0x00, 0x00, 0x00, 0x39, 0xFB, 0x76, 0x90, 0x00, 0x00, 0x00, 0x00, +0x3A, 0xBD, 0x43, 0x10, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xDB, 0x58, 0x90, 0x00, 0x00, 0x00, 0x00, +0x3C, 0xA6, 0x5F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0x3A, 0x90, 0x00, 0x00, 0x00, 0x00, +0x3E, 0x86, 0x41, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9B, 0x1C, 0x90, 0x00, 0x00, 0x00, 0x00, +0x40, 0x66, 0x23, 0x90, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x39, 0x10, 0x00, 0x00, 0x00, 0x00, +0x42, 0x46, 0x05, 0x90, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x1B, 0x10, 0x00, 0x00, 0x00, 0x00, +0x44, 0x25, 0xE7, 0x90, 0x00, 0x00, 0x00, 0x00, 0x45, 0x43, 0xFD, 0x10, 0x00, 0x00, 0x00, 0x00, +0x46, 0x05, 0xC9, 0x90, 0x00, 0x00, 0x00, 0x00, 0x47, 0x23, 0xDF, 0x10, 0x00, 0x00, 0x00, 0x00, +0x47, 0xEE, 0xE6, 0x10, 0x00, 0x00, 0x00, 0x00, 0x49, 0x03, 0xC1, 0x10, 0x00, 0x00, 0x00, 0x00, +0x49, 0xCE, 0xC8, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xE3, 0xA3, 0x10, 0x00, 0x00, 0x00, 0x00, +0x4B, 0xAE, 0xAA, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xCC, 0xBF, 0x90, 0x00, 0x00, 0x00, 0x00, +0x4D, 0x8E, 0x8C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xAC, 0xA1, 0x90, 0x00, 0x00, 0x00, 0x00, +0x4F, 0x6E, 0x6E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x50, 0x8C, 0x83, 0x90, 0x00, 0x00, 0x00, 0x00, +0x51, 0x57, 0x8A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x52, 0x6C, 0x65, 0x90, 0x00, 0x00, 0x00, 0x00, +0x53, 0x37, 0x6C, 0x90, 0x00, 0x00, 0x00, 0x00, 0x54, 0x4C, 0x47, 0x90, 0x00, 0x00, 0x00, 0x00, +0x55, 0x17, 0x4E, 0x90, 0x00, 0x00, 0x00, 0x00, 0x56, 0x2C, 0x29, 0x90, 0x00, 0x00, 0x00, 0x00, +0x56, 0xF7, 0x30, 0x90, 0x00, 0x00, 0x00, 0x00, 0x58, 0x15, 0x46, 0x10, 0x00, 0x00, 0x00, 0x00, +0x58, 0xD7, 0x12, 0x90, 0x00, 0x00, 0x00, 0x00, 0x59, 0xF5, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, +0x5A, 0xB6, 0xF4, 0x90, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xD5, 0x0A, 0x10, 0x00, 0x00, 0x00, 0x00, +0x5C, 0xA0, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xB4, 0xEC, 0x10, 0x00, 0x00, 0x00, 0x00, +0x5E, 0x7F, 0xF3, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x94, 0xCE, 0x10, 0x00, 0x00, 0x00, 0x00, +0x60, 0x5F, 0xD5, 0x10, 0x00, 0x00, 0x00, 0x00, 0x61, 0x7D, 0xEA, 0x90, 0x00, 0x00, 0x00, 0x00, +0x62, 0x3F, 0xB7, 0x10, 0x00, 0x00, 0x00, 0x00, 0x63, 0x5D, 0xCC, 0x90, 0x00, 0x00, 0x00, 0x00, +0x64, 0x1F, 0x99, 0x10, 0x00, 0x00, 0x00, 0x00, 0x66, 0x08, 0xB5, 0x90, 0x00, 0x00, 0x00, 0x00, +0x67, 0x1D, 0x90, 0x90, 0x00, 0x00, 0x00, 0x00, 0x67, 0xE8, 0x97, 0x90, 0x00, 0x00, 0x00, 0x00, +0x68, 0xFD, 0x72, 0x90, 0x00, 0x00, 0x00, 0x00, 0x69, 0xC8, 0x79, 0x90, 0x00, 0x00, 0x00, 0x00, +0x6A, 0xDD, 0x54, 0x90, 0x00, 0x00, 0x00, 0x00, 0x6B, 0xA8, 0x5B, 0x90, 0x00, 0x00, 0x00, 0x00, +0x6C, 0xC6, 0x71, 0x10, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x88, 0x3D, 0x90, 0x00, 0x00, 0x00, 0x00, +0x6E, 0xA6, 0x53, 0x10, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x68, 0x1F, 0x90, 0x00, 0x00, 0x00, 0x00, +0x70, 0x86, 0x35, 0x10, 0x00, 0x00, 0x00, 0x00, 0x71, 0x51, 0x3C, 0x10, 0x00, 0x00, 0x00, 0x00, +0x72, 0x66, 0x17, 0x10, 0x00, 0x00, 0x00, 0x00, 0x73, 0x31, 0x1E, 0x10, 0x00, 0x00, 0x00, 0x00, +0x74, 0x45, 0xF9, 0x10, 0x00, 0x00, 0x00, 0x00, 0x75, 0x11, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, +0x76, 0x2F, 0x15, 0x90, 0x00, 0x00, 0x00, 0x00, 0x76, 0xF0, 0xE2, 0x10, 0x00, 0x00, 0x00, 0x00, +0x78, 0x0E, 0xF7, 0x90, 0x00, 0x00, 0x00, 0x00, 0x78, 0xD0, 0xC4, 0x10, 0x00, 0x00, 0x00, 0x00, +0x79, 0xEE, 0xD9, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7A, 0xB0, 0xA6, 0x10, 0x00, 0x00, 0x00, 0x00, +0x7B, 0xCE, 0xBB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x99, 0xC2, 0x90, 0x00, 0x00, 0x00, 0x00, +0x7D, 0xAE, 0x9D, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x79, 0xA4, 0x90, 0x00, 0x00, 0x00, 0x00, +0x7F, 0x8E, 0x7F, 0x90, 0x01, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0xFF, 0xFF, 0xCF, 0x80, 0x00, 0x00, 0xFF, 0xFF, +0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xD5, 0xD0, 0x00, 0x04, 0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, +0xFF, 0xFF, 0xE3, 0xE0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x08, 0xFF, 0xFF, 0xF1, 0xF0, +0x01, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x2D, 0x30, +0x31, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, +0x0A, 0x3C, 0x2D, 0x30, 0x32, 0x3E, 0x32, 0x3C, 0x2D, 0x30, 0x31, 0x3E, 0x2C, 0x4D, 0x33, 0x2E, +0x35, 0x2E, 0x30, 0x2F, 0x2D, 0x31, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x30, +0x0A, 0x00, 0xEB, 0x43, 0xDD, 0x00, 0xC3, 0xB8, 0x2A, 0x00, 0x00, 0x00, 0x11, 0x6D, 0x6F, 0x73, +0x74, 0x20, 0x6F, 0x66, 0x20, 0x47, 0x72, 0x65, 0x65, 0x6E, 0x6C, 0x61, 0x6E, 0x64, /* America/Ojinaga */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x4D, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -38866,8 +38952,8 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { /* America/Scoresbysund */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x47, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x9B, 0x80, 0x4C, 0x18, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x9B, 0x80, 0x4C, 0x18, 0x13, 0x4D, 0x6E, 0x40, 0x14, 0x34, 0x24, 0xC0, 0x15, 0x23, 0xF9, 0xA0, 0x16, 0x13, 0xDC, 0x90, 0x17, 0x03, 0xCD, 0x90, 0x17, 0xF3, 0xBE, 0x90, 0x18, 0xE3, 0xAF, 0x90, 0x19, 0xD3, 0xA0, 0x90, 0x1A, 0xC3, 0x91, 0x90, 0x1B, 0xBC, 0xBD, 0x10, 0x1C, 0xAC, 0xAE, 0x10, 0x1D, 0x9C, 0x9F, 0x10, @@ -38902,16 +38988,17 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, -0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, -0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, -0x04, 0x05, 0x04, 0x05, 0x04, 0xFF, 0xFF, 0xEB, 0x68, 0x00, 0x00, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, +0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, +0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, +0x08, 0x07, 0x08, 0x07, 0x08, 0xFF, 0xFF, 0xEB, 0x68, 0x00, 0x00, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x04, 0xFF, 0xFF, 0xF1, 0xF0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x04, 0xFF, 0xFF, 0xF1, -0xF0, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0C, 0x4C, -0x4D, 0x54, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x2D, 0x30, 0x31, 0x00, 0x2B, 0x30, 0x30, 0x00, 0x00, -0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x54, 0x5A, 0x69, -0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x75, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0x9B, 0x80, 0x4C, +0xF0, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0C, 0xFF, +0xFF, 0xF1, 0xF0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x2D, +0x30, 0x32, 0x00, 0x2D, 0x30, 0x31, 0x00, 0x2B, 0x30, 0x30, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, +0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x54, 0x5A, 0x69, +0x66, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x75, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0x9B, 0x80, 0x4C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x13, 0x4D, 0x6E, 0x40, 0x00, 0x00, 0x00, 0x00, 0x14, 0x34, 0x24, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x15, 0x23, 0xF9, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x16, 0x13, 0xDC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x17, 0x03, 0xCD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x17, 0xF3, 0xBE, @@ -38975,18 +39062,19 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, -0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, -0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, -0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0xFF, 0xFF, 0xEB, 0x68, 0x00, 0x00, 0xFF, 0xFF, 0xE3, 0xE0, +0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, +0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, +0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0xFF, 0xFF, 0xEB, 0x68, 0x00, 0x00, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x04, 0xFF, 0xFF, 0xF1, 0xF0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x04, 0xFF, 0xFF, 0xF1, 0xF0, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0C, -0x4C, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x32, 0x00, 0x2D, 0x30, 0x31, 0x00, 0x2B, 0x30, 0x30, 0x00, -0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x0A, 0x3C, -0x2D, 0x30, 0x31, 0x3E, 0x31, 0x3C, 0x2B, 0x30, 0x30, 0x3E, 0x2C, 0x4D, 0x33, 0x2E, 0x35, 0x2E, -0x30, 0x2F, 0x30, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x31, 0x0A, 0x00, 0xF4, -0xE0, 0xCD, 0x00, 0xF1, 0x23, 0xC5, 0x00, 0x00, 0x00, 0x1D, 0x53, 0x63, 0x6F, 0x72, 0x65, 0x73, -0x62, 0x79, 0x73, 0x75, 0x6E, 0x64, 0x2F, 0x49, 0x74, 0x74, 0x6F, 0x71, 0x71, 0x6F, 0x72, 0x74, -0x6F, 0x6F, 0x72, 0x6D, 0x69, 0x69, 0x74, +0xFF, 0xFF, 0xF1, 0xF0, 0x01, 0x08, 0xFF, 0xFF, 0xE3, 0xE0, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, +0x2D, 0x30, 0x32, 0x00, 0x2D, 0x30, 0x31, 0x00, 0x2B, 0x30, 0x30, 0x00, 0x00, 0x00, 0x01, 0x01, +0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x0A, 0x3C, +0x2D, 0x30, 0x32, 0x3E, 0x32, 0x3C, 0x2D, 0x30, 0x31, 0x3E, 0x2C, 0x4D, 0x33, 0x2E, 0x35, 0x2E, +0x30, 0x2F, 0x2D, 0x31, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x35, 0x2E, 0x30, 0x2F, 0x30, 0x0A, 0x00, +0xF4, 0xE0, 0xCD, 0x00, 0xF1, 0x23, 0xC5, 0x00, 0x00, 0x00, 0x1D, 0x53, 0x63, 0x6F, 0x72, 0x65, +0x73, 0x62, 0x79, 0x73, 0x75, 0x6E, 0x64, 0x2F, 0x49, 0x74, 0x74, 0x6F, 0x71, 0x71, 0x6F, 0x72, +0x74, 0x6F, 0x6F, 0x72, 0x6D, 0x69, 0x69, 0x74, /* America/Shiprock */ 0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -39544,9 +39632,8 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x4E, 0x53, 0x54, 0x33, 0x3A, 0x33, 0x30, 0x4E, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xD1, 0xE8, 0xFA, 0x00, 0xC2, 0x38, 0x0D, 0x00, -0x00, 0x00, 0x22, 0x4E, 0x65, 0x77, 0x66, 0x6F, 0x75, 0x6E, 0x64, 0x6C, 0x61, 0x6E, 0x64, 0x3B, -0x20, 0x4C, 0x61, 0x62, 0x72, 0x61, 0x64, 0x6F, 0x72, 0x20, 0x28, 0x73, 0x6F, 0x75, 0x74, 0x68, -0x65, 0x61, 0x73, 0x74, 0x29, +0x00, 0x00, 0x1B, 0x4E, 0x65, 0x77, 0x66, 0x6F, 0x75, 0x6E, 0x64, 0x6C, 0x61, 0x6E, 0x64, 0x2C, +0x20, 0x4C, 0x61, 0x62, 0x72, 0x61, 0x64, 0x6F, 0x72, 0x20, 0x28, 0x53, 0x45, 0x29, /* America/St_Kitts */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x4B, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -40355,8 +40442,9 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x45, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0A, 0x45, 0x53, 0x54, 0x35, 0x45, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xCB, 0xEF, 0x08, 0x00, 0x99, 0x87, 0x62, 0x00, 0x00, -0x00, 0x1D, 0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x2D, 0x20, 0x4F, 0x4E, 0x2C, 0x20, -0x51, 0x43, 0x20, 0x28, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x61, 0x72, 0x65, 0x61, 0x73, 0x29, +0x00, 0x1E, 0x45, 0x61, 0x73, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x2D, 0x20, 0x4F, 0x4E, 0x20, 0x26, +0x20, 0x51, 0x43, 0x20, 0x28, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x61, 0x72, 0x65, 0x61, 0x73, 0x29, + /* America/Tortola */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x56, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -40863,7 +40951,7 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x36, 0x43, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xD5, 0x71, 0xED, 0x00, 0x7E, 0x6B, 0x47, 0x00, 0x00, 0x00, 0x1D, 0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, 0x2D, 0x20, 0x4F, 0x4E, 0x20, 0x28, 0x77, 0x65, -0x73, 0x74, 0x29, 0x3B, 0x20, 0x4D, 0x61, 0x6E, 0x69, 0x74, 0x6F, 0x62, 0x61, +0x73, 0x74, 0x29, 0x2C, 0x20, 0x4D, 0x61, 0x6E, 0x69, 0x74, 0x6F, 0x62, 0x61, /* America/Yakutat */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -41164,30 +41252,33 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { /* Antarctica/Casey */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x41, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0C, 0xFE, 0x1E, 0xCC, 0x80, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0C, 0xFE, 0x1E, 0xCC, 0x80, 0x4A, 0xDA, 0x06, 0x20, 0x4B, 0x8F, 0xCA, 0xF0, 0x4E, 0xA9, 0x9C, 0x20, 0x4F, 0x43, 0xCD, 0x90, 0x58, 0x0A, 0x3B, 0x80, 0x5A, 0xA4, 0x0F, 0x10, 0x5B, 0xB9, 0x14, 0x40, 0x5C, 0x8D, 0x1D, 0x80, -0x5D, 0x96, 0x45, 0x30, 0x5E, 0x63, 0xC5, 0x00, 0x5F, 0x78, 0xA0, 0x3C, 0x01, 0x02, 0x01, 0x02, -0x03, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x70, 0x80, 0x00, 0x04, 0x00, 0x00, 0x9A, 0xB0, 0x00, 0x08, 0x00, 0x00, 0x70, 0x80, 0x00, 0x04, -0x00, 0x00, 0x9A, 0xB0, 0x00, 0x08, 0x2D, 0x30, 0x30, 0x00, 0x2B, 0x30, 0x38, 0x00, 0x2B, 0x31, -0x31, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x54, 0x5A, 0x69, 0x66, -0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, -0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x1E, 0xCC, 0x80, -0x00, 0x00, 0x00, 0x00, 0x4A, 0xDA, 0x06, 0x20, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x8F, 0xCA, 0xF0, -0x00, 0x00, 0x00, 0x00, 0x4E, 0xA9, 0x9C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x43, 0xCD, 0x90, -0x00, 0x00, 0x00, 0x00, 0x58, 0x0A, 0x3B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xA4, 0x0F, 0x10, -0x00, 0x00, 0x00, 0x00, 0x5B, 0xB9, 0x14, 0x40, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x8D, 0x1D, 0x80, -0x00, 0x00, 0x00, 0x00, 0x5D, 0x96, 0x45, 0x30, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x63, 0xC5, 0x00, -0x00, 0x00, 0x00, 0x00, 0x5F, 0x78, 0xA0, 0x3C, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x01, 0x02, -0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x80, 0x00, 0x04, -0x00, 0x00, 0x9A, 0xB0, 0x00, 0x08, 0x00, 0x00, 0x70, 0x80, 0x00, 0x04, 0x00, 0x00, 0x9A, 0xB0, -0x00, 0x08, 0x2D, 0x30, 0x30, 0x00, 0x2B, 0x30, 0x38, 0x00, 0x2B, 0x31, 0x31, 0x00, 0x00, 0x00, -0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0A, 0x3C, 0x2B, 0x31, 0x31, 0x3E, 0x2D, 0x31, -0x31, 0x0A, 0x00, 0x24, 0x30, 0x52, 0x01, 0xBB, 0x4B, 0x12, 0x00, 0x00, 0x00, 0x05, 0x43, 0x61, -0x73, 0x65, 0x79, +0x5D, 0x96, 0x45, 0x30, 0x5E, 0x63, 0xC5, 0x00, 0x5F, 0x78, 0xA0, 0x3C, 0x60, 0x4C, 0xB7, 0x50, +0x61, 0x58, 0x82, 0x3C, 0x62, 0x2C, 0x99, 0x50, 0x63, 0x38, 0x64, 0x3C, 0x64, 0x08, 0xB1, 0x00, +0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x80, 0x00, 0x04, 0x00, 0x00, 0x9A, +0xB0, 0x00, 0x08, 0x00, 0x00, 0x70, 0x80, 0x00, 0x04, 0x2D, 0x30, 0x30, 0x00, 0x2B, 0x30, 0x38, +0x00, 0x2B, 0x31, 0x31, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x54, 0x5A, 0x69, +0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x1E, 0xCC, +0x80, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xDA, 0x06, 0x20, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x8F, 0xCA, +0xF0, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xA9, 0x9C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x43, 0xCD, +0x90, 0x00, 0x00, 0x00, 0x00, 0x58, 0x0A, 0x3B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xA4, 0x0F, +0x10, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xB9, 0x14, 0x40, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x8D, 0x1D, +0x80, 0x00, 0x00, 0x00, 0x00, 0x5D, 0x96, 0x45, 0x30, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x63, 0xC5, +0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x78, 0xA0, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x60, 0x4C, 0xB7, +0x50, 0x00, 0x00, 0x00, 0x00, 0x61, 0x58, 0x82, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x62, 0x2C, 0x99, +0x50, 0x00, 0x00, 0x00, 0x00, 0x63, 0x38, 0x64, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x64, 0x08, 0xB1, +0x00, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x80, 0x00, 0x04, 0x00, 0x00, +0x9A, 0xB0, 0x00, 0x08, 0x00, 0x00, 0x70, 0x80, 0x00, 0x04, 0x2D, 0x30, 0x30, 0x00, 0x2B, 0x30, +0x38, 0x00, 0x2B, 0x31, 0x31, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x0A, 0x3C, +0x2B, 0x30, 0x38, 0x3E, 0x2D, 0x38, 0x0A, 0x00, 0x24, 0x30, 0x52, 0x01, 0xBB, 0x4B, 0x12, 0x00, +0x00, 0x00, 0x05, 0x43, 0x61, 0x73, 0x65, 0x79, /* Antarctica/Davis */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x41, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -41868,15 +41959,19 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { /* Antarctica/Vostok */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x41, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0xE9, 0x58, 0x89, 0x80, -0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x60, 0x00, 0x04, 0x2D, 0x30, 0x30, -0x00, 0x2B, 0x30, 0x36, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0xE9, 0x58, 0x89, 0x80, +0x2D, 0x4D, 0x39, 0x10, 0x2E, 0xB5, 0x85, 0x00, 0x65, 0x7F, 0x45, 0x30, 0x01, 0x00, 0x01, 0x02, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x70, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50, +0x00, 0x08, 0x2D, 0x30, 0x30, 0x00, 0x2B, 0x30, 0x37, 0x00, 0x2B, 0x30, 0x35, 0x00, 0x54, 0x5A, +0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, -0x08, 0xFF, 0xFF, 0xFF, 0xFF, 0xE9, 0x58, 0x89, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x54, 0x60, 0x00, 0x04, 0x2D, 0x30, 0x30, 0x00, 0x2B, 0x30, 0x36, 0x00, 0x0A, 0x3C, -0x2B, 0x30, 0x36, 0x3E, 0x2D, 0x36, 0x0A, 0x00, 0x11, 0xB3, 0x3F, 0x01, 0xB5, 0xC6, 0x4F, 0x00, -0x00, 0x00, 0x06, 0x56, 0x6F, 0x73, 0x74, 0x6F, 0x6B, +0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0xFF, 0xFF, 0xFF, 0xFF, 0xE9, 0x58, +0x89, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x4D, 0x39, 0x10, 0x00, 0x00, 0x00, 0x00, 0x2E, 0xB5, +0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0x7F, 0x45, 0x30, 0x01, 0x00, 0x01, 0x02, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x70, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50, 0x00, 0x08, +0x2D, 0x30, 0x30, 0x00, 0x2B, 0x30, 0x37, 0x00, 0x2B, 0x30, 0x35, 0x00, 0x0A, 0x3C, 0x2B, 0x30, +0x35, 0x3E, 0x2D, 0x35, 0x0A, 0x00, 0x11, 0xB3, 0x3F, 0x01, 0xB5, 0xC6, 0x4F, 0x00, 0x00, 0x00, +0x06, 0x56, 0x6F, 0x73, 0x74, 0x6F, 0x6B, /* Arctic/Longyearbyen */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x53, 0x4A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -43717,7 +43812,7 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x01, 0x30, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x15, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, +0x00, 0x01, 0x36, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x15, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0xBD, 0x4A, 0xB0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x59, 0xCF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0xFA, 0xA6, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xC9, 0x38, 0x9C, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xCC, 0xE5, 0xEB, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xCD, 0xAC, 0xFE, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xCE, @@ -43844,9 +43939,12 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x8B, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBD, 0x84, 0xE3, 0x70, 0x00, 0x00, 0x00, 0x00, 0xBE, 0x6B, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBF, 0x52, 0x50, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x4B, 0x8A, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x28, 0xF7, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xC1, -0x57, 0x2A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC2, 0xFF, 0x9F, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC3, -0x2D, 0xD2, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0xCD, 0x0C, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC5, -0x04, 0x79, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xA3, 0xB3, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xC6, +0x57, 0x2A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x69, 0x91, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC2, +0x2B, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0xFF, 0x9F, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC3, +0x2D, 0xD2, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x49, 0x73, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC4, +0x0B, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0xCD, 0x0C, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC5, +0x04, 0x79, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC5, 0x29, 0x55, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC5, +0xF4, 0x6A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xA3, 0xB3, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xD1, 0xE6, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC7, 0x09, 0x37, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC7, 0xD4, 0x4C, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x71, 0x20, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xC8, 0xA8, 0x8E, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0xE9, 0x19, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC9, @@ -43888,17 +43986,17 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, -0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x00, 0x00, 0x20, 0x50, 0x00, -0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x1C, -0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, -0x00, 0x1C, 0x20, 0x00, 0x11, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, -0x11, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, -0x45, 0x45, 0x54, 0x00, 0x49, 0x44, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x00, 0x01, 0x01, 0x00, -0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x0A, 0x45, 0x45, 0x54, 0x2D, 0x32, 0x45, 0x45, 0x53, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x34, 0x2E, -0x34, 0x2F, 0x35, 0x30, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x0A, -0x00, 0xB9, 0x64, 0xF0, 0x01, 0x47, 0x40, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x47, 0x61, 0x7A, 0x61, -0x20, 0x53, 0x74, 0x72, 0x69, 0x70, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, +0x03, 0x00, 0x00, 0x20, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, +0x20, 0x00, 0x09, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, +0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x11, 0x00, 0x00, 0x2A, 0x30, 0x01, +0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x11, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x4C, 0x4D, 0x54, +0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x49, 0x44, 0x54, 0x00, 0x49, 0x53, +0x54, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x45, 0x45, 0x54, 0x2D, 0x32, 0x45, 0x45, 0x53, 0x54, +0x2C, 0x4D, 0x33, 0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x34, +0x2E, 0x34, 0x2F, 0x35, 0x30, 0x0A, 0x00, 0xB9, 0x64, 0xF0, 0x01, 0x47, 0x40, 0x0A, 0x00, 0x00, +0x00, 0x0A, 0x47, 0x61, 0x7A, 0x61, 0x20, 0x53, 0x74, 0x72, 0x69, 0x70, /* Asia/Harbin */ 0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -43997,7 +44095,7 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x00, 0x49, 0x53, 0x54, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x32, 0x00, 0x00, 0x00, +0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x38, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x15, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0xBD, 0x4A, 0x19, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x59, 0xCF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0xFA, 0xA6, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xC9, 0x38, 0x9C, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xCC, 0xE5, 0xEB, 0x80, 0xFF, 0xFF, 0xFF, @@ -44126,8 +44224,11 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x00, 0xBD, 0x84, 0xE3, 0x70, 0x00, 0x00, 0x00, 0x00, 0xBE, 0x6B, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBF, 0x52, 0x50, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x4B, 0x8A, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x28, 0xF7, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x57, 0x2A, 0x80, 0x00, 0x00, 0x00, +0x00, 0xC1, 0x69, 0x91, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC2, 0x2B, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0xFF, 0x9F, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x2D, 0xD2, 0x00, 0x00, 0x00, 0x00, +0x00, 0xC3, 0x49, 0x73, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x0B, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0xCD, 0x0C, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC5, 0x04, 0x79, 0x80, 0x00, 0x00, 0x00, +0x00, 0xC5, 0x29, 0x55, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC5, 0xF4, 0x6A, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xA3, 0xB3, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xD1, 0xE6, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC7, 0x09, 0x37, 0x70, 0x00, 0x00, 0x00, 0x00, 0xC7, 0xD4, 0x4C, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x71, 0x20, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xC8, 0xA8, 0x8E, 0x00, 0x00, 0x00, 0x00, @@ -44170,17 +44271,17 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, -0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x00, 0x00, 0x20, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x2A, -0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, -0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, -0x11, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x11, 0x00, 0x00, 0x1C, -0x20, 0x00, 0x09, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, -0x49, 0x44, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, -0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x45, 0x45, 0x54, -0x2D, 0x32, 0x45, 0x45, 0x53, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, -0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x0A, 0x00, 0xB9, 0x71, 0xF5, -0x01, 0x48, 0x35, 0x7C, 0x00, 0x00, 0x00, 0x09, 0x57, 0x65, 0x73, 0x74, 0x20, 0x42, 0x61, 0x6E, -0x6B, +0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x00, 0x00, 0x20, +0xE7, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, +0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x2A, 0x30, 0x01, +0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x11, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, 0x00, 0x1C, +0x20, 0x00, 0x11, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, +0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x49, 0x44, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x00, 0x01, +0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x0A, 0x45, 0x45, 0x54, 0x2D, 0x32, 0x45, 0x45, 0x53, 0x54, 0x2C, 0x4D, 0x33, 0x2E, +0x34, 0x2E, 0x34, 0x2F, 0x35, 0x30, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x34, 0x2E, 0x34, 0x2F, 0x35, +0x30, 0x0A, 0x00, 0xB9, 0x71, 0xF5, 0x01, 0x48, 0x35, 0x7C, 0x00, 0x00, 0x00, 0x09, 0x57, 0x65, +0x73, 0x74, 0x20, 0x42, 0x61, 0x6E, 0x6B, /* Asia/Ho_Chi_Minh */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x56, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -44598,7 +44699,7 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x30, 0x00, 0x57, 0x49, 0x54, 0x00, 0x0A, 0x57, 0x49, 0x54, 0x2D, 0x39, 0x0A, 0x00, 0x85, 0x76, 0xAA, 0x01, 0xE9, 0x59, 0x70, 0x00, 0x00, 0x00, 0x36, 0x4E, 0x65, 0x77, 0x20, 0x47, 0x75, 0x69, 0x6E, 0x65, 0x61, 0x20, 0x28, 0x57, 0x65, 0x73, 0x74, 0x20, 0x50, 0x61, 0x70, 0x75, 0x61, 0x20, -0x2F, 0x20, 0x49, 0x72, 0x69, 0x61, 0x6E, 0x20, 0x4A, 0x61, 0x79, 0x61, 0x29, 0x3B, 0x20, 0x4D, +0x2F, 0x20, 0x49, 0x72, 0x69, 0x61, 0x6E, 0x20, 0x4A, 0x61, 0x79, 0x61, 0x29, 0x2C, 0x20, 0x4D, 0x61, 0x6C, 0x75, 0x6B, 0x75, 0x73, 0x2F, 0x4D, 0x6F, 0x6C, 0x75, 0x63, 0x63, 0x61, 0x73, /* Asia/Jerusalem */ @@ -45435,10 +45536,10 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x10, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x4D, 0x54, 0x00, 0x2B, 0x30, 0x38, 0x00, 0x2B, 0x30, 0x39, 0x00, 0x57, 0x49, 0x54, 0x41, 0x00, 0x0A, 0x57, 0x49, 0x54, 0x41, 0x2D, 0x38, 0x0A, 0x00, 0x81, 0x85, 0x8D, 0x01, 0xC8, 0xD9, 0x1F, 0x00, 0x00, 0x00, 0x49, 0x42, 0x6F, 0x72, 0x6E, 0x65, 0x6F, -0x20, 0x28, 0x65, 0x61, 0x73, 0x74, 0x2C, 0x20, 0x73, 0x6F, 0x75, 0x74, 0x68, 0x29, 0x3B, 0x20, +0x20, 0x28, 0x65, 0x61, 0x73, 0x74, 0x2C, 0x20, 0x73, 0x6F, 0x75, 0x74, 0x68, 0x29, 0x2C, 0x20, 0x53, 0x75, 0x6C, 0x61, 0x77, 0x65, 0x73, 0x69, 0x2F, 0x43, 0x65, 0x6C, 0x65, 0x62, 0x65, 0x73, 0x2C, 0x20, 0x42, 0x61, 0x6C, 0x69, 0x2C, 0x20, 0x4E, 0x75, 0x73, 0x61, 0x20, 0x54, 0x65, 0x6E, -0x67, 0x61, 0x72, 0x72, 0x61, 0x3B, 0x20, 0x54, 0x69, 0x6D, 0x6F, 0x72, 0x20, 0x28, 0x77, 0x65, +0x67, 0x61, 0x72, 0x72, 0x61, 0x2C, 0x20, 0x54, 0x69, 0x6D, 0x6F, 0x72, 0x20, 0x28, 0x77, 0x65, 0x73, 0x74, 0x29, /* Asia/Manila */ @@ -46485,7 +46586,7 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { 0x00, 0x2B, 0x31, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0A, 0x3C, 0x2B, 0x31, 0x31, 0x3E, 0x2D, 0x31, 0x31, 0x0A, 0x00, 0xF0, 0x46, 0x6A, 0x01, 0xFD, 0x36, 0x12, 0x00, 0x00, 0x00, 0x1E, 0x4D, 0x53, 0x4B, 0x2B, 0x30, 0x38, 0x20, 0x2D, 0x20, 0x53, -0x61, 0x6B, 0x68, 0x61, 0x20, 0x28, 0x45, 0x29, 0x3B, 0x20, 0x4E, 0x20, 0x4B, 0x75, 0x72, 0x69, +0x61, 0x6B, 0x68, 0x61, 0x20, 0x28, 0x45, 0x29, 0x2C, 0x20, 0x4E, 0x20, 0x4B, 0x75, 0x72, 0x69, 0x6C, 0x20, 0x49, 0x73, /* Asia/Taipei */ @@ -69999,4 +70100,4 @@ const unsigned char timelib_timezone_db_data_builtin[703933] = { }; #endif -const timelib_tzdb timezonedb_builtin = { "2023.3", 597, timezonedb_idx_builtin, timelib_timezone_db_data_builtin }; +const timelib_tzdb timezonedb_builtin = { "2023.4", 597, timezonedb_idx_builtin, timelib_timezone_db_data_builtin }; From c7816bf730b3362148ba6e2029eecbbfebd5e527 Mon Sep 17 00:00:00 2001 From: Derick Rethans Date: Tue, 2 Jan 2024 11:07:12 +0000 Subject: [PATCH 57/59] tzdata 2023d adds an extra transition for Europe/London --- ext/date/tests/bug80963.phpt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ext/date/tests/bug80963.phpt b/ext/date/tests/bug80963.phpt index 8ee645abdeaee..c7f02a7397fcf 100644 --- a/ext/date/tests/bug80963.phpt +++ b/ext/date/tests/bug80963.phpt @@ -13,8 +13,8 @@ foreach ($tzids as $tzid) var_dump(sizeof($t), end($t)); } ?> ---EXPECT-- -int(243) +--EXPECTF-- +int(24%d) array(5) { ["ts"]=> int(2140045200) From 5d79c1b74d32a4fcce487c33edf8158f54f86c6d Mon Sep 17 00:00:00 2001 From: Sergey Panteleev Date: Tue, 2 Jan 2024 16:42:14 +0300 Subject: [PATCH 58/59] PHP-8.2 is now for PHP 8.2.16-dev --- NEWS | 5 ++++- Zend/zend.h | 2 +- configure.ac | 2 +- main/php_version.h | 6 +++--- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/NEWS b/NEWS index aa5e4fe7188aa..3a6f1b7ce0db9 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,9 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| -?? ??? ????, PHP 8.2.15 +?? ??? ????, PHP 8.2.16 + + +18 Jan 2024, PHP 8.2.15 - Core: . Fixed bug GH-12953 (false positive SSA integrity verification failed when diff --git a/Zend/zend.h b/Zend/zend.h index 893489cad827e..8e60a2de99aab 100644 --- a/Zend/zend.h +++ b/Zend/zend.h @@ -20,7 +20,7 @@ #ifndef ZEND_H #define ZEND_H -#define ZEND_VERSION "4.2.15-dev" +#define ZEND_VERSION "4.2.16-dev" #define ZEND_ENGINE_3 diff --git a/configure.ac b/configure.ac index c1f69044fe064..53e4ee70cad9f 100644 --- a/configure.ac +++ b/configure.ac @@ -17,7 +17,7 @@ dnl Basic autoconf initialization, generation of config.nice. dnl ---------------------------------------------------------------------------- AC_PREREQ([2.68]) -AC_INIT([PHP],[8.2.15-dev],[https://github.com/php/php-src/issues],[php],[https://www.php.net]) +AC_INIT([PHP],[8.2.16-dev],[https://github.com/php/php-src/issues],[php],[https://www.php.net]) AC_CONFIG_SRCDIR([main/php_version.h]) AC_CONFIG_AUX_DIR([build]) AC_PRESERVE_HELP_ORDER diff --git a/main/php_version.h b/main/php_version.h index 5f665392878c1..c9a922dae2608 100644 --- a/main/php_version.h +++ b/main/php_version.h @@ -2,7 +2,7 @@ /* edit configure.ac to change version number */ #define PHP_MAJOR_VERSION 8 #define PHP_MINOR_VERSION 2 -#define PHP_RELEASE_VERSION 15 +#define PHP_RELEASE_VERSION 16 #define PHP_EXTRA_VERSION "-dev" -#define PHP_VERSION "8.2.15-dev" -#define PHP_VERSION_ID 80215 +#define PHP_VERSION "8.2.16-dev" +#define PHP_VERSION_ID 80216 From 7ea7406d2d347e7444e2f67072a9cb993c005f25 Mon Sep 17 00:00:00 2001 From: Jakub Zelenka Date: Tue, 16 Jan 2024 13:45:34 +0000 Subject: [PATCH 59/59] Update versions for PHP 8.3.2 --- NEWS | 2 +- Zend/zend.h | 2 +- configure.ac | 2 +- main/php_version.h | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/NEWS b/NEWS index 70829cbc981a5..97b7205430c8f 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,6 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| -?? ??? ????, PHP 8.3.2 +18 Jan 2024, PHP 8.3.2 - Core: . Fixed bug GH-12953 (false positive SSA integrity verification failed when diff --git a/Zend/zend.h b/Zend/zend.h index 694e419b114f1..3b6d2a92c2d2e 100644 --- a/Zend/zend.h +++ b/Zend/zend.h @@ -20,7 +20,7 @@ #ifndef ZEND_H #define ZEND_H -#define ZEND_VERSION "4.3.2-dev" +#define ZEND_VERSION "4.3.2" #define ZEND_ENGINE_3 diff --git a/configure.ac b/configure.ac index c2c15305910f5..c6411f2ff11df 100644 --- a/configure.ac +++ b/configure.ac @@ -17,7 +17,7 @@ dnl Basic autoconf initialization, generation of config.nice. dnl ---------------------------------------------------------------------------- AC_PREREQ([2.68]) -AC_INIT([PHP],[8.3.2-dev],[https://github.com/php/php-src/issues],[php],[https://www.php.net]) +AC_INIT([PHP],[8.3.2],[https://github.com/php/php-src/issues],[php],[https://www.php.net]) AC_CONFIG_SRCDIR([main/php_version.h]) AC_CONFIG_AUX_DIR([build]) AC_PRESERVE_HELP_ORDER diff --git a/main/php_version.h b/main/php_version.h index f6633fe34519b..30cf94f048dbe 100644 --- a/main/php_version.h +++ b/main/php_version.h @@ -3,6 +3,6 @@ #define PHP_MAJOR_VERSION 8 #define PHP_MINOR_VERSION 3 #define PHP_RELEASE_VERSION 2 -#define PHP_EXTRA_VERSION "-dev" -#define PHP_VERSION "8.3.2-dev" +#define PHP_EXTRA_VERSION "" +#define PHP_VERSION "8.3.2" #define PHP_VERSION_ID 80302