Version in base suite: 8.2.7-1~deb12u1 Base version: php8.2_8.2.7-1~deb12u1 Target version: php8.2_8.2.18-1~deb12u1 Base file: /srv/ftp-master.debian.org/ftp/pool/main/p/php8.2/php8.2_8.2.7-1~deb12u1.dsc Target file: /srv/ftp-master.debian.org/policy/pool/main/p/php8.2/php8.2_8.2.18-1~deb12u1.dsc /srv/release.debian.org/tmp/ZDJJBHbYgN/php8.2-8.2.18/ext/fileinfo/tests/bug-gh11891.svg |binary /srv/release.debian.org/tmp/ZDJJBHbYgN/php8.2-8.2.18/ext/fileinfo/tests/magic\347\247\201\343\201\257\343\202\254\343\203\251\343\202\271\343\202\222\351\243\237\343\201\271\343\202\211\343\202\214\343\201\276\343\201\231 | 12 /srv/release.debian.org/tmp/ZDJJBHbYgN/php8.2-8.2.18/ext/fileinfo/tests/resources/test.xz |binary /srv/release.debian.org/tmp/ZDJJBHbYgN/php8.2-8.2.18/ext/gd/tests/gh10614.png |binary /srv/release.debian.org/tmp/ZDJJBHbYgN/php8.2-8.2.18/ext/gd/tests/gh13082.gdf |binary /srv/release.debian.org/tmp/ZDJJBHbYgN/php8.2-8.2.18/ext/phar/tests/zip/files/gh13037.zip |binary /srv/release.debian.org/tmp/ZDJJBHbYgN/php8.2-8.2.18/ext/standard/tests/image/bug75708.jpg |binary php8.2-8.2.18/.appveyor.yml | 55 php8.2-8.2.18/.circleci/config.yml | 199 php8.2-8.2.18/.cirrus.yml | 201 php8.2-8.2.18/.gdbinit | 36 php8.2-8.2.18/.github/CODEOWNERS | 62 php8.2-8.2.18/.github/actions/apt-x64/action.yml | 12 php8.2-8.2.18/.github/actions/brew/action.yml | 6 php8.2-8.2.18/.github/actions/configure-x64/action.yml | 4 php8.2-8.2.18/.github/actions/install-linux-x32/action.yml | 2 php8.2-8.2.18/.github/actions/install-linux/action.yml | 4 php8.2-8.2.18/.github/actions/setup-caddy/action.yml | 13 php8.2-8.2.18/.github/actions/setup-oracle/action.yml | 17 php8.2-8.2.18/.github/actions/setup-windows/action.yml | 18 php8.2-8.2.18/.github/actions/setup-x64/action.yml | 2 php8.2-8.2.18/.github/actions/test-libmysqlclient/action.yml | 1 php8.2-8.2.18/.github/actions/test-linux/action.yml | 12 php8.2-8.2.18/.github/actions/test-macos/action.yml | 9 php8.2-8.2.18/.github/nightly_matrix.php | 21 php8.2-8.2.18/.github/scripts/setup-slapd.sh | 10 php8.2-8.2.18/.github/scripts/windows/build.bat | 2 php8.2-8.2.18/.github/scripts/windows/build_task.bat | 20 php8.2-8.2.18/.github/scripts/windows/test.bat | 2 php8.2-8.2.18/.github/scripts/windows/test_task.bat | 28 php8.2-8.2.18/.github/workflows/nightly.yml | 76 php8.2-8.2.18/.github/workflows/push.yml | 117 php8.2-8.2.18/.travis.yml | 2 php8.2-8.2.18/CONTRIBUTING.md | 1 php8.2-8.2.18/LICENSE | 2 php8.2-8.2.18/NEWS | 768 php8.2-8.2.18/README.md | 1 php8.2-8.2.18/TSRM/threads.m4 | 2 php8.2-8.2.18/UPGRADING | 2 php8.2-8.2.18/Zend/Optimizer/block_pass.c | 14 php8.2-8.2.18/Zend/Optimizer/optimize_func_calls.c | 23 php8.2-8.2.18/Zend/Optimizer/ssa_integrity.c | 40 php8.2-8.2.18/Zend/Optimizer/zend_dump.c | 37 php8.2-8.2.18/Zend/Optimizer/zend_func_info.c | 11 php8.2-8.2.18/Zend/Optimizer/zend_func_infos.h | 2 php8.2-8.2.18/Zend/Optimizer/zend_inference.c | 380 php8.2-8.2.18/Zend/Optimizer/zend_inference.h | 1 php8.2-8.2.18/Zend/Optimizer/zend_optimizer.c | 4 php8.2-8.2.18/Zend/Zend.m4 | 2 php8.2-8.2.18/Zend/tests/arginfo_zpp_mismatch.phpt | 1 php8.2-8.2.18/Zend/tests/arginfo_zpp_mismatch_strict.phpt | 1 php8.2-8.2.18/Zend/tests/array_merge_recursive_next_key_overflow.phpt | 25 php8.2-8.2.18/Zend/tests/array_multisort_exception.phpt | 13 php8.2-8.2.18/Zend/tests/fibers/negative_stack_size.phpt | 16 php8.2-8.2.18/Zend/tests/gc_047.phpt | 20 php8.2-8.2.18/Zend/tests/gh11580.phpt | 13 php8.2-8.2.18/Zend/tests/gh11735_1.phpt | 16 php8.2-8.2.18/Zend/tests/gh11735_2.phpt | 17 php8.2-8.2.18/Zend/tests/gh12073.phpt | 28 php8.2-8.2.18/Zend/tests/gh12102_1.phpt | 30 php8.2-8.2.18/Zend/tests/gh12102_2.phpt | 43 php8.2-8.2.18/Zend/tests/gh12102_3.phpt | 32 php8.2-8.2.18/Zend/tests/gh12366.inc | 7 php8.2-8.2.18/Zend/tests/gh12366.phpt | 16 php8.2-8.2.18/Zend/tests/gh12457.phpt | 33 php8.2-8.2.18/Zend/tests/gh12468_1.phpt | 18 php8.2-8.2.18/Zend/tests/gh12468_2.phpt | 19 php8.2-8.2.18/Zend/tests/gh13097_a.phpt | 15 php8.2-8.2.18/Zend/tests/gh13097_b.phpt | 18 php8.2-8.2.18/Zend/tests/gh13670_001.phpt | 48 php8.2-8.2.18/Zend/tests/gh13670_002.phpt | 71 php8.2-8.2.18/Zend/tests/gh13670_003.phpt | 73 php8.2-8.2.18/Zend/tests/oss_fuzz_54325.phpt | 19 php8.2-8.2.18/Zend/tests/oss_fuzz_60011_1.phpt | 8 php8.2-8.2.18/Zend/tests/oss_fuzz_60011_2.phpt | 8 php8.2-8.2.18/Zend/tests/oss_fuzz_60441.phpt | 11 php8.2-8.2.18/Zend/tests/oss_fuzz_64209.phpt | 13 php8.2-8.2.18/Zend/tests/traits/bugs/overridding-static-property-with-doc-block.phpt | 21 php8.2-8.2.18/Zend/tests/type_declarations/dnf_types/variance/invalid_invariance1_var.phpt | 18 php8.2-8.2.18/Zend/tests/type_declarations/union_types/internal_trait_use_typed_union.phpt | 39 php8.2-8.2.18/Zend/tests/weakrefs/gh13612.phpt | 39 php8.2-8.2.18/Zend/tests/zend_ini/gh11876.phpt | 51 php8.2-8.2.18/Zend/zend.c | 21 php8.2-8.2.18/Zend/zend.h | 3 php8.2-8.2.18/Zend/zend_API.c | 57 php8.2-8.2.18/Zend/zend_alloc.c | 13 php8.2-8.2.18/Zend/zend_atomic.h | 2 php8.2-8.2.18/Zend/zend_builtin_functions.c | 13 php8.2-8.2.18/Zend/zend_closures.c | 14 php8.2-8.2.18/Zend/zend_compile.c | 72 php8.2-8.2.18/Zend/zend_enum.c | 2 php8.2-8.2.18/Zend/zend_exceptions.c | 3 php8.2-8.2.18/Zend/zend_execute.c | 8 php8.2-8.2.18/Zend/zend_execute.h | 2 php8.2-8.2.18/Zend/zend_execute_API.c | 2 php8.2-8.2.18/Zend/zend_fibers.c | 6 php8.2-8.2.18/Zend/zend_gc.c | 51 php8.2-8.2.18/Zend/zend_gdb.c | 4 php8.2-8.2.18/Zend/zend_hash.c | 5 php8.2-8.2.18/Zend/zend_inheritance.c | 55 php8.2-8.2.18/Zend/zend_ini.c | 41 php8.2-8.2.18/Zend/zend_interfaces.c | 1 php8.2-8.2.18/Zend/zend_list.c | 1 php8.2-8.2.18/Zend/zend_max_execution_timer.c | 13 php8.2-8.2.18/Zend/zend_modules.h | 2 php8.2-8.2.18/Zend/zend_objects.c | 8 php8.2-8.2.18/Zend/zend_observer.c | 5 php8.2-8.2.18/Zend/zend_opcode.c | 14 php8.2-8.2.18/Zend/zend_operators.h | 2 php8.2-8.2.18/Zend/zend_signal.c | 3 php8.2-8.2.18/Zend/zend_string.c | 22 php8.2-8.2.18/Zend/zend_type_info.h | 8 php8.2-8.2.18/Zend/zend_vm_def.h | 19 php8.2-8.2.18/Zend/zend_vm_execute.h | 45 php8.2-8.2.18/build/Makefile.global | 4 php8.2-8.2.18/build/ax_gcc_func_attribute.m4 | 2 php8.2-8.2.18/build/gen_stub.php | 6 php8.2-8.2.18/build/libtool.m4 | 39 php8.2-8.2.18/build/ltmain.sh | 2 php8.2-8.2.18/build/php.m4 | 50 php8.2-8.2.18/configure | 2752 php8.2-8.2.18/configure.ac | 43 php8.2-8.2.18/debian/changelog | 12 php8.2-8.2.18/docs/release-process.md | 1 php8.2-8.2.18/ext/bz2/tests/bzerr_functions_on_invalid_stream.phpt | 4 php8.2-8.2.18/ext/com_dotnet/tests/gh8778.phpt | 3 php8.2-8.2.18/ext/ctype/ctype.c | 71 php8.2-8.2.18/ext/curl/interface.c | 2 php8.2-8.2.18/ext/curl/multi.c | 16 php8.2-8.2.18/ext/curl/tests/Caddyfile | 13 php8.2-8.2.18/ext/curl/tests/bug76675.phpt | 14 php8.2-8.2.18/ext/curl/tests/bug77535.phpt | 14 php8.2-8.2.18/ext/curl/tests/bug77946.phpt | 2 php8.2-8.2.18/ext/curl/tests/curl_basic_009.phpt | 3 php8.2-8.2.18/ext/curl/tests/curl_pushfunction.phpt | 63 php8.2-8.2.18/ext/curl/tests/curl_pushfunction_nonexistent_callback.phpt | 54 php8.2-8.2.18/ext/curl/tests/curl_setopt_CURLOPT_ACCEPT_ENCODING.phpt | 38 php8.2-8.2.18/ext/curl/tests/curl_setopt_ssl.phpt | 4 php8.2-8.2.18/ext/curl/tests/skipif-nocaddy.inc | 12 php8.2-8.2.18/ext/date/lib/parse_date.c |40089 ++++------ php8.2-8.2.18/ext/date/lib/parse_date.re | 59 php8.2-8.2.18/ext/date/lib/timelib.c | 24 php8.2-8.2.18/ext/date/lib/timelib.h | 8 php8.2-8.2.18/ext/date/lib/timezonedb.h | 3549 php8.2-8.2.18/ext/date/php_date.c | 56 php8.2-8.2.18/ext/date/tests/bug-gh11368.phpt | 33 php8.2-8.2.18/ext/date/tests/bug-gh11416.phpt | 70 php8.2-8.2.18/ext/date/tests/bug-gh11600.phpt | 21 php8.2-8.2.18/ext/date/tests/bug80963.phpt | 4 php8.2-8.2.18/ext/date/tests/gh10747-1.phpt | 2 php8.2-8.2.18/ext/date/tests/gh11455.phpt | 39 php8.2-8.2.18/ext/date/tests/gh11854.phpt | 19 php8.2-8.2.18/ext/dl_test/dl_test.c | 25 php8.2-8.2.18/ext/dl_test/tests/skip.inc | 4 php8.2-8.2.18/ext/dom/attr.c | 2 php8.2-8.2.18/ext/dom/cdatasection.c | 2 php8.2-8.2.18/ext/dom/characterdata.c | 15 php8.2-8.2.18/ext/dom/comment.c | 10 php8.2-8.2.18/ext/dom/document.c | 99 php8.2-8.2.18/ext/dom/documentfragment.c | 13 php8.2-8.2.18/ext/dom/element.c | 160 php8.2-8.2.18/ext/dom/entity.c | 20 php8.2-8.2.18/ext/dom/entityreference.c | 10 php8.2-8.2.18/ext/dom/namednodemap.c | 122 php8.2-8.2.18/ext/dom/node.c | 114 php8.2-8.2.18/ext/dom/nodelist.c | 50 php8.2-8.2.18/ext/dom/parentnode.c | 441 php8.2-8.2.18/ext/dom/php_dom.c | 325 php8.2-8.2.18/ext/dom/php_dom.h | 24 php8.2-8.2.18/ext/dom/php_dom.stub.php | 32 php8.2-8.2.18/ext/dom/php_dom_arginfo.h | 21 php8.2-8.2.18/ext/dom/processinginstruction.c | 2 php8.2-8.2.18/ext/dom/tests/DOMCharacterData_replaceWith_self.phpt | 15 php8.2-8.2.18/ext/dom/tests/DOMDocumentFragment_construct_basic_002.phpt | 16 php8.2-8.2.18/ext/dom/tests/DOMDocument_getElementsByTagNameNS_match_any_namespace.phpt | 82 php8.2-8.2.18/ext/dom/tests/DOMDocument_json_encode.phpt | 11 php8.2-8.2.18/ext/dom/tests/DOMDocument_loadXML_error1.phpt | 4 php8.2-8.2.18/ext/dom/tests/DOMDocument_loadXML_error1_gte2_12.phpt | 26 php8.2-8.2.18/ext/dom/tests/DOMDocument_loadXML_error2_gte2_11.phpt | 2 php8.2-8.2.18/ext/dom/tests/DOMDocument_loadXML_error2_gte2_12.phpt | 30 php8.2-8.2.18/ext/dom/tests/DOMDocument_load_error1.phpt | 4 php8.2-8.2.18/ext/dom/tests/DOMDocument_load_error1_gte2_12.phpt | 26 php8.2-8.2.18/ext/dom/tests/DOMDocument_load_error2_gte2_11.phpt | 2 php8.2-8.2.18/ext/dom/tests/DOMDocument_load_error2_gte2_12.phpt | 30 php8.2-8.2.18/ext/dom/tests/DOMElement_append_hierarchy_test.phpt | 89 php8.2-8.2.18/ext/dom/tests/DOMElement_prepend_hierarchy_test.phpt | 89 php8.2-8.2.18/ext/dom/tests/DOMEntity_fields.phpt | 100 php8.2-8.2.18/ext/dom/tests/DOMNamedNodeMap_string_references.phpt | 64 php8.2-8.2.18/ext/dom/tests/DOMParentNode_empty_argument.phpt | 84 php8.2-8.2.18/ext/dom/tests/bug47530.phpt | 152 php8.2-8.2.18/ext/dom/tests/bug47847.phpt | 29 php8.2-8.2.18/ext/dom/tests/bug55294.phpt | 31 php8.2-8.2.18/ext/dom/tests/bug67440.phpt | 151 php8.2-8.2.18/ext/dom/tests/bug67949.phpt | 53 php8.2-8.2.18/ext/dom/tests/bug70359.phpt | 83 php8.2-8.2.18/ext/dom/tests/bug77686.phpt | 40 php8.2-8.2.18/ext/dom/tests/bug78577.phpt | 33 php8.2-8.2.18/ext/dom/tests/bug79971_2.phpt | 6 php8.2-8.2.18/ext/dom/tests/bug80332_1.phpt | 84 php8.2-8.2.18/ext/dom/tests/bug80332_2.phpt | 47 php8.2-8.2.18/ext/dom/tests/bug80602.phpt | 90 php8.2-8.2.18/ext/dom/tests/bug80602_2.phpt | 90 php8.2-8.2.18/ext/dom/tests/bug80602_3.phpt | 122 php8.2-8.2.18/ext/dom/tests/bug80602_4.phpt | 35 php8.2-8.2.18/ext/dom/tests/bug81642.phpt | 49 php8.2-8.2.18/ext/dom/tests/bug_lifetime_parentNode_getAttributeNodeNS.phpt | 20 php8.2-8.2.18/ext/dom/tests/clone_nodes.phpt | 72 php8.2-8.2.18/ext/dom/tests/domobject_debug_handler.phpt | 130 php8.2-8.2.18/ext/dom/tests/fragments_multiple_nodes_DOMParentNode.phpt | 38 php8.2-8.2.18/ext/dom/tests/gh10234.phpt | 93 php8.2-8.2.18/ext/dom/tests/gh11288.phpt | 69 php8.2-8.2.18/ext/dom/tests/gh11289.phpt | 30 php8.2-8.2.18/ext/dom/tests/gh11290.phpt | 29 php8.2-8.2.18/ext/dom/tests/gh11347.phpt | 26 php8.2-8.2.18/ext/dom/tests/gh11625.phpt | 72 php8.2-8.2.18/ext/dom/tests/gh11682.phpt | 27 php8.2-8.2.18/ext/dom/tests/gh11791.phpt | 39 php8.2-8.2.18/ext/dom/tests/gh11830/attribute_variation.phpt | 56 php8.2-8.2.18/ext/dom/tests/gh11830/document_variation.phpt | 71 php8.2-8.2.18/ext/dom/tests/gh11830/hierarchy_variation.phpt | 62 php8.2-8.2.18/ext/dom/tests/gh11830/type_variation.phpt | 60 php8.2-8.2.18/ext/dom/tests/gh11906.phpt | 45 php8.2-8.2.18/ext/dom/tests/gh12002.phpt | 38 php8.2-8.2.18/ext/dom/tests/gh12616_1.phpt | 36 php8.2-8.2.18/ext/dom/tests/gh12616_2.phpt | 39 php8.2-8.2.18/ext/dom/tests/gh12616_3.phpt | 152 php8.2-8.2.18/ext/dom/tests/gh8996.phpt | 120 php8.2-8.2.18/ext/dom/tests/gh9142.phpt | 22 php8.2-8.2.18/ext/dom/tests/libxml_global_state_entity_loader_bypass.phpt | 38 php8.2-8.2.18/ext/dom/tests/manually_call_constructor/attribute.phpt | 34 php8.2-8.2.18/ext/dom/tests/manually_call_constructor/cdatasection.phpt | 32 php8.2-8.2.18/ext/dom/tests/manually_call_constructor/comment.phpt | 34 php8.2-8.2.18/ext/dom/tests/manually_call_constructor/document.phpt | 15 php8.2-8.2.18/ext/dom/tests/manually_call_constructor/documentfragment.phpt | 32 php8.2-8.2.18/ext/dom/tests/manually_call_constructor/element.phpt | 34 php8.2-8.2.18/ext/dom/tests/manually_call_constructor/entityreference.phpt | 34 php8.2-8.2.18/ext/dom/tests/manually_call_constructor/processinginstruction.phpt | 34 php8.2-8.2.18/ext/dom/tests/manually_call_constructor/text.phpt | 33 php8.2-8.2.18/ext/dom/tests/not_serializable.phpt | 6 php8.2-8.2.18/ext/dom/tests/not_unserializable.phpt | 29 php8.2-8.2.18/ext/dom/tests/php_function_edge_cases.phpt | 27 php8.2-8.2.18/ext/dom/tests/registerNodeClass_abstract_class.phpt | 24 php8.2-8.2.18/ext/dom/tests/replaceWith_non_viable_next_sibling.phpt | 36 php8.2-8.2.18/ext/dom/tests/setAttributeNodeNS_same_uri_different_prefix.phpt | 38 php8.2-8.2.18/ext/dom/tests/specific_namespace_behaviour.phpt | 27 php8.2-8.2.18/ext/dom/tests/xpath_domnamespacenode.phpt | 2 php8.2-8.2.18/ext/dom/tests/xpath_domnamespacenode_advanced.phpt | 75 php8.2-8.2.18/ext/dom/text.c | 10 php8.2-8.2.18/ext/dom/xpath.c | 72 php8.2-8.2.18/ext/exif/tests/bug78793.phpt | 2 php8.2-8.2.18/ext/ffi/ffi.c | 152 php8.2-8.2.18/ext/ffi/tests/cdef_new.phpt | 14 php8.2-8.2.18/ext/ffi/tests/gh12905.phpt | 33 php8.2-8.2.18/ext/ffi/tests/gh9698.phpt | 21 php8.2-8.2.18/ext/ffi/tests/weak_reference_001.phpt | 17 php8.2-8.2.18/ext/ffi/tests/weak_reference_002.phpt | 36 php8.2-8.2.18/ext/ffi/tests/weak_reference_003.phpt | 17 php8.2-8.2.18/ext/ffi/tests/weak_reference_004.phpt | 36 php8.2-8.2.18/ext/fileinfo/data_file.c | 442 php8.2-8.2.18/ext/fileinfo/libmagic.patch | 89 php8.2-8.2.18/ext/fileinfo/libmagic/ascmagic.c | 4 php8.2-8.2.18/ext/fileinfo/magicdata.patch | 95 php8.2-8.2.18/ext/fileinfo/tests/bug-gh11891.phpt | 14 php8.2-8.2.18/ext/fileinfo/tests/finfo_file_002.phpt | 2 php8.2-8.2.18/ext/fileinfo/tests/gh13344.phpt | 12 php8.2-8.2.18/ext/fileinfo/tests/magic | 12 php8.2-8.2.18/ext/filter/filter.c | 16 php8.2-8.2.18/ext/filter/tests/bug77221.phpt | 6 php8.2-8.2.18/ext/filter/tests/bug81122.phpt | 6 php8.2-8.2.18/ext/filter/tests/filter_callback_require_scalar.phpt | 18 php8.2-8.2.18/ext/ftp/ftp.c | 40 php8.2-8.2.18/ext/ftp/ftp.h | 1 php8.2-8.2.18/ext/ftp/tests/gh10562.phpt | 40 php8.2-8.2.18/ext/gd/config.m4 | 66 php8.2-8.2.18/ext/gd/gd.c | 11 php8.2-8.2.18/ext/gd/libgd/gd_rotate.c | 6 php8.2-8.2.18/ext/gd/libgd/gdft.c | 12 php8.2-8.2.18/ext/gd/tests/bug38212-mb.phpt | 6 php8.2-8.2.18/ext/gd/tests/bug38212.phpt | 6 php8.2-8.2.18/ext/gd/tests/bug39780_extern.phpt | 8 php8.2-8.2.18/ext/gd/tests/bug41442.phpt | 4 php8.2-8.2.18/ext/gd/tests/bug45799.phpt | 2 php8.2-8.2.18/ext/gd/tests/bug66356.phpt | 4 php8.2-8.2.18/ext/gd/tests/bug71912-mb.phpt | 8 php8.2-8.2.18/ext/gd/tests/bug71912.phpt | 9 php8.2-8.2.18/ext/gd/tests/bug72339.phpt | 10 php8.2-8.2.18/ext/gd/tests/bug73155.phpt | 6 php8.2-8.2.18/ext/gd/tests/bug73157.phpt | 6 php8.2-8.2.18/ext/gd/tests/bug73159.phpt | 6 php8.2-8.2.18/ext/gd/tests/bug73161.phpt | 6 php8.2-8.2.18/ext/gd/tests/bug73868.phpt | 6 php8.2-8.2.18/ext/gd/tests/bug73869.phpt | 6 php8.2-8.2.18/ext/gd/tests/bug77272.phpt | 2 php8.2-8.2.18/ext/gd/tests/bug77479.phpt | 4 php8.2-8.2.18/ext/gd/tests/bug77973.phpt | 2 php8.2-8.2.18/ext/gd/tests/bug79945.phpt | 22 php8.2-8.2.18/ext/gd/tests/crafted_gd2.phpt | 6 php8.2-8.2.18/ext/gd/tests/createfromgd2.phpt | 3 php8.2-8.2.18/ext/gd/tests/createfromwbmp2_extern.phpt | 2 php8.2-8.2.18/ext/gd/tests/gh10344.phpt | 28 php8.2-8.2.18/ext/gd/tests/gh10614.phpt | 93 php8.2-8.2.18/ext/gd/tests/gh13082.phpt | 18 php8.2-8.2.18/ext/gd/tests/gif2gd.phpt | 4 php8.2-8.2.18/ext/gd/tests/imagegd_truecolor.phpt | 6 php8.2-8.2.18/ext/gd/tests/jpg2gd-mb.phpt | 4 php8.2-8.2.18/ext/gd/tests/jpg2gd.phpt | 4 php8.2-8.2.18/ext/gd/tests/libgd00086_extern.phpt | 5 php8.2-8.2.18/ext/gd/tests/png2gd.phpt | 4 php8.2-8.2.18/ext/gd/tests/xpm2gd.phpt | 4 php8.2-8.2.18/ext/gettext/gettext.c | 7 php8.2-8.2.18/ext/gettext/tests/dcgettext_lcall.phpt | 12 php8.2-8.2.18/ext/gettext/tests/dcngettext.phpt | 4 php8.2-8.2.18/ext/hash/hash.c | 13 php8.2-8.2.18/ext/hash/hash.stub.php | 2 php8.2-8.2.18/ext/hash/hash_adler32.c | 4 php8.2-8.2.18/ext/hash/hash_arginfo.h | 3 php8.2-8.2.18/ext/hash/hash_haval.c | 5 php8.2-8.2.18/ext/hash/hash_md.c | 5 php8.2-8.2.18/ext/hash/hash_ripemd.c | 20 php8.2-8.2.18/ext/hash/hash_sha.c | 22 php8.2-8.2.18/ext/hash/tests/gh12186_1.phpt | 17 php8.2-8.2.18/ext/hash/tests/gh12186_2.phpt | 17 php8.2-8.2.18/ext/hash/tests/reuse.phpt | 2 php8.2-8.2.18/ext/iconv/config.m4 | 6 php8.2-8.2.18/ext/iconv/iconv.c | 26 php8.2-8.2.18/ext/imap/tests/bug77020.phpt | 5 php8.2-8.2.18/ext/intl/dateformat/dateformat_create.cpp | 10 php8.2-8.2.18/ext/intl/msgformat/msgformat_format.c | 37 php8.2-8.2.18/ext/intl/tests/bug69398-icu74.1.phpt | 19 php8.2-8.2.18/ext/intl/tests/bug69398.phpt | 5 php8.2-8.2.18/ext/intl/tests/calendar_clear_variation1.phpt | 8 php8.2-8.2.18/ext/intl/tests/dateformat_format_relative.phpt | 4 php8.2-8.2.18/ext/intl/tests/gh10647.phpt | 6 php8.2-8.2.18/ext/intl/tests/gh11658.phpt | 21 php8.2-8.2.18/ext/intl/tests/gh12020.phpt | 22 php8.2-8.2.18/ext/intl/tests/gh12243.phpt | 24 php8.2-8.2.18/ext/intl/tests/gh12282.phpt | 22 php8.2-8.2.18/ext/intl/tests/gh12943.phpt | 15 php8.2-8.2.18/ext/intl/tests/gh8364.phpt | 6 php8.2-8.2.18/ext/intl/tests/locale/bug72809.phpt | 6 php8.2-8.2.18/ext/libxml/libxml.c | 14 php8.2-8.2.18/ext/libxml/php_libxml.h | 58 php8.2-8.2.18/ext/libxml/tests/libxml_entity_loading_disabled_by_default.phpt | 2 php8.2-8.2.18/ext/mbstring/libmbfl/filters/mbfilter_cp932.c | 4 php8.2-8.2.18/ext/mbstring/mbstring.stub.php | 4 php8.2-8.2.18/ext/mbstring/mbstring_arginfo.h | 4 php8.2-8.2.18/ext/mbstring/tests/data/BIG5.txt | 105 php8.2-8.2.18/ext/mbstring/tests/data/JISX0201.txt | 54 php8.2-8.2.18/ext/mbstring/tests/data/JISX0212.txt | 75 php8.2-8.2.18/ext/mbstring/tests/data/KSX1001.txt | 32 php8.2-8.2.18/ext/mbstring/tests/encoding_tests.inc | 4 php8.2-8.2.18/ext/mbstring/tests/gh8086.phpt | 6 php8.2-8.2.18/ext/mbstring/tests/mb_get_info_http_input.phpt | 10 php8.2-8.2.18/ext/mbstring/tests/mb_strlen.phpt | 8 php8.2-8.2.18/ext/mysqli/tests/bug34810.phpt | 2 php8.2-8.2.18/ext/mysqli/tests/gh11438.phpt | 88 php8.2-8.2.18/ext/mysqli/tests/gh11550.phpt | 70 php8.2-8.2.18/ext/mysqli/tests/gh12107.phpt | 59 php8.2-8.2.18/ext/mysqli/tests/gh8978.phpt | 29 php8.2-8.2.18/ext/mysqlnd/mysqlnd_auth.c | 12 php8.2-8.2.18/ext/mysqlnd/mysqlnd_charset.c | 2 php8.2-8.2.18/ext/mysqlnd/mysqlnd_charset.h | 3 php8.2-8.2.18/ext/mysqlnd/mysqlnd_commands.c | 16 php8.2-8.2.18/ext/mysqlnd/mysqlnd_connection.c | 17 php8.2-8.2.18/ext/mysqlnd/mysqlnd_protocol_frame_codec.c | 1 php8.2-8.2.18/ext/mysqlnd/mysqlnd_ps.c | 5 php8.2-8.2.18/ext/mysqlnd/mysqlnd_result.c | 10 php8.2-8.2.18/ext/mysqlnd/mysqlnd_vio.c | 1 php8.2-8.2.18/ext/mysqlnd/mysqlnd_wireprotocol.c | 6 php8.2-8.2.18/ext/mysqlnd/php_mysqlnd.c | 3 php8.2-8.2.18/ext/oci8/LICENSE | 2 php8.2-8.2.18/ext/odbc/odbc.stub.php | 2 php8.2-8.2.18/ext/odbc/odbc_arginfo.h | 4 php8.2-8.2.18/ext/odbc/php_odbc.c | 27 php8.2-8.2.18/ext/odbc/tests/config.inc | 3 php8.2-8.2.18/ext/odbc/tests/odbc_persistent_close.phpt | 65 php8.2-8.2.18/ext/opcache/ZendAccelerator.c | 26 php8.2-8.2.18/ext/opcache/config.m4 | 15 php8.2-8.2.18/ext/opcache/jit/zend_jit.c | 14 php8.2-8.2.18/ext/opcache/jit/zend_jit_arm64.dasc | 84 php8.2-8.2.18/ext/opcache/jit/zend_jit_disasm.c | 2 php8.2-8.2.18/ext/opcache/jit/zend_jit_gdb.c | 1 php8.2-8.2.18/ext/opcache/jit/zend_jit_helpers.c | 12 php8.2-8.2.18/ext/opcache/jit/zend_jit_internal.h | 4 php8.2-8.2.18/ext/opcache/jit/zend_jit_trace.c | 169 php8.2-8.2.18/ext/opcache/jit/zend_jit_vm_helpers.c | 47 php8.2-8.2.18/ext/opcache/jit/zend_jit_x86.dasc | 185 php8.2-8.2.18/ext/opcache/shared_alloc_mmap.c | 25 php8.2-8.2.18/ext/opcache/tests/bug68104.phpt | 4 php8.2-8.2.18/ext/opcache/tests/gh10914.phpt | 26 php8.2-8.2.18/ext/opcache/tests/gh11715.phpt | 19 php8.2-8.2.18/ext/opcache/tests/gh13712.phpt | 23 php8.2-8.2.18/ext/opcache/tests/jit/assign_dim_017.phpt | 20 php8.2-8.2.18/ext/opcache/tests/jit/assign_static_prop_op_001.phpt | 23 php8.2-8.2.18/ext/opcache/tests/jit/bind_global_001.phpt | 17 php8.2-8.2.18/ext/opcache/tests/jit/bug80426.phpt | 2 php8.2-8.2.18/ext/opcache/tests/jit/gh11917.phpt | 61 php8.2-8.2.18/ext/opcache/tests/jit/gh12262.phpt | 43 php8.2-8.2.18/ext/opcache/tests/jit/gh12380.phpt | 62 php8.2-8.2.18/ext/opcache/tests/jit/gh12382.phpt | 39 php8.2-8.2.18/ext/opcache/tests/jit/gh12428.phpt | 22 php8.2-8.2.18/ext/opcache/tests/jit/gh12481.phpt | 23 php8.2-8.2.18/ext/opcache/tests/jit/gh12482.phpt | 57 php8.2-8.2.18/ext/opcache/tests/jit/gh12509.phpt | 28 php8.2-8.2.18/ext/opcache/tests/jit/gh12512.phpt | 41 php8.2-8.2.18/ext/opcache/tests/jit/gh12512_2.phpt | 44 php8.2-8.2.18/ext/opcache/tests/jit/gh12527.phpt | 28 php8.2-8.2.18/ext/opcache/tests/jit/gh12723-A.phpt | 20 php8.2-8.2.18/ext/opcache/tests/jit/gh12723-B.phpt | 19 php8.2-8.2.18/ext/opcache/tests/jit/gh12748.phpt | 35 php8.2-8.2.18/ext/opcache/tests/jit/gh12812.phpt | 29 php8.2-8.2.18/ext/opcache/tests/jit/gh13232.phpt | 13 php8.2-8.2.18/ext/opcache/tests/jit/init_fcall_003.phpt | 2 php8.2-8.2.18/ext/opcache/tests/jit/oss-fuzz-64727.phpt | 27 php8.2-8.2.18/ext/opcache/tests/jit/qm_assign_004.phpt | 39 php8.2-8.2.18/ext/opcache/tests/jit_warning_with_zero_buffer.phpt | 16 php8.2-8.2.18/ext/opcache/tests/opcache_invalidate_deleted_file.phpt | 27 php8.2-8.2.18/ext/opcache/tests/opt/block_pass_004.phpt | 16 php8.2-8.2.18/ext/opcache/tests/opt/block_pass_005.phpt | 17 php8.2-8.2.18/ext/opcache/tests/opt/block_pass_006.phpt | 15 php8.2-8.2.18/ext/opcache/tests/opt/dce_014.phpt | 12 php8.2-8.2.18/ext/opcache/tests/opt/gh10008.phpt | 26 php8.2-8.2.18/ext/opcache/tests/opt/inference_022.phpt | 17 php8.2-8.2.18/ext/opcache/tests/opt/inference_023.phpt | 24 php8.2-8.2.18/ext/opcache/tests/opt/inference_024.phpt | 23 php8.2-8.2.18/ext/opcache/tests/preload_gh10914.inc | 5 php8.2-8.2.18/ext/opcache/zend_accelerator_module.c | 10 php8.2-8.2.18/ext/opcache/zend_file_cache.c | 3 php8.2-8.2.18/ext/opcache/zend_persist.c | 2 php8.2-8.2.18/ext/opcache/zend_shared_alloc.c | 8 php8.2-8.2.18/ext/opcache/zend_shared_alloc.h | 2 php8.2-8.2.18/ext/openssl/openssl.c | 17 php8.2-8.2.18/ext/openssl/tests/CertificateGenerator.inc | 82 php8.2-8.2.18/ext/openssl/tests/bug50293.phpt | 6 php8.2-8.2.18/ext/openssl/tests/bug50713.phpt | 40 php8.2-8.2.18/ext/openssl/tests/gh12489.phpt | 36 php8.2-8.2.18/ext/openssl/tests/gh9339.phpt | 6 php8.2-8.2.18/ext/openssl/tests/openssl_error_string_basic.phpt | 1 php8.2-8.2.18/ext/openssl/tests/openssl_error_string_basic_openssl3.phpt | 1 php8.2-8.2.18/ext/openssl/tests/openssl_private_decrypt_basic.phpt | 1 php8.2-8.2.18/ext/openssl/tests/san_ipv6_peer_matching.phpt | 69 php8.2-8.2.18/ext/openssl/xp_ssl.c | 51 php8.2-8.2.18/ext/pcntl/pcntl.c | 4 php8.2-8.2.18/ext/pcntl/tests/pcntl_getpriority_basic.phpt | 2 php8.2-8.2.18/ext/pcntl/tests/waiting_on_sigchild_pcntl_wait.phpt | 45 php8.2-8.2.18/ext/pcre/pcre2lib/pcre2_jit_compile.c | 20 php8.2-8.2.18/ext/pcre/pcre2lib/pcre2_match.c | 2 php8.2-8.2.18/ext/pcre/php_pcre.c | 4 php8.2-8.2.18/ext/pcre/tests/gh11374.phpt | 66 php8.2-8.2.18/ext/pcre/tests/gh11956.phpt | 16 php8.2-8.2.18/ext/pcre/tests/preg_replace_callback_array_numeric_index_error.phpt | 15 php8.2-8.2.18/ext/pdo/pdo_dbh.c | 8 php8.2-8.2.18/ext/pdo/pdo_stmt.c | 202 php8.2-8.2.18/ext/pdo/tests/gh8626.phpt | 3 php8.2-8.2.18/ext/pdo/tests/pdo_035.phpt | 262 php8.2-8.2.18/ext/pdo_firebird/firebird_statement.c | 9 php8.2-8.2.18/ext/pdo_firebird/tests/gh10908.phpt | 12 php8.2-8.2.18/ext/pdo_firebird/tests/gh13119.phpt | 77 php8.2-8.2.18/ext/pdo_mysql/mysql_driver.c | 24 php8.2-8.2.18/ext/pdo_mysql/tests/bug68371.phpt | 2 php8.2-8.2.18/ext/pdo_mysql/tests/gh-11587.phpt | 163 php8.2-8.2.18/ext/pdo_mysql/tests/gh11550.phpt | 84 php8.2-8.2.18/ext/pdo_mysql/tests/pdo_mysql___construct.phpt | 2 php8.2-8.2.18/ext/pdo_odbc/odbc_driver.c | 28 php8.2-8.2.18/ext/pdo_odbc/tests/autocommit.phpt | 53 php8.2-8.2.18/ext/pdo_odbc/tests/autocommit_change_mode.phpt | 135 php8.2-8.2.18/ext/pdo_pgsql/pgsql_driver.stub.php | 2 php8.2-8.2.18/ext/pdo_pgsql/pgsql_driver_arginfo.h | 4 php8.2-8.2.18/ext/pdo_pgsql/tests/bug68371.phpt | 2 php8.2-8.2.18/ext/pdo_pgsql/tests/gh7723.phpt | 4 php8.2-8.2.18/ext/pdo_pgsql/tests/gh9411.phpt | 4 php8.2-8.2.18/ext/pdo_sqlite/tests/bug_42589.phpt | 7 php8.2-8.2.18/ext/pdo_sqlite/tests/pdo_035.phpt | 46 php8.2-8.2.18/ext/pgsql/pgsql.c | 21 php8.2-8.2.18/ext/pgsql/php_pgsql.h | 5 php8.2-8.2.18/ext/pgsql/tests/gh12763.phpt | 23 php8.2-8.2.18/ext/pgsql/tests/gh13354.phpt | 80 php8.2-8.2.18/ext/pgsql/tests/pg_trace.phpt | 20 php8.2-8.2.18/ext/phar/Makefile.frag | 6 php8.2-8.2.18/ext/phar/dirstream.c | 15 php8.2-8.2.18/ext/phar/phar.1.in | 2 php8.2-8.2.18/ext/phar/phar_object.c | 3 php8.2-8.2.18/ext/phar/stream.c | 13 php8.2-8.2.18/ext/phar/tests/GHSA-jqcx-ccgc-xwhv.phpt | 27 php8.2-8.2.18/ext/phar/tests/bug77432.phpt | 48 php8.2-8.2.18/ext/phar/tests/bug81211.phpt | 3 php8.2-8.2.18/ext/phar/tests/phar_buildfromiterator10.phpt | 2 php8.2-8.2.18/ext/phar/tests/zip/gh13037.phpt | 17 php8.2-8.2.18/ext/phar/util.c | 5 php8.2-8.2.18/ext/phar/zip.c | 59 php8.2-8.2.18/ext/random/random.c | 9 php8.2-8.2.18/ext/random/tests/01_functions/mt_srand_unknown_mode.phpt | 22 php8.2-8.2.18/ext/random/tests/03_randomizer/engine_unsafe_biased.phpt | 14 php8.2-8.2.18/ext/random/tests/03_randomizer/engine_unsafe_empty_string.phpt | 14 php8.2-8.2.18/ext/random/tests/03_randomizer/engine_unsafe_nul.phpt | 322 php8.2-8.2.18/ext/readline/tests/bug77812-readline.phpt | 2 php8.2-8.2.18/ext/reflection/php_reflection.c | 5 php8.2-8.2.18/ext/reflection/tests/016.phpt | 8 php8.2-8.2.18/ext/reflection/tests/ReflectionFiber_bug_gh11121_1.phpt | 62 php8.2-8.2.18/ext/reflection/tests/ReflectionFiber_bug_gh11121_2.phpt | 63 php8.2-8.2.18/ext/reflection/tests/gh11937_1.inc | 13 php8.2-8.2.18/ext/reflection/tests/gh11937_1.phpt | 30 php8.2-8.2.18/ext/reflection/tests/gh11937_2.inc | 4 php8.2-8.2.18/ext/reflection/tests/gh11937_2.phpt | 27 php8.2-8.2.18/ext/session/session.c | 42 php8.2-8.2.18/ext/session/tests/gh12504.phpt | 62 php8.2-8.2.18/ext/session/tests/gh13680.phpt | 25 php8.2-8.2.18/ext/simplexml/simplexml.c | 58 php8.2-8.2.18/ext/simplexml/tests/bug12170.phpt | 52 php8.2-8.2.18/ext/simplexml/tests/bug52751.phpt | 58 php8.2-8.2.18/ext/simplexml/tests/get_prop_address_not_initialized.phpt | 17 php8.2-8.2.18/ext/simplexml/tests/gh12167.phpt | 23 php8.2-8.2.18/ext/simplexml/tests/gh12169.phpt | 23 php8.2-8.2.18/ext/simplexml/tests/gh12223.phpt | 67 php8.2-8.2.18/ext/simplexml/tests/libxml_global_state_entity_loader_bypass.phpt | 38 php8.2-8.2.18/ext/soap/php_encoding.c | 4 php8.2-8.2.18/ext/soap/php_schema.c | 18 php8.2-8.2.18/ext/soap/php_sdl.c | 33 php8.2-8.2.18/ext/soap/php_xml.c | 2 php8.2-8.2.18/ext/soap/tests/bug71610.phpt | 2 php8.2-8.2.18/ext/soap/tests/bug75306.phpt | 20 php8.2-8.2.18/ext/soap/tests/bugs/segfault_assertion_props.phpt | 51 php8.2-8.2.18/ext/soap/tests/gh12392.phpt | 28 php8.2-8.2.18/ext/soap/tests/gh12392.wsdl | 61 php8.2-8.2.18/ext/sockets/sockets.c | 22 php8.2-8.2.18/ext/sockets/tests/bug_export_stream_type.phpt | 12 php8.2-8.2.18/ext/sockets/tests/gh13603.phpt | 15 php8.2-8.2.18/ext/sockets/tests/socket_sendto_zerocopy.phpt | 4 php8.2-8.2.18/ext/spl/php_spl.c | 6 php8.2-8.2.18/ext/spl/spl_array.c | 5 php8.2-8.2.18/ext/spl/spl_directory.c | 65 php8.2-8.2.18/ext/spl/spl_fixedarray.c | 23 php8.2-8.2.18/ext/spl/tests/bug81992.phpt | 32 php8.2-8.2.18/ext/spl/tests/bug81992b.phpt | 66 php8.2-8.2.18/ext/spl/tests/gh11338.phpt | 47 php8.2-8.2.18/ext/spl/tests/gh11972.phpt | 196 php8.2-8.2.18/ext/spl/tests/gh12721.phpt | 51 php8.2-8.2.18/ext/spl/tests/gh13531.phpt | 28 php8.2-8.2.18/ext/spl/tests/gh13685.phpt | 52 php8.2-8.2.18/ext/spl/tests/spl_autoload_unregister_without_registrations.phpt | 10 php8.2-8.2.18/ext/sqlite3/sqlite3.c | 44 php8.2-8.2.18/ext/sqlite3/tests/gh11451.phpt | 25 php8.2-8.2.18/ext/sqlite3/tests/gh11878.phpt | 31 php8.2-8.2.18/ext/sqlite3/tests/sqlite3_defensive.phpt | 4 php8.2-8.2.18/ext/standard/array.c | 52 php8.2-8.2.18/ext/standard/basic_functions.c | 16 php8.2-8.2.18/ext/standard/browscap.c | 10 php8.2-8.2.18/ext/standard/config.m4 | 12 php8.2-8.2.18/ext/standard/dl.c | 17 php8.2-8.2.18/ext/standard/file.c | 2 php8.2-8.2.18/ext/standard/ftp_fopen_wrapper.c | 2 php8.2-8.2.18/ext/standard/image.c | 16 php8.2-8.2.18/ext/standard/mail.c | 53 php8.2-8.2.18/ext/standard/math.c | 17 php8.2-8.2.18/ext/standard/password.c | 5 php8.2-8.2.18/ext/standard/php_ext_syslog.h | 4 php8.2-8.2.18/ext/standard/php_mail.h | 7 php8.2-8.2.18/ext/standard/proc_open.c | 87 php8.2-8.2.18/ext/standard/sha1.c | 5 php8.2-8.2.18/ext/standard/string.c | 2 php8.2-8.2.18/ext/standard/syslog.c | 18 php8.2-8.2.18/ext/standard/tests/file/005_variation2.phpt | 6 php8.2-8.2.18/ext/standard/tests/file/006_error.phpt | 25 php8.2-8.2.18/ext/standard/tests/file/bug52820.phpt | 30 php8.2-8.2.18/ext/standard/tests/file/chroot_001.phpt | 18 php8.2-8.2.18/ext/standard/tests/file/file.inc | 11 php8.2-8.2.18/ext/standard/tests/file/file_put_contents_5gb.phpt | 67 php8.2-8.2.18/ext/standard/tests/file/file_variation8-win32.phpt | 6 php8.2-8.2.18/ext/standard/tests/file/gh13136.phpt | 55 php8.2-8.2.18/ext/standard/tests/file/is_readable_basic.phpt | 2 php8.2-8.2.18/ext/standard/tests/file/is_readable_error.phpt | 2 php8.2-8.2.18/ext/standard/tests/file/lstat_stat_variation18.phpt | 4 php8.2-8.2.18/ext/standard/tests/file/lstat_stat_variation19.phpt | 8 php8.2-8.2.18/ext/standard/tests/file/lstat_stat_variation20.phpt | 8 php8.2-8.2.18/ext/standard/tests/file/mkdir-004.phpt | 32 php8.2-8.2.18/ext/standard/tests/file/mkdir-005.phpt | 25 php8.2-8.2.18/ext/standard/tests/file/mkdir-006.phpt | 20 php8.2-8.2.18/ext/standard/tests/file/tempnam_variation9.phpt | 73 php8.2-8.2.18/ext/standard/tests/file/userstreams_006.phpt | 3 php8.2-8.2.18/ext/standard/tests/file/windows_acls/common.inc | 2 php8.2-8.2.18/ext/standard/tests/general_functions/dl-check-enabled.phpt | 1 php8.2-8.2.18/ext/standard/tests/general_functions/dl-cve-2007-4887.phpt | 1 php8.2-8.2.18/ext/standard/tests/general_functions/dl-full-path-not-supported.phpt | 1 php8.2-8.2.18/ext/standard/tests/general_functions/gh12655.phpt | 22 php8.2-8.2.18/ext/standard/tests/general_functions/gh9589.phpt | 4 php8.2-8.2.18/ext/standard/tests/general_functions/ghsa-pc52-254m-w9w7_1.phpt | 29 php8.2-8.2.18/ext/standard/tests/general_functions/ghsa-pc52-254m-w9w7_2.phpt | 29 php8.2-8.2.18/ext/standard/tests/general_functions/ghsa-pc52-254m-w9w7_3.phpt | 29 php8.2-8.2.18/ext/standard/tests/general_functions/proc_nice_basic.phpt | 6 php8.2-8.2.18/ext/standard/tests/general_functions/register_shutdown_functions_without_previous_call_frame_01.phpt | 15 php8.2-8.2.18/ext/standard/tests/general_functions/register_shutdown_functions_without_previous_call_frame_02.phpt | 15 php8.2-8.2.18/ext/standard/tests/general_functions/register_shutdown_functions_without_previous_call_frame_03.phpt | 15 php8.2-8.2.18/ext/standard/tests/general_functions/register_shutdown_functions_without_previous_call_frame_04.phpt | 15 php8.2-8.2.18/ext/standard/tests/ghsa-wpj3-hf5j-x4v4.phpt | 63 php8.2-8.2.18/ext/standard/tests/hrtime/hrtime.phpt | 2 php8.2-8.2.18/ext/standard/tests/image/bug75708.phpt | 60 php8.2-8.2.18/ext/standard/tests/mail/gh13415.phpt | 52 php8.2-8.2.18/ext/standard/tests/mail/mail_basic7.phpt | 2 php8.2-8.2.18/ext/standard/tests/network/gh12190.phpt | 14 php8.2-8.2.18/ext/standard/tests/password/password_bcrypt_errors.phpt | 7 php8.2-8.2.18/ext/standard/tests/serialize/serialization_objects_019.phpt | 42 php8.2-8.2.18/ext/standard/tests/streams/set_file_buffer.phpt | 1 php8.2-8.2.18/ext/standard/tests/streams/stream_set_chunk_size.phpt | 16 php8.2-8.2.18/ext/standard/tests/strings/implode1.phpt | 6 php8.2-8.2.18/ext/standard/tests/strings/join_error.phpt | 2 php8.2-8.2.18/ext/standard/tests/strings/join_variation2.phpt | 8 php8.2-8.2.18/ext/standard/var.c | 36 php8.2-8.2.18/ext/tidy/tests/gh12980.phpt | 34 php8.2-8.2.18/ext/tidy/tests/parsing_file_too_large.phpt | 1 php8.2-8.2.18/ext/tidy/tidy.c | 8 php8.2-8.2.18/ext/xml/compat.c | 2 php8.2-8.2.18/ext/xml/tests/bug26614.inc | 73 php8.2-8.2.18/ext/xml/tests/bug26614.phpt | 83 php8.2-8.2.18/ext/xml/tests/bug26614_libxml_gte2_11.phpt | 77 php8.2-8.2.18/ext/xml/tests/bug26614_libxml_pre2_11.phpt | 77 php8.2-8.2.18/ext/xml/tests/bug46699.phpt | 4 php8.2-8.2.18/ext/xml/tests/bug81351.phpt | 6 php8.2-8.2.18/ext/xml/tests/gh12254.phpt | 31 php8.2-8.2.18/ext/xml/tests/libxml_expat_skipif.inc | 9 php8.2-8.2.18/ext/xml/tests/xml_error_string_basic.inc | 17 php8.2-8.2.18/ext/xml/tests/xml_error_string_basic.phpt | 34 php8.2-8.2.18/ext/xml/tests/xml_error_string_basic_expat.phpt | 24 php8.2-8.2.18/ext/xml/tests/xml_error_string_basic_libxml.phpt | 24 php8.2-8.2.18/ext/xml/tests/xml_set_start_namespace_decl_handler_basic.inc | 34 php8.2-8.2.18/ext/xml/tests/xml_set_start_namespace_decl_handler_basic.phpt | 50 php8.2-8.2.18/ext/xml/tests/xml_set_start_namespace_decl_handler_basic_expat.phpt | 29 php8.2-8.2.18/ext/xml/tests/xml_set_start_namespace_decl_handler_basic_libxml.phpt | 24 php8.2-8.2.18/ext/xml/xml.c | 27 php8.2-8.2.18/ext/xml/xml.stub.php | 2 php8.2-8.2.18/ext/xml/xml_arginfo.h | 4 php8.2-8.2.18/ext/xmlreader/php_xmlreader.c | 30 php8.2-8.2.18/ext/xmlreader/tests/libxml_global_state_entity_loader_bypass.phpt | 37 php8.2-8.2.18/ext/xmlwriter/php_xmlwriter.c | 3 php8.2-8.2.18/ext/xsl/config.m4 | 1 php8.2-8.2.18/ext/xsl/php_xsl.c | 1 php8.2-8.2.18/ext/xsl/php_xsl.stub.php | 2 php8.2-8.2.18/ext/xsl/php_xsl_arginfo.h | 4 php8.2-8.2.18/ext/xsl/tests/php_function_edge_cases.phpt | 45 php8.2-8.2.18/ext/xsl/tests/transformToDoc_sxe_type_error.phpt | 53 php8.2-8.2.18/ext/xsl/xsltprocessor.c | 20 php8.2-8.2.18/ext/zend_test/config.m4 | 2 php8.2-8.2.18/ext/zend_test/config.w32 | 2 php8.2-8.2.18/ext/zend_test/iterators.c | 121 php8.2-8.2.18/ext/zend_test/iterators.h | 21 php8.2-8.2.18/ext/zend_test/iterators.stub.php | 14 php8.2-8.2.18/ext/zend_test/iterators_arginfo.h | 31 php8.2-8.2.18/ext/zend_test/php_test.h | 3 php8.2-8.2.18/ext/zend_test/test.c | 144 php8.2-8.2.18/ext/zend_test/test.stub.php | 17 php8.2-8.2.18/ext/zend_test/test_arginfo.h | 78 php8.2-8.2.18/ext/zend_test/tests/gen_stub_test_01.phpt | 4 php8.2-8.2.18/ext/zend_test/tests/internal_magic_call.phpt | 23 php8.2-8.2.18/ext/zend_test/tests/iterators/double-rewind.phpt | 40 php8.2-8.2.18/ext/zend_test/tests/observer_sqlite_create_function.phpt | 2 php8.2-8.2.18/ext/zend_test/tests/opline_dangling.phpt | 35 php8.2-8.2.18/ext/zend_test/tests/opline_dangling_02.phpt | 37 php8.2-8.2.18/ext/zip/php_zip.c | 2 php8.2-8.2.18/ext/zip/tests/bug77978.phpt | 6 php8.2-8.2.18/ext/zip/tests/bug80833.phpt | 3 php8.2-8.2.18/ext/zip/tests/bug81420.phpt | 6 php8.2-8.2.18/ext/zip/tests/bug81490.phpt | 6 php8.2-8.2.18/ext/zip/tests/bug_gh12661.phpt | 25 php8.2-8.2.18/ext/zip/tests/bug_gh8781.phpt | 6 php8.2-8.2.18/ext/zip/tests/oo_getstreamindex.phpt | 15 php8.2-8.2.18/ext/zlib/tests/bug48725_2.phpt | 4 php8.2-8.2.18/ext/zlib/tests/bug71417.phpt | 2 php8.2-8.2.18/ext/zlib/tests/gzcompress_basic1.phpt | 31 php8.2-8.2.18/ext/zlib/tests/gzcompress_variation1.phpt | 10 php8.2-8.2.18/ext/zlib/tests/gzdeflate_basic1.phpt | 31 php8.2-8.2.18/ext/zlib/tests/gzdeflate_variation1.phpt | 10 php8.2-8.2.18/ext/zlib/tests/gzencode_basic1.phpt | 69 php8.2-8.2.18/ext/zlib/tests/gzencode_variation1.phpt | 4 php8.2-8.2.18/ext/zlib/tests/gzinflate-bug42663.phpt | 2 php8.2-8.2.18/ext/zlib/tests/zlib_filter_deflate.phpt | 4 php8.2-8.2.18/main/fastcgi.c | 7 php8.2-8.2.18/main/main.c | 33 php8.2-8.2.18/main/network.c | 4 php8.2-8.2.18/main/php_config.h.in | 27 php8.2-8.2.18/main/php_streams.h | 3 php8.2-8.2.18/main/php_variables.c | 48 php8.2-8.2.18/main/php_variables.h | 1 php8.2-8.2.18/main/php_version.h | 6 php8.2-8.2.18/main/streams/plain_wrapper.c | 7 php8.2-8.2.18/main/streams/streams.c | 18 php8.2-8.2.18/main/streams/userspace.c | 16 php8.2-8.2.18/pear/install-pear-nozlib.phar | 787 php8.2-8.2.18/php.ini-development | 3 php8.2-8.2.18/php.ini-production | 3 php8.2-8.2.18/run-tests.php | 56 php8.2-8.2.18/sapi/cgi/config9.m4 | 6 php8.2-8.2.18/sapi/cli/config.m4 | 6 php8.2-8.2.18/sapi/cli/php.1.in | 11 php8.2-8.2.18/sapi/cli/php_cli.c | 2 php8.2-8.2.18/sapi/cli/php_cli_server.c | 39 php8.2-8.2.18/sapi/cli/ps_title.c | 15 php8.2-8.2.18/sapi/cli/tests/bug80092.phpt | 47 php8.2-8.2.18/sapi/cli/tests/gh12363.phpt | 39 php8.2-8.2.18/sapi/cli/tests/preload.inc | 7 php8.2-8.2.18/sapi/fpm/config.m4 | 14 php8.2-8.2.18/sapi/fpm/fpm/fpm_main.c | 20 php8.2-8.2.18/sapi/fpm/fpm/fpm_php.c | 33 php8.2-8.2.18/sapi/fpm/fpm/fpm_shm.c | 2 php8.2-8.2.18/sapi/fpm/fpm/fpm_status.c | 2 php8.2-8.2.18/sapi/fpm/php-fpm.8.in | 2 php8.2-8.2.18/sapi/fpm/tests/bug75712-getenv-server-vars.phpt | 62 php8.2-8.2.18/sapi/fpm/tests/bug76922-fcgi-get-value-conn.phpt | 43 php8.2-8.2.18/sapi/fpm/tests/bug77023-pm-dynamic-blocking-sigquit.phpt | 2 php8.2-8.2.18/sapi/fpm/tests/fcgi-env-pif-apache-pp-sn-strip-encoded-plus.phpt | 54 php8.2-8.2.18/sapi/fpm/tests/fcgi.inc | 10 php8.2-8.2.18/sapi/fpm/tests/gh12232-php-value-extension.phpt | 51 php8.2-8.2.18/sapi/fpm/tests/gh12621.phpt | 46 php8.2-8.2.18/sapi/fpm/tests/gh9921-php-value-ext-mod-handlers.phpt | 54 php8.2-8.2.18/sapi/fpm/tests/logreader.inc | 9 php8.2-8.2.18/sapi/fpm/tests/reload-uses-sigkill-as-last-measure.phpt | 4 php8.2-8.2.18/sapi/fpm/tests/response.inc | 142 php8.2-8.2.18/sapi/fpm/tests/status.inc | 40 php8.2-8.2.18/sapi/fpm/tests/tester.inc | 105 php8.2-8.2.18/sapi/fuzzer/Makefile.frag | 2 php8.2-8.2.18/sapi/fuzzer/fuzzer-sapi.c | 4 php8.2-8.2.18/sapi/litespeed/config.m4 | 4 php8.2-8.2.18/sapi/litespeed/lsapilib.c | 2 php8.2-8.2.18/sapi/phpdbg/config.m4 | 4 php8.2-8.2.18/sapi/phpdbg/phpdbg.1.in | 2 php8.2-8.2.18/sapi/phpdbg/phpdbg_help.c | 1 php8.2-8.2.18/sapi/phpdbg/phpdbg_prompt.c | 4 php8.2-8.2.18/sapi/phpdbg/tests/gh12675.phpt | 32 php8.2-8.2.18/sapi/phpdbg/tests/gh12962.phpt | 13 php8.2-8.2.18/sapi/phpdbg/tests/gh12962/.phpdbginit | 2 php8.2-8.2.18/scripts/man1/php-config.1.in | 2 php8.2-8.2.18/scripts/man1/phpize.1.in | 2 php8.2-8.2.18/travis/test.sh | 3 731 files changed, 41345 insertions(+), 27794 deletions(-) diff -Nru php8.2-8.2.7/.appveyor.yml php8.2-8.2.18/.appveyor.yml --- php8.2-8.2.7/.appveyor.yml 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/.appveyor.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,55 +0,0 @@ -version: "{branch}.build.{build}" - -image: Visual Studio 2019 - -clone_depth: 1 - -skip_commits: - files: - - docs/* - - NEWS - - UPGRADING - - UPGRADING.INTERNALS - -cache: - - c:\build-cache - -environment: - PHP_BUILD_CACHE_BASE_DIR: c:\build-cache - PHP_BUILD_OBJ_DIR: c:\obj - PHP_BUILD_CACHE_SDK_DIR: c:\build-cache\sdk - PHP_BUILD_SDK_BRANCH: php-sdk-2.2.0 - PHP_BUILD_CRT: vs16 - # ext and env setup for tests - #MYSQL_TEST_PASSWD: Password12! - #MYSQL_TEST_USER: root - #PDO_MYSQL_TEST_DSN: "pgsql:host=127.0.0.1 port=5432 dbname=test user=root password=Password12!" - #PDO_MYSQL_TEST_USER: root - #PDO_MYSQL_TEST_PASS: Password12! - #PGSQL_TEST_CONNSTR: "host=127.0.0.1 dbname=test port=5432 user=postgres password=Password12!" - #PDO_PGSQL_TEST_DSN: "pgsql:host=127.0.0.1 port=5432 dbname=test user=postgres password=Password12!" - #build permutations - matrix: - - THREAD_SAFE: 0 - OPCACHE: 0 - PARALLEL: -j2 - - THREAD_SAFE: 1 - OPCACHE: 1 - PARALLEL: -j2 - INTRINSICS: AVX2 - -services: - # the setup scripts have to be touched, once some other db version is used - - mysql - - postgresql101 - - mssql2017 - -platform: - - x64 - #- x86 - -build_script: - - .github\scripts\windows\build.bat - -test_script: - - .github\scripts\windows\test.bat diff -Nru php8.2-8.2.7/.circleci/config.yml php8.2-8.2.18/.circleci/config.yml --- php8.2-8.2.7/.circleci/config.yml 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/.circleci/config.yml 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,199 @@ +version: 2.1 + +jobs: + arm: + resource_class: arm.medium + docker: + - image: cimg/base:current-22.04 + - image: mysql:8 + environment: + MYSQL_ALLOW_EMPTY_PASSWORD: true + MYSQL_ROOT_PASSWORD: '' + MYSQL_DATABASE: test + - image: postgres:16 + environment: + POSTGRES_PASSWORD: postgres + POSTGRES_DB: test + environment: + LANGUAGE: '' + LANG: en_US.UTF-8 + MYSQL_TEST_HOST: '127.0.0.1' + MYSQL_TEST_PASSWD: '' + MYSQL_TEST_USER: root + PDO_MYSQL_TEST_DSN: 'mysql:host=127.0.0.1;dbname=test' + PDO_MYSQL_TEST_PASS: '' + PDO_MYSQL_TEST_USER: root + PDO_PGSQL_TEST_DSN: 'pgsql:host=127.0.0.1 port=5432 dbname=test user=postgres password=postgres' + steps: + - checkout + - run: + name: apt + command: | + export DEBIAN_FRONTEND=noninteractive + sudo apt-get update -y + sudo apt-get install -y \ + gcc \ + g++ \ + autoconf \ + bison \ + re2c \ + locales \ + locales-all \ + ldap-utils \ + openssl \ + slapd \ + libgmp-dev \ + libicu-dev \ + libtidy-dev \ + libenchant-2-dev \ + libaspell-dev \ + libpspell-dev \ + libsasl2-dev \ + libxpm-dev \ + libzip-dev \ + libbz2-dev \ + libsqlite3-dev \ + libwebp-dev \ + libonig-dev \ + libkrb5-dev \ + libgssapi-krb5-2 \ + libcurl4-openssl-dev \ + libxml2-dev \ + libxslt1-dev \ + libpq-dev \ + libreadline-dev \ + libldap2-dev \ + libsodium-dev \ + libargon2-0-dev \ + libmm-dev \ + libsnmp-dev \ + snmpd \ + `#snmp-mibs-downloader` \ + freetds-dev \ + `#unixodbc-dev` \ + libc-client-dev \ + dovecot-core \ + dovecot-pop3d \ + dovecot-imapd \ + sendmail \ + firebird-dev \ + liblmdb-dev \ + libtokyocabinet-dev \ + libdb-dev \ + libqdbm-dev \ + libjpeg-dev \ + libpng-dev \ + libfreetype6-dev + - run: + name: ./configure + command: | + ./buildconf -f + ./configure \ + --enable-debug \ + --enable-zts \ + --enable-option-checking=fatal \ + --prefix=/usr \ + --enable-phpdbg \ + --enable-fpm \ + --enable-opcache \ + --with-pdo-mysql=mysqlnd \ + --with-mysqli=mysqlnd \ + --with-pgsql \ + --with-pdo-pgsql \ + --with-pdo-sqlite \ + --enable-intl \ + --without-pear \ + --enable-gd \ + --with-jpeg \ + --with-webp \ + --with-freetype \ + --with-xpm \ + --enable-exif \ + --with-zip \ + --with-zlib \ + --with-zlib-dir=/usr \ + --enable-soap \ + --enable-xmlreader \ + --with-xsl \ + --with-tidy \ + --enable-sysvsem \ + --enable-sysvshm \ + --enable-shmop \ + --enable-pcntl \ + --with-readline \ + --enable-mbstring \ + --with-curl \ + --with-gettext \ + --enable-sockets \ + --with-bz2 \ + --with-openssl \ + --with-gmp \ + --enable-bcmath \ + --enable-calendar \ + --enable-ftp \ + --with-pspell=/usr \ + --with-enchant=/usr \ + --with-kerberos \ + --enable-sysvmsg \ + --with-ffi \ + --enable-zend-test \ + --enable-dl-test=shared \ + --with-ldap \ + --with-ldap-sasl \ + --with-password-argon2 \ + --with-mhash \ + --with-sodium \ + --enable-dba \ + --with-cdb \ + --enable-flatfile \ + --enable-inifile \ + --with-tcadb \ + --with-lmdb \ + --with-qdbm \ + --with-snmp \ + `#--with-unixODBC` \ + --with-imap \ + --with-kerberos \ + --with-imap-ssl \ + `#--with-pdo-odbc=unixODBC,/usr` \ + `#--with-pdo-oci=shared,instantclient,/opt/oracle/instantclient` \ + `#--with-oci8=shared,instantclient,/opt/oracle/instantclient` \ + --with-config-file-path=/etc \ + --with-config-file-scan-dir=/etc/php.d \ + --with-pdo-firebird \ + `#--with-pdo-dblib` \ + --disable-phpdbg \ + `#--enable-werror` + - run: + name: make + command: make -j2 > /dev/null + - run: + name: make install + command: | + sudo make install + sudo mkdir -p /etc/php.d + sudo chmod 777 /etc/php.d + echo opcache.enable_cli=1 > /etc/php.d/opcache.ini + echo opcache.protect_memory=1 >> /etc/php.d/opcache.ini + - run: + name: Test + no_output_timeout: 30m + command: | + sapi/cli/php run-tests.php \ + -d zend_extension=opcache.so \ + -d opcache.enable_cli=1 \ + -d opcache.jit_buffer_size=16M \ + -d opcache.jit=tracing \ + -P -q -x -j2 \ + -g FAIL,BORK,LEAK,XLEAK \ + --no-progress \ + --offline \ + --show-diff \ + --show-slow 1000 \ + --set-timeout 120 \ + --repeat 2 + +workflows: + push-workflow: + jobs: + - arm diff -Nru php8.2-8.2.7/.cirrus.yml php8.2-8.2.18/.cirrus.yml --- php8.2-8.2.7/.cirrus.yml 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/.cirrus.yml 2024-04-09 18:46:23.000000000 +0000 @@ -4,7 +4,7 @@ freebsd_task: name: FREEBSD_DEBUG_NTS freebsd_instance: - image_family: freebsd-13-0 + image_family: freebsd-13-3 env: ARCH: amd64 install_script: @@ -14,7 +14,7 @@ - pkg install -y autoconf bison gmake re2c icu libiconv png freetype2 enchant2 bzip2 krb5 t1lib gmp tidyp libsodium libzip libxml2 libxslt openssl oniguruma pkgconf webp libavif script: - ./buildconf -f - - ./configure --prefix=/usr/local --enable-debug --enable-option-checking=fatal --enable-fpm --with-pdo-sqlite --without-pear --with-bz2 --with-avif --with-jpeg --with-webp --with-freetype --enable-gd --enable-exif --with-zip --with-zlib --enable-soap --enable-xmlreader --with-xsl --with-libxml --enable-shmop --enable-pcntl --enable-mbstring --with-curl --enable-sockets --with-openssl --with-iconv=/usr/local --enable-bcmath --enable-calendar --enable-ftp --with-kerberos --with-ffi --enable-zend-test --enable-dl-test=shared --enable-intl --with-mhash --with-sodium --enable-werror --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d + - ./configure --prefix=/usr/local --enable-debug --enable-option-checking=fatal --enable-fpm --with-pdo-sqlite --without-pear --with-bz2 --with-avif --with-jpeg --with-webp --with-freetype --enable-gd --enable-exif --with-zip --with-zlib --enable-soap --enable-xmlreader --with-xsl --with-libxml --enable-shmop --enable-pcntl --enable-mbstring --with-curl --enable-sockets --with-openssl --with-iconv=/usr/local --enable-bcmath --enable-calendar --enable-ftp --with-kerberos --with-ffi --enable-zend-test --enable-dl-test=shared --enable-intl --with-mhash --with-sodium --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d - gmake -j2 - mkdir /etc/php.d - gmake install @@ -26,200 +26,3 @@ - export SKIP_IO_CAPTURE_TESTS=1 - export CI_NO_IPV6=1 - sapi/cli/php run-tests.php -P -q -j2 -g FAIL,BORK,LEAK,XLEAK --no-progress --offline --show-diff --show-slow 1000 --set-timeout 120 -d zend_extension=opcache.so - -arm_task: - name: ARM_DEBUG_NTS - arm_container: - image: gcc:10 - additional_containers: - - name: mysql - image: mysql:8 - port: 3306 - cpu: 1.0 - memory: 1G - env: - MYSQL_ALLOW_EMPTY_PASSWORD: true - MYSQL_ROOT_PASSWORD: "" - MYSQL_DATABASE: "test" - - name: postgres - image: postgres:latest - port: 5432 - env: - POSTGRES_PASSWORD: "postgres" - POSTGRES_DB: "test" - install_script: - - export DEBIAN_FRONTEND=noninteractive - - apt-get update -y - - >- - apt-get install -y - bison - re2c - locales - locales-all - ldap-utils - openssl - slapd - libgmp-dev - libicu-dev - libtidy-dev - libenchant-2-dev - libaspell-dev - libpspell-dev - libsasl2-dev - libxpm-dev - libzip-dev - libsqlite3-dev - libwebp-dev - libonig-dev - libkrb5-dev - libgssapi-krb5-2 - libcurl4-openssl-dev - libxml2-dev - libxslt1-dev - libpq-dev - libreadline-dev - libldap2-dev - libsodium-dev - libargon2-0-dev - libmm-dev - libsnmp-dev - snmpd - `#snmp-mibs-downloader` - freetds-dev - `#unixodbc-dev` - libc-client-dev - dovecot-core - dovecot-pop3d - dovecot-imapd - sendmail - firebird-dev - liblmdb-dev - libtokyocabinet-dev - libdb-dev - libqdbm-dev - libjpeg-dev - libpng-dev - libfreetype6-dev - build_script: - - ./buildconf -f - - >- - ./configure - --enable-debug - --enable-zts - --enable-option-checking=fatal - --prefix=/usr - --enable-phpdbg - --enable-fpm - --enable-opcache - --with-pdo-mysql=mysqlnd - --with-mysqli=mysqlnd - --with-pgsql - --with-pdo-pgsql - --with-pdo-sqlite - --enable-intl - --without-pear - --enable-gd - --with-jpeg - --with-webp - --with-freetype - --with-xpm - --enable-exif - --with-zip - --with-zlib - --with-zlib-dir=/usr - --enable-soap - --enable-xmlreader - --with-xsl - --with-tidy - --enable-sysvsem - --enable-sysvshm - --enable-shmop - --enable-pcntl - --with-readline - --enable-mbstring - --with-curl - --with-gettext - --enable-sockets - --with-bz2 - --with-openssl - --with-gmp - --enable-bcmath - --enable-calendar - --enable-ftp - --with-pspell=/usr - --with-enchant=/usr - --with-kerberos - --enable-sysvmsg - --with-ffi - --enable-zend-test - --enable-dl-test=shared - --with-ldap - --with-ldap-sasl - --with-password-argon2 - --with-mhash - --with-sodium - --enable-dba - --with-cdb - --enable-flatfile - --enable-inifile - --with-tcadb - --with-lmdb - --with-qdbm - --with-snmp - `#--with-unixODBC` - --with-imap - --with-kerberos - --with-imap-ssl - `#--with-pdo-odbc=unixODBC,/usr` - `#--with-pdo-oci=shared,instantclient,/opt/oracle/instantclient` - `#--with-oci8=shared,instantclient,/opt/oracle/instantclient` - --with-config-file-path=/etc - --with-config-file-scan-dir=/etc/php.d - --with-pdo-firebird - `#--with-pdo-dblib` - --disable-phpdbg - `#--enable-werror` - - make -j2 > /dev/null - - make install - - mkdir -p /etc/php.d - - echo opcache.enable_cli=1 > /etc/php.d/opcache.ini - - echo opcache.protect_memory=1 >> /etc/php.d/opcache.ini - # Specify opcache.preload_user as we're running as root. - - echo opcache.preload_user=root >> /etc/php.d/opcache.ini - tests_script: - - export SKIP_IO_CAPTURE_TESTS=1 - - export CI_NO_IPV6=1 - - export MYSQL_TEST_HOST=127.0.0.1 - - export MYSQL_TEST_USER=root - - export MYSQL_TEST_PASSWD= - - export PDO_MYSQL_TEST_DSN="mysql:host=127.0.0.1;dbname=test" - - export PDO_MYSQL_TEST_USER=root - - export PDO_MYSQL_TEST_PASS= - - export PDO_PGSQL_TEST_DSN="pgsql:host=127.0.0.1 port=5432 dbname=test user=postgres password=postgres" - - >- - sapi/cli/php run-tests.php - -d zend_extension=opcache.so - -d opcache.enable_cli=1 - -d opcache.jit_buffer_size=16M - -d opcache.jit=function - -P -q -x -j2 - -g FAIL,BORK,LEAK,XLEAK - --no-progress - --offline - --show-diff - --show-slow 1000 - --set-timeout 120 - - >- - sapi/cli/php run-tests.php - -d zend_extension=opcache.so - -d opcache.enable_cli=1 - -d opcache.jit_buffer_size=16M - -d opcache.jit=tracing - -P -q -x -j2 - -g FAIL,BORK,LEAK,XLEAK - --no-progress - --offline - --show-diff - --show-slow 1000 - --set-timeout 120 - --repeat 2 diff -Nru php8.2-8.2.7/.gdbinit php8.2-8.2.18/.gdbinit --- php8.2-8.2.7/.gdbinit 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/.gdbinit 2024-04-09 18:46:23.000000000 +0000 @@ -66,18 +66,18 @@ if $func if $ex->This->value.obj if $func->common.scope - printf "%s->", $func->common.scope->name->val + printf "%s->", (char*)$func->common.scope->name->val else - printf "%s->", $ex->This->value.obj->ce.name->val + printf "%s->", (char*)$ex->This->value.obj->ce.name->val end else if $func->common.scope - printf "%s::", $func->common.scope->name->val + printf "%s::", (char*)$func->common.scope->name->val end end if $func->common.function_name - printf "%s(", $func->common.function_name->val + printf "%s(", (char*)$func->common.function_name->val else printf "(main" end @@ -109,7 +109,7 @@ printf "%f", $zvalue->value.dval end if $type == 6 - ____print_str $zvalue->value.str->val $zvalue->value.str->len + ____print_str (char*)$zvalue->value.str->val $zvalue->value.str->len end if $type == 7 printf "array(%d)[%p]", $zvalue->value.arr->nNumOfElements, $zvalue @@ -135,7 +135,7 @@ end if $func != 0 if $func->type == 2 - printf "%s:%d ", $func->op_array.filename->val, $ex->opline->lineno + printf "%s:%d ", (char*)$func->op_array.filename->val, $ex->opline->lineno else printf "[internal function]" end @@ -186,7 +186,7 @@ printf "double: %f", $zvalue->value.dval end if $type == 6 - printf "string: %s", $zvalue->value.str->val + printf "string: %s", (char*)$zvalue->value.str->val end if $type == 7 printf "array: " @@ -208,7 +208,7 @@ set $handle = $zvalue->value.obj.handle set $handlers = $zvalue->value.obj.handlers set $zobj = $zvalue->value.obj - set $cname = $zobj->ce->name->val + set $cname = (char*)$zobj->ce->name->val printf "(%s) #%d", $cname, $handle if ! $arg1 if $handlers->get_properties == &zend_std_get_properties @@ -233,7 +233,7 @@ set $name = $p->key set $prop = (zend_property_info*)$p->val.value.ptr set $val = (zval*)((char*)$zobj + $prop->offset) - printf "%s => ", $name->val + printf "%s => ", (char*)$name->val printzv $val set $k = $k + 1 end @@ -348,7 +348,7 @@ end printf "[%d] ", $i if $key - ____print_str $key->val $key->len + ____print_str (char*)$key->val $key->len printf " => " else printf "%d => ", $h @@ -365,7 +365,7 @@ end if $arg1 == 3 set $func = (zend_function*)$val->value.ptr - printf "\"%s\"\n", $func->common.function_name->val + printf "\"%s\"\n", (char*)$func->common.function_name->val end if $arg1 == 4 set $const = (zend_constant *)$val->value.ptr @@ -423,15 +423,15 @@ printf "final " end end - printf "class %s", $ce->name->val + printf "class %s", (char*)$ce->name->val if $ce->parent != 0 - printf " extends %s", $ce->parent->name->val + printf " extends %s", (char*)$ce->parent->name->val end if $ce->num_interfaces != 0 printf " implements" set $tmp = 0 while $tmp < $ce->num_interfaces - printf " %s", $ce->interfaces[$tmp]->name->val + printf " %s", (char*)$ce->interfaces[$tmp]->name->val set $tmp = $tmp + 1 if $tmp < $ce->num_interfaces printf "," @@ -443,10 +443,10 @@ define ____print_inh_iface set $ce = $arg0 - printf "interface %s", $ce->name->val + printf "interface %s", (char*)$ce->name->val if $ce->num_interfaces != 0 set $ce = $ce->interfaces[0] - printf " extends %s", $ce->name->val + printf " extends %s", (char*)$ce->name->val else set $ce = 0 end @@ -486,7 +486,7 @@ set $ptr_to_val = (zval*)((char*)$pi->ce->default_properties_table + $pi->offset - $initial_offset) printf "[%p] {\n", $pi printf " offset = %p\n", $pi->offset - printf " ce = [%p] %s\n", $pi->ce, $pi->ce->name->val + printf " ce = [%p] %s\n", $pi->ce, (char*)$pi->ce->name->val printf " flags = 0x%x (", $pi->flags if $pi->flags & 0x100 printf "ZEND_ACC_PUBLIC" @@ -608,7 +608,7 @@ set $maxlen = $zstr->len end printf "string(%d) ", $zstr->len - ____print_str $zstr->val $zstr->len $maxlen + ____print_str (char*)$zstr->val $zstr->len $maxlen printf "\n" end diff -Nru php8.2-8.2.7/.github/CODEOWNERS php8.2-8.2.18/.github/CODEOWNERS --- php8.2-8.2.7/.github/CODEOWNERS 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/.github/CODEOWNERS 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,62 @@ +# The following volunteers have self-identified as subject matter experts +# or interested parties over a particular area of the php-src source code. +# While requesting a review from someone does not obligate that person to +# review a pull request, these reviewers might have valuable knowledge of +# the problem area and could aid in deciding whether a pull request is ready +# for merging. +# +# For more information, see the GitHub CODEOWNERS documentation: +# https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners + +/.github @iluuu1994 @TimWolla +/build/gen_stub.php @kocsismate +/ext/bcmath @Girgias +/ext/curl @adoy +/ext/date @derickr +/ext/dba @Girgias +/ext/dom @nielsdos +/ext/ffi @dstogov +/ext/gettext @devnexen +/ext/gmp @Girgias +/ext/imap @Girgias +/ext/intl @devnexen +/ext/json @bukka +/ext/libxml @nielsdos +/ext/mbstring @alexdowad +/ext/odbc @NattyNarwhal +/ext/opcache @dstogov @iluuu1994 +/ext/openssl @bukka +/ext/pdo_odbc @NattyNarwhal +/ext/pdo_pgsql @devnexen +/ext/pgsql @devnexen +/ext/random @TimWolla @zeriyoshi +/ext/session @Girgias +/ext/sockets @devnexen +/ext/spl @Girgias +/ext/standard @bukka +/ext/xmlreader @nielsdos +/ext/xsl @nielsdos +/main @bukka +/sapi/fpm @bukka +/Zend @iluuu1994 +/Zend/Optimizer @dstogov +/Zend/zend.* @dstogov +/Zend/zend_alloc.* @dstogov +/Zend/zend_API.* @dstogov +/Zend/zend_call_stack.* @arnaud-lb +/Zend/zend_closures.* @dstogov +/Zend/zend_execute.* @dstogov +/Zend/zend_execute_API.c @dstogov +/Zend/zend_gc.* @dstogov @arnaud-lb +/Zend/zend_hash.* @dstogov +/Zend/zend_inheritance.* @dstogov +/Zend/zend_max_execution_timer.* @arnaud-lb +/Zend/zend_object_handlers.* @dstogov +/Zend/zend_objects.* @dstogov +/Zend/zend_objects_API.* @dstogov +/Zend/zend_opcode.* @dstogov +/Zend/zend_string.* @dstogov +/Zend/zend_type*.h @dstogov +/Zend/zend_variables.* @dstogov +/Zend/zend_vm* @dstogov +*.stub.php @kocsismate diff -Nru php8.2-8.2.7/.github/actions/apt-x64/action.yml php8.2-8.2.18/.github/actions/apt-x64/action.yml --- php8.2-8.2.7/.github/actions/apt-x64/action.yml 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/.github/actions/apt-x64/action.yml 2024-04-09 18:46:23.000000000 +0000 @@ -59,15 +59,3 @@ libjpeg-dev \ libpng-dev \ libfreetype6-dev - - mkdir /opt/oracle - wget -nv https://download.oracle.com/otn_software/linux/instantclient/instantclient-basiclite-linuxx64.zip - unzip instantclient-basiclite-linuxx64.zip && rm instantclient-basiclite-linuxx64.zip - wget -nv https://download.oracle.com/otn_software/linux/instantclient/instantclient-sdk-linuxx64.zip - unzip instantclient-sdk-linuxx64.zip && rm instantclient-sdk-linuxx64.zip - mv instantclient_*_* /opt/oracle/instantclient - # interferes with libldap2 headers - rm /opt/oracle/instantclient/sdk/include/ldap.h - # fix debug build warning: zend_signal: handler was replaced for signal (2) after startup - echo DISABLE_INTERRUPT=on > /opt/oracle/instantclient/network/admin/sqlnet.ora - sudo sh -c 'echo /opt/oracle/instantclient >/etc/ld.so.conf.d/oracle-instantclient.conf && ldconfig' diff -Nru php8.2-8.2.7/.github/actions/brew/action.yml php8.2-8.2.18/.github/actions/brew/action.yml --- php8.2-8.2.7/.github/actions/brew/action.yml 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/.github/actions/brew/action.yml 2024-04-09 18:46:23.000000000 +0000 @@ -5,6 +5,12 @@ - shell: bash run: | set -x + + # Patch brew to overwrite always + formula_installer="$(brew --repo)"/Library/Homebrew/formula_installer.rb + code=" keg.link\(verbose: verbose\?" + sudo sed -Ei '' "s/$code.*/$code, overwrite: true\)/" "$formula_installer" + brew install \ pkg-config \ autoconf \ diff -Nru php8.2-8.2.7/.github/actions/configure-x64/action.yml php8.2-8.2.18/.github/actions/configure-x64/action.yml --- php8.2-8.2.7/.github/actions/configure-x64/action.yml 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/.github/actions/configure-x64/action.yml 2024-04-09 18:46:23.000000000 +0000 @@ -74,8 +74,8 @@ --with-imap \ --with-imap-ssl \ --with-pdo-odbc=unixODBC,/usr \ - --with-pdo-oci=shared,instantclient,/opt/oracle/instantclient \ - --with-oci8=shared,instantclient,/opt/oracle/instantclient \ + $([ -d "/opt/oracle/instantclient" ] && echo '--with-pdo-oci=shared,instantclient,/opt/oracle/instantclient') \ + $([ -d "/opt/oracle/instantclient" ] && echo '--with-oci8=shared,instantclient,/opt/oracle/instantclient') \ --with-config-file-path=/etc \ --with-config-file-scan-dir=/etc/php.d \ --with-pdo-firebird \ diff -Nru php8.2-8.2.7/.github/actions/install-linux/action.yml php8.2-8.2.18/.github/actions/install-linux/action.yml --- php8.2-8.2.7/.github/actions/install-linux/action.yml 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/.github/actions/install-linux/action.yml 2024-04-09 18:46:23.000000000 +0000 @@ -6,9 +6,7 @@ run: | set -x sudo make install - sudo mkdir /etc/php.d + sudo mkdir -p /etc/php.d sudo chmod 777 /etc/php.d echo mysqli.default_socket=/var/run/mysqld/mysqld.sock > /etc/php.d/mysqli.ini echo pdo_mysql.default_socket=/var/run/mysqld/mysqld.sock > /etc/php.d/pdo_mysql.ini - echo extension=oci8.so > /etc/php.d/oci8.ini - echo extension=pdo_oci.so > /etc/php.d/pdo_oci.ini diff -Nru php8.2-8.2.7/.github/actions/install-linux-x32/action.yml php8.2-8.2.18/.github/actions/install-linux-x32/action.yml --- php8.2-8.2.7/.github/actions/install-linux-x32/action.yml 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/.github/actions/install-linux-x32/action.yml 2024-04-09 18:46:23.000000000 +0000 @@ -6,7 +6,7 @@ run: | set -x make install - mkdir /etc/php.d + mkdir -p /etc/php.d chmod 777 /etc/php.d echo mysqli.default_socket=/var/run/mysqld/mysqld.sock > /etc/php.d/mysqli.ini echo pdo_mysql.default_socket=/var/run/mysqld/mysqld.sock > /etc/php.d/pdo_mysql.ini diff -Nru php8.2-8.2.7/.github/actions/setup-caddy/action.yml php8.2-8.2.18/.github/actions/setup-caddy/action.yml --- php8.2-8.2.7/.github/actions/setup-caddy/action.yml 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/.github/actions/setup-caddy/action.yml 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,13 @@ +name: Setup Caddy server +runs: + using: composite + steps: + - shell: bash + env: + GH_TOKEN: ${{ github.token }} + run: | + set -x + gh release -R caddyserver/caddy download --pattern 'caddy_*_linux_amd64.tar.gz' -O - | sudo tar -xz -C /usr/bin caddy + sudo chmod +x /usr/bin/caddy + sudo caddy start --config ext/curl/tests/Caddyfile + continue-on-error: true diff -Nru php8.2-8.2.7/.github/actions/setup-oracle/action.yml php8.2-8.2.18/.github/actions/setup-oracle/action.yml --- php8.2-8.2.7/.github/actions/setup-oracle/action.yml 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/.github/actions/setup-oracle/action.yml 2024-04-09 18:46:23.000000000 +0000 @@ -11,3 +11,20 @@ --name oracle \ -h oracle \ -d gvenzl/oracle-xe:slim + + mkdir /opt/oracle + wget -nv https://download.oracle.com/otn_software/linux/instantclient/instantclient-basiclite-linuxx64.zip + unzip instantclient-basiclite-linuxx64.zip && rm instantclient-basiclite-linuxx64.zip + wget -nv https://download.oracle.com/otn_software/linux/instantclient/instantclient-sdk-linuxx64.zip + unzip instantclient-sdk-linuxx64.zip && rm instantclient-sdk-linuxx64.zip + mv instantclient_*_* /opt/oracle/instantclient + # interferes with libldap2 headers + rm /opt/oracle/instantclient/sdk/include/ldap.h + # fix debug build warning: zend_signal: handler was replaced for signal (2) after startup + echo DISABLE_INTERRUPT=on > /opt/oracle/instantclient/network/admin/sqlnet.ora + sudo sh -c 'echo /opt/oracle/instantclient >/etc/ld.so.conf.d/oracle-instantclient.conf && ldconfig' + + sudo mkdir -p /etc/php.d + sudo chmod 777 /etc/php.d + echo extension=oci8.so > /etc/php.d/oci8.ini + echo extension=pdo_oci.so > /etc/php.d/pdo_oci.ini diff -Nru php8.2-8.2.7/.github/actions/setup-windows/action.yml php8.2-8.2.18/.github/actions/setup-windows/action.yml --- php8.2-8.2.7/.github/actions/setup-windows/action.yml 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/.github/actions/setup-windows/action.yml 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,18 @@ +name: Setup +runs: + using: composite + steps: + - name: Setup MySQL + shell: pwsh + run: | + choco install mysql -y --no-progress --params="/port:3306" + mysql.exe --port=3306 --user=root --password="" -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'Password12!'; FLUSH PRIVILEGES;" + - name: Setup MSSQL + shell: pwsh + run: | + choco install sql-server-express -y --no-progress --install-arguments="/SECURITYMODE=SQL /SAPWD=Password12!" + - name: Setup PostgreSQL + shell: pwsh + run: | + Set-Service -Name "postgresql-x64-14" -StartupType manual -Status Running + pwsh -Command { $env:PGPASSWORD="root"; & "$env:PGBIN\psql" -U postgres -c "ALTER USER postgres WITH PASSWORD 'Password12!';" } diff -Nru php8.2-8.2.7/.github/actions/setup-x64/action.yml php8.2-8.2.18/.github/actions/setup-x64/action.yml --- php8.2-8.2.7/.github/actions/setup-x64/action.yml 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/.github/actions/setup-x64/action.yml 2024-04-09 18:46:23.000000000 +0000 @@ -17,7 +17,7 @@ docker exec sql1 /opt/mssql-tools/bin/sqlcmd -S 127.0.0.1 -U SA -P "" -Q "create login pdo_test with password='password', check_policy=off; create user pdo_test for login pdo_test; grant alter, control to pdo_test;" sudo locale-gen de_DE - ./.github/scripts/setup-slapd.sh &>/dev/null + ./.github/scripts/setup-slapd.sh sudo cp ext/snmp/tests/snmpd.conf /etc/snmp sudo cp ext/snmp/tests/bigtest /etc/snmp diff -Nru php8.2-8.2.7/.github/actions/test-libmysqlclient/action.yml php8.2-8.2.18/.github/actions/test-libmysqlclient/action.yml --- php8.2-8.2.7/.github/actions/test-libmysqlclient/action.yml 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/.github/actions/test-libmysqlclient/action.yml 2024-04-09 18:46:23.000000000 +0000 @@ -14,7 +14,6 @@ export PDO_MYSQL_TEST_HOST=127.0.0.1 export PDO_MYSQL_TEST_USER=root export PDO_MYSQL_TEST_PASS=root - export REPORT_EXIT_STATUS=no sapi/cli/php run-tests.php -P -q \ -g FAIL,BORK,LEAK,XLEAK \ --no-progress --offline --show-diff --show-slow 1000 --set-timeout 120 \ diff -Nru php8.2-8.2.7/.github/actions/test-linux/action.yml php8.2-8.2.18/.github/actions/test-linux/action.yml --- php8.2-8.2.7/.github/actions/test-linux/action.yml 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/.github/actions/test-linux/action.yml 2024-04-09 18:46:23.000000000 +0000 @@ -6,6 +6,12 @@ runTestsParameters: default: '' required: false + jitType: + default: 'disable' + required: false + idleCpu: + default: 'false' + required: false runs: using: composite steps: @@ -31,14 +37,16 @@ export SKIP_IO_CAPTURE_TESTS=1 export TEST_PHP_JUNIT=junit.out.xml sapi/cli/php run-tests.php -P -q ${{ inputs.runTestsParameters }} \ - -j$(/usr/bin/nproc) \ + -d opcache.jit=${{ inputs.jitType }} \ + -d opcache.jit_buffer_size=16M \ + ${{ inputs.idleCpu == 'true' && '-j$(($(/usr/bin/nproc) - 1))' || '-j$(/usr/bin/nproc)' }} \ -g FAIL,BORK,LEAK,XLEAK \ --no-progress \ --offline \ --show-diff \ --show-slow 1000 \ --set-timeout 120 - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 if: always() && inputs.testArtifacts != null with: name: ${{ github.job }}_${{ inputs.testArtifacts }} diff -Nru php8.2-8.2.7/.github/actions/test-macos/action.yml php8.2-8.2.18/.github/actions/test-macos/action.yml --- php8.2-8.2.7/.github/actions/test-macos/action.yml 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/.github/actions/test-macos/action.yml 2024-04-09 18:46:23.000000000 +0000 @@ -6,6 +6,9 @@ runTestsParameters: default: '' required: false + jitType: + default: 'disable' + required: false runs: using: composite steps: @@ -16,14 +19,16 @@ export CI_NO_IPV6=1 export TEST_PHP_JUNIT=junit.out.xml sapi/cli/php run-tests.php -P -q ${{ inputs.runTestsParameters }} \ - -j$(sysctl -n hw.ncpu) \ + -d opcache.jit=${{ inputs.jitType }} \ + -d opcache.jit_buffer_size=16M \ + -j$(($(sysctl -n hw.ncpu) - 1)) \ -g FAIL,BORK,LEAK,XLEAK \ --no-progress \ --offline \ --show-diff \ --show-slow 1000 \ --set-timeout 120 - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 if: always() && inputs.testArtifacts != null with: name: ${{ github.job }}_${{ inputs.testArtifacts }} diff -Nru php8.2-8.2.7/.github/nightly_matrix.php php8.2-8.2.18/.github/nightly_matrix.php --- php8.2-8.2.7/.github/nightly_matrix.php 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/.github/nightly_matrix.php 2024-04-09 18:46:23.000000000 +0000 @@ -78,6 +78,25 @@ return $jobs; } +function get_windows_matrix_include(array $branches) { + $jobs = []; + foreach ($branches as $branch) { + $jobs[] = [ + 'branch' => $branch, + 'x64' => true, + 'zts' => true, + 'opcache' => true, + ]; + $jobs[] = [ + 'branch' => $branch, + 'x64' => false, + 'zts' => false, + 'opcache' => false, + ]; + } + return $jobs; +} + $trigger = $argv[1] ?? 'schedule'; $attempt = (int) ($argv[2] ?? 1); $discard_cache = ($trigger === 'schedule' && $attempt !== 1) || $trigger === 'workflow_dispatch'; @@ -87,6 +106,8 @@ $branches = get_branches(); $matrix_include = get_matrix_include($branches); +$windows_matrix_include = get_windows_matrix_include($branches); echo '::set-output name=branches::' . json_encode($branches, JSON_UNESCAPED_SLASHES) . "\n"; echo '::set-output name=matrix-include::' . json_encode($matrix_include, JSON_UNESCAPED_SLASHES) . "\n"; +echo '::set-output name=windows-matrix-include::' . json_encode($windows_matrix_include, JSON_UNESCAPED_SLASHES) . "\n"; diff -Nru php8.2-8.2.7/.github/scripts/setup-slapd.sh php8.2-8.2.18/.github/scripts/setup-slapd.sh --- php8.2-8.2.7/.github/scripts/setup-slapd.sh 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/.github/scripts/setup-slapd.sh 2024-04-09 18:46:23.000000000 +0000 @@ -44,8 +44,6 @@ sudo ldapadd -Q -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/ppolicy.ldif -sudo service slapd restart - sudo ldapmodify -Q -Y EXTERNAL -H ldapi:/// << EOF dn: $DBDN changetype: modify @@ -90,8 +88,6 @@ olcModuleLoad: dds EOF -sudo service slapd restart - sudo ldapadd -Q -Y EXTERNAL -H ldapi:/// << EOF dn: olcOverlay=sssvlv,$DBDN objectClass: olcOverlayConfig @@ -116,8 +112,6 @@ olcOverlay: dds EOF -sudo service slapd restart - sudo ldapmodify -Q -Y EXTERNAL -H ldapi:/// << EOF dn: $DBDN changetype: modify @@ -125,8 +119,6 @@ olcDbIndex: entryExpireTimestamp eq EOF -sudo service slapd restart - ldapadd -H ldapi:/// -D cn=Manager,dc=my-domain,dc=com -w secret <NUL 2>NUL -if %errorlevel% neq 0 exit /b 3 -if "%APPVEYOR%" equ "True" rmdir /s /q C:\cygwin64 >NUL 2>NUL -if %errorlevel% neq 0 exit /b 3 -if "%APPVEYOR%" equ "True" rmdir /s /q C:\mingw >NUL 2>NUL -if %errorlevel% neq 0 exit /b 3 -if "%APPVEYOR%" equ "True" rmdir /s /q C:\mingw-w64 >NUL 2>NUL -if %errorlevel% neq 0 exit /b 3 -if "%APPVEYOR%" equ "True" rmdir /s /q C:\msys64 >NUL 2>NUL -if %errorlevel% neq 0 exit /b 3 -if "%APPVEYOR%" equ "True" rmdir /s /q c:\OpenSSL-Win32 >NUL 2>NUL -if %errorlevel% neq 0 exit /b 3 -if "%APPVEYOR%" equ "True" rmdir /s /q c:\OpenSSL-Win64 >NUL 2>NUL -if %errorlevel% neq 0 exit /b 3 -if "%APPVEYOR%" equ "True" rmdir /s /q c:\OpenSSL-v11-Win32 >NUL 2>NUL -if %errorlevel% neq 0 exit /b 3 -if "%APPVEYOR%" equ "True" rmdir /s /q c:\OpenSSL-v11-Win64 >NUL 2>NUL -if %errorlevel% neq 0 exit /b 3 del /f /q C:\Windows\System32\libcrypto-1_1-x64.dll >NUL 2>NUL if %errorlevel% neq 0 exit /b 3 del /f /q C:\Windows\System32\libssl-1_1-x64.dll >NUL 2>NUL diff -Nru php8.2-8.2.7/.github/scripts/windows/test.bat php8.2-8.2.18/.github/scripts/windows/test.bat --- php8.2-8.2.7/.github/scripts/windows/test.bat 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/.github/scripts/windows/test.bat 2024-04-09 18:46:23.000000000 +0000 @@ -1,6 +1,6 @@ @echo off -if /i "%APPVEYOR%%GITHUB_ACTIONS%" neq "True" ( +if /i "%GITHUB_ACTIONS%" neq "True" ( echo for CI only exit /b 3 ) diff -Nru php8.2-8.2.7/.github/scripts/windows/test_task.bat php8.2-8.2.18/.github/scripts/windows/test_task.bat --- php8.2-8.2.7/.github/scripts/windows/test_task.bat 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/.github/scripts/windows/test_task.bat 2024-04-09 18:46:23.000000000 +0000 @@ -1,6 +1,6 @@ @echo off -if /i "%APPVEYOR%%GITHUB_ACTIONS%" neq "True" ( +if /i "%GITHUB_ACTIONS%" neq "True" ( echo for CI only exit /b 3 ) @@ -32,12 +32,7 @@ set PDO_MYSQL_TEST_HOST=%MYSQL_TEST_HOST% set PDO_MYSQL_TEST_PORT=%MYSQL_TEST_PORT% set PDO_MYSQL_TEST_DSN=mysql:host=%PDO_MYSQL_TEST_HOST%;port=%PDO_MYSQL_TEST_PORT%;dbname=test -if /i "%APPVEYOR%" equ "True" ( - set TMP_MYSQL_BIN=%ProgramFiles%\MySql\MySQL Server 5.7\bin -) else ( - set TMP_MYSQL_BIN=C:\mysql\bin -) -"%TMP_MYSQL_BIN%\mysql.exe" --host=%PDO_MYSQL_TEST_HOST% --port=%MYSQL_TEST_PORT% --user=%MYSQL_TEST_USER% --password=%MYSQL_TEST_PASSWD% -e "CREATE DATABASE IF NOT EXISTS test" +mysql --host=%PDO_MYSQL_TEST_HOST% --port=%MYSQL_TEST_PORT% --user=%MYSQL_TEST_USER% --password=%MYSQL_TEST_PASSWD% -e "CREATE DATABASE IF NOT EXISTS test" if %errorlevel% neq 0 exit /b 3 rem setup PostgreSQL related exts @@ -46,22 +41,14 @@ rem set PGSQL_TEST_CONNSTR=host=127.0.0.1 dbname=test port=5432 user=postgres password=Password12! echo ^ >> "./ext/pgsql/tests/config.inc" set PDO_PGSQL_TEST_DSN=pgsql:host=127.0.0.1 port=5432 dbname=test user=%PGUSER% password=%PGPASSWORD% -if /i "%APPVEYOR%" equ "True" ( - set TMP_POSTGRESQL_BIN=%ProgramFiles%\PostgreSQL\10\bin -) else ( - set TMP_POSTGRESQL_BIN=%PGBIN% -) +set TMP_POSTGRESQL_BIN=%PGBIN% "%TMP_POSTGRESQL_BIN%\createdb.exe" test if %errorlevel% neq 0 exit /b 3 rem setup ODBC related exts set ODBC_TEST_USER=sa set ODBC_TEST_PASS=Password12! -if /i "%APPVEYOR%" equ "True" ( - set ODBC_TEST_DSN=Driver={ODBC Driver 13 for SQL Server};Server=^(local^)\SQL2017;Database=master;uid=%ODBC_TEST_USER%;pwd=%ODBC_TEST_PASS% -) else ( - set ODBC_TEST_DSN=Driver={ODBC Driver 17 for SQL Server};Server=^(local^)\SQLEXPRESS;Database=master;uid=%ODBC_TEST_USER%;pwd=%ODBC_TEST_PASS% -) +set ODBC_TEST_DSN=Driver={ODBC Driver 17 for SQL Server};Server=^(local^)\SQLEXPRESS;Database=master;uid=%ODBC_TEST_USER%;pwd=%ODBC_TEST_PASS% set PDOTEST_DSN=odbc:%ODBC_TEST_DSN% rem setup Firebird related exts @@ -159,11 +146,4 @@ git diff > bless_tests.patch ) -if /i "%APPVEYOR%" equ "True" ( - appveyor PushArtifact %TEST_PHP_JUNIT% - if %EXIT_CODE% GEQ 1 ( - appveyor PushArtifact bless_tests.patch - ) -) - exit /b %EXIT_CODE% diff -Nru php8.2-8.2.7/.github/workflows/nightly.yml php8.2-8.2.18/.github/workflows/nightly.yml --- php8.2-8.2.7/.github/workflows/nightly.yml 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/.github/workflows/nightly.yml 2024-04-09 18:46:23.000000000 +0000 @@ -11,8 +11,9 @@ outputs: branches: ${{ steps.set-matrix.outputs.branches }} matrix-include: ${{ steps.set-matrix.outputs.matrix-include }} + windows-matrix-include: ${{ steps.set-matrix.outputs.windows-matrix-include }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: # Set fetch-depth to 0 to clone the full repository # including all branches. This is required to find @@ -53,7 +54,7 @@ runs-on: ubuntu-20.04 steps: - name: git checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ matrix.branch.ref }} - name: Create MSSQL container @@ -81,15 +82,16 @@ testArtifacts: ${{ matrix.branch.name }}_${{ matrix.name }}_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }} runTestsParameters: >- ${{ matrix.run_tests_parameters }} + idleCpu: ${{ matrix.asan && 'true' || 'false' }} - name: Test Tracing JIT uses: ./.github/actions/test-linux with: testArtifacts: ${{ matrix.branch.name }}_${{ matrix.name }}_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }} Tracing JIT + jitType: tracing runTestsParameters: >- ${{ matrix.run_tests_parameters }} -d zend_extension=opcache.so -d opcache.enable_cli=1 - -d opcache.jit_buffer_size=16M - name: Test OpCache uses: ./.github/actions/test-linux with: @@ -105,12 +107,11 @@ uses: ./.github/actions/test-linux with: testArtifacts: ${{ matrix.branch.name }}_${{ matrix.name }}_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }} Function JIT + jitType: function runTestsParameters: >- ${{ matrix.run_tests_parameters }} -d zend_extension=opcache.so -d opcache.enable_cli=1 - -d opcache.jit_buffer_size=16M - -d opcache.jit=1205 - name: Verify generated files are up to date uses: ./.github/actions/verify-generated-files - name: Notify Slack @@ -145,7 +146,7 @@ MYSQL_ROOT_PASSWORD: root steps: - name: git checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ matrix.branch.ref }} - name: apt @@ -168,11 +169,11 @@ - name: Test Tracing JIT uses: ./.github/actions/test-linux with: + jitType: tracing runTestsParameters: >- ${{ matrix.run_tests_parameters }} -d zend_extension=opcache.so -d opcache.enable_cli=1 - -d opcache.jit_buffer_size=16M - name: Test OpCache uses: ./.github/actions/test-linux with: @@ -183,12 +184,11 @@ - name: Test Function JIT uses: ./.github/actions/test-linux with: + jitType: function runTestsParameters: >- ${{ matrix.run_tests_parameters }} -d zend_extension=opcache.so -d opcache.enable_cli=1 - -d opcache.jit_buffer_size=16M - -d opcache.jit=1205 - name: Notify Slack if: failure() uses: ./.github/actions/notify-slack @@ -204,10 +204,10 @@ debug: [true, false] zts: [true, false] name: "${{ matrix.branch.name }}_MACOS_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}" - runs-on: macos-11 + runs-on: macos-12 steps: - name: git checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ matrix.branch.ref }} - name: brew @@ -232,11 +232,11 @@ uses: ./.github/actions/test-macos with: testArtifacts: ${{ matrix.branch.name }}_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }} Tracing JIT + jitType: tracing runTestsParameters: >- -d zend_extension=opcache.so -d opcache.enable_cli=1 -d opcache.protect_memory=1 - -d opcache.jit_buffer_size=16M - name: Test OpCache uses: ./.github/actions/test-macos with: @@ -249,12 +249,11 @@ uses: ./.github/actions/test-macos with: testArtifacts: ${{ matrix.branch.name }}_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }} Function JIT + jitType: function runTestsParameters: >- -d zend_extension=opcache.so -d opcache.enable_cli=1 -d opcache.protect_memory=1 - -d opcache.jit_buffer_size=16M - -d opcache.jit=1205 - name: Verify generated files are up to date uses: ./.github/actions/verify-generated-files - name: Notify Slack @@ -267,7 +266,7 @@ runs-on: ubuntu-20.04 steps: - name: git checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Create MSSQL container uses: ./.github/actions/setup-mssql - name: Create Oracle container @@ -316,7 +315,7 @@ USE_TRACKED_ALLOC: 1 steps: - name: git checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ matrix.branch.ref }} - name: apt @@ -352,7 +351,7 @@ git rev-parse HEAD php /usr/bin/composer install --no-progress --ignore-platform-reqs # Hack to disable a test that hangs - php -r '$c = file_get_contents("tests/Filesystem/FilesystemTest.php"); $c = str_replace("*/\n public function testSharedGet()", "* @group skip\n */\n public function testSharedGet()", $c); file_put_contents("tests/Filesystem/FilesystemTest.php", $c);' + php -r '$c = file_get_contents("tests/Filesystem/FilesystemTest.php"); $c = str_replace("public function testSharedGet()", "#[\\PHPUnit\\Framework\\Attributes\\Group('"'"'skip'"'"')]\n public function testSharedGet()", $c); file_put_contents("tests/Filesystem/FilesystemTest.php", $c);' export ASAN_OPTIONS=exitcode=139 php vendor/bin/phpunit --exclude-group skip || EXIT_CODE=$? if [ $EXIT_CODE -gt 128 ]; then @@ -432,7 +431,7 @@ runs-on: ubuntu-20.04 steps: - name: git checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ matrix.branch.ref }} - name: Create MSSQL container @@ -508,7 +507,7 @@ runs-on: ubuntu-22.04 steps: - name: git checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ matrix.branch.ref }} - name: apt @@ -563,7 +562,7 @@ - name: make install run: | sudo make install - sudo mkdir /etc/php.d + sudo mkdir -p /etc/php.d sudo chmod 777 /etc/php.d echo mysqli.default_socket=/var/run/mysqld/mysqld.sock > /etc/php.d/mysqli.ini echo pdo_mysql.default_socket=/var/run/mysqld/mysqld.sock > /etc/php.d/pdo_mysql.ini @@ -607,7 +606,7 @@ runs-on: ubuntu-20.04 steps: - name: git checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ matrix.branch.ref }} - name: apt @@ -630,7 +629,7 @@ - name: Build mysql-5.7 uses: ./.github/actions/build-libmysqlclient with: - libmysql: mysql-5.7.41-linux-glibc2.12-x86_64.tar.gz + libmysql: mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz withMysqli: ${{ matrix.branch.ref == 'PHP-8.1' }} - name: Test mysql-5.7 uses: ./.github/actions/test-libmysqlclient @@ -654,3 +653,36 @@ uses: ./.github/actions/notify-slack with: token: ${{ secrets.ACTION_MONITORING_SLACK }} + WINDOWS: + needs: GENERATE_MATRIX + if: ${{ needs.GENERATE_MATRIX.outputs.branches != '[]' }} + strategy: + fail-fast: false + matrix: + include: ${{ fromJson(needs.GENERATE_MATRIX.outputs.windows-matrix-include) }} + name: "${{ matrix.branch.name }}_WINDOWS_${{ matrix.x64 && 'X64' || 'X86' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}" + runs-on: windows-2019 + env: + PHP_BUILD_CACHE_BASE_DIR: C:\build-cache + PHP_BUILD_OBJ_DIR: C:\obj + PHP_BUILD_CACHE_SDK_DIR: C:\build-cache\sdk + PHP_BUILD_SDK_BRANCH: php-sdk-2.2.0 + PHP_BUILD_CRT: vs16 + PLATFORM: ${{ matrix.x64 && 'x64' || 'x86' }} + THREAD_SAFE: "${{ matrix.zts && '1' || '0' }}" + INTRINSICS: "${{ matrix.zts && 'AVX2' || '' }}" + PARALLEL: -j2 + OPCACHE: "${{ matrix.opcache && '1' || '0' }}" + steps: + - name: git config + run: git config --global core.autocrlf false && git config --global core.eol lf + - name: git checkout + uses: actions/checkout@v4 + with: + ref: ${{ matrix.branch.ref }} + - name: Setup + uses: ./.github/actions/setup-windows + - name: Build + run: .github/scripts/windows/build.bat + - name: Test + run: .github/scripts/windows/test.bat diff -Nru php8.2-8.2.7/.github/workflows/push.yml php8.2-8.2.18/.github/workflows/push.yml --- php8.2-8.2.7/.github/workflows/push.yml 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/.github/workflows/push.yml 2024-04-09 18:46:23.000000000 +0000 @@ -2,13 +2,17 @@ on: push: paths-ignore: - - docs/* + - docs/** - NEWS - UPGRADING - UPGRADING.INTERNALS - - README.md + - '**/README.*' - CONTRIBUTING.md - CODING_STANDARDS.md + - .cirrus.yml + - .travis.yml + - travis/** + - .circleci/** branches: - PHP-7.4 - PHP-8.0 @@ -16,6 +20,18 @@ - PHP-8.2 - master pull_request: + paths-ignore: + - docs/** + - NEWS + - UPGRADING + - UPGRADING.INTERNALS + - '**/README.*' + - CONTRIBUTING.md + - CODING_STANDARDS.md + - .cirrus.yml + - .travis.yml + - travis/** + - .circleci/** branches: - '**' concurrency: @@ -38,11 +54,13 @@ runs-on: ubuntu-20.04 steps: - name: git checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Create MSSQL container uses: ./.github/actions/setup-mssql - name: Create Oracle container uses: ./.github/actions/setup-oracle + - name: Setup Caddy server + uses: ./.github/actions/setup-caddy - name: apt uses: ./.github/actions/apt-x64 - name: ccache @@ -73,63 +91,17 @@ uses: ./.github/actions/test-linux with: testArtifacts: ${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }} Tracing JIT + jitType: tracing runTestsParameters: >- -d zend_extension=opcache.so -d opcache.enable_cli=1 - -d opcache.jit_buffer_size=16M - name: Verify generated files are up to date uses: ./.github/actions/verify-generated-files - LINUX_X32: - name: LINUX_X32_DEBUG_ZTS - runs-on: ubuntu-latest - container: - image: ubuntu:20.04 - env: - MYSQL_TEST_HOST: mysql - PDO_MYSQL_TEST_DSN: mysql:host=mysql;dbname=test - PDO_MYSQL_TEST_HOST: mysql - services: - mysql: - image: mysql:8 - ports: - - 3306:3306 - env: - MYSQL_DATABASE: test - MYSQL_ROOT_PASSWORD: root - steps: - - name: git checkout - uses: actions/checkout@v3 - - name: apt - uses: ./.github/actions/apt-x32 - - name: ccache - uses: hendrikmuhs/ccache-action@v1.2 - with: - key: "${{github.job}}-${{hashFiles('main/php_version.h')}}" - append-timestamp: false - - name: ./configure - uses: ./.github/actions/configure-x32 - with: - configurationParameters: >- - --enable-debug - --enable-zts - - name: make - run: make -j$(/usr/bin/nproc) >/dev/null - - name: make install - uses: ./.github/actions/install-linux-x32 - - name: Test - uses: ./.github/actions/test-linux - - name: Test Tracing JIT - uses: ./.github/actions/test-linux - with: - runTestsParameters: >- - -d zend_extension=opcache.so - -d opcache.enable_cli=1 - -d opcache.jit_buffer_size=16M MACOS_DEBUG_NTS: - runs-on: macos-11 + runs-on: macos-12 steps: - name: git checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: brew uses: ./.github/actions/brew - name: ccache @@ -147,33 +119,19 @@ make -j$(sysctl -n hw.logicalcpu) >/dev/null - name: make install run: sudo make install - - name: Test - uses: ./.github/actions/test-macos - with: - testArtifacts: ${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }} - name: Test Tracing JIT uses: ./.github/actions/test-macos with: testArtifacts: ${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }} Tracing JIT + jitType: tracing runTestsParameters: >- -d zend_extension=opcache.so -d opcache.enable_cli=1 -d opcache.protect_memory=1 - -d opcache.jit_buffer_size=16M - name: Verify generated files are up to date uses: ./.github/actions/verify-generated-files WINDOWS: - strategy: - fail-fast: false - matrix: - include: - - x64: true - zts: false - opcache: true - - x64: false - zts: true - opcache: false - name: "WINDOWS_${{ matrix.x64 && 'X64' || 'X86' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}" + name: WINDOWS_X64_ZTS runs-on: windows-2019 env: PHP_BUILD_CACHE_BASE_DIR: C:\build-cache @@ -181,27 +139,18 @@ PHP_BUILD_CACHE_SDK_DIR: C:\build-cache\sdk PHP_BUILD_SDK_BRANCH: php-sdk-2.2.0 PHP_BUILD_CRT: vs16 - PLATFORM: ${{ matrix.x64 && 'x64' || 'x86' }} - THREAD_SAFE: "${{ matrix.zts && '1' || '0' }}" - INTRINSICS: "${{ matrix.zts && 'AVX2' || '' }}" + PLATFORM: x64 + THREAD_SAFE: "1" + INTRINSICS: AVX2 PARALLEL: -j2 - OPCACHE: "${{ matrix.opcache && '1' || '0' }}" + OPCACHE: "1" steps: - name: git config run: git config --global core.autocrlf false && git config --global core.eol lf - name: git checkout - uses: actions/checkout@v3 - - name: Setup MySQL - run: | - choco install mysql -y --no-progress --params="/port:3306" - mysql.exe --port=3306 --user=root --password="" -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'Password12!'; FLUSH PRIVILEGES;" - - name: Setup MSSQL - run: | - choco install sql-server-express -y --no-progress --install-arguments="/SECURITYMODE=SQL /SAPWD=Password12!" - - name: Setup PostgreSQL - run: | - Set-Service -Name "postgresql-x64-14" -StartupType manual -Status Running - pwsh -Command { $env:PGPASSWORD="root"; & "$env:PGBIN\psql" -U postgres -c "ALTER USER postgres WITH PASSWORD 'Password12!';" } + uses: actions/checkout@v4 + - name: Setup + uses: ./.github/actions/setup-windows - name: Build run: .github/scripts/windows/build.bat - name: Test diff -Nru php8.2-8.2.7/.travis.yml php8.2-8.2.18/.travis.yml --- php8.2-8.2.7/.travis.yml 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/.travis.yml 2024-04-09 18:46:23.000000000 +0000 @@ -85,7 +85,7 @@ # Run PHPs run-tests.php script: - - travis_wait ./travis/test.sh -d opcache.jit_buffer_size=16M -d opcache.jit=tracing + - ./travis/test.sh -d opcache.jit_buffer_size=16M -d opcache.jit=tracing - sapi/cli/php -d extension_dir=`pwd`/modules -r 'dl("zend_test");' after_success: diff -Nru php8.2-8.2.7/CONTRIBUTING.md php8.2-8.2.18/CONTRIBUTING.md --- php8.2-8.2.7/CONTRIBUTING.md 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/CONTRIBUTING.md 2024-04-09 18:46:23.000000000 +0000 @@ -142,7 +142,6 @@ ├─ zend_vm_opcodes.c # Generated by `Zend/zend_vm_gen.php` ├─ zend_vm_opcodes.h # Generated by `Zend/zend_vm_gen.php` └─ ... - ├─ appveyor/ # Appveyor CI service files └─ build/ # *nix build system files ├─ ax_*.m4 # https://github.com/autoconf-archive/autoconf-archive ├─ config.guess # https://git.savannah.gnu.org/cgit/config.git diff -Nru php8.2-8.2.7/LICENSE php8.2-8.2.18/LICENSE --- php8.2-8.2.7/LICENSE 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/LICENSE 2024-04-09 18:46:23.000000000 +0000 @@ -1,6 +1,6 @@ -------------------------------------------------------------------- The PHP License, version 3.01 -Copyright (c) 1999 - 2022 The PHP Group. All rights reserved. +Copyright (c) 1999 - 2024 The PHP Group. All rights reserved. -------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without diff -Nru php8.2-8.2.7/NEWS php8.2-8.2.18/NEWS --- php8.2-8.2.7/NEWS 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/NEWS 2024-04-09 18:46:23.000000000 +0000 @@ -1,5 +1,770 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| +11 Apr 2024, PHP 8.2.18 + +- Core: + . Fixed bug GH-13612 (Corrupted memory in destructor with weak references). + (nielsdos) + . Fixed bug GH-13784 (AX_GCC_FUNC_ATTRIBUTE failure). (Remi) + . Fixed bug GH-13670 (GC does not scale well with a lot of objects created in + destructor). (Arnaud) + +- DOM: + . Add some missing ZPP checks. (nielsdos) + . Fix potential memory leak in XPath evaluation results. (nielsdos) + . Fix phpdoc for DOMDocument load methods. (VincentLanglet) + +- FPM + . Fix incorrect check in fpm_shm_free(). (nielsdos) + +- GD: + . Fixed bug GH-12019 (add GDLIB_CFLAGS in feature tests). (Michael Orlitzky) + +- Gettext: + . Fixed sigabrt raised with dcgettext/dcngettext calls with gettext 0.22.5 + with category set to LC_ALL. (David Carlier) + +- MySQLnd: + . Fix GH-13452 (Fixed handshake response [mysqlnd]). (Saki Takamachi) + . Fix incorrect charset length in check_mb_eucjpms(). (nielsdos) + +- Opcache: + . Fixed GH-13508 (JITed QM_ASSIGN may be optimized out when op1 is null). + (Arnaud, Dmitry) + . Fixed GH-13712 (Segmentation fault for enabled observers when calling trait + method of internal trait when opcache is loaded). (Bob) + +- PDO: + . Fix various PDORow bugs. (Girgias) + +- Random: + . Fixed bug GH-13544 (Pre-PHP 8.2 compatibility for mt_srand with unknown + modes). (timwolla) + . Fixed bug GH-13690 (Global Mt19937 is not properly reset in-between + requests when MT_RAND_PHP is used). (timwolla) + +- Session: + . Fixed bug GH-13680 (Segfault with session_decode and compilation error). + (nielsdos) + +- Sockets: + . Fixed bug GH-13604 (socket_getsockname returns random characters in the end + of the socket name). (David Carlier) + +- SPL: + . Fixed bug GH-13531 (Unable to resize SplfixedArray after being unserialized + in PHP 8.2.15). (nielsdos) + . Fixed bug GH-13685 (Unexpected null pointer in zend_string.h). (nielsdos) + +- Standard: + . Fixed bug GH-11808 (Live filesystem modified by tests). (nielsdos) + . Fixed GH-13402 (Added validation of `\n` in $additional_headers of mail()). + (SakiTakamachi) + . Fixed bug GH-13203 (file_put_contents fail on strings over 4GB on Windows). + (divinity76) + . Fixed bug GHSA-pc52-254m-w9w7 (Command injection via array-ish $command + parameter of proc_open). (CVE-2024-1874) (Jakub Zelenka) + . Fixed bug GHSA-wpj3-hf5j-x4v4 (__Host-/__Secure- cookie bypass due to + partial CVE-2022-31629 fix). (CVE-2024-2756) (nielsdos) + . Fixed bug GHSA-h746-cjrr-wfmr (password_verify can erroneously return true, + opening ATO risk). (CVE-2024-3096) (Jakub Zelenka) + +- XML: + . Fixed bug GH-13517 (Multiple test failures when building with + --with-expat). (nielsdos) + +14 Mar 2024, PHP 8.2.17 + +- Core: + . Fix ZTS persistent resource crashes on shutdown. (nielsdos) + +- Curl: + . Fix failing tests due to string changes in libcurl 8.6.0. (Ayesh) + +- DOM: + . Fix reference access in dimensions for DOMNodeList and DOMNodeMap. + (nielsdos) + +- Fileinfo: + . Fixed bug GH-13344 (finfo::buffer(): Failed identify data 0:(null), + backport). (nielsdos) + +- FPM: + . Fixed bug #75712 (getenv in php-fpm should not read $_ENV, $_SERVER). + (Jakub Zelenka) + +- GD: + . Fixed bug GH-12019 (detection of image formats in system gd library). + (Michael Orlitzky) + +- MySQLnd: + . Fixed bug GH-11950 ([mysqlnd] Fixed not to set CR_MALFORMED_PACKET to error + if CR_SERVER_GONE_ERROR is already set). (Saki Takamachi) + +- PGSQL: + . Fixed bug GH-13354 (pg_execute/pg_send_query_params/pg_send_execute + with null value passed by reference). (George Barbarosie) + +- Standard: + . Fixed array key as hash to string (case insensitive) comparison typo + for the second operand buffer size (albeit unused for now). (A. Slepykh) + +15 Feb 2024, PHP 8.2.16 + +- Core: + . Fixed timer leak in zend-max-execution-timers builds. (withinboredom) + . Fixed bug GH-12349 (linking failure on ARM with mold). (Jan Palus) + . Fixed bug GH-13097 (Anonymous class reference in trigger_error / thrown + Exception). (nielsdos) + . Fixed bug GH-13215 (GCC 14 build failure). (Remi) + +- Curl: + . Fix missing error check in curl_multi_init(). (divinity76) + +- FPM: + . Fixed bug GH-12996 (Incorrect SCRIPT_NAME with Apache ProxyPassMatch when + plus in path). (Jakub Zelenka) + +- GD: + . Fixed bug GH-10344 (imagettfbbox(): Could not find/open font UNC path). + (nielsdos) + . Fixed bug GH-10614 (imagerotate will turn the picture all black, when + rotated 90). (nielsdos) + +- MySQLnd: + . Fixed bug GH-12107 (When running a stored procedure (that returns a result + set) twice, PHP crashes). (nielsdos) + +- Opcache: + . Fixed bug GH-13232 (Segmentation fault will be reported when JIT is off but + JIT_debug is still on). (nielsdos) + +- OpenSSL: + . Fixed LibreSSL undefined reference when OPENSSL_NO_ENGINE not set. + (David Carlier). + +- PDO_Firebird: + . Fix GH-13119 (Changed to convert float and double values ​​into strings using + `H` format). (SakiTakamachi) + +- Phar: + . Fixed bug #71465 (PHAR doesn't know about litespeed). (nielsdos) + . Fixed bug GH-13037 (PharData incorrectly extracts zip file). (nielsdos) + +- Random: + . Fixed bug GH-13138 (Randomizer::pickArrayKeys() does not detect broken + engines). (timwolla) + +- Session: + . Fixed bug GH-12504 (Corrupted session written when there's a fatal error + in autoloader). (nielsdos) + +- Streams: + . Fixed bug GH-13071 (Copying large files using mmap-able source streams may + exhaust available memory and fail). (nielsdos) + +18 Jan 2024, 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) + . Fixed bug GH-12966 (missing cross-compiling 3rd argument so Autoconf doesn't + emit warnings). (Peter Kokot) + . Fixed bug GH-13727 (missing void keyword for C generate code for feature test). + (Peter Kokot/David Carlier) + +- Cli: + . 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) + . Fixed bug GH-12905 (FFI::new interacts badly with observers). (nielsdos) + +- GD: + . Fixed GH-13082 undefined behavior with GdFont instances handling with + imageload* and imagechar*. (David Carlier) + +- 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) + +- 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) + . 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: + . 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) + +- 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) + +- 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) + +- SimpleXML: + . 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: + . Fixed oss-fuzz #54325 (Use-after-free of name in var-var with malicious + error handler). (ilutov) + . Fixed oss-fuzz #64209 (In-place modification of filename in + php_message_handler_for_zend). (ilutov) + . Fixed bug GH-12758 / GH-12768 (Invalid opline in OOM handlers within + ZEND_FUNC_GET_ARGS and ZEND_BIND_STATIC). (Florian Engelhardt) + . Fix various missing NULL checks. (nielsdos, dstogov) + . Fixed bug GH-12835 (Leak of call->extra_named_params on internal __call). + (ilutov) + +- Date: + . Fixed improbably integer overflow while parsing really large (or small) + Unix timestamps. (Derick) + +- DOM: + . Fixed bug GH-12616 (DOM: Removing XMLNS namespace node results in invalid + default: prefix). (nielsdos) + +- FPM: + . Fixed bug GH-12705 (Segmentation fault in fpm_status_export_to_zval). + (Patrick Prasse) + +- FTP: + . Fixed bug GH-9348 (FTP & SSL session reuse). (nielsdos) + +- Intl: + . Fixed bug GH-12635 (Test bug69398.phpt fails with ICU 74.1). (nielsdos) + +- LibXML: + . Fixed bug GH-12702 (libxml2 2.12.0 issue building from src). (nono303) + . Fixed test failures for libxml2 2.12.0. (nielsdos) + +- MySQLnd: + . Avoid using uninitialised struct. (mikhainin) + . Fixed bug GH-12791 (Possible dereference of NULL in MySQLnd debug code). + (nielsdos) + +- Opcache: + . Fixed JIT bug (Function JIT emits "Uninitialized string offset" warning + at the same time as invalid offset Error). (Girgias) + . Fixed JIT bug (JIT emits "Attempt to assign property of non-object" + warning at the same time as Error is being thrown). (Girgias) + +- OpenSSL: + . Fixed bug #50713 (openssl_pkcs7_verify() may ignore untrusted CAs). + (Jakub Zelenka) + +- PCRE: + . Fixed bug GH-12628 (The gh11374 test fails on Alpinelinux). (nielsdos) + +- PDO PGSQL: + . Fixed the default value of $fetchMode in PDO::pgsqlGetNotify() (kocsismate) + +- PGSQL: + . Fixed bug GH-12763 wrong argument type for pg_untrace. (degtyarov) + +- PHPDBG: + . Fixed bug GH-12675 (MEMORY_LEAK in phpdbg_prompt.c). (nielsdos) + +- SOAP: + . Fixed bug GH-12838 ([SOAP] Temporary WSDL cache files not being deleted). + (nielsdos) + +- SPL: + . Fixed bug GH-12721 (SplFileInfo::getFilename() segfault in combination + with GlobIterator and no directory separator). (nielsdos) + +- SQLite3: + . Fixed bug GH-12633 (sqlite3_defensive.phpt fails with sqlite 3.44.0). + (SakiTakamachi) + +- Standard: + . Fix memory leak in syslog device handling. (danog) + . Fixed bug GH-12621 (browscap segmentation fault when configured in the + vhost). (nielsdos) + . Fixed bug GH-12655 (proc_open() does not take into account references + in the descriptor array). (nielsdos) + +- Streams: + . Fixed bug #79945 (Stream wrappers in imagecreatefrompng causes segfault). + (Jakub Zelenka) + +- Zip: + . Fixed bug GH-12661 (Inconsistency in ZipArchive::addGlob remove_path Option + Behavior). (Remi) + +23 Nov 2023, PHP 8.2.13 + +- Core: + . Fixed double-free of non-interned enum case name. (ilutov) + . Fixed bug GH-12457 (Incorrect result of stripos with single character + needle). (SakiTakamachi) + . Fixed bug GH-12468 (Double-free of doc_comment when overriding static + property via trait). (ilutov) + . Fixed segfault caused by weak references to FFI objects. (sj-i) + . Fixed max_execution_time: don't delete an unitialized timer. (Kévin Dunglas) + . Fixed bug GH-12558 (Arginfo soft-breaks with namespaced class return type + if the class name starts with N). (kocsismate) + +- DOM: + . Fix registerNodeClass with abstract class crashing. (nielsdos) + . Add missing NULL pointer error check. (icy17) + . Fix validation logic of php:function() callbacks. (nielsdos) + +- Fiber: + . Fixed bug GH-11121 (ReflectionFiber segfault). (danog, trowski, bwoebi) + +- FPM: + . Fixed bug GH-9921 (Loading ext in FPM config does not register module + handlers). (Jakub Zelenka) + . Fixed bug GH-12232 (FPM: segfault dynamically loading extension without + opcache). (Jakub Zelenka) + . Fixed bug #76922 (FastCGI terminates conn after FCGI_GET_VALUES). + (Jakub Zelenka) + +- Intl: + . Removed the BC break on IntlDateFormatter::construct which threw an + exception with an invalid locale. (David Carlier) + +- Opcache: + . Added warning when JIT cannot be enabled. (danog) + . Fixed bug GH-8143 (Crashes in zend_accel_inheritance_cache_find since + upgrading to 8.1.3 due to corrupt on-disk file cache). (turchanov) + +- OpenSSL: + . Fixed bug GH-12489 (Missing sigbio creation checking in openssl_cms_verify). + (Jakub Zelenka) + +- PCRE: + . Fixed bug GH-11374 (Backport upstream fix, Different preg_match result + with -d pcre.jit=0). (mvorisek) + +- SOAP: + . Fixed bug GH-12392 (Segmentation fault on SoapClient::__getTypes). + (nielsdos) + . Fixed bug #66150 (SOAP WSDL cache race condition causes Segmentation + Fault). (nielsdos) + . Fixed bug #67617 (SOAP leaves incomplete cache file on ENOSPC). (nielsdos) + . Fix incorrect uri check in SOAP caching. (nielsdos) + . Fix segfault and assertion failure with refcounted props and arrays. + (nielsdos) + . Fix potential crash with an edge case of persistent encoders. (nielsdos) + . Fixed bug #75306 (Memleak in SoapClient). (nielsdos) + +- Streams: + . Fixed bug #75708 (getimagesize with "&$imageinfo" fails on StreamWrappers). + (Jakub Zelenka) + +- XMLReader: + . Add missing NULL pointer error check. (icy17) + +- XMLWriter: + . Add missing NULL pointer error check. (icy17) + +- XSL: + . Add missing module dependency. (nielsdos) + . Fix validation logic of php:function() callbacks. (nielsdos) + +26 Oct 2023, PHP 8.2.12 + +- Core: + . Fixed bug GH-12207 (memory leak when class using trait with doc block). + (rioderelfte) + . Fixed bug GH-12215 (Module entry being overwritten causes type errors in + ext/dom). (nielsdos) + . Fixed bug GH-12273 (__builtin_cpu_init check). (Freaky) + . Fixed bug #80092 (ZTS + preload = segfault on shutdown). (nielsdos) + +- CLI: + . Ensure a single Date header is present. (coppolafab) + +- CType: + . Fixed bug GH-11997 (ctype_alnum 5 times slower in PHP 8.1 or greater). + (nielsdos) + +- DOM: + . Restore old namespace reconciliation behaviour. (nielsdos) + . Fixed bug GH-8996 (DOMNode serialization on PHP ^8.1). (nielsdos) + +- Fileinfo: + . Fixed bug GH-11891 (fileinfo returns text/xml for some svg files). (usarise) + +- Filter: + . Fix explicit FILTER_REQUIRE_SCALAR with FILTER_CALLBACK (ilutov) + +- Hash: + . Fixed bug GH-12186 (segfault copying/cloning a finalized HashContext). + (MaxSem) + +- Intl: + . Fixed bug GH-12243 (segfault on IntlDateFormatter::construct). + (David Carlier) + . Fixed bug GH-12282 (IntlDateFormatter::construct should throw an exception + on an invalid locale). (David Carlier) + +- MySQLnd: + . Fixed bug GH-12297 (PHP Startup: Invalid library (maybe not a PHP library) + 'mysqlnd.so' in Unknown on line). (nielsdos) + +- Opcache: + . Fixed opcache_invalidate() on deleted file. (mikhainin) + . Fixed bug GH-12380 (JIT+private array property access inside closure + accesses private property in child class). (nielsdos) + +- PCRE: + . Fixed bug GH-11956 (Backport upstream fix, PCRE regular expressions with + JIT enabled gives different result). (nielsdos) + +- SimpleXML: + . Fixed bug GH-12170 (Can't use xpath with comments in SimpleXML). (nielsdos) + . Fixed bug GH-12223 (Entity reference produces infinite loop in + var_dump/print_r). (nielsdos) + . Fixed bug GH-12167 (Unable to get processing instruction contents in + SimpleXML). (nielsdos) + . Fixed bug GH-12169 (Unable to get comment contents in SimpleXML). + (nielsdos) + +- Streams: + . Fixed bug GH-12190 (binding ipv4 address with both address and port at 0). + (David Carlier) + +- XML: + . Fix return type of stub of xml_parse_into_struct(). (nielsdos) + . Fix memory leak when calling xml_parse_into_struct() twice. (nielsdos) + +- XSL: + . Fix type error on XSLTProcessor::transformToDoc return value with + SimpleXML. (nielsdos) + +28 Sep 2023, PHP 8.2.11 + +- Core: + . Fixed bug GH-11937 (Constant ASTs containing objects). (ilutov) + . Fixed bug GH-11790 (On riscv64 require libatomic if actually needed). + (Jeremie Courreges-Anglas) + . Fixed bug GH-11876: ini_parse_quantity() accepts invalid quantities. + (Girgias) + . Fixed bug GH-12073 (Segfault when freeing incompletely initialized + closures). (ilutov) + . Fixed bug GH-12060 (Internal iterator rewind handler is called twice). + (ju1ius) + . Fixed bug GH-12102 (Incorrect compile error when using array access on TMP + value in function call). (ilutov) + +- DOM: + . Fix memory leak when setting an invalid DOMDocument encoding. (nielsdos) + +- Iconv: + . Fixed build for NetBSD which still uses the old iconv signature. + (David Carlier) + +- Intl: + . Fixed bug GH-12020 (intl_get_error_message() broken after + MessageFormatter::formatMessage() fails). (Girgias) + +- MySQLnd: + . Fixed bug GH-10270 (Invalid error message when connection via SSL fails: + "trying to connect via (null)"). (Kamil Tekiela) + +- ODBC: + . Fixed memory leak with failed SQLPrepare. (NattyNarwhal) + . Fixed persistent procedural ODBC connections not getting closed. + (NattyNarwhal) + +- SimpleXML: + . Fixed bug #52751 (XPath processing-instruction() function is not + supported). (nielsdos) + +- SPL: + . Fixed bug GH-11972 (RecursiveCallbackFilterIterator regression in 8.1.18). + (nielsdos) + +- SQLite3: + . Fixed bug GH-11878 (SQLite3 callback functions cause a memory leak with + a callable array). (nielsdos, arnaud-lb) + +31 Aug 2023, PHP 8.2.10 + +- CLI: + . Fixed bug GH-11716 (cli server crashes on SIGINT when compiled with + ZEND_RC_DEBUG=1). (nielsdos) + . Fixed bug GH-10964 (Improve man page about the built-in server). + (Alexandre Daubois) + +- Date: + . Fixed bug GH-11416 (Crash with DatePeriod when uninitialised objects are + passed in). (Derick) + +- Core: + . Fixed strerror_r detection at configuration time. (Kévin Dunglas) + . Fixed trait typed properties using a DNF type not being correctly bound. + (Girgias) + . Fixed trait property types not being arena allocated if copied from + an internal trait. (Girgias) + . Fixed deep copy of property DNF type during lazy class load. + (Girgias, ilutov) + . Fixed memory freeing of DNF types for non arena allocated types. + (Girgias, ju1ius) + +- DOM: + . Fix DOMEntity field getter bugs. (nielsdos) + . Fix incorrect attribute existence check in DOMElement::setAttributeNodeNS. + (nielsdos) + . Fix DOMCharacterData::replaceWith() with itself. (nielsdos) + . Fix empty argument cases for DOMParentNode methods. (nielsdos) + . Fixed bug GH-11791 (Wrong default value of DOMDocument::xmlStandalone). + (nielsdos) + . Fix json_encode result on DOMDocument. (nielsdos) + . Fix manually calling __construct() on DOM classes. (nielsdos) + . Fixed bug GH-11830 (ParentNode methods should perform their checks + upfront). (nielsdos) + . Fix viable next sibling search for replaceWith. (nielsdos) + . Fix segfault when DOMParentNode::prepend() is called when the child + disappears. (nielsdos) + +- FFI: + . Fix leaking definitions when using FFI::cdef()->new(...). (ilutov) + +- Hash: + . Fix use-of-uninitialized-value in hash_pbkdf2(), fix missing $options + parameter in signature. (ilutov) + +- MySQLnd: + . Fixed bug GH-11440 (authentication to a sha256_password account fails over + SSL). (nielsdos) + . Fixed bug GH-11438 (mysqlnd fails to authenticate with sha256_password + accounts using passwords longer than 19 characters). + (nielsdos, Kamil Tekiela) + . Fixed bug GH-11550 (MySQL Statement has a empty query result when + the response field has changed, also Segmentation fault). + (Yurunsoft) + . Fixed invalid error message "Malformed packet" when connection is dropped. + (Kamil Tekiela) + +- Opcache: + . Fixed bug GH-11715 (opcache.interned_strings_buffer either has no effect or + opcache_get_status() / phpinfo() is wrong). (nielsdos) + . Avoid adding an unnecessary read-lock when loading script from shm if + restart is in progress. (mikhainin) + +- PCNTL: + . Revert behaviour of receiving SIGCHLD signals back to the behaviour + before 8.1.22. (nielsdos) + +- SPL: + . Fixed bug #81992 (SplFixedArray::setSize() causes use-after-free). + (nielsdos) + +- Standard: + . Prevent int overflow on $decimals in number_format. (Marc Bennewitz) + . Fixed bug GH-11870 (Fix off-by-one bug when truncating tempnam prefix) + (athos-ribeiro) + +03 Aug 2023, PHP 8.2.9 + +- Build: + . Fixed bug GH-11522 (PHP version check fails with '-' separator). + (SVGAnimate) + +- CLI: + . Fix interrupted CLI output causing the process to exit. (nielsdos) + +- Core: + . Fixed oss-fuzz #60011 (Mis-compilation of by-reference nullsafe operator). + (ilutov) + . Fixed line number of JMP instruction over else block. (ilutov) + . Fixed use-of-uninitialized-value with ??= on assert. (ilutov) + . Fixed oss-fuzz #60411 (Fix double-compilation of arrow-functions). (ilutov) + . Fixed build for FreeBSD before the 11.0 releases. (David Carlier) + +- Curl: + . Fix crash when an invalid callback function is passed to + CURLMOPT_PUSHFUNCTION. (nielsdos) + +- Date: + . Fixed bug GH-11368 (Date modify returns invalid datetime). (Derick) + . Fixed bug GH-11600 (Can't parse time strings which include (narrow) + non-breaking space characters). (Derick) + . Fixed bug GH-11854 (DateTime:createFromFormat stopped parsing datetime with + extra space). (nielsdos, Derick) + +- DOM: + . Fixed bug GH-11625 (DOMElement::replaceWith() doesn't replace node with + DOMDocumentFragment but just deletes node or causes wrapping <> + depending on libxml2 version). (nielsdos) + +- Fileinfo: + . Fixed bug GH-11298 (finfo returns wrong mime type for xz files). (Anatol) + +- FTP: + . Fix context option check for "overwrite". (JonasQuinten) + . Fixed bug GH-10562 (Memory leak and invalid state with consecutive + ftp_nb_fget). (nielsdos) + +- GD: + . Fix most of the external libgd test failures. (Michael Orlitzky) + +- Intl: + . Fix memory leak in MessageFormatter::format() on failure. (Girgias) + +- Libxml: + . Fixed bug GHSA-3qrf-m4j2-pcrr (Security issue with external entity loading + in XML without enabling it). (CVE-2023-3823) (nielsdos, ilutov) + +- MBString: + . Fix GH-11300 (license issue: restricted unicode license headers). + (nielsdos) + +- Opcache: + . Fixed bug GH-10914 (OPCache with Enum and Callback functions results in + segmentation fault). (nielsdos) + . Prevent potential deadlock if accelerated globals cannot be allocated. + (nielsdos) + +- PCNTL: + . Fixed bug GH-11498 (SIGCHLD is not always returned from proc_open). + (nielsdos) + +- PDO: + . Fix GH-11587 (After php8.1, when PDO::ATTR_EMULATE_PREPARES is true + and PDO::ATTR_STRINGIFY_FETCHES is true, decimal zeros are no longer + filled). (SakiTakamachi) + +- PDO SQLite: + . Fix GH-11492 (Make test failure: ext/pdo_sqlite/tests/bug_42589.phpt). + (KapitanOczywisty, CViniciusSDias) + +- Phar: + . Add missing check on EVP_VerifyUpdate() in phar util. (nielsdos) + . Fixed bug GHSA-jqcx-ccgc-xwhv (Buffer mismanagement in phar_dir_read()). + (CVE-2023-3824) (nielsdos) + +- PHPDBG: + . Fixed bug GH-9669 (phpdbg -h options doesn't list the -z option). (adsr) + +- Session: + . Removed broken url support for transferring session ID. (ilutov) + +- Standard: + . Fix serialization of RC1 objects appearing in object graph twice. (ilutov) + +- Streams: + . Fixed bug GH-11735 (Use-after-free when unregistering user stream wrapper + from itself). (ilutov) + +- SQLite3: + . Fix replaced error handling in SQLite3Stmt::__construct. (nielsdos) + +- XMLReader: + . Fix GH-11548 (Argument corruption when calling XMLReader::open or + XMLReader::XML non-statically with observer active). (Bob) + +06 Jul 2023, PHP 8.2.8 + +- CLI: + . Fixed bug GH-11246 (cli/get_set_process_title fails on MacOS). + (James Lucas) + +- Core: + . Fixed build for the riscv64 architecture/GCC 12. (Daniil Gentili) + +- Curl: + . Fixed bug GH-11433 (Unable to set CURLOPT_ACCEPT_ENCODING to NULL). + (nielsdos) + +- Date: + . Fixed bug GH-11455 (Segmentation fault with custom object date properties). + (nielsdos) + +- DOM: + . Fixed bugs GH-11288 and GH-11289 and GH-11290 and GH-9142 (DOMExceptions + and segfaults with replaceWith). (nielsdos) + . Fixed bug GH-10234 (Setting DOMAttr::textContent results in an empty + attribute value). (nielsdos) + . Fix return value in stub file for DOMNodeList::item. (divinity76) + . Fix spec compliance error with '*' namespace for + DOMDocument::getElementsByTagNameNS. (nielsdos) + . Fix DOMElement::append() and DOMElement::prepend() hierarchy checks. + (nielsdos) + . Fixed bug GH-11347 (Memory leak when calling a static method inside an + xpath query). (nielsdos) + . Fixed bug #67440 (append_node of a DOMDocumentFragment does not reconcile + namespaces). (nielsdos) + . Fixed bug #81642 (DOMChildNode::replaceWith() bug when replacing a node + with itself). (nielsdos) + . Fixed bug #77686 (Removed elements are still returned by getElementById). + (nielsdos) + . Fixed bug #70359 (print_r() on DOMAttr causes Segfault in + php_libxml_node_free_list()). (nielsdos) + . Fixed bug #78577 (Crash in DOMNameSpace debug info handlers). (nielsdos) + . Fix lifetime issue with getAttributeNodeNS(). (nielsdos) + . Fix "invalid state error" with cloned namespace declarations. (nielsdos) + . Fixed bug #55294 and #47530 and #47847 (various namespace reconciliation + issues). (nielsdos) + . Fixed bug #80332 (Completely broken array access functionality with + DOMNamedNodeMap). (nielsdos) + +- Opcache: + . Fix allocation loop in zend_shared_alloc_startup(). (nielsdos) + . Access violation on smm_shared_globals with ALLOC_FALLBACK. (KoudelkaB) + . Fixed bug GH-11336 (php still tries to unlock the shared memory ZendSem + with opcache.file_cache_only=1 but it was never locked). (nielsdos) + +- OpenSSL: + . Fixed bug GH-9356 Incomplete validation of IPv6 Address fields in + subjectAltNames (James Lucas, Jakub Zelenka). + +- PCRE: + . Fix preg_replace_callback_array() pattern validation. (ilutov) + +- PGSQL: + . Fixed intermittent segfault with pg_trace. (David Carlier) + +- Phar: + . Fix cross-compilation check in phar generation for FreeBSD. (peter279k) + +- SPL: + . Fixed bug GH-11338 (SplFileInfo empty getBasename with more than one + slash). (nielsdos) + +- Standard: + . Fix access on NULL pointer in array_merge_recursive(). (ilutov) + . Fix exception handling in array_multisort(). (ilutov) + +- SQLite3: + . Fixed bug GH-11451 (Invalid associative array containing duplicate + keys). (nielsdos) + 08 Jun 2023, PHP 8.2.7 - Core: @@ -59,7 +824,8 @@ - Soap: . Fixed bug GHSA-76gg-c692-v2mw (Missing error check and insufficient random - bytes in HTTP Digest authentication for SOAP). (nielsdos, timwolla) + bytes in HTTP Digest authentication for SOAP). + (CVE-2023-3247) (nielsdos, timwolla) . Fixed bug GH-8426 (make test fail while soap extension build). (nielsdos) - SPL: diff -Nru php8.2-8.2.7/README.md php8.2-8.2.18/README.md --- php8.2-8.2.7/README.md 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/README.md 2024-04-09 18:46:23.000000000 +0000 @@ -16,7 +16,6 @@ [![Push](https://github.com/php/php-src/actions/workflows/push.yml/badge.svg)](https://github.com/php/php-src/actions/workflows/push.yml) [![Build status](https://travis-ci.com/php/php-src.svg?branch=master)](https://travis-ci.com/github/php/php-src) -[![Build status](https://ci.appveyor.com/api/projects/status/meyur6fviaxgdwdy/branch/master?svg=true)](https://ci.appveyor.com/project/php/php-src) [![Build Status](https://dev.azure.com/phpazuredevops/php/_apis/build/status/php.php-src?branchName=master)](https://dev.azure.com/phpazuredevops/php/_build/latest?definitionId=1&branchName=master) [![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/php.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:php) diff -Nru php8.2-8.2.7/TSRM/threads.m4 php8.2-8.2.18/TSRM/threads.m4 --- php8.2-8.2.7/TSRM/threads.m4 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/TSRM/threads.m4 2024-04-09 18:46:23.000000000 +0000 @@ -73,7 +73,7 @@ return data; } -int main() { +int main(void) { pthread_t thd; pthread_mutexattr_t mattr; int data = 1; diff -Nru php8.2-8.2.7/UPGRADING php8.2-8.2.18/UPGRADING --- php8.2-8.2.7/UPGRADING 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/UPGRADING 2024-04-09 18:46:23.000000000 +0000 @@ -243,6 +243,8 @@ objects. . mail() function reverts back to the mixed LF and CRLF new lines (behavior before PHP 8.0) if mail.mixed_lf_and_crlf INI is on. + . When $additional_headers of mail() is an array, the same validation as + `\r\n` is now applied to `\n` alone too. - XML . xml_parser_set_option() now actually returns false when attempting to set a diff -Nru php8.2-8.2.7/Zend/Optimizer/block_pass.c php8.2-8.2.18/Zend/Optimizer/block_pass.c --- php8.2-8.2.7/Zend/Optimizer/block_pass.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/Optimizer/block_pass.c 2024-04-09 18:46:23.000000000 +0000 @@ -172,10 +172,14 @@ && opline->opcode != ZEND_SWITCH_LONG && opline->opcode != ZEND_SWITCH_STRING && opline->opcode != ZEND_MATCH + && opline->opcode != ZEND_MATCH_ERROR && zend_optimizer_update_op1_const(op_array, opline, &c)) { VAR_SOURCE(op1) = NULL; - literal_dtor(&ZEND_OP1_LITERAL(src)); - MAKE_NOP(src); + if (opline->opcode != ZEND_JMP_NULL + && !zend_bitset_in(used_ext, VAR_NUM(src->result.var))) { + literal_dtor(&ZEND_OP1_LITERAL(src)); + MAKE_NOP(src); + } ++(*opt_count); } else { zval_ptr_dtor_nogc(&c); @@ -197,8 +201,10 @@ ZVAL_COPY(&c, &ZEND_OP1_LITERAL(src)); if (zend_optimizer_update_op2_const(op_array, opline, &c)) { VAR_SOURCE(op2) = NULL; - literal_dtor(&ZEND_OP1_LITERAL(src)); - MAKE_NOP(src); + if (!zend_bitset_in(used_ext, VAR_NUM(src->result.var))) { + literal_dtor(&ZEND_OP1_LITERAL(src)); + MAKE_NOP(src); + } ++(*opt_count); } else { zval_ptr_dtor_nogc(&c); diff -Nru php8.2-8.2.7/Zend/Optimizer/optimize_func_calls.c php8.2-8.2.18/Zend/Optimizer/optimize_func_calls.c --- php8.2-8.2.7/Zend/Optimizer/optimize_func_calls.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/Optimizer/optimize_func_calls.c 2024-04-09 18:46:23.000000000 +0000 @@ -31,6 +31,7 @@ typedef struct _optimizer_call_info { zend_function *func; zend_op *opline; + zend_op *last_check_func_arg_opline; bool is_prototype; bool try_inline; uint32_t func_arg_num; @@ -235,6 +236,14 @@ if (call_stack[call - 1].func_arg_num != (uint32_t)-1 && has_known_send_mode(&call_stack[call - 1], call_stack[call - 1].func_arg_num)) { if (ARG_SHOULD_BE_SENT_BY_REF(call_stack[call - 1].func, call_stack[call - 1].func_arg_num)) { + /* There's no TMP specialization for FETCH_OBJ_W/FETCH_DIM_W. Avoid + * converting it and error at runtime in the FUNC_ARG variant. */ + if ((opline->opcode == ZEND_FETCH_OBJ_FUNC_ARG || opline->opcode == ZEND_FETCH_DIM_FUNC_ARG) + && (opline->op1_type == IS_TMP_VAR || call_stack[call - 1].last_check_func_arg_opline == NULL)) { + /* Don't remove the associated CHECK_FUNC_ARG opcode. */ + call_stack[call - 1].last_check_func_arg_opline = NULL; + break; + } if (opline->opcode != ZEND_FETCH_STATIC_PROP_FUNC_ARG) { opline->opcode -= 9; } else { @@ -278,11 +287,21 @@ if (has_known_send_mode(&call_stack[call - 1], opline->op2.num)) { call_stack[call - 1].func_arg_num = opline->op2.num; - MAKE_NOP(opline); + call_stack[call - 1].last_check_func_arg_opline = opline; } break; - case ZEND_SEND_VAR_EX: case ZEND_SEND_FUNC_ARG: + /* Don't transform SEND_FUNC_ARG if any FETCH opcodes weren't transformed. */ + if (call_stack[call - 1].last_check_func_arg_opline == NULL) { + if (opline->op2_type == IS_CONST) { + call_stack[call - 1].try_inline = 0; + } + break; + } + MAKE_NOP(call_stack[call - 1].last_check_func_arg_opline); + call_stack[call - 1].last_check_func_arg_opline = NULL; + ZEND_FALLTHROUGH; + case ZEND_SEND_VAR_EX: if (opline->op2_type == IS_CONST) { call_stack[call - 1].try_inline = 0; break; diff -Nru php8.2-8.2.7/Zend/Optimizer/ssa_integrity.c php8.2-8.2.18/Zend/Optimizer/ssa_integrity.c --- php8.2-8.2.7/Zend/Optimizer/ssa_integrity.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/Optimizer/ssa_integrity.c 2024-04-09 18:46:23.000000000 +0000 @@ -122,7 +122,7 @@ /* 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,32 +148,54 @@ } } - 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); } } FOREACH_PHI_USE_END(); - if ((type & MAY_BE_ARRAY_KEY_ANY) && !(type & MAY_BE_ARRAY_OF_ANY)) { + if ((type & (MAY_BE_ARRAY_KEY_ANY-MAY_BE_ARRAY_EMPTY)) && !(type & MAY_BE_ARRAY_OF_ANY)) { FAIL("var " VARFMT " has array key type but not value type\n", VAR(i)); } - if ((type & MAY_BE_ARRAY_OF_ANY) && !(type & MAY_BE_ARRAY_KEY_ANY)) { + if ((type & MAY_BE_ARRAY_OF_ANY) && !(type & (MAY_BE_ARRAY_KEY_ANY-MAY_BE_ARRAY_EMPTY))) { FAIL("var " VARFMT " has array value type but not key type\n", VAR(i)); } if ((type & MAY_BE_REF) && ssa->var_info[i].ce) { diff -Nru php8.2-8.2.7/Zend/Optimizer/zend_dump.c php8.2-8.2.18/Zend/Optimizer/zend_dump.c --- php8.2-8.2.7/Zend/Optimizer/zend_dump.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/Optimizer/zend_dump.c 2024-04-09 18:46:23.000000000 +0000 @@ -239,21 +239,34 @@ } if (info & MAY_BE_ARRAY) { if (first) first = 0; else fprintf(stderr, ", "); - if (!(info & MAY_BE_ARRAY_KEY_STRING) || (info & MAY_BE_PACKED_GUARD)) { - if (MAY_BE_PACKED_ONLY(info)) { - if (info & MAY_BE_PACKED_GUARD) { - fprintf(stderr, "!"); - } - fprintf(stderr, "packed "); - } else if (MAY_BE_HASH_ONLY(info)) { - if (info & MAY_BE_PACKED_GUARD) { - fprintf(stderr, "!"); - } - fprintf(stderr, "hash "); + if (info & MAY_BE_PACKED_GUARD) { + fprintf(stderr, "!"); + } + if (MAY_BE_EMPTY_ONLY(info)) { + fprintf(stderr, "empty "); + } else if (MAY_BE_PACKED_ONLY(info)) { + fprintf(stderr, "packed "); + } else if (MAY_BE_HASH_ONLY(info)) { + fprintf(stderr, "hash "); + } else if ((info & MAY_BE_ARRAY_KEY_ANY) != MAY_BE_ARRAY_KEY_ANY && (info & MAY_BE_ARRAY_KEY_ANY) != 0) { + bool afirst = 1; + fprintf(stderr, "["); + if (info & MAY_BE_ARRAY_EMPTY) { + if (afirst) afirst = 0; else fprintf(stderr, ", "); + fprintf(stderr, "empty"); + } + if (MAY_BE_PACKED(info)) { + if (afirst) afirst = 0; else fprintf(stderr, ", "); + fprintf(stderr, "packed"); + } + if (MAY_BE_HASH(info)) { + if (afirst) afirst = 0; else fprintf(stderr, ", "); + fprintf(stderr, "hash"); } + fprintf(stderr, "] "); } fprintf(stderr, "array"); - if ((info & MAY_BE_ARRAY_KEY_ANY) != 0 && + if ((info & (MAY_BE_ARRAY_KEY_LONG|MAY_BE_ARRAY_KEY_STRING)) != 0 && ((info & MAY_BE_ARRAY_KEY_LONG) == 0 || (info & MAY_BE_ARRAY_KEY_STRING) == 0)) { bool afirst = 1; diff -Nru php8.2-8.2.7/Zend/Optimizer/zend_func_info.c php8.2-8.2.18/Zend/Optimizer/zend_func_info.c --- php8.2-8.2.7/Zend/Optimizer/zend_func_info.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/Optimizer/zend_func_info.c 2024-04-09 18:46:23.000000000 +0000 @@ -61,7 +61,7 @@ uint32_t t2 = _ssa_op1_info(op_array, ssa, call_info->arg_info[1].opline, &ssa->ops[call_info->arg_info[1].opline - op_array->opcodes]); uint32_t t3 = 0; - uint32_t tmp = MAY_BE_RC1 | MAY_BE_ARRAY; + uint32_t tmp = MAY_BE_RC1 | MAY_BE_ARRAY | MAY_BE_ARRAY_EMPTY; if (call_info->num_args == 3) { t3 = _ssa_op1_info(op_array, ssa, call_info->arg_info[2].opline, @@ -87,7 +87,7 @@ return tmp; } else { /* May throw */ - return MAY_BE_RC1 | MAY_BE_ARRAY | MAY_BE_ARRAY_PACKED | MAY_BE_ARRAY_OF_LONG | MAY_BE_ARRAY_OF_DOUBLE | MAY_BE_ARRAY_OF_STRING; + return MAY_BE_RC1 | MAY_BE_ARRAY | MAY_BE_ARRAY_EMPTY | MAY_BE_ARRAY_PACKED | MAY_BE_ARRAY_OF_LONG | MAY_BE_ARRAY_OF_DOUBLE | MAY_BE_ARRAY_OF_STRING; } } @@ -120,7 +120,12 @@ if (info->info_func) { return call_info ? info->info_func(call_info, ssa) : 0; } else { - return info->info; + uint32_t ret = info->info; + + if (ret & MAY_BE_ARRAY) { + ret |= MAY_BE_ARRAY_EMPTY; + } + return ret; } } diff -Nru php8.2-8.2.7/Zend/Optimizer/zend_func_infos.h php8.2-8.2.18/Zend/Optimizer/zend_func_infos.h --- php8.2-8.2.7/Zend/Optimizer/zend_func_infos.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/Optimizer/zend_func_infos.h 2024-04-09 18:46:23.000000000 +0000 @@ -235,7 +235,7 @@ F1("mb_convert_variables", MAY_BE_STRING|MAY_BE_FALSE), F1("mb_encode_numericentity", MAY_BE_STRING), F1("mb_decode_numericentity", MAY_BE_STRING), - F1("mb_get_info", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_LONG|MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_LONG|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_STRING|MAY_BE_LONG|MAY_BE_FALSE), + F1("mb_get_info", MAY_BE_ARRAY|MAY_BE_ARRAY_KEY_LONG|MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_LONG|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_STRING|MAY_BE_LONG|MAY_BE_FALSE|MAY_BE_NULL), #if defined(HAVE_MBREGEX) F1("mb_regex_encoding", MAY_BE_STRING|MAY_BE_BOOL), #endif diff -Nru php8.2-8.2.7/Zend/Optimizer/zend_inference.c php8.2-8.2.18/Zend/Optimizer/zend_inference.c --- php8.2-8.2.7/Zend/Optimizer/zend_inference.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/Optimizer/zend_inference.c 2024-04-09 18:46:23.000000000 +0000 @@ -77,11 +77,12 @@ #define CHECK_SCC_VAR(var2) \ do { \ if (!ssa->vars[var2].no_val) { \ - if (dfs[var2] < 0) { \ - zend_ssa_check_scc_var(op_array, ssa, var2, index, dfs, root, stack); \ + if (ssa->vars[var2].scc < 0) { \ + zend_ssa_check_scc_var(op_array, ssa, var2, index, stack); \ } \ - if (ssa->vars[var2].scc < 0 && dfs[root[var]] >= dfs[root[var2]]) { \ - root[var] = root[var2]; \ + if (ssa->vars[var2].scc < ssa->vars[var].scc) { \ + ssa->vars[var].scc = ssa->vars[var2].scc; \ + is_root = 0; \ } \ } \ } while (0) @@ -172,15 +173,17 @@ } #endif -static void zend_ssa_check_scc_var(const zend_op_array *op_array, zend_ssa *ssa, int var, int *index, int *dfs, int *root, zend_worklist_stack *stack) /* {{{ */ +#if 0 +/* Recursive Pearce's SCC algorithm implementation */ +static void zend_ssa_check_scc_var(const zend_op_array *op_array, zend_ssa *ssa, int var, int *index, zend_worklist_stack *stack) /* {{{ */ { + int is_root = 1; #ifdef SYM_RANGE zend_ssa_phi *p; #endif - dfs[var] = *index; + ssa->vars[var].scc = *index; (*index)++; - root[var] = var; FOR_EACH_VAR_USAGE(var, CHECK_SCC_VAR); @@ -193,17 +196,20 @@ } #endif - if (root[var] == var) { - ssa->vars[var].scc = ssa->sccs; + if (is_root) { + ssa->sccs--; while (stack->len > 0) { int var2 = zend_worklist_stack_peek(stack); - if (dfs[var2] <= dfs[var]) { + if (ssa->vars[var2].scc < ssa->vars[var].scc) { break; } zend_worklist_stack_pop(stack); ssa->vars[var2].scc = ssa->sccs; + (*index)--; } - ssa->sccs++; + ssa->vars[var].scc = ssa->sccs; + ssa->vars[var].scc_entry = 1; + (*index)--; } else { zend_worklist_stack_push(stack, var); } @@ -212,48 +218,275 @@ ZEND_API void zend_ssa_find_sccs(const zend_op_array *op_array, zend_ssa *ssa) /* {{{ */ { - int index = 0, *dfs, *root; + int index = 0; zend_worklist_stack stack; int j; - ALLOCA_FLAG(dfs_use_heap) - ALLOCA_FLAG(root_use_heap) ALLOCA_FLAG(stack_use_heap) - dfs = do_alloca(sizeof(int) * ssa->vars_count, dfs_use_heap); - memset(dfs, -1, sizeof(int) * ssa->vars_count); - root = do_alloca(sizeof(int) * ssa->vars_count, root_use_heap); ZEND_WORKLIST_STACK_ALLOCA(&stack, ssa->vars_count, stack_use_heap); - /* Find SCCs using Tarjan's algorithm. */ + /* Find SCCs using Pearce's algorithm. */ + ssa->sccs = ssa->vars_count; for (j = 0; j < ssa->vars_count; j++) { - if (!ssa->vars[j].no_val && dfs[j] < 0) { - zend_ssa_check_scc_var(op_array, ssa, j, &index, dfs, root, &stack); + if (!ssa->vars[j].no_val && ssa->vars[j].scc < 0) { + zend_ssa_check_scc_var(op_array, ssa, j, &index, &stack); + } + } + + if (ssa->sccs) { + /* Shift SCC indexes. */ + for (j = 0; j < ssa->vars_count; j++) { + if (ssa->vars[j].scc >= 0) { + ssa->vars[j].scc -= ssa->sccs; + } } } + ssa->sccs = ssa->vars_count - ssa->sccs; - /* Revert SCC order. This results in a topological order. */ for (j = 0; j < ssa->vars_count; j++) { if (ssa->vars[j].scc >= 0) { - ssa->vars[j].scc = ssa->sccs - (ssa->vars[j].scc + 1); + int var = j; + FOR_EACH_VAR_USAGE(var, CHECK_SCC_ENTRY); + } + } + + ZEND_WORKLIST_STACK_FREE_ALLOCA(&stack, stack_use_heap); +} +/* }}} */ + +#else +/* Iterative Pearce's SCC algorithm implementation */ + +typedef struct _zend_scc_iterator { + int state; + int last; + union { + int use; + zend_ssa_phi *phi; + }; +} zend_scc_iterator; + +static int zend_scc_next(const zend_op_array *op_array, zend_ssa *ssa, int var, zend_scc_iterator *iterator) /* {{{ */ +{ + zend_ssa_phi *phi; + int use, var2; + + switch (iterator->state) { + case 0: goto state_0; + case 1: use = iterator->use; goto state_1; + case 2: use = iterator->use; goto state_2; + case 3: use = iterator->use; goto state_3; + case 4: use = iterator->use; goto state_4; + case 5: use = iterator->use; goto state_5; + case 6: use = iterator->use; goto state_6; + case 7: use = iterator->use; goto state_7; + case 8: use = iterator->use; goto state_8; + case 9: phi = iterator->phi; goto state_9; +#ifdef SYM_RANGE + case 10: phi = iterator->phi; goto state_10; +#endif + case 11: goto state_11; + } + +state_0: + use = ssa->vars[var].use_chain; + while (use >= 0) { + iterator->use = use; + var2 = ssa->ops[use].op1_def; + if (var2 >= 0 && !ssa->vars[var2].no_val) { + iterator->state = 1; + return var2; + } +state_1: + var2 = ssa->ops[use].op2_def; + if (var2 >= 0 && !ssa->vars[var2].no_val) { + iterator->state = 2; + return var2; + } +state_2: + var2 = ssa->ops[use].result_def; + if (var2 >= 0 && !ssa->vars[var2].no_val) { + iterator->state = 3; + return var2; + } +state_3: + if (op_array->opcodes[use].opcode == ZEND_OP_DATA) { + var2 = ssa->ops[use-1].op1_def; + if (var2 >= 0 && !ssa->vars[var2].no_val) { + iterator->state = 4; + return var2; + } +state_4: + var2 = ssa->ops[use-1].op2_def; + if (var2 >= 0 && !ssa->vars[var2].no_val) { + iterator->state = 5; + return var2; + } +state_5: + var2 = ssa->ops[use-1].result_def; + if (var2 >= 0 && !ssa->vars[var2].no_val) { + iterator->state = 8; + return var2; + } + } else if ((uint32_t)use+1 < op_array->last && + op_array->opcodes[use+1].opcode == ZEND_OP_DATA) { + var2 = ssa->ops[use+1].op1_def; + if (var2 >= 0 && !ssa->vars[var2].no_val) { + iterator->state = 6; + return var2; + } +state_6: + var2 = ssa->ops[use+1].op2_def; + if (var2 >= 0 && !ssa->vars[var2].no_val) { + iterator->state = 7; + return var2; + } +state_7: + var2 = ssa->ops[use+1].result_def; + if (var2 >= 0 && !ssa->vars[var2].no_val) { + iterator->state = 8; + return var2; + } + } +state_8: + use = zend_ssa_next_use(ssa->ops, var, use); + } + + phi = ssa->vars[var].phi_use_chain; + while (phi) { + var2 = phi->ssa_var; + if (!ssa->vars[var2].no_val) { + iterator->state = 9; + iterator->phi = phi; + return var2; + } +state_9: + phi = zend_ssa_next_use_phi(ssa, var, phi); + } + +#ifdef SYM_RANGE + /* Process symbolic control-flow constraints */ + phi = ssa->vars[var].sym_use_chain; + while (phi) { + var2 = phi->ssa_var; + if (!ssa->vars[var2].no_val) { + iterator->state = 10; + iterator->phi = phi; + return var2; + } +state_10: + phi = phi->sym_use_chain; + } +#endif + + iterator->state = 11; +state_11: + return -1; +} +/* }}} */ + +static void zend_ssa_check_scc_var(const zend_op_array *op_array, zend_ssa *ssa, int var, int *index, zend_worklist_stack *stack, zend_worklist_stack *vstack, zend_scc_iterator *iterators) /* {{{ */ +{ +restart: + zend_worklist_stack_push(vstack, var); + iterators[var].state = 0; + iterators[var].last = -1; + ssa->vars[var].scc_entry = 1; + ssa->vars[var].scc = *index; + (*index)++; + + while (vstack->len > 0) { + var = zend_worklist_stack_peek(vstack); + while (1) { + int var2; + + if (iterators[var].last >= 0) { + /* finish edge */ + var2 = iterators[var].last; + if (ssa->vars[var2].scc < ssa->vars[var].scc) { + ssa->vars[var].scc = ssa->vars[var2].scc; + ssa->vars[var].scc_entry = 0; + } + } + var2 = zend_scc_next(op_array, ssa, var, iterators + var); + iterators[var].last = var2; + if (var2 < 0) break; + /* begin edge */ + if (ssa->vars[var2].scc < 0) { + var = var2; + goto restart; + } + } + + /* finish visiting */ + zend_worklist_stack_pop(vstack); + if (ssa->vars[var].scc_entry) { + ssa->sccs--; + while (stack->len > 0) { + int var2 = zend_worklist_stack_peek(stack); + if (ssa->vars[var2].scc < ssa->vars[var].scc) { + break; + } + zend_worklist_stack_pop(stack); + ssa->vars[var2].scc = ssa->sccs; + (*index)--; + } + ssa->vars[var].scc = ssa->sccs; + (*index)--; + } else { + zend_worklist_stack_push(stack, var); } } +} +/* }}} */ + +ZEND_API void zend_ssa_find_sccs(const zend_op_array *op_array, zend_ssa *ssa) /* {{{ */ +{ + int index = 0; + zend_worklist_stack stack, vstack; + zend_scc_iterator *iterators; + int j; + ALLOCA_FLAG(stack_use_heap) + ALLOCA_FLAG(vstack_use_heap) + ALLOCA_FLAG(iterators_use_heap) + + iterators = do_alloca(sizeof(zend_scc_iterator) * ssa->vars_count, iterators_use_heap); + ZEND_WORKLIST_STACK_ALLOCA(&vstack, ssa->vars_count, vstack_use_heap); + ZEND_WORKLIST_STACK_ALLOCA(&stack, ssa->vars_count, stack_use_heap); + + /* Find SCCs using Pearce's algorithm. */ + ssa->sccs = ssa->vars_count; + for (j = 0; j < ssa->vars_count; j++) { + if (!ssa->vars[j].no_val && ssa->vars[j].scc < 0) { + zend_ssa_check_scc_var(op_array, ssa, j, &index, &stack, &vstack, iterators); + } + } + + if (ssa->sccs) { + /* Shift SCC indexes. */ + for (j = 0; j < ssa->vars_count; j++) { + if (ssa->vars[j].scc >= 0) { + ssa->vars[j].scc -= ssa->sccs; + } + } + } + ssa->sccs = ssa->vars_count - ssa->sccs; for (j = 0; j < ssa->vars_count; j++) { if (ssa->vars[j].scc >= 0) { int var = j; - if (root[j] == j) { - ssa->vars[j].scc_entry = 1; - } FOR_EACH_VAR_USAGE(var, CHECK_SCC_ENTRY); } } ZEND_WORKLIST_STACK_FREE_ALLOCA(&stack, stack_use_heap); - free_alloca(root, root_use_heap); - free_alloca(dfs, dfs_use_heap); + ZEND_WORKLIST_STACK_FREE_ALLOCA(&vstack, vstack_use_heap); + free_alloca(iterators, iterators_use_heap); } /* }}} */ +#endif + ZEND_API void zend_ssa_find_false_dependencies(const zend_op_array *op_array, zend_ssa *ssa) /* {{{ */ { zend_ssa_var *ssa_vars = ssa->vars; @@ -1731,6 +1964,12 @@ } \ if (__var >= 0) { \ zend_ssa_var *__ssa_var = &ssa_vars[__var]; \ + if (__ssa_var->var < op_array->num_args) { \ + if (__type & MAY_BE_RC1) { \ + /* TODO: may be captured by exception backtreace */ \ + __type |= MAY_BE_RCN; \ + } \ + } \ if (__ssa_var->var < op_array->last_var) { \ if (__type & (MAY_BE_REF|MAY_BE_RCN)) { \ __type |= MAY_BE_RC1 | MAY_BE_RCN; \ @@ -1866,16 +2105,22 @@ tmp |= MAY_BE_RCN; } - ZEND_HASH_FOREACH_STR_KEY_VAL(ht, str, val) { - if (str) { - tmp |= MAY_BE_ARRAY_KEY_STRING; - } else { - tmp |= MAY_BE_ARRAY_KEY_LONG; - } - tmp |= 1 << (Z_TYPE_P(val) + MAY_BE_ARRAY_SHIFT); - } ZEND_HASH_FOREACH_END(); - if (HT_IS_PACKED(ht)) { - tmp &= ~(MAY_BE_ARRAY_NUMERIC_HASH|MAY_BE_ARRAY_STRING_HASH); + if (zend_hash_num_elements(ht) == 0) { + tmp |= MAY_BE_ARRAY_EMPTY; + } else if (HT_IS_PACKED(ht)) { + tmp |= MAY_BE_ARRAY_PACKED; + ZEND_HASH_PACKED_FOREACH_VAL(ht, val) { + tmp |= 1 << (Z_TYPE_P(val) + MAY_BE_ARRAY_SHIFT); + } ZEND_HASH_FOREACH_END(); + } else { + ZEND_HASH_MAP_FOREACH_STR_KEY_VAL(ht, str, val) { + if (str) { + tmp |= MAY_BE_ARRAY_STRING_HASH; + } else { + tmp |= MAY_BE_ARRAY_NUMERIC_HASH; + } + tmp |= 1 << (Z_TYPE_P(val) + MAY_BE_ARRAY_SHIFT); + } ZEND_HASH_FOREACH_END(); } return tmp; } @@ -1983,6 +2228,7 @@ if (tmp & MAY_BE_ARRAY_KEY_ANY) { tmp |= (value_type & MAY_BE_ANY) << MAY_BE_ARRAY_SHIFT; } + tmp &= ~MAY_BE_ARRAY_EMPTY; return tmp; } @@ -2191,7 +2437,7 @@ if (opline->op2_type == IS_CONST) { zend_class_entry *ce = NULL; - if (opline->op1_type == IS_UNUSED) { + if (opline->op1_type == IS_UNUSED && !(op_array->fn_flags & ZEND_ACC_TRAIT_CLONE)) { ce = op_array->scope; } else if (ssa_op->op1_use >= 0) { ce = ssa->var_info[ssa_op->op1_use].ce; @@ -2306,6 +2552,7 @@ * code may assume that operands have at least one type. */ if (!(t1 & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_CLASS)) || !(t2 & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_CLASS)) + || (ssa_op->result_use >= 0 && !(RES_USE_INFO() & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_CLASS))) || ((opline->opcode == ZEND_ASSIGN_DIM_OP || opline->opcode == ZEND_ASSIGN_OBJ_OP || opline->opcode == ZEND_ASSIGN_STATIC_PROP_OP @@ -2427,6 +2674,9 @@ } } if (opline->extended_value == IS_ARRAY) { + if (t1 & (MAY_BE_UNDEF|MAY_BE_NULL)) { + tmp |= MAY_BE_ARRAY_EMPTY; + } if (t1 & MAY_BE_ARRAY) { tmp |= t1 & (MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF); } @@ -2575,8 +2825,15 @@ /* 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 */ @@ -2587,8 +2844,15 @@ /* 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) { @@ -3140,6 +3404,9 @@ arr_type = RES_USE_INFO(); } tmp = MAY_BE_RC1|MAY_BE_ARRAY|arr_type; + if (opline->opcode == ZEND_INIT_ARRAY && opline->op1_type == IS_UNUSED) { + tmp |= MAY_BE_ARRAY_EMPTY; + } if (opline->op1_type != IS_UNUSED && (opline->op2_type == IS_UNUSED || (t2 & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE|MAY_BE_RESOURCE|MAY_BE_STRING)))) { @@ -3338,10 +3605,18 @@ zend_uchar opcode; if (!ssa_opcodes) { - ZEND_ASSERT(j == (opline - op_array->opcodes) + 1 && "Use must be in next opline"); + if (j != (opline - op_array->opcodes) + 1) { + /* Use must be in next opline */ + tmp |= key_type | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF; + break; + } opcode = op_array->opcodes[j].opcode; } else { - ZEND_ASSERT(ssa_opcodes[j] == opline + 1 && "Use must be in next opline"); + if (ssa_opcodes[j] != opline + 1) { + /* Use must be in next opline */ + tmp |= key_type | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF; + break; + } opcode = ssa_opcodes[j]->opcode; } switch (opcode) { @@ -3403,10 +3678,17 @@ EMPTY_SWITCH_DEFAULT_CASE() } j = zend_ssa_next_use(ssa->ops, ssa_op->result_def, j); - ZEND_ASSERT(j < 0 && "There should only be one use"); + if (j >= 0) { + tmp |= key_type | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF; + break; + } + } + if (opline->opcode != ZEND_FETCH_DIM_FUNC_ARG) { + tmp &= ~MAY_BE_ARRAY_EMPTY; } } - if (((tmp & MAY_BE_ARRAY) && (tmp & MAY_BE_ARRAY_KEY_ANY)) + if (!(tmp & MAY_BE_ARRAY) + || (tmp & MAY_BE_ARRAY_KEY_ANY) || opline->opcode == ZEND_FETCH_DIM_FUNC_ARG || opline->opcode == ZEND_FETCH_DIM_R || opline->opcode == ZEND_FETCH_DIM_IS @@ -3415,9 +3697,7 @@ UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); } else { /* invalid key type */ - tmp = (tmp & (MAY_BE_RC1|MAY_BE_RCN|MAY_BE_ARRAY)) | - (t1 & ~(MAY_BE_RC1|MAY_BE_RCN|MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE)); - UPDATE_SSA_TYPE(tmp, ssa_op->op1_def); + return SUCCESS; } COPY_SSA_OBJ_TYPE(ssa_op->op1_use, ssa_op->op1_def); } @@ -3451,7 +3731,9 @@ UPDATE_SSA_TYPE(tmp, ssa_op->result_def); break; case ZEND_FETCH_THIS: - UPDATE_SSA_OBJ_TYPE(op_array->scope, 1, ssa_op->result_def); + if (!(op_array->fn_flags & ZEND_ACC_TRAIT_CLONE)) { + UPDATE_SSA_OBJ_TYPE(op_array->scope, 1, ssa_op->result_def); + } UPDATE_SSA_TYPE(MAY_BE_RCN|MAY_BE_OBJECT, ssa_op->result_def); break; case ZEND_FETCH_OBJ_R: @@ -3576,7 +3858,7 @@ UPDATE_SSA_TYPE(MAY_BE_LONG, ssa_op->result_def); break; case ZEND_FUNC_GET_ARGS: - UPDATE_SSA_TYPE(MAY_BE_RC1|MAY_BE_RCN| MAY_BE_ARRAY | MAY_BE_ARRAY_PACKED | MAY_BE_ARRAY_OF_ANY, ssa_op->result_def); + UPDATE_SSA_TYPE(MAY_BE_RC1|MAY_BE_RCN|MAY_BE_ARRAY|MAY_BE_ARRAY_EMPTY|MAY_BE_ARRAY_PACKED|MAY_BE_ARRAY_OF_ANY, ssa_op->result_def); break; case ZEND_GET_CLASS: case ZEND_GET_CALLED_CLASS: @@ -4845,9 +5127,9 @@ case ZEND_FETCH_IS: return (t2 & (MAY_BE_ARRAY|MAY_BE_OBJECT)); case ZEND_ISSET_ISEMPTY_DIM_OBJ: - return (t1 & MAY_BE_OBJECT) || (t2 & (MAY_BE_ARRAY|MAY_BE_OBJECT)); + return (t1 & MAY_BE_OBJECT) || (t2 & (MAY_BE_DOUBLE|MAY_BE_ARRAY|MAY_BE_OBJECT)); case ZEND_FETCH_DIM_IS: - return (t1 & MAY_BE_OBJECT) || (t2 & (MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)); + return (t1 & MAY_BE_OBJECT) || (t2 & (MAY_BE_DOUBLE|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)); case ZEND_CAST: switch (opline->extended_value) { case IS_LONG: diff -Nru php8.2-8.2.7/Zend/Optimizer/zend_inference.h php8.2-8.2.18/Zend/Optimizer/zend_inference.h --- php8.2-8.2.7/Zend/Optimizer/zend_inference.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/Optimizer/zend_inference.h 2024-04-09 18:46:23.000000000 +0000 @@ -29,7 +29,6 @@ #define MAY_BE_PACKED_GUARD (1<<27) /* needs packed array guard */ #define MAY_BE_CLASS_GUARD (1<<27) /* needs class guard */ #define MAY_BE_GUARD (1<<28) /* needs type guard */ -//#define MAY_BE_IN_REG (1<<29) /* deprecated and not used */ #define MAY_HAVE_DTOR \ (MAY_BE_OBJECT|MAY_BE_RESOURCE \ diff -Nru php8.2-8.2.7/Zend/Optimizer/zend_optimizer.c php8.2-8.2.18/Zend/Optimizer/zend_optimizer.c --- php8.2-8.2.7/Zend/Optimizer/zend_optimizer.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/Optimizer/zend_optimizer.c 2024-04-09 18:46:23.000000000 +0000 @@ -797,7 +797,9 @@ } 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 -Nru php8.2-8.2.7/Zend/Zend.m4 php8.2-8.2.18/Zend/Zend.m4 --- php8.2-8.2.7/Zend/Zend.m4 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/Zend.m4 2024-04-09 18:46:23.000000000 +0000 @@ -220,7 +220,7 @@ #define ZEND_MM_ALIGNMENT (sizeof(mm_align_test)) #endif -int main() +int main(void) { size_t i = ZEND_MM_ALIGNMENT; int zeros = 0; diff -Nru php8.2-8.2.7/Zend/tests/arginfo_zpp_mismatch.phpt php8.2-8.2.18/Zend/tests/arginfo_zpp_mismatch.phpt --- php8.2-8.2.7/Zend/tests/arginfo_zpp_mismatch.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/tests/arginfo_zpp_mismatch.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -2,6 +2,7 @@ Test that there is no arginfo/zpp mismatch --SKIPIF-- --FILE-- diff -Nru php8.2-8.2.7/Zend/tests/arginfo_zpp_mismatch_strict.phpt php8.2-8.2.18/Zend/tests/arginfo_zpp_mismatch_strict.phpt --- php8.2-8.2.7/Zend/tests/arginfo_zpp_mismatch_strict.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/tests/arginfo_zpp_mismatch_strict.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -2,6 +2,7 @@ Test that there is no arginfo/zpp mismatch in strict mode --SKIPIF-- --FILE-- diff -Nru php8.2-8.2.7/Zend/tests/array_merge_recursive_next_key_overflow.phpt php8.2-8.2.18/Zend/tests/array_merge_recursive_next_key_overflow.phpt --- php8.2-8.2.7/Zend/tests/array_merge_recursive_next_key_overflow.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/Zend/tests/array_merge_recursive_next_key_overflow.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,25 @@ +--TEST-- +Access on NULL pointer in array_merge_recursive() +--FILE-- + [PHP_INT_MAX => null]], + ['' => [null]], + ); +} catch (Throwable $e) { + echo $e->getMessage(), "\n"; +} + +try { + array_merge_recursive( + ['foo' => [PHP_INT_MAX => null]], + ['foo' => str_repeat('a', 2)], + ); +} catch (Throwable $e) { + echo $e->getMessage(), "\n"; +} +?> +--EXPECT-- +Cannot add element to the array as the next element is already occupied +Cannot add element to the array as the next element is already occupied diff -Nru php8.2-8.2.7/Zend/tests/array_multisort_exception.phpt php8.2-8.2.18/Zend/tests/array_multisort_exception.phpt --- php8.2-8.2.7/Zend/tests/array_multisort_exception.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/Zend/tests/array_multisort_exception.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,13 @@ +--TEST-- +Exception handling in array_multisort() +--FILE-- + new DateTime(), 0 => new DateTime()]; +array_multisort($array, SORT_STRING); +?> +--EXPECTF-- +Fatal error: Uncaught Error: Object of class DateTime could not be converted to string in %s:%d +Stack trace: +#0 %s(%d): array_multisort(Array, 2) +#1 {main} + thrown in %s on line %d diff -Nru php8.2-8.2.7/Zend/tests/fibers/negative_stack_size.phpt php8.2-8.2.18/Zend/tests/fibers/negative_stack_size.phpt --- php8.2-8.2.7/Zend/tests/fibers/negative_stack_size.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/Zend/tests/fibers/negative_stack_size.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,16 @@ +--TEST-- +fiber.stack_size must be a positive number +--FILE-- +start(); +} catch (Throwable $e) { + echo "Exception: " . $e->getMessage()."\n"; +} +?> +DONE +--EXPECTF-- +Warning: fiber.stack_size must be a positive number in %snegative_stack_size.php on line 2 +DONE diff -Nru php8.2-8.2.7/Zend/tests/gc_047.phpt php8.2-8.2.18/Zend/tests/gc_047.phpt --- php8.2-8.2.7/Zend/tests/gc_047.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/Zend/tests/gc_047.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,20 @@ +--TEST-- +GC 047: Leak after GC inside a foreach loop +--INI-- +zend.enable_gc=1 +--FILE-- + +--EXPECT-- +int(2) diff -Nru php8.2-8.2.7/Zend/tests/gh11580.phpt php8.2-8.2.18/Zend/tests/gh11580.phpt --- php8.2-8.2.7/Zend/tests/gh11580.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/Zend/tests/gh11580.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,13 @@ +--TEST-- +GH-11580: assert() with ??= operator can lead to use-of-uninitialized-value +--INI-- +zend.assertions=0 +--FILE-- + +--EXPECTF-- +Fatal error: Uncaught Error: Undefined constant "y" in %s:%d +Stack trace: +#0 {main} + thrown in %s on line %d diff -Nru php8.2-8.2.7/Zend/tests/gh11735_1.phpt php8.2-8.2.18/Zend/tests/gh11735_1.phpt --- php8.2-8.2.7/Zend/tests/gh11735_1.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/Zend/tests/gh11735_1.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,16 @@ +--TEST-- +GH-11735: Use-after-free when unregistering user stream wrapper from user stream wrapper +--FILE-- + +--EXPECTF-- +resource(%d) of type (stream) diff -Nru php8.2-8.2.7/Zend/tests/gh11735_2.phpt php8.2-8.2.18/Zend/tests/gh11735_2.phpt --- php8.2-8.2.7/Zend/tests/gh11735_2.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/Zend/tests/gh11735_2.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,17 @@ +--TEST-- +GH-11735: Use-after-free when unregistering user stream wrapper from user stream wrapper +--FILE-- + +--EXPECTF-- +Warning: fopen(foo://bar): Failed to open stream: "FooWrapper::stream_open" call failed in %s on line %d +bool(false) diff -Nru php8.2-8.2.7/Zend/tests/gh12073.phpt php8.2-8.2.18/Zend/tests/gh12073.phpt --- php8.2-8.2.7/Zend/tests/gh12073.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/Zend/tests/gh12073.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,28 @@ +--TEST-- +GH-12073: Freeing of non-ZMM pointer of incompletely allocated closure +--SKIPIF-- + +--FILE-- + +--EXPECTF-- +Fatal error: Allowed memory size of %d bytes exhausted%s(tried to allocate %d bytes) in %s on line %d diff -Nru php8.2-8.2.7/Zend/tests/gh12102_1.phpt php8.2-8.2.18/Zend/tests/gh12102_1.phpt --- php8.2-8.2.7/Zend/tests/gh12102_1.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/Zend/tests/gh12102_1.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,30 @@ +--TEST-- +GH-12102: Incorrect "Cannot use temporary expression in write context" error for BP_VAR_FUNC_ARG +--FILE-- +getMessage(), "\n"; + } +} + +/* Intentionally declared after test() to avoid compile-time checking of ref args. */ + +function byVal($arg) { + var_dump($arg); +} + +function byRef(&$arg) { + var_dump($arg); +} + +test('y'); + +?> +--EXPECT-- +string(1) "y" +Cannot use temporary expression in write context diff -Nru php8.2-8.2.7/Zend/tests/gh12102_2.phpt php8.2-8.2.18/Zend/tests/gh12102_2.phpt --- php8.2-8.2.7/Zend/tests/gh12102_2.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/Zend/tests/gh12102_2.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,43 @@ +--TEST-- +GH-12102: Incorrect "Cannot use temporary expression in write context" error for BP_VAR_FUNC_ARG +--FILE-- + +--EXPECTF-- +Warning: Undefined array key 0 in %s on line %d +array(0) { +} +array(1) { + [0]=> + array(1) { + [0]=> + int(42) + } +} diff -Nru php8.2-8.2.7/Zend/tests/gh12102_3.phpt php8.2-8.2.18/Zend/tests/gh12102_3.phpt --- php8.2-8.2.7/Zend/tests/gh12102_3.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/Zend/tests/gh12102_3.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,32 @@ +--TEST-- +GH-12102: Incorrect "Cannot use temporary expression in write context" error for BP_VAR_FUNC_ARG +--FILE-- +getMessage(), "\n"; + } +} + +/* Intentionally declared after test() to avoid compile-time checking of ref args. */ + +const C = ['foo']; + +function byVal($arg) { + var_dump($arg); +} + +function byRef(&$arg) { + var_dump($arg); +} + +test('y'); + +?> +--EXPECT-- +string(3) "foo" +Cannot use temporary expression in write context diff -Nru php8.2-8.2.7/Zend/tests/gh12366.inc php8.2-8.2.18/Zend/tests/gh12366.inc --- php8.2-8.2.7/Zend/tests/gh12366.inc 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/Zend/tests/gh12366.inc 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,7 @@ + +--EXPECT-- +enum(Level::Debug) diff -Nru php8.2-8.2.7/Zend/tests/gh12457.phpt php8.2-8.2.18/Zend/tests/gh12457.phpt --- php8.2-8.2.7/Zend/tests/gh12457.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/Zend/tests/gh12457.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,33 @@ +--TEST-- +GH-12458 (Fix GH-12457: Fixed a bug in zend_memnistr) +--FILE-- + +--EXPECTF-- +Test case to ensure the issue is fixed. +int(2) +int(2) +int(2) +string(6) "BBBBBb" +string(7) "BBBBBbb" +string(8) "BBBBBbbb" + +Test cases to ensure the original functionality is not broken. +int(8) +int(8) +string(1) "c" +string(1) "C" diff -Nru php8.2-8.2.7/Zend/tests/gh12468_1.phpt php8.2-8.2.18/Zend/tests/gh12468_1.phpt --- php8.2-8.2.7/Zend/tests/gh12468_1.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/Zend/tests/gh12468_1.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,18 @@ +--TEST-- +GH-12468: Double-free of doc_comment when overriding static property via trait +--FILE-- + +===DONE=== +--EXPECT-- +===DONE=== diff -Nru php8.2-8.2.7/Zend/tests/gh12468_2.phpt php8.2-8.2.18/Zend/tests/gh12468_2.phpt --- php8.2-8.2.7/Zend/tests/gh12468_2.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/Zend/tests/gh12468_2.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,19 @@ +--TEST-- +GH-12468: Double-free of doc_comment when overriding static property via trait +--FILE-- + +===DONE=== +--EXPECT-- +===DONE=== diff -Nru php8.2-8.2.7/Zend/tests/gh13097_a.phpt php8.2-8.2.18/Zend/tests/gh13097_a.phpt --- php8.2-8.2.7/Zend/tests/gh13097_a.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/Zend/tests/gh13097_a.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,15 @@ +--TEST-- +GH-13097 (Anonymous class reference in trigger_error / thrown Exception) +--FILE-- + +--EXPECTF-- +Fatal error: class@anonymous%s ...now you don't! in %s on line %d diff -Nru php8.2-8.2.7/Zend/tests/gh13097_b.phpt php8.2-8.2.18/Zend/tests/gh13097_b.phpt --- php8.2-8.2.7/Zend/tests/gh13097_b.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/Zend/tests/gh13097_b.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,18 @@ +--TEST-- +GH-13097 (Anonymous class reference in trigger_error / thrown Exception) +--FILE-- + +--EXPECTF-- +Fatal error: Uncaught Exception: class@anonymous%s ...now you don't! in %s:%d +Stack trace: +#0 {main} + thrown in %s on line %d diff -Nru php8.2-8.2.7/Zend/tests/gh13670_001.phpt php8.2-8.2.18/Zend/tests/gh13670_001.phpt --- php8.2-8.2.7/Zend/tests/gh13670_001.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/Zend/tests/gh13670_001.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,48 @@ +--TEST-- +GH-13670 001 +--SKIPIF-- + +--FILE-- +self = $this; + } + public function __destruct() { + global $shutdown; + if (!$shutdown) { + new Cycle(); + } + } +} + +$defaultThreshold = gc_status()['threshold']; +for ($i = 0; $i < $defaultThreshold+1; $i++) { + new Cycle(); +} + +$objs = []; +for ($i = 0; $i < 100; $i++) { + $obj = new stdClass; + $objs[] = $obj; +} + +$st = gc_status(); + +if ($st['runs'] > 10) { + var_dump($st); +} +?> +==DONE== +--EXPECT-- +==DONE== diff -Nru php8.2-8.2.7/Zend/tests/gh13670_002.phpt php8.2-8.2.18/Zend/tests/gh13670_002.phpt --- php8.2-8.2.7/Zend/tests/gh13670_002.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/Zend/tests/gh13670_002.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,71 @@ +--TEST-- +GH-13670 002 +--SKIPIF-- + +--FILE-- +self = $this; + } +} + +class Canary { + public $self; + public function __construct() { + $this->self = $this; + } + public function __destruct() { + global $shutdown; + if (!$shutdown) { + work(); + } + } +} + +function work() { + global $objs, $defaultThreshold; + new Canary(); + // Create some collectable garbage so the next run will not adjust + // threshold + for ($i = 0; $i < 100; $i++) { + new Cycle(); + } + // Add potential garbage to buffer + foreach (array_slice($objs, 0, $defaultThreshold) as $obj) { + $o = $obj; + } +} + +$defaultThreshold = gc_status()['threshold']; +$objs = []; +for ($i = 0; $i < $defaultThreshold*2; $i++) { + $obj = new stdClass; + $objs[] = $obj; +} + +work(); + +foreach ($objs as $obj) { + $o = $obj; +} + +$st = gc_status(); + +if ($st['runs'] > 10) { + var_dump($st); +} +?> +==DONE== +--EXPECT-- +==DONE== diff -Nru php8.2-8.2.7/Zend/tests/gh13670_003.phpt php8.2-8.2.18/Zend/tests/gh13670_003.phpt --- php8.2-8.2.7/Zend/tests/gh13670_003.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/Zend/tests/gh13670_003.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,73 @@ +--TEST-- +GH-13670 003 +--SKIPIF-- + +--FILE-- +self = $this; + } +} + +class Canary { + public $self; + public function __construct() { + $this->self = $this; + } + public function __destruct() { + global $shutdown; + if (!$shutdown) { + work(); + } + } +} + +function work() { + global $objs, $defaultThreshold; + new Canary(); + // Create some collectable garbage so the next run will not adjust + // threshold + for ($i = 0; $i < 100; $i++) { + new Cycle(); + } + // Add potential garbage to buffer + foreach (array_slice($objs, 0, $defaultThreshold) as $obj) { + $o = $obj; + } +} + +$defaultThreshold = gc_status()['threshold']; +$objs = []; +for ($i = 0; $i < $defaultThreshold*2; $i++) { + $obj = new stdClass; + $objs[] = $obj; +} + +work(); + +// Result of array_slice() is a tmpvar that will be checked by +// zend_gc_check_root_tmpvars() +foreach (array_slice($objs, -10) as $obj) { + $o = $obj; +} + +$st = gc_status(); + +if ($st['runs'] > 10) { + var_dump($st); +} +?> +==DONE== +--EXPECT-- +==DONE== diff -Nru php8.2-8.2.7/Zend/tests/oss_fuzz_54325.phpt php8.2-8.2.18/Zend/tests/oss_fuzz_54325.phpt --- php8.2-8.2.7/Zend/tests/oss_fuzz_54325.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/Zend/tests/oss_fuzz_54325.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,19 @@ +--TEST-- +oss-fuzz #54325: Fix use-after-free of name in var-var with malicious error handler +--FILE-- + +--EXPECT-- +string(23) "Undefined variable $oof" +object(stdClass)#2 (0) { +} diff -Nru php8.2-8.2.7/Zend/tests/oss_fuzz_60011_1.phpt php8.2-8.2.18/Zend/tests/oss_fuzz_60011_1.phpt --- php8.2-8.2.7/Zend/tests/oss_fuzz_60011_1.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/Zend/tests/oss_fuzz_60011_1.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,8 @@ +--TEST-- +oss-fuzz #60011 (Incorrect order of instruction with nullsafe operator) +--FILE-- +y?->y; +?> +--EXPECTF-- +Fatal error: Cannot take reference of a nullsafe chain in %s on line %d diff -Nru php8.2-8.2.7/Zend/tests/oss_fuzz_60011_2.phpt php8.2-8.2.18/Zend/tests/oss_fuzz_60011_2.phpt --- php8.2-8.2.7/Zend/tests/oss_fuzz_60011_2.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/Zend/tests/oss_fuzz_60011_2.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,8 @@ +--TEST-- +oss-fuzz #60011 (Incorrect order of instruction with nullsafe operator) +--FILE-- +y->y; +?> +--EXPECTF-- +Fatal error: Cannot take reference of a nullsafe chain in %s on line %d diff -Nru php8.2-8.2.7/Zend/tests/oss_fuzz_60441.phpt php8.2-8.2.18/Zend/tests/oss_fuzz_60441.phpt --- php8.2-8.2.7/Zend/tests/oss_fuzz_60441.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/Zend/tests/oss_fuzz_60441.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,11 @@ +--TEST-- +oss-fuzz #60441 (Double compilation of arrow function) +--FILE-- +y)[y]??=y; +?> +--EXPECTF-- +Fatal error: Uncaught Error: Undefined constant "y" in %s:%d +Stack trace: +#0 {main} + thrown in %s on line %d diff -Nru php8.2-8.2.7/Zend/tests/oss_fuzz_64209.phpt php8.2-8.2.18/Zend/tests/oss_fuzz_64209.phpt --- php8.2-8.2.7/Zend/tests/oss_fuzz_64209.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/Zend/tests/oss_fuzz_64209.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,13 @@ +--TEST-- +oss-fuzz #64209: Fix in-place modification of filename in php_message_handler_for_zend +--FILE-- + +--EXPECTF-- +Warning: require(://@): Failed to open stream: No such file or directory in %s on line %d + +Fatal error: Uncaught Error: Failed opening required '://@' (include_path='%s') in %s:%d +Stack trace: +#0 {main} + thrown in %s on line %d diff -Nru php8.2-8.2.7/Zend/tests/traits/bugs/overridding-static-property-with-doc-block.phpt php8.2-8.2.18/Zend/tests/traits/bugs/overridding-static-property-with-doc-block.phpt --- php8.2-8.2.7/Zend/tests/traits/bugs/overridding-static-property-with-doc-block.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/Zend/tests/traits/bugs/overridding-static-property-with-doc-block.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,21 @@ +--TEST-- +Overriding a static property where both declarations have a doc block does not leak memory +--FILE-- + +--EXPECT-- diff -Nru php8.2-8.2.7/Zend/tests/type_declarations/dnf_types/variance/invalid_invariance1_var.phpt php8.2-8.2.18/Zend/tests/type_declarations/dnf_types/variance/invalid_invariance1_var.phpt --- php8.2-8.2.7/Zend/tests/type_declarations/dnf_types/variance/invalid_invariance1_var.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/Zend/tests/type_declarations/dnf_types/variance/invalid_invariance1_var.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,18 @@ +--TEST-- +Property types must be invariant +--FILE-- + +--EXPECTF-- +Fatal error: Type of B::$prop must be (X&Y&Z)|L (as in class A) in %s on line %d diff -Nru php8.2-8.2.7/Zend/tests/type_declarations/union_types/internal_trait_use_typed_union.phpt php8.2-8.2.18/Zend/tests/type_declarations/union_types/internal_trait_use_typed_union.phpt --- php8.2-8.2.7/Zend/tests/type_declarations/union_types/internal_trait_use_typed_union.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/Zend/tests/type_declarations/union_types/internal_trait_use_typed_union.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,39 @@ +--TEST-- +Internal trait used typed property (union type) +--EXTENSIONS-- +zend_test +--FILE-- +getType(); +$types = $union->getTypes(); +var_dump($types, (string)$types[0], (string)$types[1]); + +?> +===DONE=== +--EXPECT-- +object(C)#1 (1) { + ["testProp"]=> + NULL + ["classUnionProp"]=> + uninitialized(Traversable|Countable) +} +array(2) { + [0]=> + object(ReflectionNamedType)#4 (0) { + } + [1]=> + object(ReflectionNamedType)#5 (0) { + } +} +string(11) "Traversable" +string(9) "Countable" +===DONE=== diff -Nru php8.2-8.2.7/Zend/tests/weakrefs/gh13612.phpt php8.2-8.2.18/Zend/tests/weakrefs/gh13612.phpt --- php8.2-8.2.7/Zend/tests/weakrefs/gh13612.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/Zend/tests/weakrefs/gh13612.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,39 @@ +--TEST-- +GH-13612 (Corrupted memory in destructor with weak references) +--FILE-- +weakAnalysingMap = \WeakReference::create($analysingMap); + } + + public function __destruct() + { + var_dump($this->weakAnalysingMap->get()); + } + }; + + $this->destroyed[] = 1; + $this->ownerDestructorHandlers[] = $handler; + } +} + +new WeakAnalysingMapRepro(); + +echo "Done\n"; + +?> +--EXPECT-- +NULL +Done diff -Nru php8.2-8.2.7/Zend/tests/zend_ini/gh11876.phpt php8.2-8.2.18/Zend/tests/zend_ini/gh11876.phpt --- php8.2-8.2.7/Zend/tests/zend_ini/gh11876.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/Zend/tests/zend_ini/gh11876.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,51 @@ +--TEST-- +Invalid INI quantities, base prefix followed by stuff eaten by strtoull() +--EXTENSIONS-- +zend_test +--FILE-- +name); + zend_long tmp = zend_ini_parse_quantity_warn(new_value, entry->name); + if (tmp < 0) { + zend_error(E_WARNING, "fiber.stack_size must be a positive number"); + return FAILURE; + } + EG(fiber_stack_size) = tmp; } else { EG(fiber_stack_size) = ZEND_FIBER_DEFAULT_C_STACK_SIZE; } @@ -1136,6 +1141,8 @@ #endif zend_destroy_rsrc_list_dtors(); + zend_unload_modules(); + zend_optimizer_shutdown(); startup_done = false; } @@ -1630,9 +1637,15 @@ ZEND_API ZEND_COLD ZEND_NORETURN void zend_strerror_noreturn(int type, int errn, const char *message) { -#ifdef HAVE_STR_ERROR_R - char buf[1024]; - strerror_r(errn, buf, sizeof(buf)); +#ifdef HAVE_STRERROR_R + char b[1024]; + +# ifdef STRERROR_R_CHAR_P + char *buf = strerror_r(errn, b, sizeof(b)); +# else + strerror_r(errn, b, sizeof(b)); + char *buf = b; +# endif #else char *buf = strerror(errn); #endif diff -Nru php8.2-8.2.7/Zend/zend.h php8.2-8.2.18/Zend/zend.h --- php8.2-8.2.7/Zend/zend.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/zend.h 2024-04-09 18:46:23.000000000 +0000 @@ -20,7 +20,7 @@ #ifndef ZEND_H #define ZEND_H -#define ZEND_VERSION "4.2.7" +#define ZEND_VERSION "4.2.18" #define ZEND_ENGINE_3 @@ -277,6 +277,7 @@ void zend_register_standard_ini_entries(void); zend_result zend_post_startup(void); void zend_set_utility_values(zend_utility_values *utility_values); +void zend_unload_modules(void); ZEND_API ZEND_COLD ZEND_NORETURN void _zend_bailout(const char *filename, uint32_t lineno); ZEND_API size_t zend_get_page_size(void); diff -Nru php8.2-8.2.7/Zend/zend_API.c php8.2-8.2.18/Zend/zend_API.c --- php8.2-8.2.7/Zend/zend_API.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/zend_API.c 2024-04-09 18:46:23.000000000 +0000 @@ -41,6 +41,7 @@ static zend_module_entry **module_request_startup_handlers; static zend_module_entry **module_request_shutdown_handlers; static zend_module_entry **module_post_deactivate_handlers; +static zend_module_entry **modules_dl_loaded; static zend_class_entry **class_cleanup_handlers; @@ -2292,6 +2293,7 @@ int startup_count = 0; int shutdown_count = 0; int post_deactivate_count = 0; + int dl_loaded_count = 0; zend_class_entry *ce; int class_count = 0; @@ -2306,8 +2308,12 @@ if (module->post_deactivate_func) { post_deactivate_count++; } + if (module->handle) { + dl_loaded_count++; + } } ZEND_HASH_FOREACH_END(); - module_request_startup_handlers = (zend_module_entry**)malloc( + module_request_startup_handlers = (zend_module_entry**)realloc( + module_request_startup_handlers, sizeof(zend_module_entry*) * (startup_count + 1 + shutdown_count + 1 + @@ -2317,6 +2323,9 @@ module_request_shutdown_handlers[shutdown_count] = NULL; module_post_deactivate_handlers = module_request_shutdown_handlers + shutdown_count + 1; module_post_deactivate_handlers[post_deactivate_count] = NULL; + /* Cannot reuse module_request_startup_handlers because it is freed in zend_destroy_modules, which happens before zend_unload_modules. */ + modules_dl_loaded = realloc(modules_dl_loaded, sizeof(zend_module_entry*) * (dl_loaded_count + 1)); + modules_dl_loaded[dl_loaded_count] = NULL; startup_count = 0; ZEND_HASH_MAP_FOREACH_PTR(&module_registry, module) { @@ -2329,6 +2338,9 @@ if (module->post_deactivate_func) { module_post_deactivate_handlers[--post_deactivate_count] = module; } + if (module->handle) { + modules_dl_loaded[--dl_loaded_count] = module; + } } ZEND_HASH_FOREACH_END(); /* Collect internal classes with static members */ @@ -2339,7 +2351,8 @@ } } ZEND_HASH_FOREACH_END(); - class_cleanup_handlers = (zend_class_entry**)malloc( + class_cleanup_handlers = (zend_class_entry**)realloc( + class_cleanup_handlers, sizeof(zend_class_entry*) * (class_count + 1)); class_cleanup_handlers[class_count] = NULL; @@ -2365,7 +2378,9 @@ ZEND_API void zend_destroy_modules(void) /* {{{ */ { free(class_cleanup_handlers); + class_cleanup_handlers = NULL; free(module_request_startup_handlers); + module_request_startup_handlers = NULL; zend_hash_graceful_reverse_destroy(&module_registry); } /* }}} */ @@ -3069,18 +3084,23 @@ clean_module_functions(module); } -#if HAVE_LIBDL - if (module->handle && !getenv("ZEND_DONT_UNLOAD_MODULES")) { - DL_UNLOAD(module->handle); - } -#endif - #if ZEND_RC_DEBUG zend_rc_debug = orig_rc_debug; #endif } /* }}} */ +void module_registry_unload(const zend_module_entry *module) +{ +#if HAVE_LIBDL + if (!getenv("ZEND_DONT_UNLOAD_MODULES")) { + DL_UNLOAD(module->handle); + } +#else + ZEND_IGNORE_VALUE(module); +#endif +} + ZEND_API void zend_activate_modules(void) /* {{{ */ { zend_module_entry **p = module_request_startup_handlers; @@ -3125,6 +3145,18 @@ } /* }}} */ +void zend_unload_modules(void) /* {{{ */ +{ + zend_module_entry **modules = modules_dl_loaded; + while (*modules) { + module_registry_unload(*modules); + modules++; + } + free(modules_dl_loaded); + modules_dl_loaded = NULL; +} +/* }}} */ + ZEND_API void zend_post_deactivate_modules(void) /* {{{ */ { if (EG(full_tables_cleanup)) { @@ -3143,6 +3175,9 @@ break; } module_destructor(module); + if (module->handle) { + module_registry_unload(module); + } zend_string_release_ex(key, 0); } ZEND_HASH_MAP_FOREACH_END_DEL(); } else { @@ -4199,6 +4234,9 @@ (property_info_ptr->flags & ZEND_ACC_STATIC) != 0) { property_info->offset = property_info_ptr->offset; zval_ptr_dtor(&ce->default_static_members_table[property_info->offset]); + if (property_info_ptr->doc_comment && property_info_ptr->ce == ce) { + zend_string_release(property_info_ptr->doc_comment); + } zend_hash_del(&ce->properties_info, name); } else { property_info->offset = ce->default_static_members_count++; @@ -4217,6 +4255,9 @@ (property_info_ptr->flags & ZEND_ACC_STATIC) == 0) { property_info->offset = property_info_ptr->offset; zval_ptr_dtor(&ce->default_properties_table[OBJ_PROP_TO_NUM(property_info->offset)]); + if (property_info_ptr->doc_comment && property_info_ptr->ce == ce) { + zend_string_release_ex(property_info_ptr->doc_comment, 1); + } zend_hash_del(&ce->properties_info, name); ZEND_ASSERT(ce->type == ZEND_INTERNAL_CLASS); diff -Nru php8.2-8.2.7/Zend/zend_alloc.c php8.2-8.2.18/Zend/zend_alloc.c --- php8.2-8.2.7/Zend/zend_alloc.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/zend_alloc.c 2024-04-09 18:46:23.000000000 +0000 @@ -1934,7 +1934,7 @@ heap->peak = 0; #endif #if ZEND_MM_LIMIT - heap->limit = ((size_t)Z_L(-1) >> (size_t)Z_L(1)); + heap->limit = (size_t)Z_L(-1) >> 1; heap->overflow = 0; #endif #if ZEND_MM_CUSTOM @@ -2432,6 +2432,13 @@ { #if ZEND_MM_CUSTOM if (AG(mm_heap)->use_custom_heap) { + if (AG(mm_heap)->custom_heap.std._malloc == tracked_malloc) { + zend_ulong h = ((uintptr_t) ptr) >> ZEND_MM_ALIGNMENT_LOG2; + zval *size_zv = zend_hash_index_find(AG(mm_heap)->tracked_allocs, h); + if (size_zv) { + return 1; + } + } return 0; } #endif @@ -2891,7 +2898,7 @@ zend_mm_heap *mm_heap = alloc_globals->mm_heap = malloc(sizeof(zend_mm_heap)); memset(mm_heap, 0, sizeof(zend_mm_heap)); mm_heap->use_custom_heap = ZEND_MM_CUSTOM_HEAP_STD; - mm_heap->limit = ((size_t)Z_L(-1) >> (size_t)Z_L(1)); + mm_heap->limit = (size_t)Z_L(-1) >> 1; mm_heap->overflow = 0; if (!tracked) { @@ -3080,7 +3087,7 @@ heap->peak = 0; #endif #if ZEND_MM_LIMIT - heap->limit = (Z_L(-1) >> Z_L(1)); + heap->limit = (size_t)Z_L(-1) >> 1; heap->overflow = 0; #endif #if ZEND_MM_CUSTOM diff -Nru php8.2-8.2.7/Zend/zend_atomic.h php8.2-8.2.18/Zend/zend_atomic.h --- php8.2-8.2.7/Zend/zend_atomic.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/zend_atomic.h 2024-04-09 18:46:23.000000000 +0000 @@ -23,7 +23,7 @@ ((__GNUC__ == (x) && __GNUC_MINOR__ >= (y)) || (__GNUC__ > (x))) /* Builtins are used to avoid library linkage */ -#if __has_feature(c_atomic) +#if __has_feature(c_atomic) && defined(__clang__) #define HAVE_C11_ATOMICS 1 #elif ZEND_GCC_PREREQ(4, 7) #define HAVE_GNUC_ATOMICS 1 diff -Nru php8.2-8.2.7/Zend/zend_builtin_functions.c php8.2-8.2.18/Zend/zend_builtin_functions.c --- php8.2-8.2.7/Zend/zend_builtin_functions.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/zend_builtin_functions.c 2024-04-09 18:46:23.000000000 +0000 @@ -154,7 +154,7 @@ ZEND_PARSE_PARAMETERS_NONE(); - if (ZEND_CALL_INFO(ex) & ZEND_CALL_CODE) { + if (ex && (ZEND_CALL_INFO(ex) & ZEND_CALL_CODE)) { zend_throw_error(NULL, "func_num_args() must be called from a function context"); RETURN_THROWS(); } @@ -185,7 +185,7 @@ } ex = EX(prev_execute_data); - if (ZEND_CALL_INFO(ex) & ZEND_CALL_CODE) { + if (ex && (ZEND_CALL_INFO(ex) & ZEND_CALL_CODE)) { zend_throw_error(NULL, "func_get_arg() cannot be called from the global scope"); RETURN_THROWS(); } @@ -223,7 +223,7 @@ ZEND_PARSE_PARAMETERS_NONE(); - if (ZEND_CALL_INFO(ex) & ZEND_CALL_CODE) { + if (ex && (ZEND_CALL_INFO(ex) & ZEND_CALL_CODE)) { zend_throw_error(NULL, "func_get_args() cannot be called from the global scope"); RETURN_THROWS(); } @@ -1108,10 +1108,9 @@ ZEND_FUNCTION(trigger_error) { zend_long error_type = E_USER_NOTICE; - char *message; - size_t message_len; + zend_string *message; - if (zend_parse_parameters(ZEND_NUM_ARGS(), "s|l", &message, &message_len, &error_type) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS(), "S|l", &message, &error_type) == FAILURE) { RETURN_THROWS(); } @@ -1128,7 +1127,7 @@ break; } - zend_error((int)error_type, "%s", message); + zend_error_zstr_at(error_type, zend_get_executed_filename_ex(), zend_get_executed_lineno(), message); // TODO Change to void RETURN_TRUE; } diff -Nru php8.2-8.2.7/Zend/zend_closures.c php8.2-8.2.18/Zend/zend_closures.c --- php8.2-8.2.7/Zend/zend_closures.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/zend_closures.c 2024-04-09 18:46:23.000000000 +0000 @@ -725,6 +725,11 @@ closure->func.common.fn_flags |= ZEND_ACC_CLOSURE; closure->func.common.fn_flags &= ~ZEND_ACC_IMMUTABLE; + zend_string_addref(closure->func.op_array.function_name); + if (closure->func.op_array.refcount) { + (*closure->func.op_array.refcount)++; + } + /* For fake closures, we want to reuse the static variables of the original function. */ if (!is_fake) { if (closure->func.op_array.static_variables) { @@ -758,22 +763,17 @@ if (func->common.scope != scope) { func->common.scope = scope; } - closure->func.op_array.fn_flags &= ~ZEND_ACC_HEAP_RT_CACHE; ptr = zend_arena_alloc(&CG(arena), func->op_array.cache_size); ZEND_MAP_PTR_SET(func->op_array.run_time_cache, ptr); + closure->func.op_array.fn_flags &= ~ZEND_ACC_HEAP_RT_CACHE; } else { /* Otherwise, we use a non-shared runtime cache */ - closure->func.op_array.fn_flags |= ZEND_ACC_HEAP_RT_CACHE; ptr = emalloc(func->op_array.cache_size); + closure->func.op_array.fn_flags |= ZEND_ACC_HEAP_RT_CACHE; } memset(ptr, 0, func->op_array.cache_size); } ZEND_MAP_PTR_INIT(closure->func.op_array.run_time_cache, ptr); - - zend_string_addref(closure->func.op_array.function_name); - if (closure->func.op_array.refcount) { - (*closure->func.op_array.refcount)++; - } } else { memcpy(&closure->func, func, sizeof(zend_internal_function)); closure->func.common.fn_flags |= ZEND_ACC_CLOSURE; diff -Nru php8.2-8.2.7/Zend/zend_compile.c php8.2-8.2.18/Zend/zend_compile.c --- php8.2-8.2.7/Zend/zend_compile.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/zend_compile.c 2024-04-09 18:46:23.000000000 +0000 @@ -1423,6 +1423,35 @@ } /* }}} */ +static bool array_is_const_ex(zend_array *array, uint32_t *max_checks) +{ + if (zend_hash_num_elements(array) > *max_checks) { + return false; + } + *max_checks -= zend_hash_num_elements(array); + + zval *element; + ZEND_HASH_FOREACH_VAL(array, element) { + if (Z_TYPE_P(element) < IS_ARRAY) { + continue; + } else if (Z_TYPE_P(element) == IS_ARRAY) { + if (!array_is_const_ex(array, max_checks)) { + return false; + } + } else { + return false; + } + } ZEND_HASH_FOREACH_END(); + + return true; +} + +static bool array_is_const(zend_array *array) +{ + uint32_t max_checks = 50; + return array_is_const_ex(array, &max_checks); +} + static bool can_ct_eval_const(zend_constant *c) { if (ZEND_CONSTANT_FLAGS(c) & CONST_DEPRECATED) { return 0; @@ -1433,9 +1462,13 @@ && (CG(compiler_options) & ZEND_COMPILE_WITH_FILE_CACHE))) { return 1; } - if (Z_TYPE(c->value) < IS_OBJECT + if (Z_TYPE(c->value) < IS_ARRAY && !(CG(compiler_options) & ZEND_COMPILE_NO_CONSTANT_SUBSTITUTION)) { return 1; + } else if (Z_TYPE(c->value) == IS_ARRAY + && !(CG(compiler_options) & ZEND_COMPILE_NO_CONSTANT_SUBSTITUTION) + && array_is_const(Z_ARR(c->value))) { + return 1; } return 0; } @@ -1660,7 +1693,10 @@ c = &cc->value; /* Substitute case-sensitive (or lowercase) persistent class constants */ - if (Z_TYPE_P(c) < IS_OBJECT) { + if (Z_TYPE_P(c) < IS_ARRAY) { + ZVAL_COPY_OR_DUP(zv, c); + return 1; + } else if (Z_TYPE_P(c) == IS_ARRAY && array_is_const(Z_ARR_P(c))) { ZVAL_COPY_OR_DUP(zv, c); return 1; } @@ -2771,7 +2807,11 @@ static void zend_separate_if_call_and_write(znode *node, zend_ast *ast, uint32_t type) /* {{{ */ { - if (type != BP_VAR_R && type != BP_VAR_IS && zend_is_call(ast)) { + if (type != BP_VAR_R + && type != BP_VAR_IS + /* Whether a FUNC_ARG is R may only be determined at runtime. */ + && type != BP_VAR_FUNC_ARG + && zend_is_call(ast)) { if (node->op_type == IS_VAR) { zend_op *opline = zend_emit_op(NULL, ZEND_SEPARATE, node, NULL); opline->result_type = IS_VAR; @@ -3264,6 +3304,9 @@ if (!zend_is_variable_or_call(expr_ast)) { zend_error_noreturn(E_COMPILE_ERROR, "Cannot assign reference to non referenceable value"); + } else if (zend_ast_is_short_circuited(expr_ast)) { + zend_error_noreturn(E_COMPILE_ERROR, + "Cannot take reference of a nullsafe chain"); } zend_compile_var(&expr_node, expr_ast, BP_VAR_W, 1); @@ -4456,7 +4499,14 @@ if (runtime_resolution) { if (zend_string_equals_literal_ci(zend_ast_get_str(name_ast), "assert") && !is_callable_convert) { - zend_compile_assert(result, zend_ast_get_list(args_ast), Z_STR(name_node.u.constant), NULL, ast->lineno); + if (CG(memoize_mode) == ZEND_MEMOIZE_NONE) { + zend_compile_assert(result, zend_ast_get_list(args_ast), Z_STR(name_node.u.constant), NULL, ast->lineno); + } else { + /* We want to always memoize assert calls, even if they are positioned in + * write-context. This prevents memoizing their arguments that might not be + * evaluated if assertions are disabled, using a TMPVAR that wasn't initialized. */ + zend_compile_memoized_expr(result, ast); + } } else { zend_compile_ns_call(result, &name_node, args_ast, ast->lineno); } @@ -4475,7 +4525,14 @@ /* Special assert() handling should apply independently of compiler flags. */ if (fbc && zend_string_equals_literal(lcname, "assert") && !is_callable_convert) { - zend_compile_assert(result, zend_ast_get_list(args_ast), lcname, fbc, ast->lineno); + if (CG(memoize_mode) == ZEND_MEMOIZE_NONE) { + zend_compile_assert(result, zend_ast_get_list(args_ast), lcname, fbc, ast->lineno); + } else { + /* We want to always memoize assert calls, even if they are positioned in + * write-context. This prevents memoizing their arguments that might not be + * evaluated if assertions are disabled, using a TMPVAR that wasn't initialized. */ + zend_compile_memoized_expr(result, ast); + } zend_string_release(lcname); zval_ptr_dtor(&name_node.u.constant); return; @@ -5417,6 +5474,9 @@ zend_compile_stmt(stmt_ast); if (i != list->children - 1) { + /* Set the lineno of JMP to the position of the if keyword, as we don't want to + * report the last line in the if branch as covered if it hasn't actually executed. */ + CG(zend_lineno) = elem_ast->lineno; jmp_opnums[i] = zend_emit_jump(0); } zend_update_jump_target_to_next(opnum_jmpz); @@ -7413,7 +7473,7 @@ zend_compile_closure_uses(uses_ast); } - if (ast->kind == ZEND_AST_ARROW_FUNC) { + if (ast->kind == ZEND_AST_ARROW_FUNC && decl->child[2]->kind != ZEND_AST_RETURN) { bool needs_return = true; if (op_array->fn_flags & ZEND_ACC_HAS_RETURN_TYPE) { zend_arg_info *return_info = CG(active_op_array)->arg_info - 1; diff -Nru php8.2-8.2.7/Zend/zend_enum.c php8.2-8.2.18/Zend/zend_enum.c --- php8.2-8.2.7/Zend/zend_enum.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/zend_enum.c 2024-04-09 18:46:23.000000000 +0000 @@ -229,6 +229,7 @@ ZSTR_VAL(name)); goto failure; } + Z_TRY_ADDREF_P(case_name); zend_hash_index_add_new(backed_enum_table, long_key, case_name); } else { ZEND_ASSERT(ce->enum_backing_type == IS_STRING); @@ -241,6 +242,7 @@ ZSTR_VAL(name)); goto failure; } + Z_TRY_ADDREF_P(case_name); zend_hash_add_new(backed_enum_table, string_key, case_name); } } ZEND_HASH_FOREACH_END(); diff -Nru php8.2-8.2.7/Zend/zend_exceptions.c php8.2-8.2.18/Zend/zend_exceptions.c --- php8.2-8.2.7/Zend/zend_exceptions.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/zend_exceptions.c 2024-04-09 18:46:23.000000000 +0000 @@ -950,9 +950,10 @@ file = zval_get_string(GET_PROPERTY_SILENT(&exception, ZEND_STR_FILE)); line = zval_get_long(GET_PROPERTY_SILENT(&exception, ZEND_STR_LINE)); + ZVAL_STR(&tmp, str); zend_error_va(severity | E_DONT_BAIL, (file && ZSTR_LEN(file) > 0) ? file : NULL, line, - "Uncaught %s\n thrown", ZSTR_VAL(str)); + "Uncaught %Z\n thrown", &tmp); zend_string_release_ex(str, 0); zend_string_release_ex(file, 0); diff -Nru php8.2-8.2.7/Zend/zend_execute.c php8.2-8.2.18/Zend/zend_execute.c --- php8.2-8.2.7/Zend/zend_execute.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/zend_execute.c 2024-04-09 18:46:23.000000000 +0000 @@ -1417,9 +1417,9 @@ zend_verify_return_error(zf, NULL); } -static zend_never_inline ZEND_COLD void ZEND_FASTCALL zend_use_object_as_array(void) +static zend_never_inline ZEND_COLD void ZEND_FASTCALL zend_use_object_as_array(const zend_object *object) { - zend_throw_error(NULL, "Cannot use object as array"); + zend_throw_error(NULL, "Cannot use object of type %s as array", ZSTR_VAL(object->ce->name)); } static zend_never_inline ZEND_COLD void ZEND_FASTCALL zend_illegal_offset(void) @@ -1487,7 +1487,7 @@ } zval_ptr_dtor(&res); } else { - zend_use_object_as_array(); + zend_use_object_as_array(obj); if (UNEXPECTED(RETURN_VALUE_USED(opline))) { ZVAL_NULL(EX_VAR(opline->result.var)); } @@ -2194,7 +2194,7 @@ zend_throw_error(NULL, "Cannot use a scalar value as an array"); } -static zend_never_inline ZEND_COLD void ZEND_FASTCALL zend_cannot_add_element(void) +ZEND_API zend_never_inline ZEND_COLD void ZEND_FASTCALL zend_cannot_add_element(void) { zend_throw_error(NULL, "Cannot add element to the array as the next element is already occupied"); } diff -Nru php8.2-8.2.7/Zend/zend_execute.h php8.2-8.2.18/Zend/zend_execute.h --- php8.2-8.2.7/Zend/zend_execute.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/zend_execute.h 2024-04-09 18:46:23.000000000 +0000 @@ -76,6 +76,8 @@ ZEND_API ZEND_COLD void ZEND_FASTCALL zend_readonly_property_modification_error(zend_property_info *info); ZEND_API ZEND_COLD void ZEND_FASTCALL zend_readonly_property_indirect_modification_error(zend_property_info *info); +ZEND_API ZEND_COLD void ZEND_FASTCALL zend_cannot_add_element(void); + ZEND_API bool zend_verify_scalar_type_hint(uint32_t type_mask, zval *arg, bool strict, bool is_internal_arg); ZEND_API ZEND_COLD void zend_verify_arg_error( const zend_function *zf, const zend_arg_info *arg_info, uint32_t arg_num, zval *value); diff -Nru php8.2-8.2.7/Zend/zend_execute_API.c php8.2-8.2.18/Zend/zend_execute_API.c --- php8.2-8.2.7/Zend/zend_execute_API.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/zend_execute_API.c 2024-04-09 18:46:23.000000000 +0000 @@ -915,6 +915,8 @@ } if (UNEXPECTED(ZEND_CALL_INFO(call) & ZEND_CALL_MAY_HAVE_UNDEF)) { + /* zend_handle_undef_args assumes prev_execute_data is initialized. */ + call->prev_execute_data = NULL; if (zend_handle_undef_args(call) == FAILURE) { zend_vm_stack_free_args(call); zend_vm_stack_free_call_frame(call); diff -Nru php8.2-8.2.7/Zend/zend_fibers.c php8.2-8.2.18/Zend/zend_fibers.c --- php8.2-8.2.7/Zend/zend_fibers.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/zend_fibers.c 2024-04-09 18:46:23.000000000 +0000 @@ -572,6 +572,10 @@ { zend_fiber *previous = EG(active_fiber); + if (previous) { + previous->execute_data = EG(current_execute_data); + } + fiber->caller = EG(current_fiber_context); EG(active_fiber) = fiber; @@ -589,6 +593,7 @@ zend_fiber_context *caller = fiber->caller; fiber->previous = EG(current_fiber_context); fiber->caller = NULL; + fiber->execute_data = EG(current_execute_data); return zend_fiber_switch_to(caller, value, false); } @@ -770,7 +775,6 @@ ZEND_ASSERT(fiber->context.status == ZEND_FIBER_STATUS_RUNNING || fiber->context.status == ZEND_FIBER_STATUS_SUSPENDED); - fiber->execute_data = EG(current_execute_data); fiber->stack_bottom->prev_execute_data = NULL; zend_fiber_transfer transfer = zend_fiber_suspend(fiber, value); diff -Nru php8.2-8.2.7/Zend/zend_gc.c php8.2-8.2.18/Zend/zend_gc.c --- php8.2-8.2.7/Zend/zend_gc.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/zend_gc.c 2024-04-09 18:46:23.000000000 +0000 @@ -557,7 +557,7 @@ /* TODO Very simple heuristic for dynamic GC buffer resizing: * If there are "too few" collections, increase the collection threshold * by a fixed step */ - if (count < GC_THRESHOLD_TRIGGER) { + if (count < GC_THRESHOLD_TRIGGER || GC_G(num_roots) >= GC_G(gc_threshold)) { /* increase */ if (GC_G(gc_threshold) < GC_THRESHOLD_MAX) { new_threshold = GC_G(gc_threshold) + GC_THRESHOLD_STEP; @@ -1465,7 +1465,8 @@ } static void zend_get_gc_buffer_release(void); -static void zend_gc_root_tmpvars(void); +static void zend_gc_check_root_tmpvars(void); +static void zend_gc_remove_root_tmpvars(void); ZEND_API int zend_gc_collect_cycles(void) { @@ -1473,6 +1474,10 @@ bool should_rerun_gc = 0; bool did_rerun_gc = 0; + if (GC_G(num_roots) && GC_G(gc_active)) { + zend_gc_remove_root_tmpvars(); + } + rerun_gc: if (GC_G(num_roots)) { int count; @@ -1669,7 +1674,13 @@ finish: zend_get_gc_buffer_release(); - zend_gc_root_tmpvars(); + + /* Prevent GC from running during zend_gc_check_root_tmpvars, before + * gc_threshold is adjusted, as this may result in unbounded recursion */ + GC_G(gc_active) = 1; + zend_gc_check_root_tmpvars(); + GC_G(gc_active) = 0; + return total_count; } @@ -1707,7 +1718,7 @@ * cycles. However, there are some rare exceptions where this is possible, in which case we rely * on the producing code to root the value. If a GC run occurs between the rooting and consumption * of the value, we would end up leaking it. To avoid this, root all live TMPVAR values here. */ -static void zend_gc_root_tmpvars(void) { +static void zend_gc_check_root_tmpvars(void) { zend_execute_data *ex = EG(current_execute_data); for (; ex; ex = ex->prev_execute_data) { zend_function *func = ex->func; @@ -1726,7 +1737,7 @@ } uint32_t kind = range->var & ZEND_LIVE_MASK; - if (kind == ZEND_LIVE_TMPVAR) { + if (kind == ZEND_LIVE_TMPVAR || kind == ZEND_LIVE_LOOP) { uint32_t var_num = range->var & ~ZEND_LIVE_MASK; zval *var = ZEND_CALL_VAR(ex, var_num); if (Z_REFCOUNTED_P(var)) { @@ -1734,6 +1745,36 @@ } } } + } +} + +static void zend_gc_remove_root_tmpvars(void) { + zend_execute_data *ex = EG(current_execute_data); + for (; ex; ex = ex->prev_execute_data) { + zend_function *func = ex->func; + if (!func || !ZEND_USER_CODE(func->type)) { + continue; + } + + uint32_t op_num = ex->opline - ex->func->op_array.opcodes; + for (uint32_t i = 0; i < func->op_array.last_live_range; i++) { + const zend_live_range *range = &func->op_array.live_range[i]; + if (range->start > op_num) { + break; + } + if (range->end <= op_num) { + continue; + } + + uint32_t kind = range->var & ZEND_LIVE_MASK; + if (kind == ZEND_LIVE_TMPVAR || kind == ZEND_LIVE_LOOP) { + uint32_t var_num = range->var & ~ZEND_LIVE_MASK; + zval *var = ZEND_CALL_VAR(ex, var_num); + if (Z_REFCOUNTED_P(var)) { + GC_REMOVE_FROM_BUFFER(Z_COUNTED_P(var)); + } + } + } } } diff -Nru php8.2-8.2.7/Zend/zend_gdb.c php8.2-8.2.18/Zend/zend_gdb.c --- php8.2-8.2.7/Zend/zend_gdb.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/zend_gdb.c 2024-04-09 18:46:23.000000000 +0000 @@ -25,7 +25,7 @@ #include #include -#if defined(__FreeBSD__) +#if defined(__FreeBSD__) && __FreeBSD_version >= 1100000 # include # include #endif @@ -142,7 +142,7 @@ close(fd); } -#elif defined(__FreeBSD__) +#elif defined(__FreeBSD__) && __FreeBSD_version >= 1100000 struct kinfo_proc *proc = kinfo_getproc(getpid()); if (proc) { diff -Nru php8.2-8.2.7/Zend/zend_hash.c php8.2-8.2.18/Zend/zend_hash.c --- php8.2-8.2.7/Zend/zend_hash.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/zend_hash.c 2024-04-09 18:46:23.000000000 +0000 @@ -888,6 +888,11 @@ ht->nNumOfElements++; p = ht->arData + idx; p->key = key = zend_string_init(str, len, GC_FLAGS(ht) & IS_ARRAY_PERSISTENT); +#if ZEND_RC_DEBUG + if (GC_FLAGS(ht) & GC_PERSISTENT_LOCAL) { + GC_MAKE_PERSISTENT_LOCAL(key); + } +#endif p->h = ZSTR_H(key) = h; HT_FLAGS(ht) &= ~HASH_FLAG_STATIC_KEYS; if (flag & HASH_LOOKUP) { diff -Nru php8.2-8.2.7/Zend/zend_inheritance.c php8.2-8.2.18/Zend/zend_inheritance.c --- php8.2-8.2.7/Zend/zend_inheritance.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/zend_inheritance.c 2024-04-09 18:46:23.000000000 +0000 @@ -57,20 +57,33 @@ const zend_function *parent, zend_class_entry *parent_scope, inheritance_status status); -static void zend_type_copy_ctor(zend_type *type, bool persistent) { +static void zend_type_copy_ctor(zend_type *const type, bool use_arena, bool persistent); + +static void zend_type_list_copy_ctor( + zend_type *const parent_type, + bool use_arena, + bool persistent +) { + const zend_type_list *const old_list = ZEND_TYPE_LIST(*parent_type); + size_t size = ZEND_TYPE_LIST_SIZE(old_list->num_types); + zend_type_list *new_list = use_arena + ? zend_arena_alloc(&CG(arena), size) : pemalloc(size, persistent); + + memcpy(new_list, old_list, size); + ZEND_TYPE_SET_LIST(*parent_type, new_list); + if (use_arena) { + ZEND_TYPE_FULL_MASK(*parent_type) |= _ZEND_TYPE_ARENA_BIT; + } + + zend_type *list_type; + ZEND_TYPE_LIST_FOREACH(new_list, list_type) { + zend_type_copy_ctor(list_type, use_arena, persistent); + } ZEND_TYPE_LIST_FOREACH_END(); +} + +static void zend_type_copy_ctor(zend_type *const type, bool use_arena, bool persistent) { if (ZEND_TYPE_HAS_LIST(*type)) { - zend_type_list *old_list = ZEND_TYPE_LIST(*type); - size_t size = ZEND_TYPE_LIST_SIZE(old_list->num_types); - zend_type_list *new_list = ZEND_TYPE_USES_ARENA(*type) - ? zend_arena_alloc(&CG(arena), size) : pemalloc(size, persistent); - memcpy(new_list, old_list, ZEND_TYPE_LIST_SIZE(old_list->num_types)); - ZEND_TYPE_SET_PTR(*type, new_list); - - zend_type *list_type; - ZEND_TYPE_LIST_FOREACH(new_list, list_type) { - ZEND_ASSERT(ZEND_TYPE_HAS_NAME(*list_type)); - zend_string_addref(ZEND_TYPE_NAME(*list_type)); - } ZEND_TYPE_LIST_FOREACH_END(); + zend_type_list_copy_ctor(type, use_arena, persistent); } else if (ZEND_TYPE_HAS_NAME(*type)) { zend_string_addref(ZEND_TYPE_NAME(*type)); } @@ -1904,9 +1917,9 @@ } else { new_fn = zend_arena_alloc(&CG(arena), sizeof(zend_op_array)); memcpy(new_fn, fn, sizeof(zend_op_array)); - new_fn->op_array.fn_flags |= ZEND_ACC_TRAIT_CLONE; new_fn->op_array.fn_flags &= ~ZEND_ACC_IMMUTABLE; } + new_fn->common.fn_flags |= ZEND_ACC_TRAIT_CLONE; /* Reassign method name, in case it is an alias. */ new_fn->common.function_name = name; @@ -2401,7 +2414,8 @@ doc_comment = property_info->doc_comment ? zend_string_copy(property_info->doc_comment) : NULL; zend_type type = property_info->type; - zend_type_copy_ctor(&type, /* persistent */ 0); + /* Assumption: only userland classes can use traits, as such the type must be arena allocated */ + zend_type_copy_ctor(&type, /* use arena */ true, /* persistent */ false); new_prop = zend_declare_typed_property(ce, prop_name, prop_value, flags, doc_comment, type); if (property_info->attributes) { @@ -2789,15 +2803,8 @@ Z_PTR(p->val) = new_prop_info; memcpy(new_prop_info, prop_info, sizeof(zend_property_info)); new_prop_info->ce = ce; - if (ZEND_TYPE_HAS_LIST(new_prop_info->type)) { - zend_type_list *new_list; - zend_type_list *list = ZEND_TYPE_LIST(new_prop_info->type); - - new_list = zend_arena_alloc(&CG(arena), ZEND_TYPE_LIST_SIZE(list->num_types)); - memcpy(new_list, list, ZEND_TYPE_LIST_SIZE(list->num_types)); - ZEND_TYPE_SET_PTR(new_prop_info->type, list); - ZEND_TYPE_FULL_MASK(new_prop_info->type) |= _ZEND_TYPE_ARENA_BIT; - } + /* Deep copy the type information */ + zend_type_copy_ctor(&new_prop_info->type, /* use_arena */ true, /* persistent */ false); } } diff -Nru php8.2-8.2.7/Zend/zend_ini.c php8.2-8.2.18/Zend/zend_ini.c --- php8.2-8.2.7/Zend/zend_ini.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/zend_ini.c 2024-04-09 18:46:23.000000000 +0000 @@ -217,7 +217,6 @@ * lead to death. */ if (directives != EG(ini_directives)) { - ZEND_ASSERT(module_type == MODULE_TEMPORARY); directives = EG(ini_directives); } else { ZEND_ASSERT(module_type == MODULE_PERSISTENT); @@ -547,6 +546,34 @@ ZEND_INI_PARSE_QUANTITY_UNSIGNED, } zend_ini_parse_quantity_signed_result_t; +static const char *zend_ini_consume_quantity_prefix(const char *const digits, const char *const str_end) { + const char *digits_consumed = digits; + /* Ignore leading whitespace. */ + while (digits_consumed < str_end && zend_is_whitespace(*digits_consumed)) {++digits_consumed;} + if (digits_consumed[0] == '+' || digits_consumed[0] == '-') { + ++digits_consumed; + } + + if (digits_consumed[0] == '0' && !isdigit(digits_consumed[1])) { + /* Value is just 0 */ + if ((digits_consumed+1) == str_end) { + return digits; + } + + switch (digits_consumed[1]) { + case 'x': + case 'X': + case 'o': + case 'O': + case 'b': + case 'B': + digits_consumed += 2; + break; + } + } + return digits_consumed; +} + static zend_ulong zend_ini_parse_quantity_internal(zend_string *value, zend_ini_parse_quantity_signed_result_t signed_result, zend_string **errstr) /* {{{ */ { char *digits_end = NULL; @@ -632,6 +659,18 @@ /* Escape the string to avoid null bytes and to make non-printable chars * visible */ smart_str_append_escaped(&invalid, ZSTR_VAL(value), ZSTR_LEN(value)); + smart_str_0(&invalid); + + *errstr = zend_strpprintf(0, "Invalid quantity \"%s\": no digits after base prefix, interpreting as \"0\" for backwards compatibility", + ZSTR_VAL(invalid.s)); + + smart_str_free(&invalid); + return 0; + } + if (UNEXPECTED(digits != zend_ini_consume_quantity_prefix(digits, str_end))) { + /* Escape the string to avoid null bytes and to make non-printable chars + * visible */ + smart_str_append_escaped(&invalid, ZSTR_VAL(value), ZSTR_LEN(value)); smart_str_0(&invalid); *errstr = zend_strpprintf(0, "Invalid quantity \"%s\": no digits after base prefix, interpreting as \"0\" for backwards compatibility", diff -Nru php8.2-8.2.7/Zend/zend_interfaces.c php8.2-8.2.18/Zend/zend_interfaces.c --- php8.2-8.2.7/Zend/zend_interfaces.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/zend_interfaces.c 2024-04-09 18:46:23.000000000 +0000 @@ -623,6 +623,7 @@ RETURN_THROWS(); } + intern->rewind_called = 1; if (!intern->iter->funcs->rewind) { /* Allow calling rewind() if no iteration has happened yet, * even if the iterator does not support rewinding. */ diff -Nru php8.2-8.2.7/Zend/zend_list.c php8.2-8.2.18/Zend/zend_list.c --- php8.2-8.2.7/Zend/zend_list.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/zend_list.c 2024-04-09 18:46:23.000000000 +0000 @@ -276,6 +276,7 @@ ZVAL_PTR(&zv, lde); if (zend_hash_next_index_insert(&list_destructors, &zv) == NULL) { + free(lde); return FAILURE; } return list_destructors.nNextFreeElement-1; diff -Nru php8.2-8.2.7/Zend/zend_max_execution_timer.c php8.2-8.2.18/Zend/zend_max_execution_timer.c --- php8.2-8.2.7/Zend/zend_max_execution_timer.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/zend_max_execution_timer.c 2024-04-09 18:46:23.000000000 +0000 @@ -35,21 +35,28 @@ ZEND_API void zend_max_execution_timer_init(void) /* {{{ */ { + pid_t pid = getpid(); + + if (EG(pid) == pid) { + return; + } + struct sigevent sev; sev.sigev_notify = SIGEV_THREAD_ID; sev.sigev_value.sival_ptr = &EG(max_execution_timer_timer); sev.sigev_signo = SIGRTMIN; sev.sigev_notify_thread_id = (pid_t) syscall(SYS_gettid); - EG(pid) = getpid(); // Measure wall time instead of CPU time as originally planned now that it is possible https://github.com/php/php-src/pull/6504#issuecomment-1370303727 if (timer_create(CLOCK_BOOTTIME, &sev, &EG(max_execution_timer_timer)) != 0) { zend_strerror_noreturn(E_ERROR, errno, "Could not create timer"); } -# ifdef MAX_EXECUTION_TIMERS_DEBUG + EG(pid) = getpid(); + +# ifdef MAX_EXECUTION_TIMERS_DEBUG fprintf(stderr, "Timer %#jx created on thread %d\n", (uintmax_t) EG(max_execution_timer_timer), sev.sigev_notify_thread_id); -# endif +# endif sigaction(sev.sigev_signo, NULL, &EG(oldact)); } diff -Nru php8.2-8.2.7/Zend/zend_modules.h php8.2-8.2.18/Zend/zend_modules.h --- php8.2-8.2.7/Zend/zend_modules.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/zend_modules.h 2024-04-09 18:46:23.000000000 +0000 @@ -125,7 +125,7 @@ void module_destructor(zend_module_entry *module); int module_registry_request_startup(zend_module_entry *module); -int module_registry_unload_temp(const zend_module_entry *module); +void module_registry_unload(const zend_module_entry *module); END_EXTERN_C() #endif diff -Nru php8.2-8.2.7/Zend/zend_objects.c php8.2-8.2.18/Zend/zend_objects.c --- php8.2-8.2.7/Zend/zend_objects.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/zend_objects.c 2024-04-09 18:46:23.000000000 +0000 @@ -47,6 +47,10 @@ { zval *p, *end; + if (UNEXPECTED(GC_FLAGS(object) & IS_OBJ_WEAKLY_REFERENCED)) { + zend_weakrefs_notify(object); + } + if (object->properties) { if (EXPECTED(!(GC_FLAGS(object->properties) & IS_ARRAY_IMMUTABLE))) { if (EXPECTED(GC_DELREF(object->properties) == 0) @@ -85,10 +89,6 @@ FREE_HASHTABLE(guards); } } - - if (UNEXPECTED(GC_FLAGS(object) & IS_OBJ_WEAKLY_REFERENCED)) { - zend_weakrefs_notify(object); - } } ZEND_API void zend_objects_destroy_object(zend_object *object) diff -Nru php8.2-8.2.7/Zend/zend_observer.c php8.2-8.2.18/Zend/zend_observer.c --- php8.2-8.2.7/Zend/zend_observer.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/zend_observer.c 2024-04-09 18:46:23.000000000 +0000 @@ -158,9 +158,8 @@ } else { if (cur_handler != last_handler) { memmove(cur_handler, cur_handler + 1, sizeof(cur_handler) * (last_handler - cur_handler)); - } else { - *last_handler = NULL; } + *last_handler = NULL; } return true; } @@ -196,7 +195,7 @@ if (*end_handler != ZEND_OBSERVER_NOT_OBSERVED) { // there's no space for new handlers, then it's forbidden to call this function ZEND_ASSERT(end_handler[registered_observers - 1] == NULL); - memmove(end_handler + 1, end_handler, registered_observers - 1); + memmove(end_handler + 1, end_handler, sizeof(end_handler) * (registered_observers - 1)); } *end_handler = end; } diff -Nru php8.2-8.2.7/Zend/zend_opcode.c php8.2-8.2.18/Zend/zend_opcode.c --- php8.2-8.2.7/Zend/zend_opcode.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/zend_opcode.c 2024-04-09 18:46:23.000000000 +0000 @@ -110,17 +110,9 @@ ZEND_API void zend_type_release(zend_type type, bool persistent) { if (ZEND_TYPE_HAS_LIST(type)) { - zend_type *list_type, *sublist_type; + zend_type *list_type; ZEND_TYPE_LIST_FOREACH(ZEND_TYPE_LIST(type), list_type) { - if (ZEND_TYPE_HAS_LIST(*list_type)) { - ZEND_TYPE_LIST_FOREACH(ZEND_TYPE_LIST(*list_type), sublist_type) { - if (ZEND_TYPE_HAS_NAME(*sublist_type)) { - zend_string_release(ZEND_TYPE_NAME(*sublist_type)); - } - } ZEND_TYPE_LIST_FOREACH_END(); - } else if (ZEND_TYPE_HAS_NAME(*list_type)) { - zend_string_release(ZEND_TYPE_NAME(*list_type)); - } + zend_type_release(*list_type, persistent); } ZEND_TYPE_LIST_FOREACH_END(); if (!ZEND_TYPE_USES_ARENA(type)) { pefree(ZEND_TYPE_LIST(type), persistent); @@ -875,12 +867,12 @@ || 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 -Nru php8.2-8.2.7/Zend/zend_operators.h php8.2-8.2.18/Zend/zend_operators.h --- php8.2-8.2.7/Zend/zend_operators.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/zend_operators.h 2024-04-09 18:46:23.000000000 +0000 @@ -945,7 +945,7 @@ const char *p_upper = NULL; if (first_lower != first_upper) { // If the needle length is 1 we don't need to look beyond p_lower as it is a guaranteed match - size_t upper_search_length = end - (needle_len == 1 && p_lower != NULL ? p_lower : haystack); + size_t upper_search_length = needle_len == 1 && p_lower != NULL ? p_lower - haystack : end - haystack; p_upper = (const char *)memchr(haystack, first_upper, upper_search_length); } const char *p = !p_upper || (p_lower && p_lower < p_upper) ? p_lower : p_upper; diff -Nru php8.2-8.2.7/Zend/zend_signal.c php8.2-8.2.18/Zend/zend_signal.c --- php8.2-8.2.7/Zend/zend_signal.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/zend_signal.c 2024-04-09 18:46:23.000000000 +0000 @@ -183,8 +183,7 @@ zend_signal_entry_t p_sig; #ifdef ZTS if (tsrm_is_shutdown() || !tsrm_get_ls_cache()) { - p_sig.flags = 0; - p_sig.handler = SIG_DFL; + p_sig = global_orig_handlers[signo-1]; } else #endif p_sig = SIGG(handlers)[signo-1]; diff -Nru php8.2-8.2.7/Zend/zend_string.c php8.2-8.2.18/Zend/zend_string.c --- php8.2-8.2.7/Zend/zend_string.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/zend_string.c 2024-04-09 18:46:23.000000000 +0000 @@ -364,6 +364,7 @@ } } +#if defined(__GNUC__) && (defined(__i386__) || (defined(__x86_64__) && !defined(__ILP32__))) /* Even if we don't build with valgrind support, include the symbol so that valgrind available * only at runtime will not result in false positives. */ #ifndef I_REPLACE_SONAME_FNNAME_ZU @@ -371,29 +372,20 @@ #endif /* See GH-9068 */ -#if defined(__GNUC__) && (__GNUC__ >= 11 || defined(__clang__)) && __has_attribute(no_caller_saved_registers) -# define NO_CALLER_SAVED_REGISTERS __attribute__((no_caller_saved_registers)) -# ifndef __clang__ -# pragma GCC push_options -# pragma GCC target ("general-regs-only") -# define POP_OPTIONS -# endif +#if __has_attribute(noipa) +# define NOIPA __attribute__((noipa)) #else -# define NO_CALLER_SAVED_REGISTERS +# define NOIPA #endif -ZEND_API bool ZEND_FASTCALL NO_CALLER_SAVED_REGISTERS I_REPLACE_SONAME_FNNAME_ZU(NONE,zend_string_equal_val)(const zend_string *s1, const zend_string *s2) +ZEND_API bool ZEND_FASTCALL I_REPLACE_SONAME_FNNAME_ZU(NONE,zend_string_equal_val)(const zend_string *s1, const zend_string *s2) { return !memcmp(ZSTR_VAL(s1), ZSTR_VAL(s2), ZSTR_LEN(s1)); } - -#ifdef POP_OPTIONS -# pragma GCC pop_options -# undef POP_OPTIONS #endif #if defined(__GNUC__) && defined(__i386__) -ZEND_API bool ZEND_FASTCALL zend_string_equal_val(const zend_string *s1, const zend_string *s2) +ZEND_API zend_never_inline NOIPA bool ZEND_FASTCALL zend_string_equal_val(const zend_string *s1, const zend_string *s2) { const char *ptr = ZSTR_VAL(s1); size_t delta = (const char*)s2 - (const char*)s1; @@ -431,7 +423,7 @@ } #elif defined(__GNUC__) && defined(__x86_64__) && !defined(__ILP32__) -ZEND_API bool ZEND_FASTCALL zend_string_equal_val(const zend_string *s1, const zend_string *s2) +ZEND_API zend_never_inline NOIPA bool ZEND_FASTCALL zend_string_equal_val(const zend_string *s1, const zend_string *s2) { const char *ptr = ZSTR_VAL(s1); size_t delta = (const char*)s2 - (const char*)s1; diff -Nru php8.2-8.2.7/Zend/zend_type_info.h php8.2-8.2.18/Zend/zend_type_info.h --- php8.2-8.2.7/Zend/zend_type_info.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/zend_type_info.h 2024-04-09 18:46:23.000000000 +0000 @@ -59,15 +59,17 @@ #define MAY_BE_ARRAY_PACKED (1<<21) #define MAY_BE_ARRAY_NUMERIC_HASH (1<<22) /* hash with numeric keys */ #define MAY_BE_ARRAY_STRING_HASH (1<<23) /* hash with string keys */ +#define MAY_BE_ARRAY_EMPTY (1<<29) #define MAY_BE_ARRAY_KEY_LONG (MAY_BE_ARRAY_PACKED | MAY_BE_ARRAY_NUMERIC_HASH) #define MAY_BE_ARRAY_KEY_STRING MAY_BE_ARRAY_STRING_HASH -#define MAY_BE_ARRAY_KEY_ANY (MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_KEY_STRING) +#define MAY_BE_ARRAY_KEY_ANY (MAY_BE_ARRAY_KEY_LONG | MAY_BE_ARRAY_KEY_STRING | MAY_BE_ARRAY_EMPTY) #define MAY_BE_PACKED(t) ((t) & MAY_BE_ARRAY_PACKED) #define MAY_BE_HASH(t) ((t) & (MAY_BE_ARRAY_NUMERIC_HASH | MAY_BE_ARRAY_KEY_STRING)) -#define MAY_BE_PACKED_ONLY(t) (MAY_BE_PACKED(t) && !MAY_BE_HASH(t)) -#define MAY_BE_HASH_ONLY(t) (MAY_BE_HASH(t) && !MAY_BE_PACKED(t)) +#define MAY_BE_PACKED_ONLY(t) (((t) & MAY_BE_ARRAY_KEY_ANY) == MAY_BE_ARRAY_PACKED) +#define MAY_BE_HASH_ONLY(t) (MAY_BE_HASH(t) && !((t) & (MAY_BE_ARRAY_PACKED|MAY_BE_ARRAY_EMPTY))) +#define MAY_BE_EMPTY_ONLY(t) (((t) & MAY_BE_ARRAY_KEY_ANY) == MAY_BE_ARRAY_EMPTY) #define MAY_BE_CLASS (1<<24) #define MAY_BE_INDIRECT (1<<25) diff -Nru php8.2-8.2.7/Zend/zend_vm_def.h php8.2-8.2.18/Zend/zend_vm_def.h --- php8.2-8.2.7/Zend/zend_vm_def.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/zend_vm_def.h 2024-04-09 18:46:23.000000000 +0000 @@ -1748,6 +1748,10 @@ } else if (type == BP_VAR_IS || type == BP_VAR_UNSET) { retval = &EG(uninitialized_zval); } else { + if (OP1_TYPE == IS_CV) { + /* Keep name alive in case an error handler tries to free it. */ + zend_string_addref(name); + } zend_error(E_WARNING, "Undefined %svariable $%s", (opline->extended_value & ZEND_FETCH_GLOBAL ? "global " : ""), ZSTR_VAL(name)); if (type == BP_VAR_RW && !EG(exception)) { @@ -1755,6 +1759,9 @@ } else { retval = &EG(uninitialized_zval); } + if (OP1_TYPE == IS_CV) { + zend_string_release(name); + } } /* GLOBAL or $$name variable may be an INDIRECT pointer to CV */ } else if (Z_TYPE_P(retval) == IS_INDIRECT) { @@ -4541,6 +4548,8 @@ ZEND_OBSERVER_FCALL_END(generator->execute_data, &generator->retval); + EG(current_execute_data) = EX(prev_execute_data); + /* Close the generator to free up resources */ zend_generator_close(generator, 1); @@ -7899,6 +7908,7 @@ cleanup_live_vars(execute_data, op_num, 0); if (UNEXPECTED((EX_CALL_INFO() & ZEND_CALL_GENERATOR) != 0)) { zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); + EG(current_execute_data) = EX(prev_execute_data); zend_generator_close(generator, 1); ZEND_VM_RETURN(); } else { @@ -7992,6 +8002,7 @@ case ZEND_USER_OPCODE_RETURN: if (UNEXPECTED((EX_CALL_INFO() & ZEND_CALL_GENERATOR) != 0)) { zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); + EG(current_execute_data) = EX(prev_execute_data); zend_generator_close(generator, 1); ZEND_VM_RETURN(); } else { @@ -8060,6 +8071,7 @@ called_scope = Z_CE(EX(This)); object = NULL; } + SAVE_OPLINE(); zend_create_closure(EX_VAR(opline->result.var), func, EX(func)->op_array.scope, called_scope, object); @@ -8771,6 +8783,9 @@ EG(current_execute_data) = call->prev_execute_data; zend_vm_stack_free_args(call); + if (UNEXPECTED(call_info & ZEND_CALL_HAS_EXTRA_NAMED_PARAMS)) { + zend_free_extra_named_params(call->extra_named_params); + } if (ret == &retval) { zval_ptr_dtor(ret); } @@ -8839,6 +8854,8 @@ variable_ptr = GET_OP1_ZVAL_PTR_PTR_UNDEF(BP_VAR_W); + SAVE_OPLINE(); + ht = ZEND_MAP_PTR_GET(EX(func)->op_array.static_variables_ptr); if (!ht) { ht = zend_array_dup(EX(func)->op_array.static_variables); @@ -8848,7 +8865,6 @@ value = (zval*)((char*)ht->arData + (opline->extended_value & ~(ZEND_BIND_REF|ZEND_BIND_IMPLICIT|ZEND_BIND_EXPLICIT))); - SAVE_OPLINE(); if (opline->extended_value & ZEND_BIND_REF) { if (Z_TYPE_P(value) == IS_CONSTANT_AST) { if (UNEXPECTED(zval_update_constant_ex(value, EX(func)->op_array.scope) != SUCCESS)) { @@ -9302,6 +9318,7 @@ } if (result_size) { + SAVE_OPLINE(); uint32_t first_extra_arg = EX(func)->op_array.num_args; ht = zend_new_array(result_size); diff -Nru php8.2-8.2.7/Zend/zend_vm_execute.h php8.2-8.2.18/Zend/zend_vm_execute.h --- php8.2-8.2.7/Zend/zend_vm_execute.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/Zend/zend_vm_execute.h 2024-04-09 18:46:23.000000000 +0000 @@ -3151,6 +3151,7 @@ cleanup_live_vars(execute_data, op_num, 0); if (UNEXPECTED((EX_CALL_INFO() & ZEND_CALL_GENERATOR) != 0)) { zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); + EG(current_execute_data) = EX(prev_execute_data); zend_generator_close(generator, 1); ZEND_VM_RETURN(); } else { @@ -3244,6 +3245,7 @@ case ZEND_USER_OPCODE_RETURN: if (UNEXPECTED((EX_CALL_INFO() & ZEND_CALL_GENERATOR) != 0)) { zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C); + EG(current_execute_data) = EX(prev_execute_data); zend_generator_close(generator, 1); ZEND_VM_RETURN(); } else { @@ -3455,6 +3457,9 @@ EG(current_execute_data) = call->prev_execute_data; zend_vm_stack_free_args(call); + if (UNEXPECTED(call_info & ZEND_CALL_HAS_EXTRA_NAMED_PARAMS)) { + zend_free_extra_named_params(call->extra_named_params); + } if (ret == &retval) { zval_ptr_dtor(ret); } @@ -3596,6 +3601,9 @@ EG(current_execute_data) = call->prev_execute_data; zend_vm_stack_free_args(call); + if (UNEXPECTED(call_info & ZEND_CALL_HAS_EXTRA_NAMED_PARAMS)) { + zend_free_extra_named_params(call->extra_named_params); + } if (ret == &retval) { zval_ptr_dtor(ret); } @@ -4573,6 +4581,8 @@ } } + EG(current_execute_data) = EX(prev_execute_data); + /* Close the generator to free up resources */ zend_generator_close(generator, 1); @@ -4618,6 +4628,8 @@ zend_observer_fcall_end(generator->execute_data, &generator->retval); + EG(current_execute_data) = EX(prev_execute_data); + /* Close the generator to free up resources */ zend_generator_close(generator, 1); @@ -5434,6 +5446,7 @@ called_scope = Z_CE(EX(This)); object = NULL; } + SAVE_OPLINE(); zend_create_closure(EX_VAR(opline->result.var), func, EX(func)->op_array.scope, called_scope, object); @@ -9852,6 +9865,10 @@ } else if (type == BP_VAR_IS || type == BP_VAR_UNSET) { retval = &EG(uninitialized_zval); } else { + if (IS_CONST == IS_CV) { + /* Keep name alive in case an error handler tries to free it. */ + zend_string_addref(name); + } zend_error(E_WARNING, "Undefined %svariable $%s", (opline->extended_value & ZEND_FETCH_GLOBAL ? "global " : ""), ZSTR_VAL(name)); if (type == BP_VAR_RW && !EG(exception)) { @@ -9859,6 +9876,9 @@ } else { retval = &EG(uninitialized_zval); } + if (IS_CONST == IS_CV) { + zend_string_release(name); + } } /* GLOBAL or $$name variable may be an INDIRECT pointer to CV */ } else if (Z_TYPE_P(retval) == IS_INDIRECT) { @@ -10791,6 +10811,7 @@ } if (result_size) { + SAVE_OPLINE(); uint32_t first_extra_arg = EX(func)->op_array.num_args; ht = zend_new_array(result_size); @@ -17660,6 +17681,10 @@ } else if (type == BP_VAR_IS || type == BP_VAR_UNSET) { retval = &EG(uninitialized_zval); } else { + if ((IS_TMP_VAR|IS_VAR) == IS_CV) { + /* Keep name alive in case an error handler tries to free it. */ + zend_string_addref(name); + } zend_error(E_WARNING, "Undefined %svariable $%s", (opline->extended_value & ZEND_FETCH_GLOBAL ? "global " : ""), ZSTR_VAL(name)); if (type == BP_VAR_RW && !EG(exception)) { @@ -17667,6 +17692,9 @@ } else { retval = &EG(uninitialized_zval); } + if ((IS_TMP_VAR|IS_VAR) == IS_CV) { + zend_string_release(name); + } } /* GLOBAL or $$name variable may be an INDIRECT pointer to CV */ } else if (Z_TYPE_P(retval) == IS_INDIRECT) { @@ -19071,6 +19099,8 @@ } } + EG(current_execute_data) = EX(prev_execute_data); + /* Close the generator to free up resources */ zend_generator_close(generator, 1); @@ -21725,6 +21755,8 @@ } } + EG(current_execute_data) = EX(prev_execute_data); + /* Close the generator to free up resources */ zend_generator_close(generator, 1); @@ -36278,6 +36310,7 @@ } if (result_size) { + SAVE_OPLINE(); uint32_t first_extra_arg = EX(func)->op_array.num_args; ht = zend_new_array(result_size); @@ -38692,6 +38725,8 @@ } } + EG(current_execute_data) = EX(prev_execute_data); + /* Close the generator to free up resources */ zend_generator_close(generator, 1); @@ -47227,6 +47262,10 @@ } else if (type == BP_VAR_IS || type == BP_VAR_UNSET) { retval = &EG(uninitialized_zval); } else { + if (IS_CV == IS_CV) { + /* Keep name alive in case an error handler tries to free it. */ + zend_string_addref(name); + } zend_error(E_WARNING, "Undefined %svariable $%s", (opline->extended_value & ZEND_FETCH_GLOBAL ? "global " : ""), ZSTR_VAL(name)); if (type == BP_VAR_RW && !EG(exception)) { @@ -47234,6 +47273,9 @@ } else { retval = &EG(uninitialized_zval); } + if (IS_CV == IS_CV) { + zend_string_release(name); + } } /* GLOBAL or $$name variable may be an INDIRECT pointer to CV */ } else if (Z_TYPE_P(retval) == IS_INDIRECT) { @@ -48669,6 +48711,8 @@ variable_ptr = EX_VAR(opline->op1.var); + SAVE_OPLINE(); + ht = ZEND_MAP_PTR_GET(EX(func)->op_array.static_variables_ptr); if (!ht) { ht = zend_array_dup(EX(func)->op_array.static_variables); @@ -48678,7 +48722,6 @@ value = (zval*)((char*)ht->arData + (opline->extended_value & ~(ZEND_BIND_REF|ZEND_BIND_IMPLICIT|ZEND_BIND_EXPLICIT))); - SAVE_OPLINE(); if (opline->extended_value & ZEND_BIND_REF) { if (Z_TYPE_P(value) == IS_CONSTANT_AST) { if (UNEXPECTED(zval_update_constant_ex(value, EX(func)->op_array.scope) != SUCCESS)) { diff -Nru php8.2-8.2.7/build/Makefile.global php8.2-8.2.18/build/Makefile.global --- php8.2-8.2.7/build/Makefile.global 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/build/Makefile.global 2024-04-09 18:46:23.000000000 +0000 @@ -16,8 +16,8 @@ build-binaries: $(PHP_BINARIES) libphp.la: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) - $(LIBTOOL) --mode=link $(CC) $(LIBPHP_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS) -rpath $(phptempdir) $(EXTRA_LDFLAGS) $(LDFLAGS) $(PHP_RPATHS) $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@ - -@$(LIBTOOL) --silent --mode=install cp $@ $(phptempdir)/$@ >/dev/null 2>&1 + $(LIBTOOL) --tag=CC --mode=link $(CC) $(LIBPHP_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS) -rpath $(phptempdir) $(EXTRA_LDFLAGS) $(LDFLAGS) $(PHP_RPATHS) $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@ + -@$(LIBTOOL) --silent --tag=CC --mode=install cp $@ $(phptempdir)/$@ >/dev/null 2>&1 libs/libphp.bundle: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(CC) $(MH_BUNDLE_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) $(LDFLAGS) $(EXTRA_LDFLAGS) $(PHP_GLOBAL_OBJS:.lo=.o) $(PHP_SAPI_OBJS:.lo=.o) $(PHP_FRAMEWORKS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@ && cp $@ libs/libphp.so diff -Nru php8.2-8.2.7/build/ax_gcc_func_attribute.m4 php8.2-8.2.18/build/ax_gcc_func_attribute.m4 --- php8.2-8.2.7/build/ax_gcc_func_attribute.m4 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/build/ax_gcc_func_attribute.m4 2024-04-09 18:46:23.000000000 +0000 @@ -216,7 +216,7 @@ static int bar( void ) __attribute__(($1("foo"))); ], [target], [ - static int bar( void ) __attribute__(($1("sse2"))); + int bar( void ) __attribute__(($1("sse2"))); ], [ m4_warn([syntax], [Unsupported attribute $1, the test may fail]) diff -Nru php8.2-8.2.7/build/gen_stub.php php8.2-8.2.18/build/gen_stub.php --- php8.2-8.2.7/build/gen_stub.php 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/build/gen_stub.php 2024-04-09 18:46:23.000000000 +0000 @@ -527,10 +527,10 @@ } public function toEscapedName(): string { - // Escape backslashes, and also encode \u and \U to avoid compilation errors in generated macros + // Escape backslashes, and also encode \u, \U, and \N to avoid compilation errors in generated macros return str_replace( - ['\\', '\\u', '\\U'], - ['\\\\', '\\\\165', '\\\\125'], + ['\\', '\\u', '\\U', '\\N'], + ['\\\\', '\\\\165', '\\\\125', '\\\\116'], $this->name ); } diff -Nru php8.2-8.2.7/build/libtool.m4 php8.2-8.2.18/build/libtool.m4 --- php8.2-8.2.7/build/libtool.m4 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/build/libtool.m4 2024-04-09 18:46:23.000000000 +0000 @@ -271,13 +271,13 @@ dnl autoconf 2.13 compatibility dnl _LT_AC_TRY_LINK() -AC_DEFUN(_LT_AC_TRY_LINK, [ +AC_DEFUN([_LT_AC_TRY_LINK], [ cat > conftest.$ac_ext </dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then - AC_MSG_WARN([\`$CC' does not support \`-c -o', so \`make -j' may be unsafe]) + AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe]) need_locks=warn fi else @@ -1935,15 +1934,15 @@ if test -f "$ltmain" && test -n "$tagnames"; then if test ! -f "${ofile}"; then - AC_MSG_WARN([output file \`$ofile' does not exist]) + AC_MSG_WARN([output file '$ofile' does not exist]) fi if test -z "$LTCC"; then eval "`$SHELL ${ofile} --config | grep '^LTCC='`" if test -z "$LTCC"; then - AC_MSG_WARN([output file \`$ofile' does not look like a libtool script]) + AC_MSG_WARN([output file '$ofile' does not look like a libtool script]) else - AC_MSG_WARN([using \`LTCC=$LTCC', extracted from \`$ofile']) + AC_MSG_WARN([using 'LTCC=$LTCC', extracted from '$ofile']) fi fi if test -z "$LTCFLAGS"; then @@ -1966,7 +1965,7 @@ if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null then - AC_MSG_ERROR([tag name \"$tagname\" already exists]) + AC_MSG_ERROR([tag name "$tagname" already exists]) fi # Update the list of available tags. @@ -2738,8 +2737,7 @@ AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG]) AC_DEFUN([_LT_AC_LANG_C_CONFIG], [lt_save_CC="$CC" -AC_LANG_SAVE -AC_LANG_C +AC_LANG_PUSH([C]) # Source file extension for C test sources. ac_ext=c @@ -2752,7 +2750,7 @@ lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}' +lt_simple_link_test_code='int main(void){return(0);}' _LT_AC_SYS_COMPILER @@ -2807,7 +2805,7 @@ AC_LIBTOOL_CONFIG($1) -AC_LANG_RESTORE +AC_LANG_POP([C]) CC="$lt_save_CC" ])# AC_LIBTOOL_LANG_C_CONFIG @@ -2819,8 +2817,7 @@ # AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)]) AC_DEFUN([_LT_AC_LANG_CXX_CONFIG], -[AC_LANG_SAVE -AC_LANG_CPLUSPLUS +[AC_LANG_PUSH([C++]) AC_REQUIRE([AC_PROG_CXX]) AC_REQUIRE([_LT_AC_PROG_CXXCPP]) @@ -3806,7 +3803,7 @@ AC_LIBTOOL_CONFIG($1) -AC_LANG_RESTORE +AC_LANG_POP([C++]) CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD @@ -4643,7 +4640,7 @@ #ifdef __cplusplus } #endif -int main(){nm_test_var='a';nm_test_func();return(0);} +int main(void){nm_test_var='a';nm_test_func();return(0);} EOF if AC_TRY_EVAL(ac_compile); then diff -Nru php8.2-8.2.7/build/ltmain.sh php8.2-8.2.18/build/ltmain.sh --- php8.2-8.2.7/build/ltmain.sh 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/build/ltmain.sh 2024-04-09 18:46:23.000000000 +0000 @@ -3598,7 +3598,7 @@ # whether they linked in statically or dynamically with ldd. $rm conftest.c cat > conftest.c <>Makefile.objects< -int main() { +int main(void) { char buf[27]; struct tm t; time_t old = 0; @@ -1118,7 +1118,7 @@ ],[ AC_RUN_IFELSE([AC_LANG_SOURCE([[ #include -int main() { +int main(void) { struct tm t, *s; time_t old = 0; char buf[27], *p; @@ -1159,7 +1159,7 @@ #include #include $1 - int main() { + int main(void) { int fd = open("conftest_in", O_WRONLY|O_CREAT, 0600); if (fd < 0) return 1; @@ -1193,7 +1193,7 @@ #include #include $1 - int main() { + int main(void) { char buf[3]; int fd = open("conftest_in", O_RDONLY); if (fd < 0) return 1; @@ -1261,27 +1261,27 @@ dnl AC_DEFUN([PHP_MISSING_TIME_R_DECL],[ AC_MSG_CHECKING([for missing declarations of reentrant functions]) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[struct tm *(*func)() = localtime_r]])],[ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[struct tm *(*func)(void) = localtime_r]])],[ : ],[ AC_DEFINE(MISSING_LOCALTIME_R_DECL,1,[Whether localtime_r is declared]) ]) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[struct tm *(*func)() = gmtime_r]])],[ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[struct tm *(*func)(void) = gmtime_r]])],[ : ],[ AC_DEFINE(MISSING_GMTIME_R_DECL,1,[Whether gmtime_r is declared]) ]) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[char *(*func)() = asctime_r]])],[ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[char *(*func)(void) = asctime_r]])],[ : ],[ AC_DEFINE(MISSING_ASCTIME_R_DECL,1,[Whether asctime_r is declared]) ]) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[char *(*func)() = ctime_r]])],[ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[char *(*func)(void) = ctime_r]])],[ : ],[ AC_DEFINE(MISSING_CTIME_R_DECL,1,[Whether ctime_r is declared]) ]) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[char *(*func)() = strtok_r]])],[ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[char *(*func)(void) = strtok_r]])],[ : ],[ AC_DEFINE(MISSING_STRTOK_R_DECL,1,[Whether strtok_r is declared]) @@ -1315,7 +1315,7 @@ dnl AC_DEFUN([PHP_MISSING_FCLOSE_DECL],[ AC_MSG_CHECKING([for fclose declaration]) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[int (*func)() = fclose]])],[ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[int (*func)(void) = fclose]])],[ AC_DEFINE(MISSING_FCLOSE_DECL,0,[ ]) AC_MSG_RESULT([ok]) ],[ @@ -1405,7 +1405,7 @@ int i; char c[1]; }; -int main() +int main(void) { struct s *s = malloc(sizeof(struct s) + 3); s->i = 3; @@ -1463,7 +1463,7 @@ cookie_io_functions_t funcs = {reader, writer, seeker, closer}; -int main() { +int main(void) { struct cookiedata g = { 0 }; FILE *fp = fopencookie(&g, "r", funcs); @@ -1590,7 +1590,7 @@ if test "$found" = "yes"; then ac_libs=$LIBS LIBS="$LIBS -l$2" - AC_RUN_IFELSE([AC_LANG_SOURCE([[int main() { return (0); }]])],[found=yes],[found=no],[ + AC_RUN_IFELSE([AC_LANG_PROGRAM()],[found=yes],[found=no],[ dnl Cross compilation. found=yes ]) @@ -1643,8 +1643,8 @@ LIBS="$4 $LIBS" AC_LINK_IFELSE([AC_LANG_SOURCE([[ $5 - char $1(); - int main() { + char $1(void); + int main(void) { $1(); return 0; } @@ -1892,7 +1892,7 @@ if test -n "$PHP"; then AC_MSG_CHECKING([for php version]) - php_version=$($PHP -v | head -n1 | cut -d ' ' -f 2) + php_version=$($PHP -v | head -n1 | cut -d ' ' -f 2 | cut -d '-' -f 1) if test -z "$php_version"; then php_version=0.0.0 fi @@ -2296,7 +2296,7 @@ #define TEXT "This is the test message -- " -int main() +int main(void) { int n; @@ -2700,7 +2700,7 @@ AC_MSG_CHECKING([for __builtin_cpu_init]) AC_LINK_IFELSE([AC_LANG_PROGRAM([], [[ - return __builtin_cpu_init()? 1 : 0; + __builtin_cpu_init(); ]])], [ have_builtin_cpu_init=1 AC_MSG_RESULT([yes]) diff -Nru php8.2-8.2.7/configure php8.2-8.2.18/configure --- php8.2-8.2.7/configure 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/configure 2024-04-09 18:46:23.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for PHP 8.2.7. +# Generated by GNU Autoconf 2.69 for PHP 8.2.18. # # Report bugs to . # @@ -732,8 +732,8 @@ # Identity of this package. PACKAGE_NAME='PHP' PACKAGE_TARNAME='php' -PACKAGE_VERSION='8.2.7' -PACKAGE_STRING='PHP 8.2.7' +PACKAGE_VERSION='8.2.18' +PACKAGE_STRING='PHP 8.2.18' PACKAGE_BUGREPORT='https://github.com/php/php-src/issues' PACKAGE_URL='https://www.php.net' @@ -1778,7 +1778,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures PHP 8.2.7 to adapt to many kinds of systems. +\`configure' configures PHP 8.2.18 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1850,7 +1850,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of PHP 8.2.7:";; + short | recursive ) echo "Configuration of PHP 8.2.18:";; esac cat <<\_ACEOF @@ -2313,7 +2313,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -PHP configure 8.2.7 +PHP configure 8.2.18 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -3097,7 +3097,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by PHP $as_me 8.2.7, which was +It was created by PHP $as_me 8.2.18, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3878,7 +3878,7 @@ ac_IFS=$IFS; IFS="." -set $(echo 8.2.7 | "${SED}" 's/\([0-9\.]*\)\(.*\)/\1\.\2/') +set $(echo 8.2.18 | "${SED}" 's/\([0-9\.]*\)\(.*\)/\1\.\2/') IFS=$ac_IFS PHP_MAJOR_VERSION=$1 PHP_MINOR_VERSION=$2 @@ -4845,6 +4845,7 @@ rm -f conftest* + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5 $as_echo_n "checking for $CC option to accept ISO C99... " >&6; } if ${ac_cv_prog_cc_c99+:} false; then : @@ -5851,7 +5852,7 @@ if test -n "$PHP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for php version" >&5 $as_echo_n "checking for php version... " >&6; } - php_version=$($PHP -v | head -n1 | cut -d ' ' -f 2) + php_version=$($PHP -v | head -n1 | cut -d ' ' -f 2 | cut -d '-' -f 1) if test -z "$php_version"; then php_version=0.0.0 fi @@ -6220,7 +6221,7 @@ return data; } -int main() { +int main(void) { pthread_t thd; pthread_mutexattr_t mattr; int data = 1; @@ -6274,7 +6275,7 @@ return data; } -int main() { +int main(void) { pthread_t thd; pthread_mutexattr_t mattr; int data = 1; @@ -6344,10 +6345,10 @@ esac - php_c_pre='$(LIBTOOL) --mode=compile $(CC)' + php_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' php_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS)' php_c_post= - php_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + php_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' php_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS)' php_cxx_post= php_lo=lo @@ -6357,10 +6358,10 @@ no) pic_setting='-prefer-non-pic';; esac - shared_c_pre='$(LIBTOOL) --mode=compile $(CC)' + shared_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' shared_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) '$pic_setting shared_c_post= - shared_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + shared_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' shared_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) '$pic_setting shared_cxx_post= shared_lo=lo @@ -6543,10 +6544,10 @@ case "shared" in static) - php_c_pre='$(LIBTOOL) --mode=compile $(CC)' + php_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' php_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS)' php_c_post= - php_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + php_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' php_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS)' php_cxx_post= php_lo=lo @@ -6556,10 +6557,10 @@ no) pic_setting='-prefer-non-pic';; esac - shared_c_pre='$(LIBTOOL) --mode=compile $(CC)' + shared_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' shared_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) '$pic_setting shared_c_post= - shared_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + shared_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' shared_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) '$pic_setting shared_cxx_post= shared_lo=lo @@ -6569,10 +6570,10 @@ ;; shared) - php_c_pre='$(LIBTOOL) --mode=compile $(CC)' + php_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' php_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS)' php_c_post= - php_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + php_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' php_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS)' php_cxx_post= php_lo=lo @@ -6582,10 +6583,10 @@ no) pic_setting='-prefer-non-pic';; esac - shared_c_pre='$(LIBTOOL) --mode=compile $(CC)' + shared_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' shared_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) '$pic_setting shared_c_post= - shared_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + shared_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' shared_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) '$pic_setting shared_cxx_post= shared_lo=lo @@ -6603,10 +6604,10 @@ ;; bundle) - php_c_pre='$(LIBTOOL) --mode=compile $(CC)' + php_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' php_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS)' php_c_post= - php_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + php_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' php_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS)' php_cxx_post= php_lo=lo @@ -6616,10 +6617,10 @@ no) pic_setting='-prefer-non-pic';; esac - shared_c_pre='$(LIBTOOL) --mode=compile $(CC)' + shared_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' shared_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) '$pic_setting shared_c_post= - shared_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + shared_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' shared_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) '$pic_setting shared_cxx_post= shared_lo=lo @@ -6718,10 +6719,10 @@ case "bundle" in static) - php_c_pre='$(LIBTOOL) --mode=compile $(CC)' + php_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' php_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS)' php_c_post= - php_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + php_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' php_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS)' php_cxx_post= php_lo=lo @@ -6731,10 +6732,10 @@ no) pic_setting='-prefer-non-pic';; esac - shared_c_pre='$(LIBTOOL) --mode=compile $(CC)' + shared_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' shared_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) '$pic_setting shared_c_post= - shared_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + shared_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' shared_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) '$pic_setting shared_cxx_post= shared_lo=lo @@ -6744,10 +6745,10 @@ ;; shared) - php_c_pre='$(LIBTOOL) --mode=compile $(CC)' + php_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' php_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS)' php_c_post= - php_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + php_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' php_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS)' php_cxx_post= php_lo=lo @@ -6757,10 +6758,10 @@ no) pic_setting='-prefer-non-pic';; esac - shared_c_pre='$(LIBTOOL) --mode=compile $(CC)' + shared_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' shared_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) '$pic_setting shared_c_post= - shared_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + shared_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' shared_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) '$pic_setting shared_cxx_post= shared_lo=lo @@ -6778,10 +6779,10 @@ ;; bundle) - php_c_pre='$(LIBTOOL) --mode=compile $(CC)' + php_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' php_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS)' php_c_post= - php_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + php_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' php_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS)' php_cxx_post= php_lo=lo @@ -6791,10 +6792,10 @@ no) pic_setting='-prefer-non-pic';; esac - shared_c_pre='$(LIBTOOL) --mode=compile $(CC)' + shared_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' shared_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) '$pic_setting shared_c_post= - shared_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + shared_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' shared_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) '$pic_setting shared_cxx_post= shared_lo=lo @@ -6884,10 +6885,10 @@ case "shared" in static) - php_c_pre='$(LIBTOOL) --mode=compile $(CC)' + php_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' php_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS)' php_c_post= - php_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + php_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' php_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS)' php_cxx_post= php_lo=lo @@ -6897,10 +6898,10 @@ no) pic_setting='-prefer-non-pic';; esac - shared_c_pre='$(LIBTOOL) --mode=compile $(CC)' + shared_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' shared_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) '$pic_setting shared_c_post= - shared_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + shared_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' shared_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) '$pic_setting shared_cxx_post= shared_lo=lo @@ -6910,10 +6911,10 @@ ;; shared) - php_c_pre='$(LIBTOOL) --mode=compile $(CC)' + php_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' php_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS)' php_c_post= - php_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + php_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' php_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS)' php_cxx_post= php_lo=lo @@ -6923,10 +6924,10 @@ no) pic_setting='-prefer-non-pic';; esac - shared_c_pre='$(LIBTOOL) --mode=compile $(CC)' + shared_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' shared_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) '$pic_setting shared_c_post= - shared_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + shared_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' shared_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) '$pic_setting shared_cxx_post= shared_lo=lo @@ -6944,10 +6945,10 @@ ;; bundle) - php_c_pre='$(LIBTOOL) --mode=compile $(CC)' + php_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' php_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS)' php_c_post= - php_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + php_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' php_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS)' php_cxx_post= php_lo=lo @@ -6957,10 +6958,10 @@ no) pic_setting='-prefer-non-pic';; esac - shared_c_pre='$(LIBTOOL) --mode=compile $(CC)' + shared_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' shared_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) '$pic_setting shared_c_post= - shared_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + shared_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' shared_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) '$pic_setting shared_cxx_post= shared_lo=lo @@ -7175,10 +7176,10 @@ - php_c_pre='$(LIBTOOL) --mode=compile $(CC)' + php_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' php_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS)' php_c_post= - php_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + php_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' php_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS)' php_cxx_post= php_lo=lo @@ -7188,10 +7189,10 @@ no) pic_setting='-prefer-non-pic';; esac - shared_c_pre='$(LIBTOOL) --mode=compile $(CC)' + shared_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' shared_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) '$pic_setting shared_c_post= - shared_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + shared_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' shared_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) '$pic_setting shared_cxx_post= shared_lo=lo @@ -7251,16 +7252,16 @@ case $host_alias in *aix*) if test "$php_sapi_module" = "shared"; then - BUILD_CLI="echo '\#! .' > php.sym && echo >>php.sym && nm -BCpg \`echo \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_CLI_OBJS) | sed 's/\([A-Za-z0-9_]*\)\.lo/.libs\/\1.o/g'\` | \$(AWK) '{ if (((\$\$2 == \"T\") || (\$\$2 == \"D\") || (\$\$2 == \"B\")) && (substr(\$\$3,1,1) != \".\")) { print \$\$3 } }' | sort -u >> php.sym && \$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) -Wl,-brtl -Wl,-bE:php.sym \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_CLI_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CLI_PATH)" + BUILD_CLI="echo '\#! .' > php.sym && echo >>php.sym && nm -BCpg \`echo \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_CLI_OBJS) | sed 's/\([A-Za-z0-9_]*\)\.lo/.libs\/\1.o/g'\` | \$(AWK) '{ if (((\$\$2 == \"T\") || (\$\$2 == \"D\") || (\$\$2 == \"B\")) && (substr(\$\$3,1,1) != \".\")) { print \$\$3 } }' | sort -u >> php.sym && \$(LIBTOOL) --tag=CC --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) -Wl,-brtl -Wl,-bE:php.sym \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_CLI_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CLI_PATH)" else - BUILD_CLI="echo '\#! .' > php.sym && echo >>php.sym && nm -BCpg \`echo \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_CLI_OBJS) | sed 's/\([A-Za-z0-9_]*\)\.lo/\1.o/g'\` | \$(AWK) '{ if (((\$\$2 == \"T\") || (\$\$2 == \"D\") || (\$\$2 == \"B\")) && (substr(\$\$3,1,1) != \".\")) { print \$\$3 } }' | sort -u >> php.sym && \$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) -Wl,-brtl -Wl,-bE:php.sym \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_CLI_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CLI_PATH)" + BUILD_CLI="echo '\#! .' > php.sym && echo >>php.sym && nm -BCpg \`echo \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_CLI_OBJS) | sed 's/\([A-Za-z0-9_]*\)\.lo/\1.o/g'\` | \$(AWK) '{ if (((\$\$2 == \"T\") || (\$\$2 == \"D\") || (\$\$2 == \"B\")) && (substr(\$\$3,1,1) != \".\")) { print \$\$3 } }' | sort -u >> php.sym && \$(LIBTOOL) --tag=CC --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) -Wl,-brtl -Wl,-bE:php.sym \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_CLI_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CLI_PATH)" fi ;; *darwin*) BUILD_CLI="\$(CC) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(NATIVE_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_BINARY_OBJS:.lo=.o) \$(PHP_CLI_OBJS:.lo=.o) \$(PHP_FRAMEWORKS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CLI_PATH)" ;; *) - BUILD_CLI="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_BINARY_OBJS:.lo=.o) \$(PHP_CLI_OBJS:.lo=.o) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CLI_PATH)" + BUILD_CLI="\$(LIBTOOL) --tag=CC --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_BINARY_OBJS:.lo=.o) \$(PHP_CLI_OBJS:.lo=.o) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CLI_PATH)" ;; esac @@ -7377,10 +7378,10 @@ case "$PHP_EMBED_TYPE" in static) - php_c_pre='$(LIBTOOL) --mode=compile $(CC)' + php_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' php_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS)' php_c_post= - php_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + php_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' php_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS)' php_cxx_post= php_lo=lo @@ -7390,10 +7391,10 @@ no) pic_setting='-prefer-non-pic';; esac - shared_c_pre='$(LIBTOOL) --mode=compile $(CC)' + shared_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' shared_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) '$pic_setting shared_c_post= - shared_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + shared_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' shared_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) '$pic_setting shared_cxx_post= shared_lo=lo @@ -7403,10 +7404,10 @@ ;; shared) - php_c_pre='$(LIBTOOL) --mode=compile $(CC)' + php_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' php_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS)' php_c_post= - php_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + php_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' php_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS)' php_cxx_post= php_lo=lo @@ -7416,10 +7417,10 @@ no) pic_setting='-prefer-non-pic';; esac - shared_c_pre='$(LIBTOOL) --mode=compile $(CC)' + shared_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' shared_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) '$pic_setting shared_c_post= - shared_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + shared_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' shared_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) '$pic_setting shared_cxx_post= shared_lo=lo @@ -7437,10 +7438,10 @@ ;; bundle) - php_c_pre='$(LIBTOOL) --mode=compile $(CC)' + php_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' php_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS)' php_c_post= - php_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + php_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' php_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS)' php_cxx_post= php_lo=lo @@ -7450,10 +7451,10 @@ no) pic_setting='-prefer-non-pic';; esac - shared_c_pre='$(LIBTOOL) --mode=compile $(CC)' + shared_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' shared_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) '$pic_setting shared_c_post= - shared_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + shared_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' shared_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) '$pic_setting shared_cxx_post= shared_lo=lo @@ -7906,7 +7907,7 @@ #include #include - int main() + int main(void) { kern_return_t ret; clock_serv_t aClock; mach_timespec_t aTime; ret = host_get_clock_service(mach_host_self(), REALTIME_CLOCK, &aClock); @@ -8014,7 +8015,7 @@ #define PTRACE_PEEKDATA PT_READ_D #endif - int main() + int main(void) { long v1 = (unsigned int) -1; /* copy will fail if sizeof(long) == 8 and we've got "int ptrace()" */ long v2; @@ -8161,7 +8162,7 @@ #include #include #include - int main() + int main(void) { long v1 = (unsigned int) -1, v2 = 0; char buf[128]; @@ -9044,7 +9045,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include - int main() + int main(void) { acl_t acl; acl_entry_t user, group; @@ -9120,7 +9121,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include - int main() + int main(void) { acl_t acl; acl_entry_t user, group; @@ -9466,10 +9467,10 @@ - php_c_pre='$(LIBTOOL) --mode=compile $(CC)' + php_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' php_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS)' php_c_post= - php_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + php_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' php_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS)' php_cxx_post= php_lo=lo @@ -9479,10 +9480,10 @@ no) pic_setting='-prefer-non-pic';; esac - shared_c_pre='$(LIBTOOL) --mode=compile $(CC)' + shared_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' shared_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) '$pic_setting shared_c_post= - shared_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + shared_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' shared_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) '$pic_setting shared_cxx_post= shared_lo=lo @@ -9541,13 +9542,13 @@ case $host_alias in *aix*) - BUILD_FPM="echo '\#! .' > php.sym && echo >>php.sym && nm -BCpg \`echo \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_FPM_OBJS) | sed 's/\([A-Za-z0-9_]*\)\.lo/\1.o/g'\` | \$(AWK) '{ if (((\$\$2 == \"T\") || (\$\$2 == \"D\") || (\$\$2 == \"B\")) && (substr(\$\$3,1,1) != \".\")) { print \$\$3 } }' | sort -u >> php.sym && \$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) -Wl,-brtl -Wl,-bE:php.sym \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_FASTCGI_OBJS) \$(PHP_FPM_OBJS) \$(EXTRA_LIBS) \$(FPM_EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_FPM_PATH)" + BUILD_FPM="echo '\#! .' > php.sym && echo >>php.sym && nm -BCpg \`echo \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_FPM_OBJS) | sed 's/\([A-Za-z0-9_]*\)\.lo/\1.o/g'\` | \$(AWK) '{ if (((\$\$2 == \"T\") || (\$\$2 == \"D\") || (\$\$2 == \"B\")) && (substr(\$\$3,1,1) != \".\")) { print \$\$3 } }' | sort -u >> php.sym && \$(LIBTOOL) --tag=CC --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) -Wl,-brtl -Wl,-bE:php.sym \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_FASTCGI_OBJS) \$(PHP_FPM_OBJS) \$(EXTRA_LIBS) \$(FPM_EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_FPM_PATH)" ;; *darwin*) BUILD_FPM="\$(CC) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(NATIVE_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_BINARY_OBJS:.lo=.o) \$(PHP_FASTCGI_OBJS:.lo=.o) \$(PHP_FPM_OBJS:.lo=.o) \$(PHP_FRAMEWORKS) \$(EXTRA_LIBS) \$(FPM_EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_FPM_PATH)" ;; *) - BUILD_FPM="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_BINARY_OBJS:.lo=.o) \$(PHP_FASTCGI_OBJS:.lo=.o) \$(PHP_FPM_OBJS:.lo=.o) \$(EXTRA_LIBS) \$(FPM_EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_FPM_PATH)" + BUILD_FPM="\$(LIBTOOL) --tag=CC --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_BINARY_OBJS:.lo=.o) \$(PHP_FASTCGI_OBJS:.lo=.o) \$(PHP_FPM_OBJS:.lo=.o) \$(EXTRA_LIBS) \$(FPM_EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_FPM_PATH)" ;; esac @@ -10713,10 +10714,10 @@ - php_c_pre='$(LIBTOOL) --mode=compile $(CC)' + php_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' php_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS)' php_c_post= - php_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + php_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' php_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS)' php_cxx_post= php_lo=lo @@ -10726,10 +10727,10 @@ no) pic_setting='-prefer-non-pic';; esac - shared_c_pre='$(LIBTOOL) --mode=compile $(CC)' + shared_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' shared_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) '$pic_setting shared_c_post= - shared_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + shared_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' shared_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) '$pic_setting shared_cxx_post= shared_lo=lo @@ -10791,10 +10792,10 @@ ;; *cygwin*) SAPI_LITESPEED_PATH=sapi/litespeed/php.exe - BUILD_LITESPEED="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_LITESPEED_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_LITESPEED_PATH)" + BUILD_LITESPEED="\$(LIBTOOL) --tag=CC --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_LITESPEED_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_LITESPEED_PATH)" ;; *) - BUILD_LITESPEED="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_BINARY_OBJS:.lo=.o) \$(PHP_LITESPEED_OBJS:.lo=.o) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_LITESPEED_PATH)" + BUILD_LITESPEED="\$(LIBTOOL) --tag=CC --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_BINARY_OBJS:.lo=.o) \$(PHP_LITESPEED_OBJS:.lo=.o) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_LITESPEED_PATH)" ;; esac @@ -11050,7 +11051,7 @@ return data; } -int main() { +int main(void) { pthread_t thd; pthread_mutexattr_t mattr; int data = 1; @@ -11104,7 +11105,7 @@ return data; } -int main() { +int main(void) { pthread_t thd; pthread_mutexattr_t mattr; int data = 1; @@ -11207,10 +11208,10 @@ - php_c_pre='$(LIBTOOL) --mode=compile $(CC)' + php_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' php_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS)' php_c_post= - php_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + php_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' php_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS)' php_cxx_post= php_lo=lo @@ -11220,10 +11221,10 @@ no) pic_setting='-prefer-non-pic';; esac - shared_c_pre='$(LIBTOOL) --mode=compile $(CC)' + shared_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' shared_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) '$pic_setting shared_c_post= - shared_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + shared_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' shared_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) '$pic_setting shared_cxx_post= shared_lo=lo @@ -11283,7 +11284,7 @@ BUILD_BINARY="sapi/phpdbg/phpdbg" BUILD_SHARED="sapi/phpdbg/libphpdbg.la" - BUILD_PHPDBG="\$(LIBTOOL) --mode=link \ + BUILD_PHPDBG="\$(LIBTOOL) --tag=CC --mode=link \ \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \ \$(PHP_GLOBAL_OBJS:.lo=.o) \ \$(PHP_BINARY_OBJS:.lo=.o) \ @@ -11294,7 +11295,7 @@ \$(PHP_FRAMEWORKS) \ -o \$(BUILD_BINARY)" - BUILD_PHPDBG_SHARED="\$(LIBTOOL) --mode=link \ + BUILD_PHPDBG_SHARED="\$(LIBTOOL) --tag=CC --mode=link \ \$(CC) -shared -Wl,-soname,libphpdbg.so -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \ \$(PHP_GLOBAL_OBJS) \ \$(PHP_BINARY_OBJS) \ @@ -11432,10 +11433,10 @@ - php_c_pre='$(LIBTOOL) --mode=compile $(CC)' + php_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' php_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS)' php_c_post= - php_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + php_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' php_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS)' php_cxx_post= php_lo=lo @@ -11445,10 +11446,10 @@ no) pic_setting='-prefer-non-pic';; esac - shared_c_pre='$(LIBTOOL) --mode=compile $(CC)' + shared_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)' shared_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) '$pic_setting shared_c_post= - shared_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)' + shared_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)' shared_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) '$pic_setting shared_cxx_post= shared_lo=lo @@ -11508,16 +11509,16 @@ case $host_alias in *aix*) if test "$php_sapi_module" = "shared"; then - BUILD_CGI="echo '\#! .' > php.sym && echo >>php.sym && nm -BCpg \`echo \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_CGI_OBJS) | sed 's/\([A-Za-z0-9_]*\)\.lo/.libs\/\1.o/g'\` | \$(AWK) '{ if (((\$\$2 == \"T\") || (\$\$2 == \"D\") || (\$\$2 == \"B\")) && (substr(\$\$3,1,1) != \".\")) { print \$\$3 } }' | sort -u >> php.sym && \$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) -Wl,-brtl -Wl,-bE:php.sym \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_FASTCGI_OBJS) \$(PHP_CGI_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)" + BUILD_CGI="echo '\#! .' > php.sym && echo >>php.sym && nm -BCpg \`echo \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_CGI_OBJS) | sed 's/\([A-Za-z0-9_]*\)\.lo/.libs\/\1.o/g'\` | \$(AWK) '{ if (((\$\$2 == \"T\") || (\$\$2 == \"D\") || (\$\$2 == \"B\")) && (substr(\$\$3,1,1) != \".\")) { print \$\$3 } }' | sort -u >> php.sym && \$(LIBTOOL) --tag=CC --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) -Wl,-brtl -Wl,-bE:php.sym \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_FASTCGI_OBJS) \$(PHP_CGI_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)" else - BUILD_CGI="echo '\#! .' > php.sym && echo >>php.sym && nm -BCpg \`echo \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_CGI_OBJS) | sed 's/\([A-Za-z0-9_]*\)\.lo/\1.o/g'\` | \$(AWK) '{ if (((\$\$2 == \"T\") || (\$\$2 == \"D\") || (\$\$2 == \"B\")) && (substr(\$\$3,1,1) != \".\")) { print \$\$3 } }' | sort -u >> php.sym && \$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) -Wl,-brtl -Wl,-bE:php.sym \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_FASTCGI_OBJS) \$(PHP_CGI_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)" + BUILD_CGI="echo '\#! .' > php.sym && echo >>php.sym && nm -BCpg \`echo \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_CGI_OBJS) | sed 's/\([A-Za-z0-9_]*\)\.lo/\1.o/g'\` | \$(AWK) '{ if (((\$\$2 == \"T\") || (\$\$2 == \"D\") || (\$\$2 == \"B\")) && (substr(\$\$3,1,1) != \".\")) { print \$\$3 } }' | sort -u >> php.sym && \$(LIBTOOL) --tag=CC --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) -Wl,-brtl -Wl,-bE:php.sym \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_BINARY_OBJS) \$(PHP_FASTCGI_OBJS) \$(PHP_CGI_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)" fi ;; *darwin*) BUILD_CGI="\$(CC) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(NATIVE_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_BINARY_OBJS:.lo=.o) \$(PHP_FASTCGI_OBJS:.lo=.o) \$(PHP_CGI_OBJS:.lo=.o) \$(PHP_FRAMEWORKS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)" ;; *) - BUILD_CGI="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_BINARY_OBJS:.lo=.o) \$(PHP_FASTCGI_OBJS:.lo=.o) \$(PHP_CGI_OBJS:.lo=.o) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)" + BUILD_CGI="\$(LIBTOOL) --tag=CC --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_BINARY_OBJS:.lo=.o) \$(PHP_FASTCGI_OBJS:.lo=.o) \$(PHP_CGI_OBJS:.lo=.o) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)" ;; esac @@ -11767,7 +11768,7 @@ #define TEXT "This is the test message -- " -int main() +int main(void) { int n; @@ -11968,7 +11969,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -12102,7 +12110,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -12275,7 +12290,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -12409,7 +12431,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -12582,7 +12611,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -12716,7 +12752,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -12889,7 +12932,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -13023,7 +13073,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -13196,7 +13253,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -13330,7 +13394,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -13503,7 +13574,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -13637,7 +13715,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -13810,7 +13895,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -13944,7 +14036,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -14040,6 +14139,188 @@ fi +case $host_alias in + riscv64*) + + unset ac_cv_func___atomic_exchange_1 + unset ac_cv_func_____atomic_exchange_1 + unset found + + ac_fn_c_check_func "$LINENO" "__atomic_exchange_1" "ac_cv_func___atomic_exchange_1" +if test "x$ac_cv_func___atomic_exchange_1" = xyes; then : + found=yes +else + ac_fn_c_check_func "$LINENO" "____atomic_exchange_1" "ac_cv_func_____atomic_exchange_1" +if test "x$ac_cv_func_____atomic_exchange_1" = xyes; then : + found=yes +else + found=no +fi + +fi + + + case $found in + yes) + +$as_echo "#define HAVE___ATOMIC_EXCHANGE_1 1" >>confdefs.h + + ac_cv_func___atomic_exchange_1=yes + ;; + + *) + + unset ac_cv_lib_atomic___atomic_exchange_1 + unset ac_cv_lib_atomic_____atomic_exchange_1 + unset found + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __atomic_exchange_1 in -latomic" >&5 +$as_echo_n "checking for __atomic_exchange_1 in -latomic... " >&6; } +if ${ac_cv_lib_atomic___atomic_exchange_1+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-latomic $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char __atomic_exchange_1 (); +int +main () +{ +return __atomic_exchange_1 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_atomic___atomic_exchange_1=yes +else + ac_cv_lib_atomic___atomic_exchange_1=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_atomic___atomic_exchange_1" >&5 +$as_echo "$ac_cv_lib_atomic___atomic_exchange_1" >&6; } +if test "x$ac_cv_lib_atomic___atomic_exchange_1" = xyes; then : + found=yes +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ____atomic_exchange_1 in -latomic" >&5 +$as_echo_n "checking for ____atomic_exchange_1 in -latomic... " >&6; } +if ${ac_cv_lib_atomic_____atomic_exchange_1+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-latomic $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ____atomic_exchange_1 (); +int +main () +{ +return ____atomic_exchange_1 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_atomic_____atomic_exchange_1=yes +else + ac_cv_lib_atomic_____atomic_exchange_1=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_atomic_____atomic_exchange_1" >&5 +$as_echo "$ac_cv_lib_atomic_____atomic_exchange_1" >&6; } +if test "x$ac_cv_lib_atomic_____atomic_exchange_1" = xyes; then : + found=yes +else + found=no +fi + + +fi + + + if test "$found" = "yes"; then + ac_libs=$LIBS + LIBS="$LIBS -latomic" + if test "$cross_compiling" = yes; then : + + found=yes + +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + found=yes +else + found=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + LIBS=$ac_libs + fi + + if test "$found" = "yes"; then + + + case atomic in + c|c_r) ;; + *) + LIBS="-latomic $LIBS" + ;; + esac + + + +$as_echo "#define HAVE___ATOMIC_EXCHANGE_1 1" >>confdefs.h + + +$as_echo "#define HAVE_LIBATOMIC 1" >>confdefs.h + + ac_cv_func___atomic_exchange_1=yes + else + + : + + fi + + ;; + + esac + + ;; +esac + unset ac_cv_func_inet_aton unset ac_cv_func___inet_aton @@ -14168,7 +14449,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -14302,7 +14590,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -14498,7 +14793,7 @@ cookie_io_functions_t funcs = {reader, writer, seeker, closer}; -int main() { +int main(void) { struct cookiedata g = { 0 }; FILE *fp = fopencookie(&g, "r", funcs); @@ -14606,7 +14901,7 @@ int i; char c[1]; }; -int main() +int main(void) { struct s *s = malloc(sizeof(struct s) + 3); s->i = 3; @@ -14750,7 +15045,7 @@ int main () { -struct tm *(*func)() = localtime_r +struct tm *(*func)(void) = localtime_r ; return 0; } @@ -14773,7 +15068,7 @@ int main () { -struct tm *(*func)() = gmtime_r +struct tm *(*func)(void) = gmtime_r ; return 0; } @@ -14796,7 +15091,7 @@ int main () { -char *(*func)() = asctime_r +char *(*func)(void) = asctime_r ; return 0; } @@ -14819,7 +15114,7 @@ int main () { -char *(*func)() = ctime_r +char *(*func)(void) = ctime_r ; return 0; } @@ -14842,7 +15137,7 @@ int main () { -char *(*func)() = strtok_r +char *(*func)(void) = strtok_r ; return 0; } @@ -14871,7 +15166,7 @@ int main () { -int (*func)() = fclose +int (*func)(void) = fclose ; return 0; } @@ -14984,7 +15279,7 @@ #endif -int main() +int main(void) { FILE *fp = fopen("conftestval", "w"); if (!fp) return(1); @@ -15059,7 +15354,7 @@ #endif -int main() +int main(void) { FILE *fp = fopen("conftestval", "w"); if (!fp) return(1); @@ -15134,7 +15429,7 @@ #endif -int main() +int main(void) { FILE *fp = fopen("conftestval", "w"); if (!fp) return(1); @@ -16020,7 +16315,7 @@ main () { - return __builtin_cpu_init()? 1 : 0; + __builtin_cpu_init(); ; return 0; @@ -16360,7 +16655,7 @@ /* end confdefs.h. */ - static int bar( void ) __attribute__((target("sse2"))); + int bar( void ) __attribute__((target("sse2"))); int main () @@ -16491,7 +16786,6 @@ nanosleep \ memmem \ memrchr \ -strerror_r \ do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` @@ -16505,6 +16799,99 @@ done +ac_fn_c_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includes_default" +if test "x$ac_cv_have_decl_strerror_r" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_STRERROR_R $ac_have_decl +_ACEOF + +for ac_func in strerror_r +do : + ac_fn_c_check_func "$LINENO" "strerror_r" "ac_cv_func_strerror_r" +if test "x$ac_cv_func_strerror_r" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STRERROR_R 1 +_ACEOF + +fi +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror_r returns char *" >&5 +$as_echo_n "checking whether strerror_r returns char *... " >&6; } +if ${ac_cv_func_strerror_r_char_p+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ac_cv_func_strerror_r_char_p=no + if test $ac_cv_have_decl_strerror_r = yes; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + char buf[100]; + char x = *strerror_r (0, buf, sizeof buf); + char *p = strerror_r (0, buf, sizeof buf); + return !p || x; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_strerror_r_char_p=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + else + # strerror_r is not declared. Choose between + # systems that have relatively inaccessible declarations for the + # function. BeOS and DEC UNIX 4.0 fall in this category, but the + # former has a strerror_r that returns char*, while the latter + # has a strerror_r that returns `int'. + # This test should segfault on the DEC system. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default + extern char *strerror_r (); +int +main () +{ +char buf[100]; + char x = *strerror_r (0, buf, sizeof buf); + return ! isalpha (x); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_func_strerror_r_char_p=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strerror_r_char_p" >&5 +$as_echo "$ac_cv_func_strerror_r_char_p" >&6; } +if test $ac_cv_func_strerror_r_char_p = yes; then + +$as_echo "#define STRERROR_R_CHAR_P 1" >>confdefs.h + +fi + + ac_ext=c @@ -16810,7 +17197,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -16951,7 +17345,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -17393,7 +17794,7 @@ #include -int main() { +int main(void) { char buf[27]; struct tm t; time_t old = 0; @@ -17421,7 +17822,7 @@ /* end confdefs.h. */ #include -int main() { +int main(void) { struct tm t, *s; time_t old = 0; char buf[27], *p; @@ -17868,7 +18269,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -18002,7 +18410,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -19045,10 +19460,10 @@ cat >>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<conftest.$ac_ext /* end confdefs.h. */ - char foobar () {} - char foobar(); - int main() { + char foobar (void) {} + char foobar(void); + int main(void) { foobar(); return 0; } @@ -37222,1110 +37639,473 @@ - save_old_LDFLAGS=$LDFLAGS - ac_stuff=" $GD_SHARED_LIBADD " - - save_ext_shared=$ext_shared - ext_shared=yes - - for ac_i in $ac_stuff; do - case $ac_i in - -pthread) - if test "$ext_shared" = "yes"; then - LDFLAGS="$LDFLAGS -pthread" - else - - - unique=`echo $ac_i|$SED 's/[^a-zA-Z0-9]/_/g'` - - cmd="echo $ac_n \"\$EXTRA_LDFLAGS$unique$ac_c\"" - if test -n "$unique" && test "`eval $cmd`" = "" ; then - eval "EXTRA_LDFLAGS$unique=set" - EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ac_i" - fi - - - - unique=`echo $ac_i|$SED 's/[^a-zA-Z0-9]/_/g'` - - cmd="echo $ac_n \"\$EXTRA_LDFLAGS_PROGRAM$unique$ac_c\"" - if test -n "$unique" && test "`eval $cmd`" = "" ; then - eval "EXTRA_LDFLAGS_PROGRAM$unique=set" - EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM $ac_i" - fi - - fi - ;; - -l*) - ac_ii=`echo $ac_i|cut -c 3-` - - - case $ac_ii in - c|c_r) ;; - *) - if test "$ext_shared" = "yes"; then - LDFLAGS="$LDFLAGS -l$ac_ii" - else - - - case $ac_ii in - c|c_r) ;; - *) - LIBS="$LIBS -l$ac_ii" - ;; - esac - - - fi - ;; - esac - - - ;; - -L*) - ac_ii=`echo $ac_i|cut -c 3-` - - if test "$ac_ii" != "/usr/$PHP_LIBDIR" && test "$ac_ii" != "/usr/lib"; then - - if test -z "$ac_ii" || echo "$ac_ii" | grep '^/' >/dev/null ; then - ai_p=$ac_ii - else - - ep_dir=`echo $ac_ii|$SED 's%/*[^/][^/]*/*$%%'` - - ep_realdir=`(cd "$ep_dir" && pwd)` - ai_p="$ep_realdir"/`basename "$ac_ii"` - fi - - - if test "$ext_shared" = "yes"; then - LDFLAGS="-L$ai_p $LDFLAGS" - test -n "$ld_runpath_switch" && LDFLAGS="$ld_runpath_switch$ai_p $LDFLAGS" - else - - - - unique=`echo $ai_p|$SED 's/[^a-zA-Z0-9]/_/g'` - - cmd="echo $ac_n \"\$LIBPATH$unique$ac_c\"" - if test -n "$unique" && test "`eval $cmd`" = "" ; then - eval "LIBPATH$unique=set" - - test -n "$ld_runpath_switch" && LDFLAGS="$LDFLAGS $ld_runpath_switch$ai_p" - LDFLAGS="$LDFLAGS -L$ai_p" - PHP_RPATHS="$PHP_RPATHS $ai_p" - - fi - - - fi + old_LIBS="${LIBS}" + LIBS="${LIBS} ${GD_SHARED_LIBADD}" + old_CFLAGS="${CFLAGS}" + CFLAGS="${CFLAGS} ${GDLIB_CFLAGS}" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working gdImageCreateFromPng in libgd" >&5 +$as_echo_n "checking for working gdImageCreateFromPng in libgd... " >&6; } + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - fi + if test "$cross_compiling" = yes; then : - ;; - esac - done + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdImageCreateFromPng in -lgd" >&5 -$as_echo_n "checking for gdImageCreateFromPng in -lgd... " >&6; } -if ${ac_cv_lib_gd_gdImageCreateFromPng+:} false; then : - $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgd $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char gdImageCreateFromPng (); -int -main () -{ -return gdImageCreateFromPng (); - ; +#include +#include +#include + +/* A custom gdErrorMethod */ +void exit1(int priority, const char *format, va_list args) { + _exit(1); +} + +/* Override the default gd_error_method with one that + actually causes the program to return an error. */ +int main(int argc, char** argv) { + FILE* f = NULL; + gdSetErrorMethod(exit1); + gdImagePtr p = gdImageCreateFromPng(f); return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_gd_gdImageCreateFromPng=yes -else - ac_cv_lib_gd_gdImageCreateFromPng=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gd_gdImageCreateFromPng" >&5 -$as_echo "$ac_cv_lib_gd_gdImageCreateFromPng" >&6; } -if test "x$ac_cv_lib_gd_gdImageCreateFromPng" = xyes; then : +if ac_fn_c_try_run "$LINENO"; then : - LDFLAGS=$save_old_LDFLAGS - ext_shared=$save_ext_shared + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } $as_echo "#define HAVE_GD_PNG 1" >>confdefs.h else - LDFLAGS=$save_old_LDFLAGS - ext_shared=$save_ext_shared - unset ac_cv_lib_gd_gdImageCreateFromPng - + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - save_old_LDFLAGS=$LDFLAGS - ac_stuff=" $GD_SHARED_LIBADD " - - save_ext_shared=$ext_shared - ext_shared=yes - - for ac_i in $ac_stuff; do - case $ac_i in - -pthread) - if test "$ext_shared" = "yes"; then - LDFLAGS="$LDFLAGS -pthread" - else - - - unique=`echo $ac_i|$SED 's/[^a-zA-Z0-9]/_/g'` - - cmd="echo $ac_n \"\$EXTRA_LDFLAGS$unique$ac_c\"" - if test -n "$unique" && test "`eval $cmd`" = "" ; then - eval "EXTRA_LDFLAGS$unique=set" - EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ac_i" - fi - - - - unique=`echo $ac_i|$SED 's/[^a-zA-Z0-9]/_/g'` - - cmd="echo $ac_n \"\$EXTRA_LDFLAGS_PROGRAM$unique$ac_c\"" - if test -n "$unique" && test "`eval $cmd`" = "" ; then - eval "EXTRA_LDFLAGS_PROGRAM$unique=set" - EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM $ac_i" - fi - - fi - ;; - -l*) - ac_ii=`echo $ac_i|cut -c 3-` - - - case $ac_ii in - c|c_r) ;; - *) - if test "$ext_shared" = "yes"; then - LDFLAGS="$LDFLAGS -l$ac_ii" - else - - - case $ac_ii in - c|c_r) ;; - *) - LIBS="$LIBS -l$ac_ii" - ;; - esac - - - fi - ;; - esac - - - ;; - -L*) - ac_ii=`echo $ac_i|cut -c 3-` - - if test "$ac_ii" != "/usr/$PHP_LIBDIR" && test "$ac_ii" != "/usr/lib"; then - - if test -z "$ac_ii" || echo "$ac_ii" | grep '^/' >/dev/null ; then - ai_p=$ac_ii - else - - ep_dir=`echo $ac_ii|$SED 's%/*[^/][^/]*/*$%%'` - - ep_realdir=`(cd "$ep_dir" && pwd)` - ai_p="$ep_realdir"/`basename "$ac_ii"` - fi - - - if test "$ext_shared" = "yes"; then - LDFLAGS="-L$ai_p $LDFLAGS" - test -n "$ld_runpath_switch" && LDFLAGS="$ld_runpath_switch$ai_p $LDFLAGS" - else - - - - unique=`echo $ai_p|$SED 's/[^a-zA-Z0-9]/_/g'` - - cmd="echo $ac_n \"\$LIBPATH$unique$ac_c\"" - if test -n "$unique" && test "`eval $cmd`" = "" ; then - eval "LIBPATH$unique=set" - - test -n "$ld_runpath_switch" && LDFLAGS="$LDFLAGS $ld_runpath_switch$ai_p" - LDFLAGS="$LDFLAGS -L$ai_p" - PHP_RPATHS="$PHP_RPATHS $ai_p" - - fi + CFLAGS="${old_CFLAGS}" + LIBS="${old_LIBS}" - fi + old_LIBS="${LIBS}" + LIBS="${LIBS} ${GD_SHARED_LIBADD}" + old_CFLAGS="${CFLAGS}" + CFLAGS="${CFLAGS} ${GDLIB_CFLAGS}" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working gdImageCreateFromAvif in libgd" >&5 +$as_echo_n "checking for working gdImageCreateFromAvif in libgd... " >&6; } + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - fi + if test "$cross_compiling" = yes; then : - ;; - esac - done + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdImageCreateFromAvif in -lgd" >&5 -$as_echo_n "checking for gdImageCreateFromAvif in -lgd... " >&6; } -if ${ac_cv_lib_gd_gdImageCreateFromAvif+:} false; then : - $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgd $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char gdImageCreateFromAvif (); -int -main () -{ -return gdImageCreateFromAvif (); - ; +#include +#include +#include + +/* A custom gdErrorMethod */ +void exit1(int priority, const char *format, va_list args) { + _exit(1); +} + +/* Override the default gd_error_method with one that + actually causes the program to return an error. */ +int main(int argc, char** argv) { + FILE* f = NULL; + gdSetErrorMethod(exit1); + gdImagePtr p = gdImageCreateFromAvif(f); return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_gd_gdImageCreateFromAvif=yes -else - ac_cv_lib_gd_gdImageCreateFromAvif=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gd_gdImageCreateFromAvif" >&5 -$as_echo "$ac_cv_lib_gd_gdImageCreateFromAvif" >&6; } -if test "x$ac_cv_lib_gd_gdImageCreateFromAvif" = xyes; then : +if ac_fn_c_try_run "$LINENO"; then : - LDFLAGS=$save_old_LDFLAGS - ext_shared=$save_ext_shared + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } $as_echo "#define HAVE_GD_AVIF 1" >>confdefs.h else - LDFLAGS=$save_old_LDFLAGS - ext_shared=$save_ext_shared - unset ac_cv_lib_gd_gdImageCreateFromAvif - + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - save_old_LDFLAGS=$LDFLAGS - ac_stuff=" $GD_SHARED_LIBADD " - - save_ext_shared=$ext_shared - ext_shared=yes - - for ac_i in $ac_stuff; do - case $ac_i in - -pthread) - if test "$ext_shared" = "yes"; then - LDFLAGS="$LDFLAGS -pthread" - else - - - unique=`echo $ac_i|$SED 's/[^a-zA-Z0-9]/_/g'` - - cmd="echo $ac_n \"\$EXTRA_LDFLAGS$unique$ac_c\"" - if test -n "$unique" && test "`eval $cmd`" = "" ; then - eval "EXTRA_LDFLAGS$unique=set" - EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ac_i" - fi - - - - unique=`echo $ac_i|$SED 's/[^a-zA-Z0-9]/_/g'` - - cmd="echo $ac_n \"\$EXTRA_LDFLAGS_PROGRAM$unique$ac_c\"" - if test -n "$unique" && test "`eval $cmd`" = "" ; then - eval "EXTRA_LDFLAGS_PROGRAM$unique=set" - EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM $ac_i" - fi - - fi - ;; - -l*) - ac_ii=`echo $ac_i|cut -c 3-` - - - case $ac_ii in - c|c_r) ;; - *) - if test "$ext_shared" = "yes"; then - LDFLAGS="$LDFLAGS -l$ac_ii" - else - - - case $ac_ii in - c|c_r) ;; - *) - LIBS="$LIBS -l$ac_ii" - ;; - esac - - - fi - ;; - esac - - - ;; - -L*) - ac_ii=`echo $ac_i|cut -c 3-` - - if test "$ac_ii" != "/usr/$PHP_LIBDIR" && test "$ac_ii" != "/usr/lib"; then - - if test -z "$ac_ii" || echo "$ac_ii" | grep '^/' >/dev/null ; then - ai_p=$ac_ii - else - - ep_dir=`echo $ac_ii|$SED 's%/*[^/][^/]*/*$%%'` - - ep_realdir=`(cd "$ep_dir" && pwd)` - ai_p="$ep_realdir"/`basename "$ac_ii"` - fi - - - if test "$ext_shared" = "yes"; then - LDFLAGS="-L$ai_p $LDFLAGS" - test -n "$ld_runpath_switch" && LDFLAGS="$ld_runpath_switch$ai_p $LDFLAGS" - else - - - - unique=`echo $ai_p|$SED 's/[^a-zA-Z0-9]/_/g'` - - cmd="echo $ac_n \"\$LIBPATH$unique$ac_c\"" - if test -n "$unique" && test "`eval $cmd`" = "" ; then - eval "LIBPATH$unique=set" - - test -n "$ld_runpath_switch" && LDFLAGS="$LDFLAGS $ld_runpath_switch$ai_p" - LDFLAGS="$LDFLAGS -L$ai_p" - PHP_RPATHS="$PHP_RPATHS $ai_p" - - fi + CFLAGS="${old_CFLAGS}" + LIBS="${old_LIBS}" - fi + old_LIBS="${LIBS}" + LIBS="${LIBS} ${GD_SHARED_LIBADD}" + old_CFLAGS="${CFLAGS}" + CFLAGS="${CFLAGS} ${GDLIB_CFLAGS}" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working gdImageCreateFromWebp in libgd" >&5 +$as_echo_n "checking for working gdImageCreateFromWebp in libgd... " >&6; } + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - fi + if test "$cross_compiling" = yes; then : - ;; - esac - done + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdImageCreateFromWebp in -lgd" >&5 -$as_echo_n "checking for gdImageCreateFromWebp in -lgd... " >&6; } -if ${ac_cv_lib_gd_gdImageCreateFromWebp+:} false; then : - $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgd $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char gdImageCreateFromWebp (); -int -main () -{ -return gdImageCreateFromWebp (); - ; +#include +#include +#include + +/* A custom gdErrorMethod */ +void exit1(int priority, const char *format, va_list args) { + _exit(1); +} + +/* Override the default gd_error_method with one that + actually causes the program to return an error. */ +int main(int argc, char** argv) { + FILE* f = NULL; + gdSetErrorMethod(exit1); + gdImagePtr p = gdImageCreateFromWebp(f); return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_gd_gdImageCreateFromWebp=yes -else - ac_cv_lib_gd_gdImageCreateFromWebp=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gd_gdImageCreateFromWebp" >&5 -$as_echo "$ac_cv_lib_gd_gdImageCreateFromWebp" >&6; } -if test "x$ac_cv_lib_gd_gdImageCreateFromWebp" = xyes; then : +if ac_fn_c_try_run "$LINENO"; then : - LDFLAGS=$save_old_LDFLAGS - ext_shared=$save_ext_shared + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } $as_echo "#define HAVE_GD_WEBP 1" >>confdefs.h else - LDFLAGS=$save_old_LDFLAGS - ext_shared=$save_ext_shared - unset ac_cv_lib_gd_gdImageCreateFromWebp - + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - save_old_LDFLAGS=$LDFLAGS - ac_stuff=" $GD_SHARED_LIBADD " - - save_ext_shared=$ext_shared - ext_shared=yes - - for ac_i in $ac_stuff; do - case $ac_i in - -pthread) - if test "$ext_shared" = "yes"; then - LDFLAGS="$LDFLAGS -pthread" - else - - - unique=`echo $ac_i|$SED 's/[^a-zA-Z0-9]/_/g'` - - cmd="echo $ac_n \"\$EXTRA_LDFLAGS$unique$ac_c\"" - if test -n "$unique" && test "`eval $cmd`" = "" ; then - eval "EXTRA_LDFLAGS$unique=set" - EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ac_i" - fi - - - - unique=`echo $ac_i|$SED 's/[^a-zA-Z0-9]/_/g'` - - cmd="echo $ac_n \"\$EXTRA_LDFLAGS_PROGRAM$unique$ac_c\"" - if test -n "$unique" && test "`eval $cmd`" = "" ; then - eval "EXTRA_LDFLAGS_PROGRAM$unique=set" - EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM $ac_i" - fi - - fi - ;; - -l*) - ac_ii=`echo $ac_i|cut -c 3-` - - - case $ac_ii in - c|c_r) ;; - *) - if test "$ext_shared" = "yes"; then - LDFLAGS="$LDFLAGS -l$ac_ii" - else - - - case $ac_ii in - c|c_r) ;; - *) - LIBS="$LIBS -l$ac_ii" - ;; - esac - - - fi - ;; - esac - - - ;; - -L*) - ac_ii=`echo $ac_i|cut -c 3-` - - if test "$ac_ii" != "/usr/$PHP_LIBDIR" && test "$ac_ii" != "/usr/lib"; then - - if test -z "$ac_ii" || echo "$ac_ii" | grep '^/' >/dev/null ; then - ai_p=$ac_ii - else - - ep_dir=`echo $ac_ii|$SED 's%/*[^/][^/]*/*$%%'` - - ep_realdir=`(cd "$ep_dir" && pwd)` - ai_p="$ep_realdir"/`basename "$ac_ii"` - fi - - - if test "$ext_shared" = "yes"; then - LDFLAGS="-L$ai_p $LDFLAGS" - test -n "$ld_runpath_switch" && LDFLAGS="$ld_runpath_switch$ai_p $LDFLAGS" - else - - - - unique=`echo $ai_p|$SED 's/[^a-zA-Z0-9]/_/g'` - - cmd="echo $ac_n \"\$LIBPATH$unique$ac_c\"" - if test -n "$unique" && test "`eval $cmd`" = "" ; then - eval "LIBPATH$unique=set" - - test -n "$ld_runpath_switch" && LDFLAGS="$LDFLAGS $ld_runpath_switch$ai_p" - LDFLAGS="$LDFLAGS -L$ai_p" - PHP_RPATHS="$PHP_RPATHS $ai_p" - - fi + CFLAGS="${old_CFLAGS}" + LIBS="${old_LIBS}" - fi + old_LIBS="${LIBS}" + LIBS="${LIBS} ${GD_SHARED_LIBADD}" + old_CFLAGS="${CFLAGS}" + CFLAGS="${CFLAGS} ${GDLIB_CFLAGS}" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working gdImageCreateFromJpeg in libgd" >&5 +$as_echo_n "checking for working gdImageCreateFromJpeg in libgd... " >&6; } + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - fi + if test "$cross_compiling" = yes; then : - ;; - esac - done + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdImageCreateFromJpeg in -lgd" >&5 -$as_echo_n "checking for gdImageCreateFromJpeg in -lgd... " >&6; } -if ${ac_cv_lib_gd_gdImageCreateFromJpeg+:} false; then : - $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgd $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char gdImageCreateFromJpeg (); -int -main () -{ -return gdImageCreateFromJpeg (); - ; +#include +#include +#include + +/* A custom gdErrorMethod */ +void exit1(int priority, const char *format, va_list args) { + _exit(1); +} + +/* Override the default gd_error_method with one that + actually causes the program to return an error. */ +int main(int argc, char** argv) { + FILE* f = NULL; + gdSetErrorMethod(exit1); + gdImagePtr p = gdImageCreateFromJpeg(f); return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_gd_gdImageCreateFromJpeg=yes -else - ac_cv_lib_gd_gdImageCreateFromJpeg=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gd_gdImageCreateFromJpeg" >&5 -$as_echo "$ac_cv_lib_gd_gdImageCreateFromJpeg" >&6; } -if test "x$ac_cv_lib_gd_gdImageCreateFromJpeg" = xyes; then : +if ac_fn_c_try_run "$LINENO"; then : - LDFLAGS=$save_old_LDFLAGS - ext_shared=$save_ext_shared + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } $as_echo "#define HAVE_GD_JPG 1" >>confdefs.h else - LDFLAGS=$save_old_LDFLAGS - ext_shared=$save_ext_shared - unset ac_cv_lib_gd_gdImageCreateFromJpeg - + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - save_old_LDFLAGS=$LDFLAGS - ac_stuff=" $GD_SHARED_LIBADD " - - save_ext_shared=$ext_shared - ext_shared=yes - - for ac_i in $ac_stuff; do - case $ac_i in - -pthread) - if test "$ext_shared" = "yes"; then - LDFLAGS="$LDFLAGS -pthread" - else - - - unique=`echo $ac_i|$SED 's/[^a-zA-Z0-9]/_/g'` - - cmd="echo $ac_n \"\$EXTRA_LDFLAGS$unique$ac_c\"" - if test -n "$unique" && test "`eval $cmd`" = "" ; then - eval "EXTRA_LDFLAGS$unique=set" - EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ac_i" - fi - - - - unique=`echo $ac_i|$SED 's/[^a-zA-Z0-9]/_/g'` - - cmd="echo $ac_n \"\$EXTRA_LDFLAGS_PROGRAM$unique$ac_c\"" - if test -n "$unique" && test "`eval $cmd`" = "" ; then - eval "EXTRA_LDFLAGS_PROGRAM$unique=set" - EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM $ac_i" - fi - - fi - ;; - -l*) - ac_ii=`echo $ac_i|cut -c 3-` - - - case $ac_ii in - c|c_r) ;; - *) - if test "$ext_shared" = "yes"; then - LDFLAGS="$LDFLAGS -l$ac_ii" - else - - - case $ac_ii in - c|c_r) ;; - *) - LIBS="$LIBS -l$ac_ii" - ;; - esac - - - fi - ;; - esac - - - ;; - -L*) - ac_ii=`echo $ac_i|cut -c 3-` - - if test "$ac_ii" != "/usr/$PHP_LIBDIR" && test "$ac_ii" != "/usr/lib"; then - - if test -z "$ac_ii" || echo "$ac_ii" | grep '^/' >/dev/null ; then - ai_p=$ac_ii - else - - ep_dir=`echo $ac_ii|$SED 's%/*[^/][^/]*/*$%%'` - - ep_realdir=`(cd "$ep_dir" && pwd)` - ai_p="$ep_realdir"/`basename "$ac_ii"` - fi - - - if test "$ext_shared" = "yes"; then - LDFLAGS="-L$ai_p $LDFLAGS" - test -n "$ld_runpath_switch" && LDFLAGS="$ld_runpath_switch$ai_p $LDFLAGS" - else - - - - unique=`echo $ai_p|$SED 's/[^a-zA-Z0-9]/_/g'` - - cmd="echo $ac_n \"\$LIBPATH$unique$ac_c\"" - if test -n "$unique" && test "`eval $cmd`" = "" ; then - eval "LIBPATH$unique=set" - - test -n "$ld_runpath_switch" && LDFLAGS="$LDFLAGS $ld_runpath_switch$ai_p" - LDFLAGS="$LDFLAGS -L$ai_p" - PHP_RPATHS="$PHP_RPATHS $ai_p" - - fi + CFLAGS="${old_CFLAGS}" + LIBS="${old_LIBS}" - fi + old_LIBS="${LIBS}" + LIBS="${LIBS} ${GD_SHARED_LIBADD}" + old_CFLAGS="${CFLAGS}" + CFLAGS="${CFLAGS} ${GDLIB_CFLAGS}" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working gdImageCreateFromXpm in libgd" >&5 +$as_echo_n "checking for working gdImageCreateFromXpm in libgd... " >&6; } + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - fi + if test "$cross_compiling" = yes; then : - ;; - esac - done + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdImageCreateFromXpm in -lgd" >&5 -$as_echo_n "checking for gdImageCreateFromXpm in -lgd... " >&6; } -if ${ac_cv_lib_gd_gdImageCreateFromXpm+:} false; then : - $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgd $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char gdImageCreateFromXpm (); -int -main () -{ -return gdImageCreateFromXpm (); - ; +#include +#include +#include + +/* A custom gdErrorMethod */ +void exit1(int priority, const char *format, va_list args) { + _exit(1); +} + +/* Override the default gd_error_method with one that + actually causes the program to return an error. */ +int main(int argc, char** argv) { + char* f = "test.xpm"; + gdSetErrorMethod(exit1); + gdImagePtr p = gdImageCreateFromXpm(f); return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_gd_gdImageCreateFromXpm=yes -else - ac_cv_lib_gd_gdImageCreateFromXpm=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gd_gdImageCreateFromXpm" >&5 -$as_echo "$ac_cv_lib_gd_gdImageCreateFromXpm" >&6; } -if test "x$ac_cv_lib_gd_gdImageCreateFromXpm" = xyes; then : +if ac_fn_c_try_run "$LINENO"; then : - LDFLAGS=$save_old_LDFLAGS - ext_shared=$save_ext_shared + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } $as_echo "#define HAVE_GD_XPM 1" >>confdefs.h else - LDFLAGS=$save_old_LDFLAGS - ext_shared=$save_ext_shared - unset ac_cv_lib_gd_gdImageCreateFromXpm - + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - save_old_LDFLAGS=$LDFLAGS - ac_stuff=" $GD_SHARED_LIBADD " - - save_ext_shared=$ext_shared - ext_shared=yes - - for ac_i in $ac_stuff; do - case $ac_i in - -pthread) - if test "$ext_shared" = "yes"; then - LDFLAGS="$LDFLAGS -pthread" - else - - - unique=`echo $ac_i|$SED 's/[^a-zA-Z0-9]/_/g'` - - cmd="echo $ac_n \"\$EXTRA_LDFLAGS$unique$ac_c\"" - if test -n "$unique" && test "`eval $cmd`" = "" ; then - eval "EXTRA_LDFLAGS$unique=set" - EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ac_i" - fi - - - - unique=`echo $ac_i|$SED 's/[^a-zA-Z0-9]/_/g'` - - cmd="echo $ac_n \"\$EXTRA_LDFLAGS_PROGRAM$unique$ac_c\"" - if test -n "$unique" && test "`eval $cmd`" = "" ; then - eval "EXTRA_LDFLAGS_PROGRAM$unique=set" - EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM $ac_i" - fi - - fi - ;; - -l*) - ac_ii=`echo $ac_i|cut -c 3-` - - - case $ac_ii in - c|c_r) ;; - *) - if test "$ext_shared" = "yes"; then - LDFLAGS="$LDFLAGS -l$ac_ii" - else - - - case $ac_ii in - c|c_r) ;; - *) - LIBS="$LIBS -l$ac_ii" - ;; - esac - - - fi - ;; - esac - - - ;; - -L*) - ac_ii=`echo $ac_i|cut -c 3-` - - if test "$ac_ii" != "/usr/$PHP_LIBDIR" && test "$ac_ii" != "/usr/lib"; then - - if test -z "$ac_ii" || echo "$ac_ii" | grep '^/' >/dev/null ; then - ai_p=$ac_ii - else - - ep_dir=`echo $ac_ii|$SED 's%/*[^/][^/]*/*$%%'` - - ep_realdir=`(cd "$ep_dir" && pwd)` - ai_p="$ep_realdir"/`basename "$ac_ii"` - fi - - - if test "$ext_shared" = "yes"; then - LDFLAGS="-L$ai_p $LDFLAGS" - test -n "$ld_runpath_switch" && LDFLAGS="$ld_runpath_switch$ai_p $LDFLAGS" - else - - - - unique=`echo $ai_p|$SED 's/[^a-zA-Z0-9]/_/g'` - - cmd="echo $ac_n \"\$LIBPATH$unique$ac_c\"" - if test -n "$unique" && test "`eval $cmd`" = "" ; then - eval "LIBPATH$unique=set" - - test -n "$ld_runpath_switch" && LDFLAGS="$LDFLAGS $ld_runpath_switch$ai_p" - LDFLAGS="$LDFLAGS -L$ai_p" - PHP_RPATHS="$PHP_RPATHS $ai_p" - - fi + CFLAGS="${old_CFLAGS}" + LIBS="${old_LIBS}" - fi + old_LIBS="${LIBS}" + LIBS="${LIBS} ${GD_SHARED_LIBADD}" + old_CFLAGS="${CFLAGS}" + CFLAGS="${CFLAGS} ${GDLIB_CFLAGS}" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working gdImageCreateFromBmp in libgd" >&5 +$as_echo_n "checking for working gdImageCreateFromBmp in libgd... " >&6; } + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - fi + if test "$cross_compiling" = yes; then : - ;; - esac - done + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdImageCreateFromBmp in -lgd" >&5 -$as_echo_n "checking for gdImageCreateFromBmp in -lgd... " >&6; } -if ${ac_cv_lib_gd_gdImageCreateFromBmp+:} false; then : - $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgd $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char gdImageCreateFromBmp (); -int -main () -{ -return gdImageCreateFromBmp (); - ; +#include +#include +#include + +/* A custom gdErrorMethod */ +void exit1(int priority, const char *format, va_list args) { + _exit(1); +} + +/* Override the default gd_error_method with one that + actually causes the program to return an error. */ +int main(int argc, char** argv) { + FILE* f = NULL; + gdSetErrorMethod(exit1); + gdImagePtr p = gdImageCreateFromBmp(f); return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_gd_gdImageCreateFromBmp=yes -else - ac_cv_lib_gd_gdImageCreateFromBmp=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gd_gdImageCreateFromBmp" >&5 -$as_echo "$ac_cv_lib_gd_gdImageCreateFromBmp" >&6; } -if test "x$ac_cv_lib_gd_gdImageCreateFromBmp" = xyes; then : +if ac_fn_c_try_run "$LINENO"; then : - LDFLAGS=$save_old_LDFLAGS - ext_shared=$save_ext_shared + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } $as_echo "#define HAVE_GD_BMP 1" >>confdefs.h else - LDFLAGS=$save_old_LDFLAGS - ext_shared=$save_ext_shared - unset ac_cv_lib_gd_gdImageCreateFromBmp - + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - save_old_LDFLAGS=$LDFLAGS - ac_stuff=" $GD_SHARED_LIBADD " - - save_ext_shared=$ext_shared - ext_shared=yes - - for ac_i in $ac_stuff; do - case $ac_i in - -pthread) - if test "$ext_shared" = "yes"; then - LDFLAGS="$LDFLAGS -pthread" - else - - - unique=`echo $ac_i|$SED 's/[^a-zA-Z0-9]/_/g'` - - cmd="echo $ac_n \"\$EXTRA_LDFLAGS$unique$ac_c\"" - if test -n "$unique" && test "`eval $cmd`" = "" ; then - eval "EXTRA_LDFLAGS$unique=set" - EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ac_i" - fi - - - - unique=`echo $ac_i|$SED 's/[^a-zA-Z0-9]/_/g'` - - cmd="echo $ac_n \"\$EXTRA_LDFLAGS_PROGRAM$unique$ac_c\"" - if test -n "$unique" && test "`eval $cmd`" = "" ; then - eval "EXTRA_LDFLAGS_PROGRAM$unique=set" - EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM $ac_i" - fi - - fi - ;; - -l*) - ac_ii=`echo $ac_i|cut -c 3-` - - - case $ac_ii in - c|c_r) ;; - *) - if test "$ext_shared" = "yes"; then - LDFLAGS="$LDFLAGS -l$ac_ii" - else - - - case $ac_ii in - c|c_r) ;; - *) - LIBS="$LIBS -l$ac_ii" - ;; - esac - - - fi - ;; - esac - - - ;; - -L*) - ac_ii=`echo $ac_i|cut -c 3-` - - if test "$ac_ii" != "/usr/$PHP_LIBDIR" && test "$ac_ii" != "/usr/lib"; then - - if test -z "$ac_ii" || echo "$ac_ii" | grep '^/' >/dev/null ; then - ai_p=$ac_ii - else - - ep_dir=`echo $ac_ii|$SED 's%/*[^/][^/]*/*$%%'` - - ep_realdir=`(cd "$ep_dir" && pwd)` - ai_p="$ep_realdir"/`basename "$ac_ii"` - fi - - - if test "$ext_shared" = "yes"; then - LDFLAGS="-L$ai_p $LDFLAGS" - test -n "$ld_runpath_switch" && LDFLAGS="$ld_runpath_switch$ai_p $LDFLAGS" - else - - - - unique=`echo $ai_p|$SED 's/[^a-zA-Z0-9]/_/g'` - - cmd="echo $ac_n \"\$LIBPATH$unique$ac_c\"" - if test -n "$unique" && test "`eval $cmd`" = "" ; then - eval "LIBPATH$unique=set" - - test -n "$ld_runpath_switch" && LDFLAGS="$LDFLAGS $ld_runpath_switch$ai_p" - LDFLAGS="$LDFLAGS -L$ai_p" - PHP_RPATHS="$PHP_RPATHS $ai_p" - - fi + CFLAGS="${old_CFLAGS}" + LIBS="${old_LIBS}" - fi + old_LIBS="${LIBS}" + LIBS="${LIBS} ${GD_SHARED_LIBADD}" + old_CFLAGS="${CFLAGS}" + CFLAGS="${CFLAGS} ${GDLIB_CFLAGS}" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working gdImageCreateFromTga in libgd" >&5 +$as_echo_n "checking for working gdImageCreateFromTga in libgd... " >&6; } + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu - fi + if test "$cross_compiling" = yes; then : - ;; - esac - done + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdImageCreateFromTga in -lgd" >&5 -$as_echo_n "checking for gdImageCreateFromTga in -lgd... " >&6; } -if ${ac_cv_lib_gd_gdImageCreateFromTga+:} false; then : - $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgd $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char gdImageCreateFromTga (); -int -main () -{ -return gdImageCreateFromTga (); - ; +#include +#include +#include + +/* A custom gdErrorMethod */ +void exit1(int priority, const char *format, va_list args) { + _exit(1); +} + +/* Override the default gd_error_method with one that + actually causes the program to return an error. */ +int main(int argc, char** argv) { + FILE* f = NULL; + gdSetErrorMethod(exit1); + gdImagePtr p = gdImageCreateFromTga(f); return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_gd_gdImageCreateFromTga=yes -else - ac_cv_lib_gd_gdImageCreateFromTga=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gd_gdImageCreateFromTga" >&5 -$as_echo "$ac_cv_lib_gd_gdImageCreateFromTga" >&6; } -if test "x$ac_cv_lib_gd_gdImageCreateFromTga" = xyes; then : +if ac_fn_c_try_run "$LINENO"; then : - LDFLAGS=$save_old_LDFLAGS - ext_shared=$save_ext_shared + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } $as_echo "#define HAVE_GD_TGA 1" >>confdefs.h else - LDFLAGS=$save_old_LDFLAGS - ext_shared=$save_ext_shared - unset ac_cv_lib_gd_gdImageCreateFromTga - + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + CFLAGS="${old_CFLAGS}" + LIBS="${old_LIBS}" save_old_LDFLAGS=$LDFLAGS @@ -38432,9 +38212,9 @@ esac done - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdImageStringFT in -lgd" >&5 -$as_echo_n "checking for gdImageStringFT in -lgd... " >&6; } -if ${ac_cv_lib_gd_gdImageStringFT+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdFontCacheShutdown in -lgd" >&5 +$as_echo_n "checking for gdFontCacheShutdown in -lgd... " >&6; } +if ${ac_cv_lib_gd_gdFontCacheShutdown+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS @@ -38448,27 +38228,27 @@ #ifdef __cplusplus extern "C" #endif -char gdImageStringFT (); +char gdFontCacheShutdown (); int main () { -return gdImageStringFT (); +return gdFontCacheShutdown (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_gd_gdImageStringFT=yes + ac_cv_lib_gd_gdFontCacheShutdown=yes else - ac_cv_lib_gd_gdImageStringFT=no + ac_cv_lib_gd_gdFontCacheShutdown=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gd_gdImageStringFT" >&5 -$as_echo "$ac_cv_lib_gd_gdImageStringFT" >&6; } -if test "x$ac_cv_lib_gd_gdImageStringFT" = xyes; then : +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gd_gdFontCacheShutdown" >&5 +$as_echo "$ac_cv_lib_gd_gdFontCacheShutdown" >&6; } +if test "x$ac_cv_lib_gd_gdFontCacheShutdown" = xyes; then : LDFLAGS=$save_old_LDFLAGS ext_shared=$save_ext_shared @@ -38480,7 +38260,7 @@ LDFLAGS=$save_old_LDFLAGS ext_shared=$save_ext_shared - unset ac_cv_lib_gd_gdImageStringFT + unset ac_cv_lib_gd_gdFontCacheShutdown fi @@ -38929,10 +38709,10 @@ cat >>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects< -int main() { +int main(void) { printf("%d", _libiconv_version); return 0; } @@ -41979,7 +41759,7 @@ #include #include -int main() { +int main(void) { iconv_t cd; cd = iconv_open( "*blahblah*", "*blahblahblah*" ); if (cd == (iconv_t)(-1)) { @@ -42028,7 +41808,7 @@ #include #include -int main() { +int main(void) { iconv_t cd = iconv_open( "UTF-8//IGNORE", "UTF-8" ); if(cd == (iconv_t)-1) { return 1; @@ -42196,10 +41976,10 @@ cat >>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<&5 @@ -52783,6 +52563,11 @@ PHP_OPCACHE_JIT=no ;; esac + if test "$host_vendor" = "apple" && test "$host_cpu" = "aarch64" && test "$PHP_THREAD_SAFETY" = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: JIT not supported on Apple Silicon with ZTS" >&5 +$as_echo "$as_me: WARNING: JIT not supported on Apple Silicon with ZTS" >&2;} + PHP_OPCACHE_JIT=no + fi fi if test "$PHP_OPCACHE_JIT" = "yes"; then @@ -52796,7 +52581,8 @@ DASM_FLAGS="-D X64APPLE=1 -D X64=1" DASM_ARCH="x86" ;; - x86_64*) + *x86_64*|amd64-*-freebsd*) + IR_TARGET=IR_TARGET_X64 DASM_FLAGS="-D X64=1" DASM_ARCH="x86" ;; @@ -53380,7 +53166,7 @@ #include #include -int main() { +int main(void) { pid_t pid; int status; int ipc_id; @@ -53487,7 +53273,7 @@ # define MAP_FAILED ((void*)-1) #endif -int main() { +int main(void) { pid_t pid; int status; char *shm; @@ -53637,7 +53423,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -53771,7 +53564,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -53835,7 +53635,7 @@ # define MAP_FAILED ((void*)-1) #endif -int main() { +int main(void) { pid_t pid; int status; int fd; @@ -54232,10 +54032,10 @@ cat >>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects< #include - int main() { + int main(void) { int fd = open("conftest_in", O_WRONLY|O_CREAT, 0600); if (fd < 0) return 1; @@ -67948,7 +67748,7 @@ #include #include ssize_t pwrite(int, void *, size_t, off64_t); - int main() { + int main(void) { int fd = open("conftest_in", O_WRONLY|O_CREAT, 0600); if (fd < 0) return 1; @@ -68018,7 +67818,7 @@ #include #include - int main() { + int main(void) { char buf[3]; int fd = open("conftest_in", O_RDONLY); if (fd < 0) return 1; @@ -68062,7 +67862,7 @@ #include #include ssize_t pread(int, void *, size_t, off64_t); - int main() { + int main(void) { char buf[3]; int fd = open("conftest_in", O_RDONLY); if (fd < 0) return 1; @@ -68234,10 +68034,10 @@ cat >>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -73154,7 +72961,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -73364,7 +73178,7 @@ #include #include -int main() { +int main(void) { #if HAVE_CRYPT char *encrypted = crypt("rasmuslerdorf","rl"); return !encrypted || strcmp(encrypted,"rl.3StKT.4T8M"); @@ -73417,7 +73231,7 @@ #include #include -int main() { +int main(void) { #if HAVE_CRYPT char *encrypted = crypt("rasmuslerdorf","_J9..rasm"); return !encrypted || strcmp(encrypted,"_J9..rasmBYk8r9AiWNc"); @@ -73470,7 +73284,7 @@ #include #include -int main() { +int main(void) { #if HAVE_CRYPT char salt[15], answer[40]; char *encrypted; @@ -73533,7 +73347,7 @@ #include #include -int main() { +int main(void) { #if HAVE_CRYPT char salt[30], answer[70]; char *encrypted; @@ -73593,7 +73407,7 @@ #include #include -int main() { +int main(void) { #if HAVE_CRYPT char salt[21], answer[21+86]; char *encrypted; @@ -73652,7 +73466,7 @@ #include #include -int main() { +int main(void) { #if HAVE_CRYPT char salt[21], answer[21+43]; char *encrypted; @@ -74039,7 +73853,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -74173,7 +73994,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -74307,7 +74135,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -74483,7 +74318,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -74617,7 +74459,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -74751,7 +74600,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -74927,7 +74783,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -75061,7 +74924,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -75195,7 +75065,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -75371,7 +75248,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -75505,7 +75389,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -75639,7 +75530,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -75815,7 +75713,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -75949,7 +75854,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -76083,7 +75995,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -76261,7 +76180,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -76395,7 +76321,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -76529,7 +76462,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -77122,10 +77062,10 @@ cat >>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<>Makefile.objects<conftest.$ac_ext /* end confdefs.h. */ -int main() {return 0;} + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_common_page_size=yes @@ -85115,7 +85081,14 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int main() {return 0;} + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_max_page_size=yes @@ -85731,7 +85704,7 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <conftest.$ac_ext /* end confdefs.h. */ -int main() { return (0); } + +int +main () +{ + + ; + return 0; +} _ACEOF if ac_fn_c_try_run "$LINENO"; then : found=yes @@ -86546,7 +86526,7 @@ return data; } -int main() { +int main(void) { pthread_t thd; pthread_mutexattr_t mattr; int data = 1; @@ -86600,7 +86580,7 @@ return data; } -int main() { +int main(void) { pthread_t thd; pthread_mutexattr_t mattr; int data = 1; @@ -87275,6 +87255,45 @@ fi + OLD_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -fno-sanitize-recover=undefined" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to add -fno-sanitize=function" >&5 +$as_echo_n "checking whether to add -fno-sanitize=function... " >&6; } +if ${php_cv_ubsan_no_function+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test "$cross_compiling" = yes; then : + php_cv_ubsan_no_function=no +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +void foo(char *string) {} +int main(void) { + void (*f)(void *) = (void (*)(void *))foo; + f("foo"); +} + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + php_cv_ubsan_no_function=no +else + php_cv_ubsan_no_function=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $php_cv_ubsan_no_function" >&5 +$as_echo "$php_cv_ubsan_no_function" >&6; } + CFLAGS="$OLD_CFLAGS" + if test "$php_cv_ubsan_no_function" = yes; then + CFLAGS="$CFLAGS -fno-sanitize=function" + CXXFLAGS="$CFLAGS -fno-sanitize=function" + fi + else as_fn_error $? "UndefinedBehaviorSanitizer is not available" "$LINENO" 5 fi @@ -87851,7 +87870,7 @@ ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 87854 "configure"' > conftest.$ac_ext + echo '#line 87873 "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -87954,8 +87973,7 @@ if ${lt_cv_cc_needs_belf+:} false; then : $as_echo_n "(cached) " >&6 else - - ac_ext=c + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' @@ -87979,7 +87997,7 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - ac_ext=c + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' @@ -88392,7 +88410,7 @@ #ifdef __cplusplus } #endif -int main(){nm_test_var='a';nm_test_func();return(0);} +int main(void){nm_test_var='a';nm_test_func();return(0);} EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 @@ -89249,9 +89267,9 @@ LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat > conftest.$ac_ext <&5 @@ -89332,7 +89350,6 @@ # Use C for the default configuration in the libtool script tagname= lt_save_CC="$CC" - ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -89351,7 +89368,7 @@ lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}' +lt_simple_link_test_code='int main(void){return(0);}' # If no C compiler was specified, use CC. @@ -89407,11 +89424,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"configure:89410: $lt_compile\"" >&5) + (eval echo "\"configure:89427: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "configure:89414: \$? = $ac_status" >&5 + echo "configure:89431: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -89705,11 +89722,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"configure:89708: $lt_compile\"" >&5) + (eval echo "\"configure:89725: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "configure:89712: \$? = $ac_status" >&5 + echo "configure:89729: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -89809,11 +89826,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"configure:89812: $lt_compile\"" >&5) + (eval echo "\"configure:89829: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "configure:89816: \$? = $ac_status" >&5 + echo "configure:89833: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -89853,8 +89870,8 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} need_locks=warn fi else @@ -90273,9 +90290,9 @@ # Determine the default libpath from the value encoded in an empty executable. cat > conftest.$ac_ext <&5 @@ -90315,9 +90332,9 @@ # Determine the default libpath from the value encoded in an empty executable. cat > conftest.$ac_ext <&5 @@ -91843,7 +91860,7 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < conftest.$ac_ext <&5 -$as_echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: output file '$ofile' does not exist" >&5 +$as_echo "$as_me: WARNING: output file '$ofile' does not exist" >&2;} fi if test -z "$LTCC"; then eval "`$SHELL ${ofile} --config | grep '^LTCC='`" if test -z "$LTCC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: output file \`$ofile' does not look like a libtool script" >&5 -$as_echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: output file '$ofile' does not look like a libtool script" >&5 +$as_echo "$as_me: WARNING: output file '$ofile' does not look like a libtool script" >&2;} else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 -$as_echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using 'LTCC=$LTCC', extracted from '$ofile'" >&5 +$as_echo "$as_me: WARNING: using 'LTCC=$LTCC', extracted from '$ofile'" >&2;} fi fi if test -z "$LTCFLAGS"; then @@ -92632,8 +92649,7 @@ if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then - -ac_ext=cpp + ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' @@ -93002,9 +93018,9 @@ # Determine the default libpath from the value encoded in an empty executable. cat > conftest.$ac_ext <&5 @@ -93045,9 +93061,9 @@ # Determine the default libpath from the value encoded in an empty executable. cat > conftest.$ac_ext <&5 @@ -94297,11 +94313,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"configure:94300: $lt_compile\"" >&5) + (eval echo "\"configure:94316: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "configure:94304: \$? = $ac_status" >&5 + echo "configure:94320: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -94401,11 +94417,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"configure:94404: $lt_compile\"" >&5) + (eval echo "\"configure:94420: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "configure:94408: \$? = $ac_status" >&5 + echo "configure:94424: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -94445,8 +94461,8 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} need_locks=warn fi else @@ -95660,16 +95676,6 @@ fi - - if test -z "$LIBTOOL"; then - LIBTOOL='$(SHELL) $(top_builddir)/libtool --tag CC' - else - LIBTOOL="$LIBTOOL --tag CC" - fi - - -test -z "$PHP_COMPILE" && PHP_COMPILE='$(LIBTOOL) --mode=compile $(COMPILE) -c $<' -test -z "$CXX_PHP_COMPILE" && CXX_PHP_COMPILE='$(LIBTOOL) --mode=compile $(CXX_COMPILE) -c $<' SHARED_LIBTOOL='$(LIBTOOL)' CC=$old_CC @@ -96701,7 +96707,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by PHP $as_me 8.2.7, which was +This file was extended by PHP $as_me 8.2.18, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -96768,7 +96774,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -PHP config.status 8.2.7 +PHP config.status 8.2.18 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -Nru php8.2-8.2.7/configure.ac php8.2-8.2.18/configure.ac --- php8.2-8.2.7/configure.ac 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/configure.ac 2024-04-09 18:46:23.000000000 +0000 @@ -17,7 +17,7 @@ dnl ---------------------------------------------------------------------------- AC_PREREQ([2.68]) -AC_INIT([PHP],[8.2.7],[https://github.com/php/php-src/issues],[php],[https://www.php.net]) +AC_INIT([PHP],[8.2.18],[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 @@ -128,7 +128,9 @@ AC_PROG_CC([cc gcc]) PHP_DETECT_ICC PHP_DETECT_SUNCC -AC_PROG_CC_C99 + +dnl AC_PROG_CC_C99 is obsolete with autoconf >= 2.70 yet necessary for <= 2.69. +m4_version_prereq([2.70],,[AC_PROG_CC_C99]) AC_PROG_CPP AC_USE_SYSTEM_EXTENSIONS AC_PROG_LN_S @@ -371,6 +373,12 @@ fi AC_CHECK_LIB(m, sin) +case $host_alias in + riscv64*) + PHP_CHECK_FUNC(__atomic_exchange_1, atomic) + ;; +esac + dnl Check for inet_aton in -lc, -lbind and -lresolv. PHP_CHECK_FUNC(inet_aton, resolv, bind) @@ -621,9 +629,11 @@ nanosleep \ memmem \ memrchr \ -strerror_r \ ) +dnl Check for strerror_r, and if its a POSIX-compatible or a GNU specific version. +AC_FUNC_STRERROR_R + AX_FUNC_WHICH_GETHOSTBYNAME_R dnl Some systems (like OpenSolaris) do not have nanosleep in libc. @@ -1110,7 +1120,7 @@ save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,-zcommon-page-size=2097152 -Wl,-zmax-page-size=2097152" AC_RUN_IFELSE( - [AC_LANG_SOURCE([[int main() {return 0;}]])], + [AC_LANG_PROGRAM()], [ac_cv_common_page_size=yes], [ac_cv_common_page_size=no], [ac_cv_common_page_size=no]) @@ -1124,7 +1134,7 @@ save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,-zmax-page-size=2097152" AC_RUN_IFELSE( - [AC_LANG_SOURCE([[int main() {return 0;}]])], + [AC_LANG_PROGRAM()], [ac_cv_max_page_size=yes], [ac_cv_max_page_size=no], [ac_cv_max_page_size=no]) @@ -1571,6 +1581,24 @@ CFLAGS="$CFLAGS -fno-sanitize=object-size" CXXFLAGS="$CFLAGS -fno-sanitize=object-size" ]) + + dnl Clang 17 adds stricter function pointer compatibility checks where pointer args cannot be + 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"); +} + ]])],[php_cv_ubsan_no_function=no],[php_cv_ubsan_no_function=yes],[php_cv_ubsan_no_function=no])]) + CFLAGS="$OLD_CFLAGS" + if test "$php_cv_ubsan_no_function" = yes; then + CFLAGS="$CFLAGS -fno-sanitize=function" + CXXFLAGS="$CFLAGS -fno-sanitize=function" + fi ], [AC_MSG_ERROR([UndefinedBehaviorSanitizer is not available])]) fi @@ -1608,11 +1636,6 @@ dnl libtool 1.4.3 needs this. PHP_SET_LIBTOOL_VARIABLE([--preserve-dup-deps]) -dnl This needs to be passed explicitly to allow scan-build compiler overrides. -PHP_SET_LIBTOOL_VARIABLE([--tag CC]) - -test -z "$PHP_COMPILE" && PHP_COMPILE='$(LIBTOOL) --mode=compile $(COMPILE) -c $<' -test -z "$CXX_PHP_COMPILE" && CXX_PHP_COMPILE='$(LIBTOOL) --mode=compile $(CXX_COMPILE) -c $<' SHARED_LIBTOOL='$(LIBTOOL)' CC=$old_CC diff -Nru php8.2-8.2.7/debian/changelog php8.2-8.2.18/debian/changelog --- php8.2-8.2.7/debian/changelog 2023-06-09 19:37:27.000000000 +0000 +++ php8.2-8.2.18/debian/changelog 2024-04-11 22:07:45.000000000 +0000 @@ -1,3 +1,15 @@ +php8.2 (8.2.18-1~deb12u1) bookworm-security; urgency=high + + * New upstream version 8.2.18 + + CVE-2024-1874: Fixed bug GHSA-pc52-254m-w9w7 (Command injection via + array-ish $command parameter of proc_open). + + CVE-2024-2756: Fixed bug GHSA-wpj3-hf5j-x4v4 (__Host-/__Secure- + cookie bypass due to partial CVE-2022-31629 fix). + + CVE-2024-3096: Fixed bug GHSA-h746-cjrr-wfmr (password_verify can + erroneously return true, opening ATO risk). + + -- Ondřej Surý Fri, 12 Apr 2024 00:07:45 +0200 + php8.2 (8.2.7-1~deb12u1) bookworm-security; urgency=high * No change upload to bookworm-security diff -Nru php8.2-8.2.7/docs/release-process.md php8.2-8.2.18/docs/release-process.md --- php8.2-8.2.7/docs/release-process.md 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/docs/release-process.md 2024-04-09 18:46:23.000000000 +0000 @@ -56,7 +56,6 @@ 3. Ensure that the relevant tests on CI are green. - https://travis-ci.com/github/php/php-src - - https://ci.appveyor.com/project/php/php-src - https://dev.azure.com/phpazuredevops/PHP/ - https://cirrus-ci.com/github/php/php-src diff -Nru php8.2-8.2.7/ext/bz2/tests/bzerr_functions_on_invalid_stream.phpt php8.2-8.2.18/ext/bz2/tests/bzerr_functions_on_invalid_stream.phpt --- php8.2-8.2.7/ext/bz2/tests/bzerr_functions_on_invalid_stream.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/bz2/tests/bzerr_functions_on_invalid_stream.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -1,7 +1,7 @@ --TEST-- Calling bzerr* functions on non-bz2 streams ---SKIPIF-- - +--EXTENSIONS-- +bz2 --FILE-- --FILE-- diff -Nru php8.2-8.2.7/ext/ctype/ctype.c php8.2-8.2.18/ext/ctype/ctype.c --- php8.2-8.2.7/ext/ctype/ctype.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/ctype/ctype.c 2024-04-09 18:46:23.000000000 +0000 @@ -61,27 +61,9 @@ } /* }}} */ -static void ctype_impl( - INTERNAL_FUNCTION_PARAMETERS, int (*iswhat)(int), bool allow_digits, bool allow_minus) { - zval *c; - - ZEND_PARSE_PARAMETERS_START(1, 1); - Z_PARAM_ZVAL(c) - ZEND_PARSE_PARAMETERS_END(); - - if (Z_TYPE_P(c) == IS_STRING) { - char *p = Z_STRVAL_P(c), *e = Z_STRVAL_P(c) + Z_STRLEN_P(c); - if (e == p) { - RETURN_FALSE; - } - while (p < e) { - if (!iswhat((int)*(unsigned char *)(p++))) { - RETURN_FALSE; - } - } - RETURN_TRUE; - } - +/* Slow fallback for deprecated cases defined in a no-inline function to not bloat code. */ +static zend_never_inline void ctype_fallback(zval *c, zval *return_value, int (*iswhat)(int), bool allow_digits, bool allow_minus) +{ php_error_docref(NULL, E_DEPRECATED, "Argument of type %s will be interpreted as string in the future", zend_zval_type_name(c)); if (Z_TYPE_P(c) == IS_LONG) { @@ -99,80 +81,105 @@ } } +/* Define as a macro such that iswhat can use the macro version instead of the function version. + * This heavily reduces the overhead. (GH-11997) */ +#define ctype_impl(iswhat, allow_digits, allow_minus) do { \ + zval *c; \ + \ + ZEND_PARSE_PARAMETERS_START(1, 1); \ + Z_PARAM_ZVAL(c) \ + ZEND_PARSE_PARAMETERS_END(); \ + \ + if (Z_TYPE_P(c) == IS_STRING) { \ + char *p = Z_STRVAL_P(c), *e = Z_STRVAL_P(c) + Z_STRLEN_P(c); \ + if (e == p) { \ + RETURN_FALSE; \ + } \ + while (p < e) { \ + if (!iswhat((int)*(unsigned char *)(p++))) { \ + RETURN_FALSE; \ + } \ + } \ + RETURN_TRUE; \ + } \ + \ + ctype_fallback(c, return_value, iswhat, allow_digits, allow_minus); \ + } while (0); + /* {{{ Checks for alphanumeric character(s) */ PHP_FUNCTION(ctype_alnum) { - ctype_impl(INTERNAL_FUNCTION_PARAM_PASSTHRU, isalnum, 1, 0); + ctype_impl(isalnum, 1, 0); } /* }}} */ /* {{{ Checks for alphabetic character(s) */ PHP_FUNCTION(ctype_alpha) { - ctype_impl(INTERNAL_FUNCTION_PARAM_PASSTHRU, isalpha, 0, 0); + ctype_impl(isalpha, 0, 0); } /* }}} */ /* {{{ Checks for control character(s) */ PHP_FUNCTION(ctype_cntrl) { - ctype_impl(INTERNAL_FUNCTION_PARAM_PASSTHRU, iscntrl, 0, 0); + ctype_impl(iscntrl, 0, 0); } /* }}} */ /* {{{ Checks for numeric character(s) */ PHP_FUNCTION(ctype_digit) { - ctype_impl(INTERNAL_FUNCTION_PARAM_PASSTHRU, isdigit, 1, 0); + ctype_impl(isdigit, 1, 0); } /* }}} */ /* {{{ Checks for lowercase character(s) */ PHP_FUNCTION(ctype_lower) { - ctype_impl(INTERNAL_FUNCTION_PARAM_PASSTHRU, islower, 0, 0); + ctype_impl(islower, 0, 0); } /* }}} */ /* {{{ Checks for any printable character(s) except space */ PHP_FUNCTION(ctype_graph) { - ctype_impl(INTERNAL_FUNCTION_PARAM_PASSTHRU, isgraph, 1, 1); + ctype_impl(isgraph, 1, 1); } /* }}} */ /* {{{ Checks for printable character(s) */ PHP_FUNCTION(ctype_print) { - ctype_impl(INTERNAL_FUNCTION_PARAM_PASSTHRU, isprint, 1, 1); + ctype_impl(isprint, 1, 1); } /* }}} */ /* {{{ Checks for any printable character which is not whitespace or an alphanumeric character */ PHP_FUNCTION(ctype_punct) { - ctype_impl(INTERNAL_FUNCTION_PARAM_PASSTHRU, ispunct, 0, 0); + ctype_impl(ispunct, 0, 0); } /* }}} */ /* {{{ Checks for whitespace character(s)*/ PHP_FUNCTION(ctype_space) { - ctype_impl(INTERNAL_FUNCTION_PARAM_PASSTHRU, isspace, 0, 0); + ctype_impl(isspace, 0, 0); } /* }}} */ /* {{{ Checks for uppercase character(s) */ PHP_FUNCTION(ctype_upper) { - ctype_impl(INTERNAL_FUNCTION_PARAM_PASSTHRU, isupper, 0, 0); + ctype_impl(isupper, 0, 0); } /* }}} */ /* {{{ Checks for character(s) representing a hexadecimal digit */ PHP_FUNCTION(ctype_xdigit) { - ctype_impl(INTERNAL_FUNCTION_PARAM_PASSTHRU, isxdigit, 1, 0); + ctype_impl(isxdigit, 1, 0); } /* }}} */ diff -Nru php8.2-8.2.7/ext/curl/interface.c php8.2-8.2.18/ext/curl/interface.c --- php8.2-8.2.7/ext/curl/interface.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/curl/interface.c 2024-04-09 18:46:23.000000000 +0000 @@ -1835,7 +1835,6 @@ case CURLOPT_TLSAUTH_TYPE: case CURLOPT_TLSAUTH_PASSWORD: case CURLOPT_TLSAUTH_USERNAME: - case CURLOPT_ACCEPT_ENCODING: case CURLOPT_TRANSFER_ENCODING: case CURLOPT_DNS_SERVERS: case CURLOPT_MAIL_AUTH: @@ -1910,6 +1909,7 @@ case CURLOPT_RANGE: case CURLOPT_FTP_ACCOUNT: case CURLOPT_RTSP_SESSION_ID: + case CURLOPT_ACCEPT_ENCODING: #if LIBCURL_VERSION_NUM >= 0x072100 /* Available since 7.33.0 */ case CURLOPT_DNS_INTERFACE: case CURLOPT_DNS_LOCAL_IP4: diff -Nru php8.2-8.2.7/ext/curl/multi.c php8.2-8.2.18/ext/curl/multi.c --- php8.2-8.2.7/ext/curl/multi.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/curl/multi.c 2024-04-09 18:46:23.000000000 +0000 @@ -60,12 +60,17 @@ PHP_FUNCTION(curl_multi_init) { php_curlm *mh; + CURLM *multi; ZEND_PARSE_PARAMETERS_NONE(); - + multi = curl_multi_init(); + if (UNEXPECTED(multi == NULL)) { + zend_throw_error(NULL, "%s(): Could not initialize a new cURL multi handle", get_active_function_name()); + RETURN_THROWS(); + } object_init_ex(return_value, curl_multi_ce); mh = Z_CURL_MULTI_P(return_value); - mh->multi = curl_multi_init(); + mh->multi = multi; zend_llist_init(&mh->easyh, sizeof(zval), _php_curl_multi_cleanup_list, 0); } @@ -382,6 +387,11 @@ return rval; } + if (UNEXPECTED(zend_fcall_info_init(&t->func_name, 0, &fci, &t->fci_cache, NULL, NULL) == FAILURE)) { + php_error_docref(NULL, E_WARNING, "Cannot call the CURLMOPT_PUSHFUNCTION"); + return rval; + } + parent = Z_CURL_P(pz_parent_ch); ch = init_curl_handle_into_zval(&pz_ch); @@ -395,8 +405,6 @@ add_next_index_string(&headers, header); } - zend_fcall_info_init(&t->func_name, 0, &fci, &t->fci_cache, NULL, NULL); - zend_fcall_info_argn( &fci, 3, pz_parent_ch, diff -Nru php8.2-8.2.7/ext/curl/tests/Caddyfile php8.2-8.2.18/ext/curl/tests/Caddyfile --- php8.2-8.2.7/ext/curl/tests/Caddyfile 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/curl/tests/Caddyfile 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,13 @@ +{ + admin off + auto_https disable_redirects +} + +localhost + +respond / "Caddy is up and running" + +# HTTP/2 Server Push +respond /serverpush "main response" +respond /serverpush/pushed "pushed response" +push /serverpush /serverpush/pushed diff -Nru php8.2-8.2.7/ext/curl/tests/bug76675.phpt php8.2-8.2.18/ext/curl/tests/bug76675.phpt --- php8.2-8.2.7/ext/curl/tests/bug76675.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/curl/tests/bug76675.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -2,18 +2,14 @@ Bug #76675 (Segfault with H2 server push write/writeheader handlers) --EXTENSIONS-- curl ---XFAIL-- -http2.golang.org/serverpush is gone --SKIPIF-- --FILE-- --FILE-- curl, CURLOPT_HEADER, false); curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, false); curl_setopt($this->curl, CURLOPT_FAILONERROR, false); - curl_setopt($this->curl, CURLOPT_URL, 'https://http2.golang.org/serverpush'); + curl_setopt($this->curl, CURLOPT_URL, 'https://localhost/serverpush'); curl_setopt($this->curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2_0); curl_setopt($this->curl, CURLOPT_HEADERFUNCTION, function ($ch, $data) { return \strlen($data); diff -Nru php8.2-8.2.7/ext/curl/tests/bug77946.phpt php8.2-8.2.18/ext/curl/tests/bug77946.phpt --- php8.2-8.2.7/ext/curl/tests/bug77946.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/curl/tests/bug77946.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -34,4 +34,4 @@ --EXPECTF-- int(1) int(1) -string(%d) "Protocol %Sunknown%S not supported or disabled in libcurl" +string(%d) "Protocol %Sunknown%S %rnot supported( or disabled in libcurl)?%r" diff -Nru php8.2-8.2.7/ext/curl/tests/curl_basic_009.phpt php8.2-8.2.18/ext/curl/tests/curl_basic_009.phpt --- php8.2-8.2.7/ext/curl/tests/curl_basic_009.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/curl/tests/curl_basic_009.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -7,7 +7,8 @@ --FILE-- +--FILE-- + +--EXPECT-- +Array +( + [0] => main response + [1] => pushed response +) diff -Nru php8.2-8.2.7/ext/curl/tests/curl_pushfunction_nonexistent_callback.phpt php8.2-8.2.18/ext/curl/tests/curl_pushfunction_nonexistent_callback.phpt --- php8.2-8.2.7/ext/curl/tests/curl_pushfunction_nonexistent_callback.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/curl/tests/curl_pushfunction_nonexistent_callback.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,54 @@ +--TEST-- +Test CURLMOPT_PUSHFUNCTION with non-existent callback function +--CREDITS-- +Davey Shafik +Kévin Dunglas +Niels Dossche +--EXTENSIONS-- +curl +--SKIPIF-- + +--FILE-- + +--EXPECTF-- +Warning: curl_multi_exec(): Cannot call the CURLMOPT_PUSHFUNCTION in %s on line %d diff -Nru php8.2-8.2.7/ext/curl/tests/curl_setopt_CURLOPT_ACCEPT_ENCODING.phpt php8.2-8.2.18/ext/curl/tests/curl_setopt_CURLOPT_ACCEPT_ENCODING.phpt --- php8.2-8.2.7/ext/curl/tests/curl_setopt_CURLOPT_ACCEPT_ENCODING.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/curl/tests/curl_setopt_CURLOPT_ACCEPT_ENCODING.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,38 @@ +--TEST-- +Test curl_setopt() with CURLOPT_ACCEPT_ENCODING +--EXTENSIONS-- +curl +--FILE-- + +--EXPECTF-- +GET /get.inc?test= HTTP/1.1 +Host: %s +Accept: */* +Accept-Encoding: gzip + +GET /get.inc?test= HTTP/1.1 +Host: %s +Accept: */* diff -Nru php8.2-8.2.7/ext/curl/tests/curl_setopt_ssl.phpt php8.2-8.2.18/ext/curl/tests/curl_setopt_ssl.phpt --- php8.2-8.2.7/ext/curl/tests/curl_setopt_ssl.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/curl/tests/curl_setopt_ssl.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -8,6 +8,8 @@ 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'); +if (PHP_OS === 'FreeBSD') die('skip proc_open seems to be stuck on FreeBSD'); $curl_version = curl_version(); if ($curl_version['version_number'] < 0x074700) { die("skip: blob options not supported for curl < 7.71.0"); @@ -236,4 +238,4 @@ bool(true) bool(true) client cert subject not in response -CURL ERROR: 83 \ No newline at end of file +CURL ERROR: 83 diff -Nru php8.2-8.2.7/ext/curl/tests/skipif-nocaddy.inc php8.2-8.2.18/ext/curl/tests/skipif-nocaddy.inc --- php8.2-8.2.7/ext/curl/tests/skipif-nocaddy.inc 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/curl/tests/skipif-nocaddy.inc 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,12 @@ +unit) { - case TIMELIB_MICROSEC: s->time->relative.us += amount * relunit->multiplier; break; - case TIMELIB_SECOND: s->time->relative.s += amount * relunit->multiplier; break; - case TIMELIB_MINUTE: s->time->relative.i += amount * relunit->multiplier; break; - case TIMELIB_HOUR: s->time->relative.h += amount * relunit->multiplier; break; - case TIMELIB_DAY: s->time->relative.d += amount * relunit->multiplier; break; - case TIMELIB_MONTH: s->time->relative.m += amount * relunit->multiplier; break; - case TIMELIB_YEAR: s->time->relative.y += amount * relunit->multiplier; break; + case TIMELIB_MICROSEC: add_with_overflow(s, &s->time->relative.us, amount, relunit->multiplier); break; + case TIMELIB_SECOND: add_with_overflow(s, &s->time->relative.s, amount, relunit->multiplier); break; + case TIMELIB_MINUTE: add_with_overflow(s, &s->time->relative.i, amount, relunit->multiplier); break; + case TIMELIB_HOUR: add_with_overflow(s, &s->time->relative.h, amount, relunit->multiplier); break; + case TIMELIB_DAY: add_with_overflow(s, &s->time->relative.d, amount, relunit->multiplier); break; + case TIMELIB_MONTH: add_with_overflow(s, &s->time->relative.m, amount, relunit->multiplier); break; + case TIMELIB_YEAR: add_with_overflow(s, &s->time->relative.y, amount, relunit->multiplier); break; case TIMELIB_WEEKDAY: TIMELIB_HAVE_WEEKDAY_RELATIVE(); @@ -991,11 +1014,11 @@ std: s->tok = cursor; s->len = 0; -#line 1122 "ext/date/lib/parse_date.re" +#line 1147 "ext/date/lib/parse_date.re" -#line 999 "" +#line 1022 "" { YYCTYPE yych; unsigned int yyaccept = 0; @@ -1005,17 +1028,17 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 64, 32, 80, 48, 0, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 0, 0, 0, 0, 0, 0, - 0, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 0, 0, 0, 0, 0, - 0, 12, 12, 12, 44, 12, 12, 12, - 44, 12, 12, 12, 12, 12, 44, 12, - 12, 12, 44, 44, 44, 12, 12, 12, - 12, 12, 12, 0, 0, 0, 0, 0, + 0, 0, 0, 4, 32, 20, 48, 0, + 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 0, 0, 0, 0, 0, 0, + 0, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 0, 0, 0, 0, 0, + 0, 192, 192, 192, 224, 192, 192, 192, + 224, 192, 192, 192, 192, 192, 224, 192, + 192, 192, 224, 224, 224, 192, 192, 192, + 192, 192, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1036,1703 +1059,1788 @@ YYDEBUG(0, *YYCURSOR); if ((YYLIMIT - YYCURSOR) < 36) YYFILL(36); yych = *YYCURSOR; - switch (yych) { - case 0x00: - case '\n': goto yy51; - case '\t': - case ' ': goto yy48; - case '(': goto yy45; - case '+': - case '-': goto yy30; - case ',': - case '.': goto yy50; - case '0': goto yy25; - case '1': goto yy26; - case '2': goto yy27; - case '3': goto yy28; - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy29; - case '@': goto yy11; - case 'A': goto yy36; - case 'B': goto yy17; - case 'C': - case 'H': - case 'K': - case 'Q': - case 'R': - case 'U': - case 'Z': goto yy46; - case 'D': goto yy40; - case 'E': goto yy21; - case 'F': goto yy13; - case 'G': goto yy44; - case 'I': goto yy31; - case 'J': goto yy34; - case 'L': goto yy15; - case 'M': goto yy7; - case 'N': goto yy5; - case 'O': goto yy38; - case 'P': goto yy23; - case 'S': goto yy19; - case 'T': goto yy9; - case 'V': goto yy32; - case 'W': goto yy42; - case 'X': goto yy33; - case 'Y': goto yy2; - case 'a': goto yy37; - case 'b': goto yy18; - case 'c': - case 'g': - case 'h': - case 'i': - case 'k': - case 'q': - case 'r': - case 'u': - case 'v': - case 'x': - case 'z': goto yy47; - case 'd': goto yy41; - case 'e': goto yy22; - case 'f': goto yy14; - case 'j': goto yy35; - case 'l': goto yy16; - case 'm': goto yy8; - case 'n': goto yy6; - case 'o': goto yy39; - case 'p': goto yy24; - case 's': goto yy20; - case 't': goto yy10; - case 'w': goto yy43; - case 'y': goto yy4; - default: goto yy53; - } -yy2: - YYDEBUG(2, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) <= 'E') { - if (yych <= ')') { - if (yych >= ')') goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'D') goto yy182; - goto yy1635; - } - } else { - if (yych <= 'd') { - if (yych <= 'Z') goto yy182; - if (yych >= 'a') goto yy187; - } else { - if (yych <= 'e') goto yy1644; - if (yych <= 'z') goto yy187; - } - } -yy3: - YYDEBUG(3, *YYCURSOR); -#line 1856 "ext/date/lib/parse_date.re" - { - int tz_not_found; - DEBUG_OUTPUT("tzcorrection | tz"); - TIMELIB_INIT; - TIMELIB_HAVE_TZ(); - s->time->z = timelib_parse_zone(&ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper); - if (tz_not_found) { - add_error(s, TIMELIB_ERR_TZID_NOT_FOUND, "The timezone could not be found in the database"); - } - TIMELIB_DEINIT; - return TIMELIB_TIMEZONE; - } -#line 1150 "" -yy4: - YYDEBUG(4, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'E') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'D') goto yy182; - goto yy1635; - } - } else { - if (yych <= 'd') { - if (yych <= 'Z') goto yy182; - if (yych <= '`') goto yy3; - goto yy182; - } else { - if (yych <= 'e') goto yy1635; - if (yych <= 'z') goto yy182; - goto yy3; - } + if (yybm[0+yych] & 2) { + goto yy6; } -yy5: - YYDEBUG(5, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych <= 'D') { - if (yych == ')') goto yy181; - if (yych <= '@') goto yy3; - goto yy182; - } else { - if (yych <= 'H') { - if (yych <= 'E') goto yy1606; - goto yy182; - } else { - if (yych <= 'I') goto yy1607; - if (yych <= 'N') goto yy182; - goto yy1605; - } - } - } else { - if (yych <= 'h') { - if (yych <= '`') { - if (yych <= 'Z') goto yy182; - goto yy3; - } else { - if (yych == 'e') goto yy1622; - goto yy187; - } - } else { - if (yych <= 'n') { - if (yych <= 'i') goto yy1623; - goto yy187; + if (yych <= 'R') { + if (yych <= '?') { + if (yych <= ',') { + if (yych <= '\'') { + if (yych <= 0x00) goto yy2; + if (yych <= 0x08) goto yy4; + if (yych >= '\v') goto yy4; + } else { + if (yych <= '(') goto yy9; + if (yych <= '*') goto yy4; + if (yych <= '+') goto yy10; + goto yy11; + } } else { - if (yych <= 'o') goto yy1621; - if (yych <= 'z') goto yy187; - goto yy3; + if (yych <= '0') { + if (yych <= '-') goto yy10; + if (yych <= '.') goto yy11; + if (yych <= '/') goto yy4; + goto yy13; + } else { + if (yych <= '2') { + if (yych <= '1') goto yy14; + goto yy15; + } else { + if (yych <= '3') goto yy16; + if (yych <= '9') goto yy17; + goto yy4; + } + } } - } - } -yy6: - YYDEBUG(6, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych <= 'D') { - if (yych == ')') goto yy181; - if (yych <= '@') goto yy3; - goto yy182; } else { if (yych <= 'H') { - if (yych <= 'E') goto yy1606; - goto yy182; + if (yych <= 'C') { + if (yych <= '@') goto yy18; + if (yych <= 'A') goto yy19; + if (yych <= 'B') goto yy21; + goto yy22; + } else { + if (yych <= 'E') { + if (yych <= 'D') goto yy23; + goto yy24; + } else { + if (yych <= 'F') goto yy25; + if (yych <= 'G') goto yy26; + goto yy22; + } + } } else { - if (yych <= 'I') goto yy1607; - if (yych <= 'N') goto yy182; - goto yy1605; + if (yych <= 'L') { + if (yych <= 'I') goto yy27; + if (yych <= 'J') goto yy28; + if (yych <= 'K') goto yy22; + goto yy29; + } else { + if (yych <= 'N') { + if (yych <= 'M') goto yy30; + goto yy31; + } else { + if (yych <= 'O') goto yy32; + if (yych <= 'P') goto yy33; + goto yy22; + } + } } } } else { - if (yych <= 'h') { + if (yych <= 'k') { if (yych <= '`') { - if (yych <= 'Z') goto yy182; - goto yy3; + if (yych <= 'V') { + if (yych <= 'S') goto yy34; + if (yych <= 'T') goto yy35; + if (yych <= 'U') goto yy22; + goto yy36; + } else { + if (yych <= 'X') { + if (yych <= 'W') goto yy37; + goto yy38; + } else { + if (yych <= 'Y') goto yy39; + if (yych <= 'Z') goto yy22; + goto yy4; + } + } } else { - if (yych == 'e') goto yy1606; - goto yy182; + if (yych <= 'd') { + if (yych <= 'a') goto yy40; + if (yych <= 'b') goto yy41; + if (yych <= 'c') goto yy42; + goto yy43; + } else { + if (yych <= 'f') { + if (yych <= 'e') goto yy44; + goto yy45; + } else { + if (yych == 'j') goto yy46; + goto yy42; + } + } } } else { - if (yych <= 'n') { - if (yych <= 'i') goto yy1607; - goto yy182; + if (yych <= 'v') { + if (yych <= 'o') { + if (yych <= 'l') goto yy47; + if (yych <= 'm') goto yy48; + if (yych <= 'n') goto yy49; + goto yy50; + } else { + if (yych <= 'r') { + if (yych <= 'p') goto yy51; + goto yy42; + } else { + if (yych <= 's') goto yy52; + if (yych <= 't') goto yy53; + goto yy42; + } + } } else { - if (yych <= 'o') goto yy1605; - if (yych <= 'z') goto yy182; - goto yy3; + if (yych <= 'z') { + if (yych <= 'w') goto yy54; + if (yych == 'y') goto yy55; + goto yy42; + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy4; + goto yy56; + } else { + if (yych == 0xE2) goto yy57; + goto yy4; + } + } } } } -yy7: +yy2: + YYDEBUG(2, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(3, *YYCURSOR); +#line 1980 "ext/date/lib/parse_date.re" + { + s->pos = cursor; s->line++; + goto std; + } +#line 1208 "" +yy4: + YYDEBUG(4, *YYCURSOR); + ++YYCURSOR; +yy5: + YYDEBUG(5, *YYCURSOR); +#line 1986 "ext/date/lib/parse_date.re" + { + add_error(s, TIMELIB_ERR_UNEXPECTED_CHARACTER, "Unexpected character"); + goto std; + } +#line 1219 "" +yy6: + YYDEBUG(6, *YYCURSOR); + yyaccept = 0; + YYMARKER = ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 25) YYFILL(25); + yych = *YYCURSOR; YYDEBUG(7, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych <= 'A') { - if (yych == ')') goto yy181; - if (yych <= '@') goto yy3; - goto yy1573; - } else { - if (yych == 'I') goto yy1574; - if (yych <= 'N') goto yy182; - goto yy1575; - } - } else { - if (yych <= 'h') { - if (yych <= 'Z') goto yy182; - if (yych <= '`') goto yy3; - if (yych <= 'a') goto yy1589; - goto yy187; - } else { - if (yych <= 'n') { - if (yych <= 'i') goto yy1590; - goto yy187; - } else { - if (yych <= 'o') goto yy1591; - if (yych <= 'z') goto yy187; - goto yy3; - } - } + if (yybm[0+yych] & 2) { + goto yy6; } + if (yych <= '/') goto yy8; + if (yych <= '9') goto yy58; yy8: YYDEBUG(8, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych <= 'A') { - if (yych == ')') goto yy181; - if (yych <= '@') goto yy3; - goto yy1573; - } else { - if (yych == 'I') goto yy1574; - if (yych <= 'N') goto yy182; - goto yy1575; - } - } else { - if (yych <= 'h') { - if (yych <= 'Z') goto yy182; - if (yych <= '`') goto yy3; - if (yych <= 'a') goto yy1573; - goto yy182; - } else { - if (yych <= 'n') { - if (yych <= 'i') goto yy1574; - goto yy182; - } else { - if (yych <= 'o') goto yy1575; - if (yych <= 'z') goto yy182; - goto yy3; - } - } +#line 1975 "ext/date/lib/parse_date.re" + { + goto std; } +#line 1238 "" yy9: YYDEBUG(9, *YYCURSOR); yych = *++YYCURSOR; - switch (yych) { - case ')': goto yy181; - case '0': - case '1': goto yy1499; - case '2': goto yy1500; - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy1501; - case 'A': - case 'B': - case 'C': - case 'D': - case 'F': - case 'G': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'V': - case 'X': - case 'Y': - case 'Z': goto yy182; - case 'E': goto yy1494; - case 'H': goto yy1495; - case 'O': goto yy1496; - case 'U': goto yy1497; - case 'W': goto yy1498; - case 'a': - case 'b': - case 'c': - case 'd': - case 'f': - case 'g': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'v': - case 'x': - case 'y': - case 'z': goto yy187; - case 'e': goto yy1539; - case 'h': goto yy1540; - case 'o': goto yy1541; - case 'u': goto yy1542; - case 'w': goto yy1543; - default: goto yy3; - } + if (yych <= '@') goto yy5; + if (yych <= 'Z') goto yy42; + if (yych <= '`') goto yy5; + if (yych <= 'z') goto yy42; + goto yy5; yy10: YYDEBUG(10, *YYCURSOR); - yych = *++YYCURSOR; - switch (yych) { - case ')': goto yy181; - case '0': - case '1': goto yy1499; - case '2': goto yy1500; - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy1501; - case 'A': - case 'B': - case 'C': - case 'D': - case 'F': - case 'G': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'V': - case 'X': - case 'Y': - case 'Z': - case 'a': - case 'b': - case 'c': - case 'd': - case 'f': - case 'g': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'v': - case 'x': - case 'y': - case 'z': goto yy182; - case 'E': - case 'e': goto yy1494; - case 'H': - case 'h': goto yy1495; - case 'O': - case 'o': goto yy1496; - case 'U': - case 'u': goto yy1497; - case 'W': - case 'w': goto yy1498; - default: goto yy3; + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 4) { + goto yy62; + } + if (yych <= ' ') { + if (yych == '\t') goto yy60; + if (yych <= 0x1F) goto yy5; + goto yy60; + } else { + if (yych <= '1') { + if (yych <= '/') goto yy5; + goto yy64; + } else { + if (yych <= '2') goto yy65; + if (yych <= '9') goto yy66; + goto yy5; + } } yy11: YYDEBUG(11, *YYCURSOR); - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '-') goto yy1482; - if (yych <= '/') goto yy12; - if (yych <= '9') goto yy1483; -yy12: + ++YYCURSOR; YYDEBUG(12, *YYCURSOR); -#line 1951 "ext/date/lib/parse_date.re" +#line 1970 "ext/date/lib/parse_date.re" { - add_error(s, TIMELIB_ERR_UNEXPECTED_CHARACTER, "Unexpected character"); goto std; } -#line 1462 "" +#line 1276 "" yy13: YYDEBUG(13, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'R') { - if (yych <= 'E') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'D') goto yy182; - goto yy1415; - } - } else { - if (yych <= 'N') { - if (yych == 'I') goto yy1416; - goto yy182; - } else { - if (yych <= 'O') goto yy1417; - if (yych <= 'Q') goto yy182; - goto yy1418; - } - } - } else { - if (yych <= 'i') { - if (yych <= 'd') { - if (yych <= 'Z') goto yy182; - if (yych <= '`') goto yy3; - goto yy187; - } else { - if (yych <= 'e') goto yy1458; - if (yych <= 'h') goto yy187; - goto yy1459; - } - } else { - if (yych <= 'q') { - if (yych == 'o') goto yy1460; - goto yy187; - } else { - if (yych <= 'r') goto yy1461; - if (yych <= 'z') goto yy187; - goto yy3; - } - } - } -yy14: - YYDEBUG(14, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'R') { - if (yych <= 'E') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'D') goto yy182; - goto yy1415; - } - } else { - if (yych <= 'N') { - if (yych == 'I') goto yy1416; - goto yy182; - } else { - if (yych <= 'O') goto yy1417; - if (yych <= 'Q') goto yy182; - goto yy1418; - } - } - } else { - if (yych <= 'i') { - if (yych <= 'd') { - if (yych <= 'Z') goto yy182; - if (yych <= '`') goto yy3; - goto yy182; - } else { - if (yych <= 'e') goto yy1415; - if (yych <= 'h') goto yy182; - goto yy1416; - } - } else { - if (yych <= 'q') { - if (yych == 'o') goto yy1417; - goto yy182; - } else { - if (yych <= 'r') goto yy1418; - if (yych <= 'z') goto yy182; - goto yy3; - } - } - } -yy15: - YYDEBUG(15, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'A') { - if (yych == ')') goto yy181; - if (yych <= '@') goto yy3; - goto yy1401; - } else { - if (yych <= '`') { - if (yych <= 'Z') goto yy182; - goto yy3; - } else { - if (yych <= 'a') goto yy1412; - if (yych <= 'z') goto yy187; - goto yy3; - } - } -yy16: - YYDEBUG(16, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'A') { - if (yych == ')') goto yy181; - if (yych <= '@') goto yy3; - goto yy1401; - } else { - if (yych <= '`') { - if (yych <= 'Z') goto yy182; - goto yy3; - } else { - if (yych <= 'a') goto yy1401; - if (yych <= 'z') goto yy182; - goto yy3; - } - } -yy17: - YYDEBUG(17, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'A') { - if (yych == ')') goto yy181; - if (yych <= '@') goto yy3; - goto yy1380; - } else { - if (yych <= '`') { - if (yych <= 'Z') goto yy182; - goto yy3; - } else { - if (yych <= 'a') goto yy1398; - if (yych <= 'z') goto yy187; - goto yy3; - } - } -yy18: - YYDEBUG(18, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'A') { - if (yych == ')') goto yy181; - if (yych <= '@') goto yy3; - goto yy1380; - } else { - if (yych <= '`') { - if (yych <= 'Z') goto yy182; - goto yy3; - } else { - if (yych <= 'a') goto yy1380; - if (yych <= 'z') goto yy182; - goto yy3; - } - } -yy19: - YYDEBUG(19, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych <= 'D') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'A') goto yy1321; - goto yy182; - } - } else { - if (yych <= 'H') { - if (yych <= 'E') goto yy1320; - goto yy182; - } else { - if (yych <= 'I') goto yy1322; - if (yych <= 'T') goto yy182; - goto yy1323; - } - } - } else { - if (yych <= 'e') { - if (yych <= '`') { - if (yych <= 'Z') goto yy182; - goto yy3; - } else { - if (yych <= 'a') goto yy1351; - if (yych <= 'd') goto yy187; - goto yy1350; - } - } else { - if (yych <= 't') { - if (yych == 'i') goto yy1352; - goto yy187; - } else { - if (yych <= 'u') goto yy1353; - if (yych <= 'z') goto yy187; - goto yy3; - } - } - } -yy20: - YYDEBUG(20, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych <= 'D') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'A') goto yy1321; - goto yy182; - } - } else { - if (yych <= 'H') { - if (yych <= 'E') goto yy1320; - goto yy182; - } else { - if (yych <= 'I') goto yy1322; - if (yych <= 'T') goto yy182; - goto yy1323; - } - } - } else { - if (yych <= 'e') { - if (yych <= '`') { - if (yych <= 'Z') goto yy182; - goto yy3; - } else { - if (yych <= 'a') goto yy1321; - if (yych <= 'd') goto yy182; - goto yy1320; - } - } else { - if (yych <= 't') { - if (yych == 'i') goto yy1322; - goto yy182; - } else { - if (yych <= 'u') goto yy1323; - if (yych <= 'z') goto yy182; - goto yy3; - } - } - } -yy21: - YYDEBUG(21, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'L') { - if (yych <= '@') { - if (yych == ')') goto yy181; - goto yy3; - } else { - if (yych == 'I') goto yy1290; - if (yych <= 'K') goto yy182; - goto yy1291; - } - } else { - if (yych <= 'i') { - if (yych <= 'Z') goto yy182; - if (yych <= '`') goto yy3; - if (yych <= 'h') goto yy187; - goto yy1308; - } else { - if (yych == 'l') goto yy1309; - if (yych <= 'z') goto yy187; - goto yy3; - } - } -yy22: - YYDEBUG(22, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'L') { - if (yych <= '@') { - if (yych == ')') goto yy181; - goto yy3; - } else { - if (yych == 'I') goto yy1290; - if (yych <= 'K') goto yy182; - goto yy1291; - } - } else { - if (yych <= 'i') { - if (yych <= 'Z') goto yy182; - if (yych <= '`') goto yy3; - if (yych <= 'h') goto yy182; - goto yy1290; - } else { - if (yych == 'l') goto yy1291; - if (yych <= 'z') goto yy182; - goto yy3; - } - } -yy23: - YYDEBUG(23, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'R') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'Q') goto yy182; - goto yy1157; - } - } else { - if (yych <= 'q') { - if (yych <= 'Z') goto yy182; - if (yych <= '`') goto yy3; - goto yy187; - } else { - if (yych <= 'r') goto yy1283; - if (yych <= 'z') goto yy187; - goto yy3; - } - } -yy24: - YYDEBUG(24, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'R') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'Q') goto yy182; - goto yy1157; - } - } else { - if (yych <= 'q') { - if (yych <= 'Z') goto yy182; - if (yych <= '`') goto yy3; - goto yy182; - } else { - if (yych <= 'r') goto yy1157; - if (yych <= 'z') goto yy182; - goto yy3; - } - } -yy25: - YYDEBUG(25, *YYCURSOR); - yyaccept = 0; + yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '`') { + if (yych <= 'a') { if (yych <= '@') { if (yych <= '-') { if (yych <= 0x1F) { - if (yych == '\t') goto yy1111; - goto yy12; + if (yych == '\t') goto yy67; + goto yy5; } else { - if (yych <= ' ') goto yy1113; - if (yych <= ',') goto yy12; - goto yy506; + if (yych <= ' ') goto yy69; + if (yych <= ',') goto yy5; + goto yy70; } } else { if (yych <= '0') { - if (yych <= '.') goto yy1123; - if (yych <= '/') goto yy505; - goto yy1156; - } else { - if (yych <= '9') goto yy1155; - if (yych <= ':') goto yy1124; - goto yy12; + if (yych <= '.') goto yy71; + if (yych <= '/') goto yy72; + goto yy73; + } else { + if (yych <= '9') goto yy74; + if (yych <= ':') goto yy75; + goto yy5; } } } else { if (yych <= 'G') { if (yych <= 'D') { - if (yych <= 'A') goto yy1113; - if (yych <= 'C') goto yy12; - goto yy1113; + if (yych <= 'A') goto yy69; + if (yych <= 'C') goto yy5; + goto yy69; } else { - if (yych == 'F') goto yy1113; - goto yy12; + if (yych == 'F') goto yy69; + goto yy5; } } else { if (yych <= 'O') { - if (yych <= 'J') goto yy1113; - if (yych <= 'L') goto yy12; - goto yy1113; - } else { - if (yych <= 'R') goto yy12; - if (yych <= 'Y') goto yy1113; - goto yy12; + if (yych <= 'J') goto yy69; + if (yych <= 'L') goto yy5; + goto yy69; + } else { + if (yych <= 'R') goto yy5; + if (yych <= 'Y') goto yy69; + if (yych <= '`') goto yy5; + goto yy69; } } } } else { - if (yych <= 'n') { - if (yych <= 'g') { - if (yych <= 'd') { - if (yych <= 'a') goto yy1113; - if (yych <= 'c') goto yy12; - goto yy1113; + if (yych <= 'q') { + if (yych <= 'h') { + if (yych <= 'e') { + if (yych == 'd') goto yy69; + goto yy5; } else { - if (yych == 'f') goto yy1113; - goto yy12; + if (yych == 'g') goto yy5; + goto yy69; } } else { - if (yych <= 'j') { - if (yych == 'i') goto yy12; - goto yy1113; + if (yych <= 'l') { + if (yych == 'j') goto yy69; + goto yy5; } else { - if (yych <= 'l') goto yy12; - if (yych <= 'm') goto yy1113; - goto yy503; + if (yych == 'n') goto yy93; + if (yych <= 'o') goto yy69; + goto yy5; } } } else { - if (yych <= 'u') { - if (yych <= 'r') { - if (yych <= 'o') goto yy1113; - if (yych <= 'q') goto yy12; - goto yy504; - } else { - if (yych <= 's') goto yy498; - if (yych <= 't') goto yy501; - goto yy1113; + if (yych <= 'w') { + if (yych <= 't') { + if (yych <= 'r') goto yy94; + if (yych <= 's') goto yy95; + goto yy96; + } else { + if (yych == 'v') goto yy5; + goto yy69; } } else { - if (yych <= 'x') { - if (yych == 'w') goto yy1113; - goto yy12; - } else { - if (yych <= 'y') goto yy1113; - if (yych == 0xC2) goto yy1113; - goto yy12; + if (yych <= 0xC1) { + if (yych == 'y') goto yy69; + goto yy5; + } else { + if (yych <= 0xC2) goto yy97; + if (yych == 0xE2) goto yy98; + goto yy5; } } } } -yy26: - YYDEBUG(26, *YYCURSOR); - yyaccept = 0; +yy14: + YYDEBUG(14, *YYCURSOR); + yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '`') { + if (yych <= 'a') { if (yych <= '@') { if (yych <= '-') { if (yych <= 0x1F) { - if (yych == '\t') goto yy493; - goto yy12; + if (yych == '\t') goto yy99; + goto yy5; } else { - if (yych <= ' ') goto yy495; - if (yych <= ',') goto yy12; - goto yy506; + if (yych <= ' ') goto yy101; + if (yych <= ',') goto yy5; + goto yy70; } } else { if (yych <= '2') { - if (yych <= '.') goto yy507; - if (yych <= '/') goto yy505; - goto yy1155; - } else { - if (yych <= '9') goto yy1122; - if (yych <= ':') goto yy516; - goto yy12; + if (yych <= '.') goto yy102; + if (yych <= '/') goto yy72; + goto yy74; + } else { + if (yych <= '9') goto yy103; + if (yych <= ':') goto yy104; + goto yy5; } } } else { if (yych <= 'G') { if (yych <= 'D') { - if (yych <= 'A') goto yy495; - if (yych <= 'C') goto yy12; - goto yy495; + if (yych <= 'A') goto yy101; + if (yych <= 'C') goto yy5; + goto yy101; } else { - if (yych == 'F') goto yy495; - goto yy12; + if (yych == 'F') goto yy101; + goto yy5; } } else { if (yych <= 'P') { - if (yych <= 'J') goto yy495; - if (yych <= 'L') goto yy12; - goto yy495; - } else { - if (yych <= 'R') goto yy12; - if (yych <= 'Y') goto yy495; - goto yy12; + if (yych <= 'J') goto yy101; + if (yych <= 'L') goto yy5; + goto yy101; + } else { + if (yych <= 'R') goto yy5; + if (yych <= 'Y') goto yy101; + if (yych <= '`') goto yy5; + goto yy101; } } } } else { - if (yych <= 'n') { - if (yych <= 'g') { - if (yych <= 'd') { - if (yych <= 'a') goto yy495; - if (yych <= 'c') goto yy12; - goto yy495; + if (yych <= 'q') { + if (yych <= 'h') { + if (yych <= 'e') { + if (yych == 'd') goto yy101; + goto yy5; } else { - if (yych == 'f') goto yy495; - goto yy12; + if (yych == 'g') goto yy5; + goto yy101; } } else { - if (yych <= 'j') { - if (yych == 'i') goto yy12; - goto yy495; + if (yych <= 'l') { + if (yych == 'j') goto yy101; + goto yy5; } else { - if (yych <= 'l') goto yy12; - if (yych <= 'm') goto yy495; - goto yy503; + if (yych == 'n') goto yy93; + if (yych <= 'p') goto yy101; + goto yy5; } } } else { - if (yych <= 'u') { - if (yych <= 'r') { - if (yych <= 'p') goto yy495; - if (yych <= 'q') goto yy12; - goto yy504; - } else { - if (yych <= 's') goto yy498; - if (yych <= 't') goto yy501; - goto yy495; + if (yych <= 'w') { + if (yych <= 't') { + if (yych <= 'r') goto yy94; + if (yych <= 's') goto yy95; + goto yy96; + } else { + if (yych == 'v') goto yy5; + goto yy101; } } else { - if (yych <= 'x') { - if (yych == 'w') goto yy495; - goto yy12; + if (yych <= 0xC1) { + if (yych == 'y') goto yy101; + goto yy5; } else { - if (yych <= 'y') goto yy495; - if (yych == 0xC2) goto yy495; - goto yy12; + if (yych <= 0xC2) goto yy107; + if (yych == 0xE2) goto yy108; + goto yy5; } } } } -yy27: - YYDEBUG(27, *YYCURSOR); - yyaccept = 0; +yy15: + YYDEBUG(15, *YYCURSOR); + yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '`') { + if (yych <= 'a') { if (yych <= '@') { if (yych <= '-') { if (yych <= 0x1F) { - if (yych == '\t') goto yy493; - goto yy12; + if (yych == '\t') goto yy99; + goto yy5; } else { - if (yych <= ' ') goto yy495; - if (yych <= ',') goto yy12; - goto yy506; + if (yych <= ' ') goto yy101; + if (yych <= ',') goto yy5; + goto yy70; } } else { if (yych <= '4') { - if (yych <= '.') goto yy507; - if (yych <= '/') goto yy505; - goto yy1122; - } else { - if (yych <= '9') goto yy1109; - if (yych <= ':') goto yy516; - goto yy12; + if (yych <= '.') goto yy102; + if (yych <= '/') goto yy72; + goto yy103; + } else { + if (yych <= '9') goto yy109; + if (yych <= ':') goto yy104; + goto yy5; } } } else { if (yych <= 'G') { if (yych <= 'D') { - if (yych <= 'A') goto yy495; - if (yych <= 'C') goto yy12; - goto yy495; + if (yych <= 'A') goto yy101; + if (yych <= 'C') goto yy5; + goto yy101; } else { - if (yych == 'F') goto yy495; - goto yy12; + if (yych == 'F') goto yy101; + goto yy5; } } else { if (yych <= 'P') { - if (yych <= 'J') goto yy495; - if (yych <= 'L') goto yy12; - goto yy495; - } else { - if (yych <= 'R') goto yy12; - if (yych <= 'Y') goto yy495; - goto yy12; + if (yych <= 'J') goto yy101; + if (yych <= 'L') goto yy5; + goto yy101; + } else { + if (yych <= 'R') goto yy5; + if (yych <= 'Y') goto yy101; + if (yych <= '`') goto yy5; + goto yy101; } } } } else { - if (yych <= 'n') { - if (yych <= 'g') { - if (yych <= 'd') { - if (yych <= 'a') goto yy495; - if (yych <= 'c') goto yy12; - goto yy495; + if (yych <= 'q') { + if (yych <= 'h') { + if (yych <= 'e') { + if (yych == 'd') goto yy101; + goto yy5; } else { - if (yych == 'f') goto yy495; - goto yy12; + if (yych == 'g') goto yy5; + goto yy101; } } else { - if (yych <= 'j') { - if (yych == 'i') goto yy12; - goto yy495; + if (yych <= 'l') { + if (yych == 'j') goto yy101; + goto yy5; } else { - if (yych <= 'l') goto yy12; - if (yych <= 'm') goto yy495; - goto yy503; + if (yych == 'n') goto yy93; + if (yych <= 'p') goto yy101; + goto yy5; } } } else { - if (yych <= 'u') { - if (yych <= 'r') { - if (yych <= 'p') goto yy495; - if (yych <= 'q') goto yy12; - goto yy504; - } else { - if (yych <= 's') goto yy498; - if (yych <= 't') goto yy501; - goto yy495; + if (yych <= 'w') { + if (yych <= 't') { + if (yych <= 'r') goto yy94; + if (yych <= 's') goto yy95; + goto yy96; + } else { + if (yych == 'v') goto yy5; + goto yy101; } } else { - if (yych <= 'x') { - if (yych == 'w') goto yy495; - goto yy12; + if (yych <= 0xC1) { + if (yych == 'y') goto yy101; + goto yy5; } else { - if (yych <= 'y') goto yy495; - if (yych == 0xC2) goto yy495; - goto yy12; + if (yych <= 0xC2) goto yy107; + if (yych == 0xE2) goto yy108; + goto yy5; } } } } -yy28: - YYDEBUG(28, *YYCURSOR); - yyaccept = 0; +yy16: + YYDEBUG(16, *YYCURSOR); + yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '`') { + if (yych <= 'a') { if (yych <= '@') { if (yych <= '-') { if (yych <= 0x1F) { - if (yych == '\t') goto yy493; - goto yy12; + if (yych == '\t') goto yy99; + goto yy5; } else { - if (yych <= ' ') goto yy495; - if (yych <= ',') goto yy12; - goto yy506; + if (yych <= ' ') goto yy101; + if (yych <= ',') goto yy5; + goto yy70; } } else { if (yych <= '1') { - if (yych <= '.') goto yy507; - if (yych <= '/') goto yy505; - goto yy1109; - } else { - if (yych <= '9') goto yy502; - if (yych <= ':') goto yy516; - goto yy12; + if (yych <= '.') goto yy102; + if (yych <= '/') goto yy72; + goto yy109; + } else { + if (yych <= '9') goto yy110; + if (yych <= ':') goto yy104; + goto yy5; } } } else { if (yych <= 'G') { if (yych <= 'D') { - if (yych <= 'A') goto yy495; - if (yych <= 'C') goto yy12; - goto yy495; + if (yych <= 'A') goto yy101; + if (yych <= 'C') goto yy5; + goto yy101; } else { - if (yych == 'F') goto yy495; - goto yy12; + if (yych == 'F') goto yy101; + goto yy5; } } else { if (yych <= 'P') { - if (yych <= 'J') goto yy495; - if (yych <= 'L') goto yy12; - goto yy495; - } else { - if (yych <= 'R') goto yy12; - if (yych <= 'Y') goto yy495; - goto yy12; + if (yych <= 'J') goto yy101; + if (yych <= 'L') goto yy5; + goto yy101; + } else { + if (yych <= 'R') goto yy5; + if (yych <= 'Y') goto yy101; + if (yych <= '`') goto yy5; + goto yy101; } } } } else { - if (yych <= 'n') { - if (yych <= 'g') { - if (yych <= 'd') { - if (yych <= 'a') goto yy495; - if (yych <= 'c') goto yy12; - goto yy495; + if (yych <= 'q') { + if (yych <= 'h') { + if (yych <= 'e') { + if (yych == 'd') goto yy101; + goto yy5; } else { - if (yych == 'f') goto yy495; - goto yy12; + if (yych == 'g') goto yy5; + goto yy101; } } else { - if (yych <= 'j') { - if (yych == 'i') goto yy12; - goto yy495; + if (yych <= 'l') { + if (yych == 'j') goto yy101; + goto yy5; } else { - if (yych <= 'l') goto yy12; - if (yych <= 'm') goto yy495; - goto yy503; + if (yych == 'n') goto yy93; + if (yych <= 'p') goto yy101; + goto yy5; } } } else { - if (yych <= 'u') { - if (yych <= 'r') { - if (yych <= 'p') goto yy495; - if (yych <= 'q') goto yy12; - goto yy504; - } else { - if (yych <= 's') goto yy498; - if (yych <= 't') goto yy501; - goto yy495; + if (yych <= 'w') { + if (yych <= 't') { + if (yych <= 'r') goto yy94; + if (yych <= 's') goto yy95; + goto yy96; + } else { + if (yych == 'v') goto yy5; + goto yy101; } } else { - if (yych <= 'x') { - if (yych == 'w') goto yy495; - goto yy12; + if (yych <= 0xC1) { + if (yych == 'y') goto yy101; + goto yy5; } else { - if (yych <= 'y') goto yy495; - if (yych == 0xC2) goto yy495; - goto yy12; + if (yych <= 0xC2) goto yy107; + if (yych == 0xE2) goto yy108; + goto yy5; } } } } -yy29: - YYDEBUG(29, *YYCURSOR); - yyaccept = 0; +yy17: + YYDEBUG(17, *YYCURSOR); + yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'a') { + if (yych <= 'c') { if (yych <= 'A') { if (yych <= '-') { if (yych <= 0x1F) { - if (yych == '\t') goto yy493; - goto yy12; + if (yych == '\t') goto yy99; + goto yy5; } else { - if (yych <= ' ') goto yy495; - if (yych <= ',') goto yy12; - goto yy506; + if (yych <= ' ') goto yy101; + if (yych <= ',') goto yy5; + goto yy70; } } else { if (yych <= '9') { - if (yych <= '.') goto yy507; - if (yych <= '/') goto yy505; - goto yy502; - } else { - if (yych <= ':') goto yy516; - if (yych <= '@') goto yy12; - goto yy495; + if (yych <= '.') goto yy102; + if (yych <= '/') goto yy72; + goto yy110; + } else { + if (yych <= ':') goto yy104; + if (yych <= '@') goto yy5; + goto yy101; } } } else { if (yych <= 'J') { if (yych <= 'E') { - if (yych == 'D') goto yy495; - goto yy12; + if (yych == 'D') goto yy101; + goto yy5; } else { - if (yych == 'G') goto yy12; - goto yy495; + if (yych == 'G') goto yy5; + goto yy101; } } else { if (yych <= 'R') { - if (yych <= 'L') goto yy12; - if (yych <= 'P') goto yy495; - goto yy12; - } else { - if (yych <= 'Y') goto yy495; - if (yych <= '`') goto yy12; - goto yy495; + if (yych <= 'L') goto yy5; + if (yych <= 'P') goto yy101; + goto yy5; + } else { + if (yych <= 'Y') goto yy101; + if (yych == 'a') goto yy101; + goto yy5; } } } } else { - if (yych <= 'p') { - if (yych <= 'h') { - if (yych <= 'e') { - if (yych == 'd') goto yy495; - goto yy12; + if (yych <= 'q') { + if (yych <= 'i') { + if (yych <= 'f') { + if (yych == 'e') goto yy5; + goto yy101; } else { - if (yych == 'g') goto yy12; - goto yy495; + if (yych == 'h') goto yy101; + goto yy5; } } else { - if (yych <= 'l') { - if (yych == 'j') goto yy495; - goto yy12; - } else { - if (yych == 'n') goto yy503; - goto yy495; + if (yych <= 'm') { + if (yych <= 'j') goto yy101; + if (yych <= 'l') goto yy5; + goto yy101; + } else { + if (yych <= 'n') goto yy93; + if (yych <= 'p') goto yy101; + goto yy5; } } } else { - if (yych <= 'v') { - if (yych <= 's') { - if (yych <= 'q') goto yy12; - if (yych <= 'r') goto yy504; - goto yy498; - } else { - if (yych <= 't') goto yy501; - if (yych <= 'u') goto yy495; - goto yy12; + if (yych <= 'w') { + if (yych <= 't') { + if (yych <= 'r') goto yy94; + if (yych <= 's') goto yy95; + goto yy96; + } else { + if (yych == 'v') goto yy5; + goto yy101; } } else { - if (yych <= 'y') { - if (yych == 'x') goto yy12; - goto yy495; + if (yych <= 0xC1) { + if (yych == 'y') goto yy101; + goto yy5; } else { - if (yych == 0xC2) goto yy495; - goto yy12; + if (yych <= 0xC2) goto yy107; + if (yych == 0xE2) goto yy108; + goto yy5; } } } } -yy30: - YYDEBUG(30, *YYCURSOR); - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 2) { - goto yy56; - } - switch (yych) { - case '+': - case '-': goto yy445; - case '0': - case '1': goto yy442; - case '2': goto yy443; - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy444; - default: goto yy12; - } -yy31: - YYDEBUG(31, *YYCURSOR); +yy18: + YYDEBUG(18, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '9') { - if (yych <= '(') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy3; - goto yy250; - } else { - if (yych == ' ') goto yy250; - goto yy3; - } + if (yybm[0+yych] & 8) { + goto yy112; + } + if (yych == '-') goto yy111; + goto yy5; +yy19: + YYDEBUG(19, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych <= 'F') { + if (yych == ')') goto yy115; + if (yych >= 'A') goto yy116; } else { - if (yych <= ',') { - if (yych <= ')') goto yy181; - goto yy3; + if (yych <= 'O') { + if (yych <= 'G') goto yy117; + goto yy116; } else { - if (yych == '/') goto yy3; - goto yy250; + if (yych <= 'P') goto yy118; + if (yych <= 'T') goto yy116; + goto yy119; } } } else { - if (yych <= 'V') { - if (yych <= 'H') { - if (yych <= '@') goto yy3; - goto yy182; + if (yych <= 'o') { + if (yych <= '`') { + if (yych <= 'Z') goto yy116; } else { - if (yych <= 'I') goto yy441; - if (yych <= 'U') goto yy182; - goto yy440; + if (yych == 'g') goto yy121; + goto yy120; } } else { - if (yych <= 'Z') { - if (yych == 'X') goto yy440; - goto yy182; + if (yych <= 't') { + if (yych <= 'p') goto yy122; + goto yy120; } else { - if (yych <= '`') goto yy3; - if (yych <= 'z') goto yy187; - goto yy3; + if (yych <= 'u') goto yy123; + if (yych <= 'z') goto yy120; } } } -yy32: - YYDEBUG(32, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= ' ') { - if (yych == '\t') goto yy250; - if (yych <= 0x1F) goto yy3; - goto yy250; +yy20: + YYDEBUG(20, *YYCURSOR); +#line 1885 "ext/date/lib/parse_date.re" + { + int tz_not_found; + DEBUG_OUTPUT("tzcorrection | tz"); + TIMELIB_INIT; + TIMELIB_HAVE_TZ(); + timelib_eat_spaces(&ptr); + s->time->z = timelib_parse_zone(&ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper); + if (tz_not_found) { + add_error(s, TIMELIB_ERR_TZID_NOT_FOUND, "The timezone could not be found in the database"); + } + TIMELIB_DEINIT; + return TIMELIB_TIMEZONE; + } +#line 1791 "" +yy21: + YYDEBUG(21, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'A') { + if (yych == ')') goto yy115; + if (yych <= '@') goto yy20; + goto yy124; + } else { + if (yych <= '`') { + if (yych <= 'Z') goto yy116; + goto yy20; } else { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy250; + if (yych <= 'a') goto yy125; + if (yych <= 'z') goto yy120; + goto yy20; } + } +yy22: + YYDEBUG(22, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '@') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= 'H') { - if (yych <= '/') goto yy3; - if (yych <= '9') goto yy250; - if (yych <= '@') goto yy3; - goto yy182; + if (yych <= 'Z') goto yy116; + if (yych <= '`') goto yy20; + if (yych <= 'z') goto yy120; + goto yy20; + } +yy23: + YYDEBUG(23, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'E') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= 'Z') { - if (yych <= 'I') goto yy437; - goto yy182; + if (yych <= '@') goto yy20; + if (yych <= 'D') goto yy116; + goto yy126; + } + } else { + if (yych <= 'd') { + if (yych <= 'Z') goto yy116; + if (yych <= '`') goto yy20; + goto yy120; + } else { + if (yych <= 'e') goto yy127; + if (yych <= 'z') goto yy120; + goto yy20; + } + } +yy24: + YYDEBUG(24, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'L') { + if (yych <= '@') { + if (yych == ')') goto yy115; + goto yy20; + } else { + if (yych == 'I') goto yy128; + if (yych <= 'K') goto yy116; + goto yy129; + } + } else { + if (yych <= 'i') { + if (yych <= 'Z') goto yy116; + if (yych <= '`') goto yy20; + if (yych <= 'h') goto yy120; + goto yy130; + } else { + if (yych == 'l') goto yy131; + if (yych <= 'z') goto yy120; + goto yy20; + } + } +yy25: + YYDEBUG(25, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'R') { + if (yych <= 'E') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; + } else { + if (yych <= '@') goto yy20; + if (yych <= 'D') goto yy116; + goto yy132; + } + } else { + if (yych <= 'N') { + if (yych == 'I') goto yy133; + goto yy116; + } else { + if (yych <= 'O') goto yy134; + if (yych <= 'Q') goto yy116; + goto yy135; + } + } + } else { + if (yych <= 'i') { + if (yych <= 'd') { + if (yych <= 'Z') goto yy116; + if (yych <= '`') goto yy20; + goto yy120; + } else { + if (yych <= 'e') goto yy136; + if (yych <= 'h') goto yy120; + goto yy137; + } + } else { + if (yych <= 'q') { + if (yych == 'o') goto yy138; + goto yy120; } else { - if (yych <= '`') goto yy3; - if (yych <= 'z') goto yy187; - goto yy3; + if (yych <= 'r') goto yy139; + if (yych <= 'z') goto yy120; + goto yy20; } } } -yy33: - YYDEBUG(33, *YYCURSOR); - yyaccept = 1; +yy26: + YYDEBUG(26, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'L') { + if (yych == ')') goto yy115; + if (yych <= '@') goto yy20; + goto yy116; + } else { + if (yych <= 'Z') { + if (yych <= 'M') goto yy140; + goto yy116; + } else { + if (yych <= '`') goto yy20; + if (yych <= 'z') goto yy120; + goto yy20; + } + } +yy27: + YYDEBUG(27, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= ' ') { - if (yych == '\t') goto yy250; - if (yych <= 0x1F) goto yy3; - goto yy250; + if (yych <= '9') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy20; + goto yy142; + } else { + if (yych == ' ') goto yy142; + goto yy20; + } } else { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy250; + if (yych <= ',') { + if (yych <= ')') goto yy115; + goto yy20; + } else { + if (yych == '/') goto yy20; + goto yy142; + } } } else { - if (yych <= 'H') { - if (yych <= '/') goto yy3; - if (yych <= '9') goto yy250; - if (yych <= '@') goto yy3; - goto yy182; + if (yych <= 'V') { + if (yych <= 'H') { + if (yych <= '@') goto yy20; + goto yy116; + } else { + if (yych <= 'I') goto yy146; + if (yych <= 'U') goto yy116; + goto yy147; + } } else { if (yych <= 'Z') { - if (yych <= 'I') goto yy435; - goto yy182; + if (yych == 'X') goto yy147; + goto yy116; } else { - if (yych <= '`') goto yy3; - if (yych <= 'z') goto yy187; - goto yy3; + if (yych <= '`') goto yy20; + if (yych <= 'z') goto yy120; + goto yy20; } } } -yy34: - YYDEBUG(34, *YYCURSOR); +yy28: + YYDEBUG(28, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'U') { if (yych <= '@') { - if (yych == ')') goto yy181; - goto yy3; + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= 'A') goto yy418; - if (yych <= 'T') goto yy182; - goto yy417; + if (yych <= 'A') goto yy148; + if (yych <= 'T') goto yy116; + goto yy149; } } else { if (yych <= 'a') { - if (yych <= 'Z') goto yy182; - if (yych <= '`') goto yy3; - goto yy427; - } else { - if (yych == 'u') goto yy426; - if (yych <= 'z') goto yy187; - goto yy3; + if (yych <= 'Z') goto yy116; + if (yych <= '`') goto yy20; + goto yy150; + } else { + if (yych == 'u') goto yy151; + if (yych <= 'z') goto yy120; + goto yy20; } } -yy35: - YYDEBUG(35, *YYCURSOR); +yy29: + YYDEBUG(29, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych <= '@') { - if (yych == ')') goto yy181; - goto yy3; + if (yych <= 'A') { + if (yych == ')') goto yy115; + if (yych <= '@') goto yy20; + goto yy152; + } else { + if (yych <= '`') { + if (yych <= 'Z') goto yy116; + goto yy20; + } else { + if (yych <= 'a') goto yy153; + if (yych <= 'z') goto yy120; + goto yy20; + } + } +yy30: + YYDEBUG(30, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'O') { + if (yych <= 'A') { + if (yych == ')') goto yy115; + if (yych <= '@') goto yy20; + goto yy154; } else { - if (yych <= 'A') goto yy418; - if (yych <= 'T') goto yy182; - goto yy417; + if (yych == 'I') goto yy155; + if (yych <= 'N') goto yy116; + goto yy156; } } else { - if (yych <= 'a') { - if (yych <= 'Z') goto yy182; - if (yych <= '`') goto yy3; - goto yy418; - } else { - if (yych == 'u') goto yy417; - if (yych <= 'z') goto yy182; - goto yy3; + if (yych <= 'h') { + if (yych <= 'Z') goto yy116; + if (yych <= '`') goto yy20; + if (yych <= 'a') goto yy157; + goto yy120; + } else { + if (yych <= 'n') { + if (yych <= 'i') goto yy158; + goto yy120; + } else { + if (yych <= 'o') goto yy159; + if (yych <= 'z') goto yy120; + goto yy20; + } } } -yy36: - YYDEBUG(36, *YYCURSOR); +yy31: + YYDEBUG(31, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych <= 'F') { - if (yych == ')') goto yy181; - if (yych <= '@') goto yy3; - goto yy182; + if (yych <= 'O') { + if (yych <= 'D') { + if (yych == ')') goto yy115; + if (yych <= '@') goto yy20; + goto yy116; } else { - if (yych <= 'O') { - if (yych <= 'G') goto yy396; - goto yy182; + if (yych <= 'H') { + if (yych <= 'E') goto yy160; + goto yy116; } else { - if (yych <= 'P') goto yy395; - if (yych <= 'T') goto yy182; - goto yy394; + if (yych <= 'I') goto yy161; + if (yych <= 'N') goto yy116; + goto yy162; } } } else { - if (yych <= 'o') { + if (yych <= 'h') { if (yych <= '`') { - if (yych <= 'Z') goto yy182; - goto yy3; + if (yych <= 'Z') goto yy116; + goto yy20; } else { - if (yych == 'g') goto yy408; - goto yy187; + if (yych == 'e') goto yy163; + goto yy120; } } else { - if (yych <= 't') { - if (yych <= 'p') goto yy407; - goto yy187; + if (yych <= 'n') { + if (yych <= 'i') goto yy164; + goto yy120; } else { - if (yych <= 'u') goto yy406; - if (yych <= 'z') goto yy187; - goto yy3; + if (yych <= 'o') goto yy165; + if (yych <= 'z') goto yy120; + goto yy20; } } } -yy37: - YYDEBUG(37, *YYCURSOR); +yy32: + YYDEBUG(32, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'C') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; + } else { + if (yych <= '@') goto yy20; + if (yych <= 'B') goto yy116; + goto yy166; + } + } else { + if (yych <= 'b') { + if (yych <= 'Z') goto yy116; + if (yych <= '`') goto yy20; + goto yy120; + } else { + if (yych <= 'c') goto yy167; + if (yych <= 'z') goto yy120; + goto yy20; + } + } +yy33: + YYDEBUG(33, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'R') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; + } else { + if (yych <= '@') goto yy20; + if (yych <= 'Q') goto yy116; + goto yy168; + } + } else { + if (yych <= 'q') { + if (yych <= 'Z') goto yy116; + if (yych <= '`') goto yy20; + goto yy120; + } else { + if (yych <= 'r') goto yy169; + if (yych <= 'z') goto yy120; + goto yy20; + } + } +yy34: + YYDEBUG(34, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'U') { - if (yych <= 'F') { - if (yych == ')') goto yy181; - if (yych <= '@') goto yy3; - goto yy182; + if (yych <= 'D') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; + } else { + if (yych <= '@') goto yy20; + if (yych <= 'A') goto yy170; + goto yy116; + } } else { - if (yych <= 'O') { - if (yych <= 'G') goto yy396; - goto yy182; + if (yych <= 'H') { + if (yych <= 'E') goto yy171; + goto yy116; } else { - if (yych <= 'P') goto yy395; - if (yych <= 'T') goto yy182; - goto yy394; + if (yych <= 'I') goto yy172; + if (yych <= 'T') goto yy116; + goto yy156; } } } else { - if (yych <= 'o') { + if (yych <= 'e') { if (yych <= '`') { - if (yych <= 'Z') goto yy182; - goto yy3; + if (yych <= 'Z') goto yy116; + goto yy20; } else { - if (yych == 'g') goto yy396; - goto yy182; + if (yych <= 'a') goto yy173; + if (yych <= 'd') goto yy120; + goto yy174; } } else { if (yych <= 't') { - if (yych <= 'p') goto yy395; - goto yy182; + if (yych == 'i') goto yy175; + goto yy120; } else { - if (yych <= 'u') goto yy394; - if (yych <= 'z') goto yy182; - goto yy3; + if (yych <= 'u') goto yy159; + if (yych <= 'z') goto yy120; + goto yy20; } } } -yy38: - YYDEBUG(38, *YYCURSOR); +yy35: + YYDEBUG(35, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'C') { + switch (yych) { + case ')': goto yy115; + case '0': + case '1': goto yy176; + case '2': goto yy178; + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy179; + case 'A': + case 'B': + case 'C': + case 'D': + case 'F': + case 'G': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'V': + case 'X': + case 'Y': + case 'Z': goto yy116; + case 'E': goto yy161; + case 'H': goto yy180; + case 'O': goto yy181; + case 'U': goto yy182; + case 'W': goto yy183; + case 'a': + case 'b': + case 'c': + case 'd': + case 'f': + case 'g': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'v': + case 'x': + case 'y': + case 'z': goto yy120; + case 'e': goto yy164; + case 'h': goto yy184; + case 'o': goto yy185; + case 'u': goto yy186; + case 'w': goto yy187; + default: goto yy20; + } +yy36: + YYDEBUG(36, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= ' ') { + if (yych == '\t') goto yy142; + if (yych <= 0x1F) goto yy20; + goto yy142; + } else { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy142; + } + } else { + if (yych <= 'H') { + if (yych <= '/') goto yy20; + if (yych <= '9') goto yy142; + if (yych <= '@') goto yy20; + goto yy116; + } else { + if (yych <= 'Z') { + if (yych <= 'I') goto yy188; + goto yy116; + } else { + if (yych <= '`') goto yy20; + if (yych <= 'z') goto yy120; + goto yy20; + } + } + } +yy37: + YYDEBUG(37, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'E') { if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= '@') goto yy3; - if (yych <= 'B') goto yy182; - goto yy384; + if (yych <= '@') goto yy20; + if (yych <= 'D') goto yy116; + goto yy189; } } else { - if (yych <= 'b') { - if (yych <= 'Z') goto yy182; - if (yych <= '`') goto yy3; - goto yy187; - } else { - if (yych <= 'c') goto yy389; - if (yych <= 'z') goto yy187; - goto yy3; + if (yych <= 'd') { + if (yych <= 'Z') goto yy116; + if (yych <= '`') goto yy20; + goto yy120; + } else { + if (yych <= 'e') goto yy190; + if (yych <= 'z') goto yy120; + goto yy20; + } + } +yy38: + YYDEBUG(38, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= ' ') { + if (yych == '\t') goto yy142; + if (yych <= 0x1F) goto yy20; + goto yy142; + } else { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy142; + } + } else { + if (yych <= 'H') { + if (yych <= '/') goto yy20; + if (yych <= '9') goto yy142; + if (yych <= '@') goto yy20; + goto yy116; + } else { + if (yych <= 'Z') { + if (yych <= 'I') goto yy146; + goto yy116; + } else { + if (yych <= '`') goto yy20; + if (yych <= 'z') goto yy120; + goto yy20; + } } } yy39: YYDEBUG(39, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'C') { + if (yych <= 'E') { if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= '@') goto yy3; - if (yych <= 'B') goto yy182; - goto yy384; + if (yych <= '@') goto yy20; + if (yych <= 'D') goto yy116; + goto yy191; } } else { - if (yych <= 'b') { - if (yych <= 'Z') goto yy182; - if (yych <= '`') goto yy3; - goto yy182; - } else { - if (yych <= 'c') goto yy384; - if (yych <= 'z') goto yy182; - goto yy3; + if (yych <= 'd') { + if (yych <= 'Z') goto yy116; + if (yych <= '`') goto yy20; + goto yy120; + } else { + if (yych <= 'e') goto yy192; + if (yych <= 'z') goto yy120; + goto yy20; } } yy40: YYDEBUG(40, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'E') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= 'U') { + if (yych <= 'F') { + if (yych == ')') goto yy115; + if (yych <= '@') goto yy20; + goto yy116; } else { - if (yych <= '@') goto yy3; - if (yych <= 'D') goto yy182; - goto yy246; + if (yych <= 'O') { + if (yych <= 'G') goto yy117; + goto yy116; + } else { + if (yych <= 'P') goto yy118; + if (yych <= 'T') goto yy116; + goto yy119; + } } } else { - if (yych <= 'd') { - if (yych <= 'Z') goto yy182; - if (yych <= '`') goto yy3; - goto yy187; - } else { - if (yych <= 'e') goto yy375; - if (yych <= 'z') goto yy187; - goto yy3; + if (yych <= 'o') { + if (yych <= '`') { + if (yych <= 'Z') goto yy116; + goto yy20; + } else { + if (yych == 'g') goto yy117; + goto yy116; + } + } else { + if (yych <= 't') { + if (yych <= 'p') goto yy118; + goto yy116; + } else { + if (yych <= 'u') goto yy119; + if (yych <= 'z') goto yy116; + goto yy20; + } } } yy41: YYDEBUG(41, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'E') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'D') goto yy182; - goto yy246; - } + if (yych <= 'A') { + if (yych == ')') goto yy115; + if (yych <= '@') goto yy20; + goto yy124; } else { - if (yych <= 'd') { - if (yych <= 'Z') goto yy182; - if (yych <= '`') goto yy3; - goto yy182; - } else { - if (yych <= 'e') goto yy246; - if (yych <= 'z') goto yy182; - goto yy3; + if (yych <= '`') { + if (yych <= 'Z') goto yy116; + goto yy20; + } else { + if (yych <= 'a') goto yy124; + if (yych <= 'z') goto yy116; + goto yy20; } } yy42: YYDEBUG(42, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'E') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'D') goto yy182; - goto yy217; - } + if (yych <= '@') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= 'd') { - if (yych <= 'Z') goto yy182; - if (yych <= '`') goto yy3; - goto yy187; - } else { - if (yych <= 'e') goto yy232; - if (yych <= 'z') goto yy187; - goto yy3; - } + if (yych <= 'Z') goto yy116; + if (yych <= '`') goto yy20; + if (yych <= 'z') goto yy116; + goto yy20; } yy43: YYDEBUG(43, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'E') { if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= '@') goto yy3; - if (yych <= 'D') goto yy182; - goto yy217; + if (yych <= '@') goto yy20; + if (yych <= 'D') goto yy116; + goto yy126; } } else { if (yych <= 'd') { - if (yych <= 'Z') goto yy182; - if (yych <= '`') goto yy3; - goto yy182; - } else { - if (yych <= 'e') goto yy217; - if (yych <= 'z') goto yy182; - goto yy3; + if (yych <= 'Z') goto yy116; + if (yych <= '`') goto yy20; + goto yy116; + } else { + if (yych <= 'e') goto yy126; + if (yych <= 'z') goto yy116; + goto yy20; } } yy44: YYDEBUG(44, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'L') { - if (yych == ')') goto yy181; - if (yych <= '@') goto yy3; - goto yy182; - } else { - if (yych <= 'Z') { - if (yych <= 'M') goto yy198; - goto yy182; + if (yych <= '@') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= '`') goto yy3; - if (yych <= 'z') goto yy187; - goto yy3; + if (yych == 'I') goto yy128; + if (yych <= 'K') goto yy116; + goto yy129; + } + } else { + if (yych <= 'i') { + if (yych <= 'Z') goto yy116; + if (yych <= '`') goto yy20; + if (yych <= 'h') goto yy116; + goto yy128; + } else { + if (yych == 'l') goto yy129; + if (yych <= 'z') goto yy116; + goto yy20; } } yy45: YYDEBUG(45, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '@') goto yy12; - if (yych <= 'Z') goto yy197; - if (yych <= '`') goto yy12; - if (yych <= 'z') goto yy197; - goto yy12; + if (yych <= 'R') { + if (yych <= 'E') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; + } else { + if (yych <= '@') goto yy20; + if (yych <= 'D') goto yy116; + goto yy132; + } + } else { + if (yych <= 'N') { + if (yych == 'I') goto yy133; + goto yy116; + } else { + if (yych <= 'O') goto yy134; + if (yych <= 'Q') goto yy116; + goto yy135; + } + } + } else { + if (yych <= 'i') { + if (yych <= 'd') { + if (yych <= 'Z') goto yy116; + if (yych <= '`') goto yy20; + goto yy116; + } else { + if (yych <= 'e') goto yy132; + if (yych <= 'h') goto yy116; + goto yy133; + } + } else { + if (yych <= 'q') { + if (yych == 'o') goto yy134; + goto yy116; + } else { + if (yych <= 'r') goto yy135; + if (yych <= 'z') goto yy116; + goto yy20; + } + } + } yy46: YYDEBUG(46, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '@') { - if (yych == ')') goto yy181; - goto yy3; + if (yych <= 'U') { + if (yych <= '@') { + if (yych == ')') goto yy115; + goto yy20; + } else { + if (yych <= 'A') goto yy148; + if (yych <= 'T') goto yy116; + goto yy149; + } } else { - if (yych <= 'Z') goto yy182; - if (yych <= '`') goto yy3; - if (yych <= 'z') goto yy187; - goto yy3; + if (yych <= 'a') { + if (yych <= 'Z') goto yy116; + if (yych <= '`') goto yy20; + goto yy148; + } else { + if (yych == 'u') goto yy149; + if (yych <= 'z') goto yy116; + goto yy20; + } } yy47: YYDEBUG(47, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '@') { - if (yych == ')') goto yy181; - goto yy3; + if (yych <= 'A') { + if (yych == ')') goto yy115; + if (yych <= '@') goto yy20; + goto yy152; } else { - if (yych <= 'Z') goto yy182; - if (yych <= '`') goto yy3; - if (yych <= 'z') goto yy182; - goto yy3; + if (yych <= '`') { + if (yych <= 'Z') goto yy116; + goto yy20; + } else { + if (yych <= 'a') goto yy152; + if (yych <= 'z') goto yy116; + goto yy20; + } } yy48: YYDEBUG(48, *YYCURSOR); - yyaccept = 2; - yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 2) { - goto yy56; + yych = *++YYCURSOR; + if (yych <= 'O') { + if (yych <= 'A') { + if (yych == ')') goto yy115; + if (yych <= '@') goto yy20; + goto yy154; + } else { + if (yych == 'I') goto yy155; + if (yych <= 'N') goto yy116; + goto yy156; + } + } else { + if (yych <= 'h') { + if (yych <= 'Z') goto yy116; + if (yych <= '`') goto yy20; + if (yych <= 'a') goto yy154; + goto yy116; + } else { + if (yych <= 'n') { + if (yych <= 'i') goto yy155; + goto yy116; + } else { + if (yych <= 'o') goto yy156; + if (yych <= 'z') goto yy116; + goto yy20; + } + } } - if (yych <= '/') goto yy49; - if (yych <= '9') goto yy54; yy49: YYDEBUG(49, *YYCURSOR); -#line 1940 "ext/date/lib/parse_date.re" - { - goto std; + yych = *++YYCURSOR; + if (yych <= 'O') { + if (yych <= 'D') { + if (yych == ')') goto yy115; + if (yych <= '@') goto yy20; + goto yy116; + } else { + if (yych <= 'H') { + if (yych <= 'E') goto yy160; + goto yy116; + } else { + if (yych <= 'I') goto yy161; + if (yych <= 'N') goto yy116; + goto yy162; + } + } + } else { + if (yych <= 'h') { + if (yych <= '`') { + if (yych <= 'Z') goto yy116; + goto yy20; + } else { + if (yych == 'e') goto yy160; + goto yy116; + } + } else { + if (yych <= 'n') { + if (yych <= 'i') goto yy161; + goto yy116; + } else { + if (yych <= 'o') goto yy162; + if (yych <= 'z') goto yy116; + goto yy20; + } + } } -#line 2710 "" yy50: YYDEBUG(50, *YYCURSOR); yych = *++YYCURSOR; - goto yy49; + if (yych <= 'C') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; + } else { + if (yych <= '@') goto yy20; + if (yych <= 'B') goto yy116; + goto yy166; + } + } else { + if (yych <= 'b') { + if (yych <= 'Z') goto yy116; + if (yych <= '`') goto yy20; + goto yy116; + } else { + if (yych <= 'c') goto yy166; + if (yych <= 'z') goto yy116; + goto yy20; + } + } yy51: YYDEBUG(51, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych <= 'R') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; + } else { + if (yych <= '@') goto yy20; + if (yych <= 'Q') goto yy116; + goto yy168; + } + } else { + if (yych <= 'q') { + if (yych <= 'Z') goto yy116; + if (yych <= '`') goto yy20; + goto yy116; + } else { + if (yych <= 'r') goto yy168; + if (yych <= 'z') goto yy116; + goto yy20; + } + } +yy52: YYDEBUG(52, *YYCURSOR); -#line 1945 "ext/date/lib/parse_date.re" - { - s->pos = cursor; s->line++; - goto std; + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych <= 'D') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; + } else { + if (yych <= '@') goto yy20; + if (yych <= 'A') goto yy170; + goto yy116; + } + } else { + if (yych <= 'H') { + if (yych <= 'E') goto yy171; + goto yy116; + } else { + if (yych <= 'I') goto yy172; + if (yych <= 'T') goto yy116; + goto yy156; + } + } + } else { + if (yych <= 'e') { + if (yych <= '`') { + if (yych <= 'Z') goto yy116; + goto yy20; + } else { + if (yych <= 'a') goto yy170; + if (yych <= 'd') goto yy116; + goto yy171; + } + } else { + if (yych <= 't') { + if (yych == 'i') goto yy172; + goto yy116; + } else { + if (yych <= 'u') goto yy156; + if (yych <= 'z') goto yy116; + goto yy20; + } + } } -#line 2724 "" yy53: YYDEBUG(53, *YYCURSOR); yych = *++YYCURSOR; - goto yy12; + switch (yych) { + case ')': goto yy115; + case '0': + case '1': goto yy176; + case '2': goto yy178; + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy179; + case 'A': + case 'B': + case 'C': + case 'D': + case 'F': + case 'G': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'N': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'T': + case 'V': + case 'X': + case 'Y': + case 'Z': + case 'a': + case 'b': + case 'c': + case 'd': + case 'f': + case 'g': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'n': + case 'p': + case 'q': + case 'r': + case 's': + case 't': + case 'v': + case 'x': + case 'y': + case 'z': goto yy116; + case 'E': + case 'e': goto yy161; + case 'H': + case 'h': goto yy180; + case 'O': + case 'o': goto yy181; + case 'U': + case 'u': goto yy182; + case 'W': + case 'w': goto yy183; + default: goto yy20; + } yy54: YYDEBUG(54, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy59; - if (yych <= '9') goto yy70; - goto yy59; + if (yych <= 'E') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; + } else { + if (yych <= '@') goto yy20; + if (yych <= 'D') goto yy116; + goto yy189; + } + } else { + if (yych <= 'd') { + if (yych <= 'Z') goto yy116; + if (yych <= '`') goto yy20; + goto yy116; + } else { + if (yych <= 'e') goto yy189; + if (yych <= 'z') goto yy116; + goto yy20; + } + } yy55: YYDEBUG(55, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'E') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; + } else { + if (yych <= '@') goto yy20; + if (yych <= 'D') goto yy116; + goto yy191; + } + } else { + if (yych <= 'd') { + if (yych <= 'Z') goto yy116; + if (yych <= '`') goto yy20; + goto yy116; + } else { + if (yych <= 'e') goto yy191; + if (yych <= 'z') goto yy116; + goto yy20; + } + } +yy56: + YYDEBUG(56, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 0xA0) goto yy193; + goto yy5; +yy57: + YYDEBUG(57, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 0x80) goto yy194; + goto yy5; +yy58: + YYDEBUG(58, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 0xC1) { + if (yych <= '/') goto yy196; + if (yych <= '9') goto yy197; + goto yy196; + } else { + if (yych <= 0xC2) goto yy97; + if (yych == 0xE2) goto yy98; + goto yy196; + } +yy59: + YYDEBUG(59, *YYCURSOR); YYCURSOR = YYMARKER; if (yyaccept <= 16) { if (yyaccept <= 8) { @@ -2740,32 +2848,32 @@ if (yyaccept <= 2) { if (yyaccept <= 1) { if (yyaccept == 0) { - goto yy12; + goto yy8; } else { - goto yy3; + goto yy5; } } else { - goto yy49; + goto yy20; } } else { if (yyaccept == 3) { - goto yy84; + goto yy81; } else { - goto yy219; + goto yy177; } } } else { if (yyaccept <= 6) { if (yyaccept == 5) { - goto yy248; + goto yy224; } else { - goto yy262; + goto yy260; } } else { if (yyaccept == 7) { - goto yy276; + goto yy295; } else { - goto yy398; + goto yy293; } } } @@ -2773,29 +2881,29 @@ if (yyaccept <= 12) { if (yyaccept <= 10) { if (yyaccept == 9) { - goto yy509; + goto yy315; } else { - goto yy524; + goto yy325; } } else { if (yyaccept == 11) { - goto yy645; + goto yy351; } else { - goto yy690; + goto yy420; } } } else { if (yyaccept <= 14) { if (yyaccept == 13) { - goto yy700; + goto yy422; } else { - goto yy734; + goto yy526; } } else { if (yyaccept == 15) { - goto yy808; + goto yy567; } else { - goto yy828; + goto yy722; } } } @@ -2806,32 +2914,32 @@ if (yyaccept <= 19) { if (yyaccept <= 18) { if (yyaccept == 17) { - goto yy859; + goto yy739; } else { - goto yy866; + goto yy752; } } else { - goto yy893; + goto yy777; } } else { if (yyaccept == 20) { - goto yy838; + goto yy849; } else { - goto yy461; + goto yy926; } } } else { if (yyaccept <= 23) { if (yyaccept == 22) { - goto yy1018; + goto yy600; } else { - goto yy887; + goto yy942; } } else { if (yyaccept == 24) { - goto yy1127; + goto yy982; } else { - goto yy1135; + goto yy1025; } } } @@ -2839,85 +2947,107 @@ if (yyaccept <= 29) { if (yyaccept <= 27) { if (yyaccept == 26) { - goto yy1179; + goto yy1043; } else { - goto yy1206; + goto yy1048; } } else { if (yyaccept == 28) { - goto yy1388; + goto yy1107; } else { - goto yy1524; + goto yy1145; } } } else { if (yyaccept <= 31) { if (yyaccept == 30) { - goto yy1527; + goto yy1172; } else { - goto yy1612; + goto yy1175; } } else { if (yyaccept == 32) { - goto yy1620; + goto yy1329; } else { - goto yy1643; + goto yy1375; } } } } } -yy56: - YYDEBUG(56, *YYCURSOR); +yy60: + YYDEBUG(60, *YYCURSOR); ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 24) YYFILL(24); + if ((YYLIMIT - YYCURSOR) < 25) YYFILL(25); yych = *YYCURSOR; - YYDEBUG(57, *YYCURSOR); - if (yybm[0+yych] & 2) { - goto yy56; + YYDEBUG(61, *YYCURSOR); + if (yych <= 0x1F) { + if (yych == '\t') goto yy60; + goto yy59; + } else { + if (yych <= ' ') goto yy60; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy58; + goto yy59; } - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy54; - goto yy55; -yy58: - YYDEBUG(58, *YYCURSOR); +yy62: + YYDEBUG(62, *YYCURSOR); ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12); + if ((YYLIMIT - YYCURSOR) < 25) YYFILL(25); yych = *YYCURSOR; -yy59: - YYDEBUG(59, *YYCURSOR); + YYDEBUG(63, *YYCURSOR); + if (yybm[0+yych] & 4) { + goto yy62; + } + if (yych <= 0x1F) { + if (yych == '\t') goto yy60; + goto yy59; + } else { + if (yych <= ' ') goto yy60; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy58; + goto yy59; + } +yy64: + YYDEBUG(64, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'X') { - if (yych <= 'G') { - if (yych <= ' ') { - if (yych == '\t') goto yy58; - if (yych <= 0x1F) goto yy55; - goto yy58; + if (yych <= 'E') { + if (yych <= '/') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy20; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy20; + } } else { - if (yych <= 'D') { - if (yych <= 'C') goto yy55; - goto yy65; + if (yych <= ':') { + if (yych <= '9') goto yy202; + goto yy203; } else { - if (yych == 'F') goto yy66; - goto yy55; + if (yych == 'D') goto yy196; + goto yy20; } } } else { - if (yych <= 'S') { - if (yych <= 'L') { - if (yych <= 'H') goto yy64; - goto yy55; + if (yych <= 'M') { + if (yych <= 'G') { + if (yych <= 'F') goto yy196; + goto yy20; } else { - if (yych <= 'M') goto yy60; - if (yych <= 'R') goto yy55; - goto yy63; + if (yych <= 'H') goto yy196; + if (yych <= 'L') goto yy20; + goto yy196; } } else { if (yych <= 'U') { - if (yych <= 'T') goto yy69; - goto yy62; + if (yych <= 'R') goto yy20; + goto yy196; } else { - if (yych == 'W') goto yy68; - goto yy55; + if (yych == 'W') goto yy196; + goto yy20; } } } @@ -2925,23036 +3055,21793 @@ if (yych <= 'r') { if (yych <= 'f') { if (yych <= 'c') { - if (yych <= 'Y') goto yy67; - goto yy55; + if (yych <= 'Y') goto yy196; + goto yy20; } else { - if (yych <= 'd') goto yy65; - if (yych <= 'e') goto yy55; - goto yy66; + if (yych == 'e') goto yy20; + goto yy196; } } else { if (yych <= 'h') { - if (yych <= 'g') goto yy55; - goto yy64; + if (yych <= 'g') goto yy20; + goto yy196; } else { - if (yych != 'm') goto yy55; + if (yych == 'm') goto yy196; + goto yy20; } } } else { - if (yych <= 'w') { - if (yych <= 't') { - if (yych <= 's') goto yy63; - goto yy69; + if (yych <= 'y') { + if (yych <= 'v') { + if (yych <= 'u') goto yy196; + goto yy20; } else { - if (yych <= 'u') goto yy62; - if (yych <= 'v') goto yy55; - goto yy68; + if (yych == 'x') goto yy20; + goto yy196; } } else { - if (yych <= 'y') { - if (yych <= 'x') goto yy55; - goto yy67; + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy20; + goto yy97; } else { - if (yych == 0xC2) goto yy61; - goto yy55; + if (yych == 0xE2) goto yy98; + goto yy20; } } } } -yy60: - YYDEBUG(60, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'S') { - if (yych <= 'N') { - if (yych == 'I') goto yy154; - goto yy55; +yy65: + YYDEBUG(65, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'W') { + if (yych <= 'C') { + if (yych <= '/') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy20; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy20; + } + } else { + if (yych <= '5') { + if (yych <= '4') goto yy202; + goto yy204; + } else { + if (yych <= '9') goto yy205; + if (yych <= ':') goto yy203; + goto yy20; + } + } } else { - if (yych <= 'O') goto yy153; - if (yych <= 'R') goto yy55; - goto yy155; + if (yych <= 'H') { + if (yych <= 'E') { + if (yych <= 'D') goto yy196; + goto yy20; + } else { + if (yych == 'G') goto yy20; + goto yy196; + } + } else { + if (yych <= 'R') { + if (yych == 'M') goto yy196; + goto yy20; + } else { + if (yych == 'V') goto yy20; + goto yy196; + } + } } } else { - if (yych <= 'n') { - if (yych == 'i') goto yy154; - goto yy55; + if (yych <= 'm') { + if (yych <= 'e') { + if (yych <= 'Y') { + if (yych <= 'X') goto yy20; + goto yy196; + } else { + if (yych == 'd') goto yy196; + goto yy20; + } + } else { + if (yych <= 'g') { + if (yych <= 'f') goto yy196; + goto yy20; + } else { + if (yych <= 'h') goto yy196; + if (yych <= 'l') goto yy20; + goto yy196; + } + } } else { - if (yych <= 'o') goto yy153; - if (yych == 's') goto yy155; - goto yy55; + if (yych <= 'x') { + if (yych <= 'u') { + if (yych <= 'r') goto yy20; + goto yy196; + } else { + if (yych == 'w') goto yy196; + goto yy20; + } + } else { + if (yych <= 0xC2) { + if (yych <= 'y') goto yy196; + if (yych <= 0xC1) goto yy20; + goto yy97; + } else { + if (yych == 0xE2) goto yy98; + goto yy20; + } + } } } -yy61: - YYDEBUG(61, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 0xB5) goto yy150; - goto yy55; -yy62: - YYDEBUG(62, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy148; - if (yych == 's') goto yy148; - goto yy55; -yy63: - YYDEBUG(63, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'U') { +yy66: + YYDEBUG(66, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'W') { if (yych <= 'D') { - if (yych == 'A') goto yy133; - goto yy55; - } else { - if (yych <= 'E') goto yy134; - if (yych <= 'T') goto yy55; - goto yy132; - } - } else { - if (yych <= 'd') { - if (yych == 'a') goto yy133; - goto yy55; + if (yych <= '/') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy20; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy20; + } + } else { + if (yych <= '9') { + if (yych <= '5') goto yy204; + goto yy205; + } else { + if (yych <= ':') goto yy203; + if (yych <= 'C') goto yy20; + goto yy196; + } + } } else { - if (yych <= 'e') goto yy134; - if (yych == 'u') goto yy132; - goto yy55; + if (yych <= 'L') { + if (yych <= 'F') { + if (yych <= 'E') goto yy20; + goto yy196; + } else { + if (yych == 'H') goto yy196; + goto yy20; + } + } else { + if (yych <= 'R') { + if (yych <= 'M') goto yy196; + goto yy20; + } else { + if (yych == 'V') goto yy20; + goto yy196; + } + } } - } -yy64: - YYDEBUG(64, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy130; - if (yych == 'o') goto yy130; - goto yy55; -yy65: - YYDEBUG(65, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy129; - if (yych == 'a') goto yy129; - goto yy55; -yy66: - YYDEBUG(66, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'R') { - if (yych == 'O') goto yy113; - if (yych <= 'Q') goto yy55; - goto yy112; } else { - if (yych <= 'o') { - if (yych <= 'n') goto yy55; - goto yy113; + if (yych <= 'm') { + if (yych <= 'e') { + if (yych <= 'Y') { + if (yych <= 'X') goto yy20; + goto yy196; + } else { + if (yych == 'd') goto yy196; + goto yy20; + } + } else { + if (yych <= 'g') { + if (yych <= 'f') goto yy196; + goto yy20; + } else { + if (yych <= 'h') goto yy196; + if (yych <= 'l') goto yy20; + goto yy196; + } + } } else { - if (yych == 'r') goto yy112; - goto yy55; + if (yych <= 'x') { + if (yych <= 'u') { + if (yych <= 'r') goto yy20; + goto yy196; + } else { + if (yych == 'w') goto yy196; + goto yy20; + } + } else { + if (yych <= 0xC2) { + if (yych <= 'y') goto yy196; + if (yych <= 0xC1) goto yy20; + goto yy97; + } else { + if (yych == 0xE2) goto yy98; + goto yy20; + } + } } } yy67: YYDEBUG(67, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy109; - if (yych == 'e') goto yy109; - goto yy55; + if (yych <= '/') goto yy69; + if (yych <= '0') goto yy208; + if (yych <= '1') goto yy209; + if (yych <= '9') goto yy210; + goto yy69; yy68: YYDEBUG(68, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy96; - if (yych == 'e') goto yy96; - goto yy55; + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 13) YYFILL(13); + yych = *YYCURSOR; yy69: YYDEBUG(69, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych == 'H') goto yy81; - if (yych <= 'T') goto yy55; - goto yy82; + if (yych <= 'W') { + if (yych <= 'G') { + if (yych <= '.') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy68; + goto yy59; + } else { + if (yych <= ' ') goto yy68; + if (yych <= ',') goto yy59; + goto yy206; + } + } else { + if (yych <= 'C') { + if (yych == 'A') goto yy76; + goto yy59; + } else { + if (yych <= 'D') goto yy77; + if (yych == 'F') goto yy78; + goto yy59; + } + } + } else { + if (yych <= 'N') { + if (yych <= 'J') { + if (yych <= 'H') goto yy79; + if (yych <= 'I') goto yy80; + goto yy82; + } else { + if (yych <= 'L') goto yy59; + if (yych <= 'M') goto yy83; + goto yy84; + } + } else { + if (yych <= 'S') { + if (yych <= 'O') goto yy85; + if (yych <= 'R') goto yy59; + goto yy86; + } else { + if (yych <= 'T') goto yy87; + if (yych <= 'U') goto yy88; + if (yych <= 'V') goto yy89; + goto yy90; + } + } + } } else { - if (yych <= 'h') { - if (yych <= 'g') goto yy55; - goto yy81; + if (yych <= 'l') { + if (yych <= 'd') { + if (yych <= '`') { + if (yych <= 'X') goto yy91; + if (yych <= 'Y') goto yy92; + goto yy59; + } else { + if (yych <= 'a') goto yy76; + if (yych <= 'c') goto yy59; + goto yy77; + } + } else { + if (yych <= 'g') { + if (yych == 'f') goto yy78; + goto yy59; + } else { + if (yych <= 'h') goto yy79; + if (yych == 'j') goto yy82; + goto yy59; + } + } } else { - if (yych == 'u') goto yy82; - goto yy55; + if (yych <= 'u') { + if (yych <= 'o') { + if (yych <= 'm') goto yy83; + if (yych <= 'n') goto yy84; + goto yy85; + } else { + if (yych <= 'r') goto yy59; + if (yych <= 's') goto yy86; + if (yych <= 't') goto yy87; + goto yy88; + } + } else { + if (yych <= 'x') { + if (yych == 'w') goto yy90; + goto yy59; + } else { + if (yych <= 'y') goto yy92; + if (yych == 0xC2) goto yy211; + goto yy59; + } + } } } yy70: YYDEBUG(70, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy59; - if (yych >= ':') goto yy59; + if (yych <= '/') goto yy207; + if (yych <= '0') goto yy212; + if (yych <= '1') goto yy213; + if (yych <= '9') goto yy214; + goto yy207; +yy71: YYDEBUG(71, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy59; - if (yych >= ':') goto yy59; + if (yych <= '1') { + if (yych <= '/') goto yy207; + if (yych <= '0') goto yy219; + goto yy220; + } else { + if (yych <= '5') goto yy221; + if (yych <= '9') goto yy222; + goto yy207; + } +yy72: YYDEBUG(72, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy59; - if (yych >= ':') goto yy59; + switch (yych) { + case '0': + case '1': + case '2': goto yy223; + case '3': goto yy225; + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy226; + case 'A': + case 'a': goto yy227; + case 'D': + case 'd': goto yy228; + case 'F': + case 'f': goto yy229; + case 'J': + case 'j': goto yy230; + case 'M': + case 'm': goto yy231; + case 'N': + case 'n': goto yy232; + case 'O': + case 'o': goto yy233; + case 'S': + case 's': goto yy234; + default: goto yy59; + } yy73: YYDEBUG(73, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy59; - if (yych >= ':') goto yy59; + if (yych <= 'm') { + if (yych <= '.') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy69; + goto yy67; + } else { + if (yych <= ',') goto yy69; + if (yych <= '-') goto yy235; + goto yy71; + } + } else { + if (yych <= '5') { + if (yych <= '/') goto yy72; + goto yy236; + } else { + if (yych <= '9') goto yy237; + if (yych <= ':') goto yy75; + goto yy69; + } + } + } else { + if (yych <= 't') { + if (yych <= 'q') { + if (yych <= 'n') goto yy93; + goto yy69; + } else { + if (yych <= 'r') goto yy94; + if (yych <= 's') goto yy95; + goto yy96; + } + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy69; + goto yy97; + } else { + if (yych == 0xE2) goto yy98; + goto yy69; + } + } + } yy74: YYDEBUG(74, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy59; - if (yych >= ':') goto yy59; + if (yych <= 'm') { + if (yych <= '.') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy101; + goto yy99; + } else { + if (yych <= ',') goto yy101; + if (yych <= '-') goto yy235; + goto yy102; + } + } else { + if (yych <= '5') { + if (yych <= '/') goto yy72; + goto yy236; + } else { + if (yych <= '9') goto yy237; + if (yych <= ':') goto yy104; + goto yy101; + } + } + } else { + if (yych <= 't') { + if (yych <= 'q') { + if (yych <= 'n') goto yy93; + goto yy101; + } else { + if (yych <= 'r') goto yy94; + if (yych <= 's') goto yy95; + goto yy96; + } + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy101; + goto yy107; + } else { + if (yych == 0xE2) goto yy108; + goto yy101; + } + } + } yy75: YYDEBUG(75, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '/') goto yy59; - if (yych >= ':') goto yy59; + if (yych <= '5') goto yy238; + if (yych <= '9') goto yy239; + goto yy59; yy76: YYDEBUG(76, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy59; - if (yych >= ':') goto yy59; + if (yych <= 'U') { + if (yych == 'P') goto yy240; + if (yych <= 'T') goto yy59; + goto yy241; + } else { + if (yych <= 'p') { + if (yych <= 'o') goto yy59; + goto yy240; + } else { + if (yych == 'u') goto yy241; + goto yy59; + } + } yy77: YYDEBUG(77, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy59; - if (yych >= ':') goto yy59; + if (yych <= 'E') { + if (yych == 'A') goto yy242; + if (yych <= 'D') goto yy59; + goto yy243; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy59; + goto yy242; + } else { + if (yych == 'e') goto yy243; + goto yy59; + } + } +yy78: YYDEBUG(78, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy59; - if (yych >= ':') goto yy59; + if (yych <= 'R') { + if (yych <= 'N') { + if (yych == 'E') goto yy244; + goto yy59; + } else { + if (yych <= 'O') goto yy245; + if (yych <= 'Q') goto yy59; + goto yy246; + } + } else { + if (yych <= 'n') { + if (yych == 'e') goto yy244; + goto yy59; + } else { + if (yych <= 'o') goto yy245; + if (yych == 'r') goto yy246; + goto yy59; + } + } +yy79: YYDEBUG(79, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy59; - if (yych >= ':') goto yy59; - YYDEBUG(80, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy59; - if (yych <= '9') goto yy58; + if (yych == 'O') goto yy247; + if (yych == 'o') goto yy247; goto yy59; +yy80: + YYDEBUG(80, *YYCURSOR); + yyaccept = 3; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy248; + } else { + if (yych <= ' ') goto yy248; + if (yych <= ',') goto yy81; + if (yych <= '.') goto yy248; + } + } else { + if (yych <= 'U') { + if (yych <= '9') goto yy250; + if (yych == 'I') goto yy252; + } else { + if (yych == 'W') goto yy81; + if (yych <= 'X') goto yy253; + } + } yy81: YYDEBUG(81, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'U') goto yy90; - if (yych == 'u') goto yy90; - goto yy55; +#line 1632 "ext/date/lib/parse_date.re" + { + DEBUG_OUTPUT("datenoyearrev"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->d = timelib_get_nr(&ptr, 2); + timelib_skip_day_suffix(&ptr); + s->time->m = timelib_get_month(&ptr); + TIMELIB_DEINIT; + return TIMELIB_DATE_TEXT; + } +#line 3607 "" yy82: YYDEBUG(82, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy83; - if (yych != 'e') goto yy55; + if (yych <= 'U') { + if (yych == 'A') goto yy254; + if (yych <= 'T') goto yy59; + goto yy255; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy59; + goto yy254; + } else { + if (yych == 'u') goto yy255; + goto yy59; + } + } yy83: YYDEBUG(83, *YYCURSOR); - yyaccept = 3; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'S') goto yy85; - if (yych == 's') goto yy85; -yy84: - YYDEBUG(84, *YYCURSOR); -#line 1924 "ext/date/lib/parse_date.re" - { - timelib_ull i; - DEBUG_OUTPUT("relative"); - TIMELIB_INIT; - TIMELIB_HAVE_RELATIVE(); - - while(*ptr) { - i = timelib_get_signed_nr(s, &ptr, 24); - timelib_eat_spaces(&ptr); - timelib_set_relative(&ptr, i, 1, s, TIMELIB_TIME_PART_KEEP); + yych = *++YYCURSOR; + if (yych <= 'S') { + if (yych <= 'I') { + if (yych == 'A') goto yy256; + if (yych <= 'H') goto yy59; + goto yy257; + } else { + if (yych == 'O') goto yy258; + if (yych <= 'R') goto yy59; + goto yy259; + } + } else { + if (yych <= 'i') { + if (yych == 'a') goto yy256; + if (yych <= 'h') goto yy59; + goto yy257; + } else { + if (yych <= 'o') { + if (yych <= 'n') goto yy59; + goto yy258; + } else { + if (yych == 's') goto yy259; + goto yy59; + } } - TIMELIB_DEINIT; - return TIMELIB_RELATIVE; } -#line 3161 "" +yy84: + YYDEBUG(84, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy261; + if (yych == 'o') goto yy261; + goto yy59; yy85: YYDEBUG(85, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy86; - if (yych != 'd') goto yy55; + if (yych == 'C') goto yy262; + if (yych == 'c') goto yy262; + goto yy59; yy86: YYDEBUG(86, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy87; - if (yych != 'a') goto yy55; + if (yych <= 'U') { + if (yych <= 'D') { + if (yych == 'A') goto yy263; + goto yy59; + } else { + if (yych <= 'E') goto yy264; + if (yych <= 'T') goto yy59; + goto yy265; + } + } else { + if (yych <= 'd') { + if (yych == 'a') goto yy263; + goto yy59; + } else { + if (yych <= 'e') goto yy264; + if (yych == 'u') goto yy265; + goto yy59; + } + } yy87: YYDEBUG(87, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy88; - if (yych != 'y') goto yy55; + if (yych <= 'U') { + if (yych == 'H') goto yy266; + if (yych <= 'T') goto yy59; + goto yy267; + } else { + if (yych <= 'h') { + if (yych <= 'g') goto yy59; + goto yy266; + } else { + if (yych == 'u') goto yy267; + goto yy59; + } + } yy88: YYDEBUG(88, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy89; - if (yych != 's') goto yy84; + if (yych == 'S') goto yy268; + if (yych == 's') goto yy268; + goto yy59; yy89: YYDEBUG(89, *YYCURSOR); - yych = *++YYCURSOR; - goto yy84; -yy90: - YYDEBUG(90, *YYCURSOR); yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'R') goto yy91; - if (yych != 'r') goto yy84; + if (yych <= ',') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy81; + goto yy248; + } else { + if (yych == ' ') goto yy248; + goto yy81; + } + } else { + if (yych <= '9') { + if (yych <= '.') goto yy248; + if (yych <= '/') goto yy81; + goto yy250; + } else { + if (yych == 'I') goto yy91; + goto yy81; + } + } +yy90: + YYDEBUG(90, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy269; + if (yych == 'e') goto yy269; + goto yy59; yy91: YYDEBUG(91, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy92; - if (yych != 's') goto yy55; + yyaccept = 3; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ',') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy81; + goto yy248; + } else { + if (yych == ' ') goto yy248; + goto yy81; + } + } else { + if (yych <= '9') { + if (yych <= '.') goto yy248; + if (yych <= '/') goto yy81; + goto yy250; + } else { + if (yych == 'I') goto yy252; + goto yy81; + } + } yy92: YYDEBUG(92, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy93; - if (yych != 'd') goto yy55; + if (yych == 'E') goto yy270; + if (yych == 'e') goto yy270; + goto yy59; yy93: YYDEBUG(93, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy94; - if (yych != 'a') goto yy55; + if (yych <= 'c') { + if (yych == 'O') goto yy261; + goto yy59; + } else { + if (yych <= 'd') goto yy271; + if (yych == 'o') goto yy261; + goto yy59; + } yy94: YYDEBUG(94, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy95; - if (yych != 'y') goto yy55; + if (yych == 'd') goto yy271; + goto yy59; yy95: YYDEBUG(95, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy89; - if (yych == 's') goto yy89; - goto yy84; + if (yych <= '`') { + if (yych <= 'D') { + if (yych == 'A') goto yy263; + goto yy59; + } else { + if (yych <= 'E') goto yy264; + if (yych == 'U') goto yy265; + goto yy59; + } + } else { + if (yych <= 'e') { + if (yych <= 'a') goto yy263; + if (yych <= 'd') goto yy59; + goto yy264; + } else { + if (yych <= 's') goto yy59; + if (yych <= 't') goto yy271; + if (yych <= 'u') goto yy265; + goto yy59; + } + } yy96: YYDEBUG(96, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'E') { - if (yych <= 'C') goto yy55; - if (yych <= 'D') goto yy98; + if (yych <= 'U') { + if (yych == 'H') goto yy266; + if (yych <= 'T') goto yy59; + goto yy267; } else { - if (yych <= 'c') goto yy55; - if (yych <= 'd') goto yy98; - if (yych >= 'f') goto yy55; + if (yych <= 'h') { + if (yych <= 'g') goto yy59; + goto yy272; + } else { + if (yych == 'u') goto yy267; + goto yy59; + } } +yy97: YYDEBUG(97, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'K') goto yy105; - if (yych == 'k') goto yy105; - goto yy55; + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); + yych = *YYCURSOR; + if (yych == 0xA0) goto yy273; + if (yych == 0xB5) goto yy274; + goto yy59; yy98: YYDEBUG(98, *YYCURSOR); - yyaccept = 3; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'N') goto yy99; - if (yych != 'n') goto yy84; + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0x80) goto yy275; + goto yy59; yy99: YYDEBUG(99, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy100; - if (yych != 'e') goto yy55; + if (yych <= '/') goto yy101; + if (yych <= '0') goto yy208; + if (yych <= '1') goto yy209; + if (yych <= '9') goto yy210; + goto yy101; yy100: YYDEBUG(100, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy101; - if (yych != 's') goto yy55; + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 13) YYFILL(13); + yych = *YYCURSOR; yy101: YYDEBUG(101, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy102; - if (yych != 'd') goto yy55; + if (yych <= 'W') { + if (yych <= 'G') { + if (yych <= '.') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy100; + goto yy59; + } else { + if (yych <= ' ') goto yy100; + if (yych <= ',') goto yy59; + goto yy206; + } + } else { + if (yych <= 'C') { + if (yych == 'A') goto yy105; + goto yy59; + } else { + if (yych <= 'D') goto yy77; + if (yych == 'F') goto yy78; + goto yy59; + } + } + } else { + if (yych <= 'O') { + if (yych <= 'J') { + if (yych <= 'H') goto yy79; + if (yych <= 'I') goto yy80; + goto yy82; + } else { + if (yych <= 'L') goto yy59; + if (yych <= 'M') goto yy83; + if (yych <= 'N') goto yy84; + goto yy85; + } + } else { + if (yych <= 'S') { + if (yych <= 'P') goto yy106; + if (yych <= 'R') goto yy59; + goto yy86; + } else { + if (yych <= 'T') goto yy87; + if (yych <= 'U') goto yy88; + if (yych <= 'V') goto yy89; + goto yy90; + } + } + } + } else { + if (yych <= 'm') { + if (yych <= 'e') { + if (yych <= '`') { + if (yych <= 'X') goto yy91; + if (yych <= 'Y') goto yy92; + goto yy59; + } else { + if (yych <= 'a') goto yy105; + if (yych == 'd') goto yy77; + goto yy59; + } + } else { + if (yych <= 'h') { + if (yych <= 'f') goto yy78; + if (yych <= 'g') goto yy59; + goto yy79; + } else { + if (yych == 'j') goto yy82; + if (yych <= 'l') goto yy59; + goto yy83; + } + } + } else { + if (yych <= 'u') { + if (yych <= 'p') { + if (yych <= 'n') goto yy84; + if (yych <= 'o') goto yy85; + goto yy106; + } else { + if (yych <= 'r') goto yy59; + if (yych <= 's') goto yy86; + if (yych <= 't') goto yy87; + goto yy88; + } + } else { + if (yych <= 'x') { + if (yych == 'w') goto yy90; + goto yy59; + } else { + if (yych <= 'y') goto yy92; + if (yych == 0xC2) goto yy211; + goto yy59; + } + } + } + } yy102: YYDEBUG(102, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy103; - if (yych != 'a') goto yy55; + if (yych <= '1') { + if (yych <= '/') goto yy207; + if (yych <= '0') goto yy276; + goto yy277; + } else { + if (yych <= '5') goto yy278; + if (yych <= '9') goto yy279; + goto yy207; + } yy103: YYDEBUG(103, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy104; - if (yych != 'y') goto yy55; + if (yych <= 'm') { + if (yych <= '.') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy69; + goto yy67; + } else { + if (yych <= ',') goto yy69; + if (yych <= '-') goto yy235; + goto yy71; + } + } else { + if (yych <= '5') { + if (yych <= '/') goto yy280; + goto yy236; + } else { + if (yych <= '9') goto yy237; + if (yych <= ':') goto yy75; + goto yy69; + } + } + } else { + if (yych <= 't') { + if (yych <= 'q') { + if (yych <= 'n') goto yy93; + goto yy69; + } else { + if (yych <= 'r') goto yy94; + if (yych <= 's') goto yy95; + goto yy96; + } + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy69; + goto yy97; + } else { + if (yych == 0xE2) goto yy98; + goto yy69; + } + } + } yy104: YYDEBUG(104, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy89; - if (yych == 's') goto yy89; - goto yy84; + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy281; + if (yych <= '9') goto yy282; + goto yy59; yy105: YYDEBUG(105, *YYCURSOR); - yyaccept = 3; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'S') { - if (yych == 'D') goto yy106; - if (yych <= 'R') goto yy84; - goto yy89; - } else { - if (yych <= 'd') { - if (yych <= 'c') goto yy84; + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych <= 'L') { + if (yych == '.') goto yy283; + goto yy59; } else { - if (yych == 's') goto yy89; - goto yy84; + if (yych <= 'M') goto yy284; + if (yych == 'P') goto yy240; + goto yy59; + } + } else { + if (yych <= 'o') { + if (yych <= 'U') goto yy241; + if (yych == 'm') goto yy284; + goto yy59; + } else { + if (yych <= 'p') goto yy240; + if (yych == 'u') goto yy241; + goto yy59; } } yy106: YYDEBUG(106, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy107; - if (yych != 'a') goto yy55; + if (yych <= 'L') { + if (yych == '.') goto yy283; + goto yy59; + } else { + if (yych <= 'M') goto yy284; + if (yych == 'm') goto yy284; + goto yy59; + } yy107: YYDEBUG(107, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy108; - if (yych != 'y') goto yy55; + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); + yych = *YYCURSOR; + if (yych == 0xA0) goto yy285; + if (yych == 0xB5) goto yy274; + goto yy59; yy108: YYDEBUG(108, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy89; - if (yych == 's') goto yy89; - goto yy84; + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0x80) goto yy286; + goto yy59; yy109: YYDEBUG(109, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy110; - if (yych != 'a') goto yy55; + if (yych <= 'n') { + if (yych <= '-') { + if (yych == '\t') goto yy67; + if (yych <= ',') goto yy69; + goto yy235; + } else { + if (yych <= '/') { + if (yych <= '.') goto yy287; + goto yy280; + } else { + if (yych <= '9') goto yy237; + if (yych <= 'm') goto yy69; + goto yy93; + } + } + } else { + if (yych <= 't') { + if (yych <= 'q') goto yy69; + if (yych <= 'r') goto yy94; + if (yych <= 's') goto yy95; + goto yy96; + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy69; + goto yy97; + } else { + if (yych == 0xE2) goto yy98; + goto yy69; + } + } + } yy110: YYDEBUG(110, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy111; - if (yych != 'r') goto yy55; + if (yych <= '9') { + if (yych == '-') goto yy288; + if (yych <= '/') goto yy196; + goto yy237; + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy196; + goto yy97; + } else { + if (yych == 0xE2) goto yy98; + goto yy196; + } + } yy111: YYDEBUG(111, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy89; - if (yych == 's') goto yy89; - goto yy84; + if (yybm[0+yych] & 8) { + goto yy112; + } + goto yy59; yy112: YYDEBUG(112, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy125; - if (yych == 'i') goto yy125; - goto yy55; -yy113: + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 7) YYFILL(7); + yych = *YYCURSOR; YYDEBUG(113, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy114; - if (yych != 'r') goto yy55; -yy114: + if (yybm[0+yych] & 8) { + goto yy112; + } + if (yych == '.') goto yy289; YYDEBUG(114, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy115; - if (yych != 't') goto yy55; +#line 1207 "ext/date/lib/parse_date.re" + { + timelib_ull i; + + TIMELIB_INIT; + TIMELIB_HAVE_RELATIVE(); + TIMELIB_UNHAVE_DATE(); + TIMELIB_UNHAVE_TIME(); + TIMELIB_HAVE_TZ(); + + i = timelib_get_signed_nr(s, &ptr, 24); + s->time->y = 1970; + s->time->m = 1; + s->time->d = 1; + s->time->h = s->time->i = s->time->s = 0; + s->time->us = 0; + s->time->relative.s += i; + s->time->is_localtime = 1; + s->time->zone_type = TIMELIB_ZONETYPE_OFFSET; + s->time->z = 0; + s->time->dst = 0; + + TIMELIB_DEINIT; + return TIMELIB_RELATIVE; + } +#line 4147 "" yy115: YYDEBUG(115, *YYCURSOR); + ++YYCURSOR; + goto yy20; +yy116: + YYDEBUG(116, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'N') { - if (yych == 'H') goto yy117; - if (yych <= 'M') goto yy55; + if (yych <= '@') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= 'h') { - if (yych <= 'g') goto yy55; - goto yy117; - } else { - if (yych != 'n') goto yy55; - } + if (yych <= 'Z') goto yy291; + if (yych <= '`') goto yy20; + if (yych <= 'z') goto yy291; + goto yy20; } - YYDEBUG(116, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy122; - if (yych == 'i') goto yy122; - goto yy55; yy117: YYDEBUG(117, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy118; - if (yych != 'n') goto yy55; -yy118: - YYDEBUG(118, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy119; - if (yych != 'i') goto yy55; -yy119: - YYDEBUG(119, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'G') goto yy120; - if (yych != 'g') goto yy55; -yy120: - YYDEBUG(120, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy121; - if (yych != 'h') goto yy55; -yy121: - YYDEBUG(121, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy111; - if (yych == 't') goto yy111; - goto yy55; -yy122: - YYDEBUG(122, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'G') goto yy123; - if (yych != 'g') goto yy55; -yy123: - YYDEBUG(123, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy124; - if (yych != 'h') goto yy55; -yy124: - YYDEBUG(124, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy111; - if (yych == 't') goto yy111; - goto yy55; -yy125: - YYDEBUG(125, *YYCURSOR); - yyaccept = 3; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'D') goto yy126; - if (yych != 'd') goto yy84; -yy126: - YYDEBUG(126, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy127; - if (yych != 'a') goto yy55; -yy127: - YYDEBUG(127, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy128; - if (yych != 'y') goto yy55; -yy128: - YYDEBUG(128, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy89; - if (yych == 's') goto yy89; - goto yy84; -yy129: - YYDEBUG(129, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy111; - if (yych == 'y') goto yy111; - goto yy55; -yy130: - YYDEBUG(130, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'U') goto yy131; - if (yych != 'u') goto yy55; -yy131: - YYDEBUG(131, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy111; - if (yych == 'r') goto yy111; - goto yy55; -yy132: - YYDEBUG(132, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy144; - if (yych == 'n') goto yy144; - goto yy55; -yy133: - YYDEBUG(133, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy138; - if (yych == 't') goto yy138; - goto yy55; -yy134: - YYDEBUG(134, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy135; - if (yych != 'c') goto yy55; -yy135: - YYDEBUG(135, *YYCURSOR); - yyaccept = 3; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'S') { - if (yych == 'O') goto yy136; - if (yych <= 'R') goto yy84; - goto yy89; - } else { - if (yych <= 'o') { - if (yych <= 'n') goto yy84; - } else { - if (yych == 's') goto yy89; - goto yy84; - } - } -yy136: - YYDEBUG(136, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy137; - if (yych != 'n') goto yy55; -yy137: - YYDEBUG(137, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy111; - if (yych == 'd') goto yy111; - goto yy55; -yy138: - YYDEBUG(138, *YYCURSOR); - yyaccept = 3; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'U') goto yy139; - if (yych != 'u') goto yy84; -yy139: - YYDEBUG(139, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy140; - if (yych != 'r') goto yy55; -yy140: - YYDEBUG(140, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy141; - if (yych != 'd') goto yy55; -yy141: - YYDEBUG(141, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy142; - if (yych != 'a') goto yy55; -yy142: - YYDEBUG(142, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy143; - if (yych != 'y') goto yy55; -yy143: - YYDEBUG(143, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy89; - if (yych == 's') goto yy89; - goto yy84; -yy144: - YYDEBUG(144, *YYCURSOR); - yyaccept = 3; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'D') goto yy145; - if (yych != 'd') goto yy84; -yy145: - YYDEBUG(145, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy146; - if (yych != 'a') goto yy55; -yy146: - YYDEBUG(146, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy147; - if (yych != 'y') goto yy55; -yy147: - YYDEBUG(147, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy89; - if (yych == 's') goto yy89; - goto yy84; -yy148: - YYDEBUG(148, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy149; - if (yych != 'e') goto yy55; -yy149: - YYDEBUG(149, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy111; - if (yych == 'c') goto yy111; - goto yy55; -yy150: - YYDEBUG(150, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy151; - if (yych != 's') goto yy55; -yy151: - YYDEBUG(151, *YYCURSOR); - yyaccept = 3; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'E') goto yy152; - if (yych != 'e') goto yy84; -yy152: - YYDEBUG(152, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy111; - if (yych == 'c') goto yy111; - goto yy55; -yy153: - YYDEBUG(153, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy176; - if (yych == 'n') goto yy176; - goto yy55; -yy154: - YYDEBUG(154, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'N') { - if (yych <= 'K') { - if (yych == 'C') goto yy158; - goto yy55; + if (yych <= 'O') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= 'L') goto yy157; - if (yych <= 'M') goto yy55; - goto yy159; + if (yych <= '@') goto yy20; + if (yych <= 'N') goto yy291; + goto yy292; } } else { - if (yych <= 'k') { - if (yych == 'c') goto yy158; - goto yy55; - } else { - if (yych <= 'l') goto yy157; - if (yych == 'n') goto yy159; - goto yy55; + if (yych <= 'n') { + if (yych <= 'Z') goto yy291; + if (yych <= '`') goto yy20; + goto yy291; + } else { + if (yych <= 'o') goto yy292; + if (yych <= 'z') goto yy291; + goto yy20; } } -yy155: - YYDEBUG(155, *YYCURSOR); - yyaccept = 3; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'E') goto yy156; - if (yych != 'e') goto yy84; -yy156: - YYDEBUG(156, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy111; - if (yych == 'c') goto yy111; - goto yy55; -yy157: - YYDEBUG(157, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy169; - if (yych == 'l') goto yy169; - goto yy55; -yy158: - YYDEBUG(158, *YYCURSOR); +yy118: + YYDEBUG(118, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy162; - if (yych == 'r') goto yy162; - goto yy55; -yy159: - YYDEBUG(159, *YYCURSOR); - yyaccept = 3; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'U') { - if (yych == 'S') goto yy89; - if (yych <= 'T') goto yy84; - } else { - if (yych <= 's') { - if (yych <= 'r') goto yy84; - goto yy89; + if (yych <= 'R') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych != 'u') goto yy84; + if (yych <= '@') goto yy20; + if (yych <= 'Q') goto yy291; + goto yy294; } - } - YYDEBUG(160, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy161; - if (yych != 't') goto yy55; -yy161: - YYDEBUG(161, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy111; - if (yych == 'e') goto yy111; - goto yy55; -yy162: - YYDEBUG(162, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy163; - if (yych != 'o') goto yy55; -yy163: - YYDEBUG(163, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy164; - if (yych != 's') goto yy55; -yy164: - YYDEBUG(164, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy165; - if (yych != 'e') goto yy55; -yy165: - YYDEBUG(165, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy166; - if (yych != 'c') goto yy55; -yy166: - YYDEBUG(166, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy167; - if (yych != 'o') goto yy55; -yy167: - YYDEBUG(167, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy168; - if (yych != 'n') goto yy55; -yy168: - YYDEBUG(168, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy111; - if (yych == 'd') goto yy111; - goto yy55; -yy169: - YYDEBUG(169, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy170; - if (yych != 'i') goto yy55; -yy170: - YYDEBUG(170, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy171; - if (yych != 's') goto yy55; -yy171: - YYDEBUG(171, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy172; - if (yych != 'e') goto yy55; -yy172: - YYDEBUG(172, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy173; - if (yych != 'c') goto yy55; -yy173: - YYDEBUG(173, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy174; - if (yych != 'o') goto yy55; -yy174: - YYDEBUG(174, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy175; - if (yych != 'n') goto yy55; -yy175: - YYDEBUG(175, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy111; - if (yych == 'd') goto yy111; - goto yy55; -yy176: - YYDEBUG(176, *YYCURSOR); - yyaccept = 3; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'T') { - if (yych == 'D') goto yy177; - if (yych <= 'S') goto yy84; - goto yy178; } else { - if (yych <= 'd') { - if (yych <= 'c') goto yy84; - } else { - if (yych == 't') goto yy178; - goto yy84; + if (yych <= 'q') { + if (yych <= 'Z') goto yy291; + if (yych <= '`') goto yy20; + goto yy291; + } else { + if (yych <= 'r') goto yy294; + if (yych <= 'z') goto yy291; + goto yy20; } } -yy177: - YYDEBUG(177, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy179; - if (yych == 'a') goto yy179; - goto yy55; -yy178: - YYDEBUG(178, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy111; - if (yych == 'h') goto yy111; - goto yy55; -yy179: - YYDEBUG(179, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy180; - if (yych != 'y') goto yy55; -yy180: - YYDEBUG(180, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy89; - if (yych == 's') goto yy89; - goto yy84; -yy181: - YYDEBUG(181, *YYCURSOR); - yych = *++YYCURSOR; - goto yy3; -yy182: - YYDEBUG(182, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '@') { - if (yych == ')') goto yy181; - goto yy3; - } else { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - if (yych >= '{') goto yy3; - } -yy183: - YYDEBUG(183, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '@') { - if (yych == ')') goto yy181; - goto yy3; - } else { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy3; - if (yych >= '{') goto yy3; - } -yy184: - YYDEBUG(184, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '@') { - if (yych == ')') goto yy181; - goto yy3; - } else { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy3; - if (yych >= '{') goto yy3; - } -yy185: - YYDEBUG(185, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '@') { - if (yych == ')') goto yy181; - goto yy3; - } else { - if (yych <= 'Z') goto yy186; - if (yych <= '`') goto yy3; - if (yych >= '{') goto yy3; - } -yy186: - YYDEBUG(186, *YYCURSOR); +yy119: + YYDEBUG(119, *YYCURSOR); yych = *++YYCURSOR; - if (yych == ')') goto yy181; - goto yy3; -yy187: - YYDEBUG(187, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy3; + if (yych <= 'G') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych == '.') goto yy3; - goto yy189; + if (yych <= '@') goto yy20; + if (yych <= 'F') goto yy291; + goto yy296; } } else { - if (yych <= '^') { - if (yych <= '@') goto yy3; - if (yych <= 'Z') goto yy183; - goto yy3; - } else { - if (yych <= '_') goto yy189; - if (yych <= '`') goto yy3; - if (yych >= '{') goto yy3; + if (yych <= 'f') { + if (yych <= 'Z') goto yy291; + if (yych <= '`') goto yy20; + goto yy291; + } else { + if (yych <= 'g') goto yy296; + if (yych <= 'z') goto yy291; + goto yy20; } } -yy188: - YYDEBUG(188, *YYCURSOR); - yyaccept = 1; +yy120: + YYDEBUG(120, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy3; + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych == '.') goto yy3; + if (yych == '.') goto yy20; + goto yy297; } } else { if (yych <= '^') { - if (yych <= '@') goto yy3; - if (yych <= 'Z') goto yy184; - goto yy3; - } else { - if (yych <= '_') goto yy189; - if (yych <= '`') goto yy3; - if (yych <= 'z') goto yy192; - goto yy3; + if (yych <= '@') goto yy20; + if (yych <= 'Z') goto yy291; + goto yy20; + } else { + if (yych <= '_') goto yy297; + if (yych <= '`') goto yy20; + if (yych <= 'z') goto yy298; + goto yy20; } } -yy189: - YYDEBUG(189, *YYCURSOR); - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if (yybm[0+yych] & 4) { - goto yy190; - } - goto yy55; -yy190: - YYDEBUG(190, *YYCURSOR); - yyaccept = 1; - YYMARKER = ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(191, *YYCURSOR); - if (yybm[0+yych] & 4) { - goto yy190; - } - if (yych <= '.') { - if (yych == '-') goto yy189; - goto yy3; - } else { - if (yych <= '/') goto yy189; - if (yych == '_') goto yy189; - goto yy3; - } -yy192: - YYDEBUG(192, *YYCURSOR); - yyaccept = 1; +yy121: + YYDEBUG(121, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy3; + if (yych <= 'N') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == '.') goto yy3; - goto yy189; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy291; } } else { - if (yych <= '^') { - if (yych <= '@') goto yy3; - if (yych <= 'Z') goto yy185; - goto yy3; - } else { - if (yych <= '_') goto yy189; - if (yych <= '`') goto yy3; - if (yych >= '{') goto yy3; - } - } -yy193: - YYDEBUG(193, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy3; + if (yych <= '_') { + if (yych <= 'O') goto yy292; + if (yych <= 'Z') goto yy291; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych == '.') goto yy3; - goto yy189; - } - } else { - if (yych <= '^') { - if (yych <= '@') goto yy3; - if (yych <= 'Z') goto yy186; - goto yy3; - } else { - if (yych <= '_') goto yy189; - if (yych <= '`') goto yy3; - if (yych >= '{') goto yy3; + if (yych <= 'n') { + if (yych <= '`') goto yy20; + goto yy298; + } else { + if (yych <= 'o') goto yy299; + if (yych <= 'z') goto yy298; + goto yy20; + } } } -yy194: - YYDEBUG(194, *YYCURSOR); - yyaccept = 1; +yy122: + YYDEBUG(122, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 8) { - goto yy195; - } - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych <= '/') { - if (yych <= '.') goto yy3; - goto yy189; + if (yych <= 'Q') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == '_') goto yy189; - goto yy3; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy291; } - } -yy195: - YYDEBUG(195, *YYCURSOR); - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy196: - YYDEBUG(196, *YYCURSOR); - if (yybm[0+yych] & 8) { - goto yy195; - } - if (yych <= '.') { - if (yych == '-') goto yy189; - goto yy55; - } else { - if (yych <= '/') goto yy189; - if (yych == '_') goto yy189; - goto yy55; - } -yy197: - YYDEBUG(197, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '@') { - if (yych == ')') goto yy181; - goto yy3; } else { - if (yych <= 'Z') goto yy182; - if (yych <= '`') goto yy3; - if (yych <= 'z') goto yy182; - goto yy3; - } -yy198: - YYDEBUG(198, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'S') { - if (yych == ')') goto yy181; - if (yych <= '@') goto yy3; - goto yy183; - } else { - if (yych <= 'Z') { - if (yych >= 'U') goto yy183; + if (yych <= '_') { + if (yych <= 'R') goto yy294; + if (yych <= 'Z') goto yy291; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= '`') goto yy3; - if (yych <= 'z') goto yy183; - goto yy3; + if (yych <= 'q') { + if (yych <= '`') goto yy20; + goto yy298; + } else { + if (yych <= 'r') goto yy300; + if (yych <= 'z') goto yy298; + goto yy20; + } } } - YYDEBUG(199, *YYCURSOR); - yyaccept = 1; +yy123: + YYDEBUG(123, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ',') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= 'F') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych != '+') goto yy3; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy291; } } else { - if (yych <= 'Z') { - if (yych <= '-') goto yy200; - if (yych <= '@') goto yy3; - goto yy184; - } else { - if (yych <= '`') goto yy3; - if (yych <= 'z') goto yy184; - goto yy3; + if (yych <= '_') { + if (yych <= 'G') goto yy296; + if (yych <= 'Z') goto yy291; + if (yych <= '^') goto yy20; + goto yy297; + } else { + if (yych <= 'f') { + if (yych <= '`') goto yy20; + goto yy298; + } else { + if (yych <= 'g') goto yy301; + if (yych <= 'z') goto yy298; + goto yy20; + } } } -yy200: - YYDEBUG(200, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '1') goto yy201; - if (yych <= '2') goto yy202; - if (yych <= '9') goto yy203; - goto yy55; -yy201: - YYDEBUG(201, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy3; - if (yych <= '9') goto yy206; - if (yych <= ':') goto yy204; - goto yy3; -yy202: - YYDEBUG(202, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '5') { - if (yych <= '/') goto yy3; - if (yych <= '4') goto yy206; - goto yy205; - } else { - if (yych <= '9') goto yy181; - if (yych <= ':') goto yy204; - goto yy3; - } -yy203: - YYDEBUG(203, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy3; - if (yych <= '5') goto yy205; - if (yych <= '9') goto yy181; - if (yych >= ';') goto yy3; -yy204: - YYDEBUG(204, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy205; - if (yych <= '9') goto yy181; - goto yy55; -yy205: - YYDEBUG(205, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy3; - if (yych <= '9') goto yy181; - goto yy3; -yy206: - YYDEBUG(206, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy3; - if (yych <= '5') goto yy207; - if (yych <= '9') goto yy181; - if (yych <= ':') goto yy208; - goto yy3; -yy207: - YYDEBUG(207, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy3; - if (yych <= '9') goto yy214; - goto yy3; -yy208: - YYDEBUG(208, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy209; - if (yych <= '9') goto yy181; - goto yy55; -yy209: - YYDEBUG(209, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy3; - if (yych >= ':') goto yy3; - YYDEBUG(210, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych != ':') goto yy3; - YYDEBUG(211, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy212; - if (yych <= '6') goto yy213; - goto yy55; -yy212: - YYDEBUG(212, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy181; - goto yy55; -yy213: - YYDEBUG(213, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '0') goto yy181; - goto yy55; -yy214: - YYDEBUG(214, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy3; - if (yych <= '5') goto yy215; - if (yych <= '6') goto yy216; - goto yy3; -yy215: - YYDEBUG(215, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy181; - goto yy55; -yy216: - YYDEBUG(216, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '0') goto yy181; - goto yy55; -yy217: - YYDEBUG(217, *YYCURSOR); +yy124: + YYDEBUG(124, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'E') { - if (yych <= '@') { - if (yych == ')') goto yy181; - goto yy3; + if (yych <= 'C') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= 'C') goto yy183; - if (yych >= 'E') goto yy220; + if (yych <= '@') goto yy20; + if (yych <= 'B') goto yy291; + goto yy302; } } else { - if (yych <= 'c') { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - goto yy183; - } else { - if (yych <= 'd') goto yy218; - if (yych <= 'e') goto yy220; - if (yych <= 'z') goto yy183; - goto yy3; + if (yych <= 'b') { + if (yych <= 'Z') goto yy291; + if (yych <= '`') goto yy20; + goto yy291; + } else { + if (yych <= 'c') goto yy302; + if (yych <= 'z') goto yy291; + goto yy20; } } -yy218: - YYDEBUG(218, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) <= 'N') { - if (yych <= ')') { - if (yych >= ')') goto yy181; +yy125: + YYDEBUG(125, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'B') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= '@') goto yy219; - if (yych <= 'M') goto yy184; - goto yy226; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy291; } } else { - if (yych <= 'm') { - if (yych <= 'Z') goto yy184; - if (yych >= 'a') goto yy184; + if (yych <= '_') { + if (yych <= 'C') goto yy302; + if (yych <= 'Z') goto yy291; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 'n') goto yy226; - if (yych <= 'z') goto yy184; - } - } -yy219: - YYDEBUG(219, *YYCURSOR); -#line 1787 "ext/date/lib/parse_date.re" - { - const timelib_relunit* relunit; - DEBUG_OUTPUT("daytext"); - TIMELIB_INIT; - TIMELIB_HAVE_RELATIVE(); - TIMELIB_HAVE_WEEKDAY_RELATIVE(); - TIMELIB_UNHAVE_TIME(); - relunit = timelib_lookup_relunit(&ptr); - s->time->relative.weekday = relunit->multiplier; - if (s->time->relative.weekday_behavior != 2) { - s->time->relative.weekday_behavior = 1; + if (yych <= 'b') { + if (yych <= '`') goto yy20; + goto yy298; + } else { + if (yych <= 'c') goto yy303; + if (yych <= 'z') goto yy298; + goto yy20; + } } - - TIMELIB_DEINIT; - return TIMELIB_WEEKDAY; } -#line 4187 "" -yy220: - YYDEBUG(220, *YYCURSOR); +yy126: + YYDEBUG(126, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'K') { + if (yych <= 'C') { if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= '@') goto yy3; - if (yych <= 'J') goto yy184; + if (yych <= '@') goto yy20; + if (yych <= 'B') goto yy291; + goto yy304; } } else { - if (yych <= 'j') { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy3; - goto yy184; - } else { - if (yych <= 'k') goto yy221; - if (yych <= 'z') goto yy184; - goto yy3; + if (yych <= 'b') { + if (yych <= 'Z') goto yy291; + if (yych <= '`') goto yy20; + goto yy291; + } else { + if (yych <= 'c') goto yy304; + if (yych <= 'z') goto yy291; + goto yy20; } } -yy221: - YYDEBUG(221, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'D') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; +yy127: + YYDEBUG(127, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'B') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= '@') goto yy3; - if (yych <= 'C') goto yy185; - } - } else { - if (yych <= 'c') { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy3; - goto yy185; - } else { - if (yych <= 'd') goto yy222; - if (yych <= 'z') goto yy185; - goto yy3; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy291; } - } -yy222: - YYDEBUG(222, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'A') { - if (yych == ')') goto yy181; - if (yych <= '@') goto yy3; } else { - if (yych <= '`') { - if (yych <= 'Z') goto yy186; - goto yy3; + if (yych <= '_') { + if (yych <= 'C') goto yy304; + if (yych <= 'Z') goto yy291; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 'a') goto yy223; - if (yych <= 'z') goto yy186; - goto yy3; + if (yych <= 'b') { + if (yych <= '`') goto yy20; + goto yy298; + } else { + if (yych <= 'c') goto yy305; + if (yych <= 'z') goto yy298; + goto yy20; + } } } -yy223: - YYDEBUG(223, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'X') { - if (yych == ')') goto yy181; - goto yy3; - } else { - if (yych <= 'Y') goto yy224; - if (yych != 'y') goto yy3; - } -yy224: - YYDEBUG(224, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy225; - if (yych != 's') goto yy219; -yy225: - YYDEBUG(225, *YYCURSOR); - yych = *++YYCURSOR; - goto yy219; -yy226: - YYDEBUG(226, *YYCURSOR); +yy128: + YYDEBUG(128, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'E') { + if (yych <= 'G') { if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= '@') goto yy3; - if (yych <= 'D') goto yy185; + if (yych <= '@') goto yy20; + if (yych <= 'F') goto yy291; + goto yy306; } } else { - if (yych <= 'd') { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy3; - goto yy185; - } else { - if (yych <= 'e') goto yy227; - if (yych <= 'z') goto yy185; - goto yy3; + if (yych <= 'f') { + if (yych <= 'Z') goto yy291; + if (yych <= '`') goto yy20; + goto yy291; + } else { + if (yych <= 'g') goto yy306; + if (yych <= 'z') goto yy291; + goto yy20; } } -yy227: - YYDEBUG(227, *YYCURSOR); +yy129: + YYDEBUG(129, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'S') { + if (yych <= 'E') { if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'R') goto yy186; - } - } else { - if (yych <= 'r') { - if (yych <= 'Z') goto yy186; - if (yych <= '`') goto yy3; - goto yy186; - } else { - if (yych <= 's') goto yy228; - if (yych <= 'z') goto yy186; - goto yy3; - } - } -yy228: - YYDEBUG(228, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'C') { - if (yych == ')') goto yy181; - goto yy3; - } else { - if (yych <= 'D') goto yy229; - if (yych != 'd') goto yy3; - } -yy229: - YYDEBUG(229, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy230; - if (yych != 'a') goto yy55; -yy230: - YYDEBUG(230, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy231; - if (yych != 'y') goto yy55; -yy231: - YYDEBUG(231, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy225; - if (yych == 's') goto yy225; - goto yy219; -yy232: - YYDEBUG(232, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'D') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= '/') { - if (yych <= '.') goto yy3; - goto yy189; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'C') goto yy183; - goto yy218; - } + if (yych <= '@') goto yy20; + if (yych <= 'D') goto yy291; + goto yy307; } } else { - if (yych <= '`') { - if (yych <= 'Z') { - if (yych <= 'E') goto yy220; - goto yy183; - } else { - if (yych == '_') goto yy189; - goto yy3; - } - } else { - if (yych <= 'd') { - if (yych <= 'c') goto yy188; - } else { - if (yych <= 'e') goto yy234; - if (yych <= 'z') goto yy188; - goto yy3; - } + if (yych <= 'd') { + if (yych <= 'Z') goto yy291; + if (yych <= '`') goto yy20; + goto yy291; + } else { + if (yych <= 'e') goto yy307; + if (yych <= 'z') goto yy291; + goto yy20; } } - YYDEBUG(233, *YYCURSOR); - yyaccept = 4; +yy130: + YYDEBUG(130, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'M') { + if (yych <= 'F') { if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy219; - goto yy189; + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy219; - goto yy184; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy291; } } else { if (yych <= '_') { - if (yych <= 'N') goto yy226; - if (yych <= 'Z') goto yy184; - if (yych <= '^') goto yy219; - goto yy189; + if (yych <= 'G') goto yy306; + if (yych <= 'Z') goto yy291; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 'm') { - if (yych <= '`') goto yy219; - goto yy192; + if (yych <= 'f') { + if (yych <= '`') goto yy20; + goto yy298; } else { - if (yych <= 'n') goto yy240; - if (yych <= 'z') goto yy192; - goto yy219; + if (yych <= 'g') goto yy308; + if (yych <= 'z') goto yy298; + goto yy20; } } } -yy234: - YYDEBUG(234, *YYCURSOR); - yyaccept = 1; +yy131: + YYDEBUG(131, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'J') { + if (yych <= 'D') { if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy184; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy291; } } else { if (yych <= '_') { - if (yych <= 'K') goto yy221; - if (yych <= 'Z') goto yy184; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'E') goto yy307; + if (yych <= 'Z') goto yy291; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 'j') { - if (yych <= '`') goto yy3; - goto yy192; + if (yych <= 'd') { + if (yych <= '`') goto yy20; + goto yy298; } else { - if (yych <= 'k') goto yy235; - if (yych <= 'z') goto yy192; - goto yy3; + if (yych <= 'e') goto yy309; + if (yych <= 'z') goto yy298; + goto yy20; } } } -yy235: - YYDEBUG(235, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'C') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; +yy132: + YYDEBUG(132, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'B') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy185; + if (yych <= '@') goto yy20; + if (yych <= 'A') goto yy291; + goto yy310; } } else { - if (yych <= '_') { - if (yych <= 'D') goto yy222; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 'c') { - if (yych <= '`') goto yy3; - goto yy193; - } else { - if (yych <= 'd') goto yy236; - if (yych <= 'z') goto yy193; - goto yy3; - } + if (yych <= 'a') { + if (yych <= 'Z') goto yy291; + if (yych <= '`') goto yy20; + goto yy291; + } else { + if (yych <= 'b') goto yy310; + if (yych <= 'z') goto yy291; + goto yy20; } } -yy236: - YYDEBUG(236, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '@') { - if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy3; +yy133: + YYDEBUG(133, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'R') { + if (yych <= '@') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych == '.') goto yy3; - if (yych <= '/') goto yy189; - goto yy3; + if (yych == 'F') goto yy311; + if (yych <= 'Q') goto yy291; + goto yy312; } } else { - if (yych <= '_') { - if (yych <= 'A') goto yy223; - if (yych <= 'Z') goto yy186; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= '`') goto yy3; - if (yych <= 'a') goto yy237; - if (yych <= 'z') goto yy194; - goto yy3; + if (yych <= 'f') { + if (yych <= 'Z') goto yy291; + if (yych <= '`') goto yy20; + if (yych <= 'e') goto yy291; + goto yy311; + } else { + if (yych == 'r') goto yy312; + if (yych <= 'z') goto yy291; + goto yy20; } } -yy237: - YYDEBUG(237, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'X') { - if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy3; +yy134: + YYDEBUG(134, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych == '.') goto yy3; - if (yych <= '/') goto yy189; - goto yy3; + if (yych <= '@') goto yy20; + if (yych <= 'T') goto yy291; + goto yy313; } } else { - if (yych <= '`') { - if (yych <= 'Y') goto yy224; - if (yych == '_') goto yy189; - goto yy3; - } else { - if (yych == 'y') goto yy238; - if (yych <= 'z') goto yy195; - goto yy3; + if (yych <= 't') { + if (yych <= 'Z') goto yy291; + if (yych <= '`') goto yy20; + goto yy291; + } else { + if (yych <= 'u') goto yy313; + if (yych <= 'z') goto yy291; + goto yy20; } } -yy238: - YYDEBUG(238, *YYCURSOR); - yyaccept = 4; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'S') { - if (yych <= '.') { - if (yych == '-') goto yy189; - goto yy219; +yy135: + YYDEBUG(135, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'O') { + if (yych <= '@') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= '/') goto yy189; - if (yych <= 'R') goto yy219; - goto yy225; + if (yych == 'I') goto yy314; + if (yych <= 'N') goto yy291; + goto yy316; } } else { - if (yych <= '`') { - if (yych == '_') goto yy189; - goto yy219; - } else { - if (yych == 's') goto yy239; - if (yych <= 'z') goto yy195; - goto yy219; + if (yych <= 'i') { + if (yych <= 'Z') goto yy291; + if (yych <= '`') goto yy20; + if (yych <= 'h') goto yy291; + goto yy314; + } else { + if (yych == 'o') goto yy316; + if (yych <= 'z') goto yy291; + goto yy20; } } -yy239: - YYDEBUG(239, *YYCURSOR); - yyaccept = 4; - yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 8) { - goto yy195; - } - if (yych <= '.') { - if (yych == '-') goto yy189; - goto yy219; - } else { - if (yych <= '/') goto yy189; - if (yych == '_') goto yy189; - goto yy219; - } -yy240: - YYDEBUG(240, *YYCURSOR); - yyaccept = 1; +yy136: + YYDEBUG(136, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'D') { + if (yych <= 'A') { if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy185; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy291; } } else { if (yych <= '_') { - if (yych <= 'E') goto yy227; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'B') goto yy310; + if (yych <= 'Z') goto yy291; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 'd') { - if (yych <= '`') goto yy3; - goto yy193; + if (yych <= 'a') { + if (yych <= '`') goto yy20; + goto yy298; } else { - if (yych <= 'e') goto yy241; - if (yych <= 'z') goto yy193; - goto yy3; + if (yych <= 'b') goto yy317; + if (yych <= 'z') goto yy298; + goto yy20; } } } -yy241: - YYDEBUG(241, *YYCURSOR); - yyaccept = 1; +yy137: + YYDEBUG(137, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'R') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy186; - } - } else { - if (yych <= '_') { - if (yych <= 'S') goto yy228; - if (yych <= 'Z') goto yy186; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 'r') { - if (yych <= '`') goto yy3; - goto yy194; + if (yych <= 'Q') { + if (yych <= '.') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= 's') goto yy242; - if (yych <= 'z') goto yy194; - goto yy3; + if (yych == '-') goto yy297; + goto yy20; } - } - } -yy242: - YYDEBUG(242, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'C') { - if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy3; } else { - if (yych == '.') goto yy3; - if (yych <= '/') goto yy189; - goto yy3; + if (yych <= '@') { + if (yych <= '/') goto yy297; + goto yy20; + } else { + if (yych == 'F') goto yy311; + goto yy291; + } } } else { if (yych <= '`') { - if (yych <= 'D') goto yy229; - if (yych == '_') goto yy189; - goto yy3; - } else { - if (yych == 'd') goto yy243; - if (yych <= 'z') goto yy195; - goto yy3; + if (yych <= 'Z') { + if (yych <= 'R') goto yy312; + goto yy291; + } else { + if (yych == '_') goto yy297; + goto yy20; + } + } else { + if (yych <= 'q') { + if (yych == 'f') goto yy318; + goto yy298; + } else { + if (yych <= 'r') goto yy319; + if (yych <= 'z') goto yy298; + goto yy20; + } } } -yy243: - YYDEBUG(243, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy230; - if (yych != 'a') goto yy196; - YYDEBUG(244, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy231; - if (yych != 'y') goto yy196; - YYDEBUG(245, *YYCURSOR); - yyaccept = 4; +yy138: + YYDEBUG(138, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'S') { - if (yych <= '.') { - if (yych == '-') goto yy189; - goto yy219; + if (yych <= 'T') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= '/') goto yy189; - if (yych <= 'R') goto yy219; - goto yy225; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy291; } } else { - if (yych <= '`') { - if (yych == '_') goto yy189; - goto yy219; - } else { - if (yych == 's') goto yy239; - if (yych <= 'z') goto yy195; - goto yy219; - } - } -yy246: - YYDEBUG(246, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'C') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= '_') { + if (yych <= 'U') goto yy313; + if (yych <= 'Z') goto yy291; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= '@') goto yy3; - if (yych <= 'B') goto yy183; - } - } else { - if (yych <= 'b') { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - goto yy183; - } else { - if (yych <= 'c') goto yy247; - if (yych <= 'z') goto yy183; - goto yy3; + if (yych <= 't') { + if (yych <= '`') goto yy20; + goto yy298; + } else { + if (yych <= 'u') goto yy320; + if (yych <= 'z') goto yy298; + goto yy20; + } } } -yy247: - YYDEBUG(247, *YYCURSOR); - yyaccept = 5; +yy139: + YYDEBUG(139, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych <= '(') { - if (yych <= '\t') { - if (yych >= '\t') goto yy250; + if (yych <= 'N') { + if (yych <= '.') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych == ' ') goto yy250; + if (yych == '-') goto yy297; + goto yy20; } } else { - if (yych <= ',') { - if (yych <= ')') goto yy181; + if (yych <= '@') { + if (yych <= '/') goto yy297; + goto yy20; } else { - if (yych <= '-') goto yy251; - if (yych <= '.') goto yy250; + if (yych == 'I') goto yy314; + goto yy291; } } } else { - if (yych <= 'Z') { - if (yych <= '@') { - if (yych <= '9') goto yy250; + if (yych <= '`') { + if (yych <= 'Z') { + if (yych <= 'O') goto yy316; + goto yy291; } else { - if (yych == 'E') goto yy255; - goto yy184; + if (yych == '_') goto yy297; + goto yy20; } } else { - if (yych <= 'd') { - if (yych >= 'a') goto yy184; + if (yych <= 'n') { + if (yych == 'i') goto yy321; + goto yy298; } else { - if (yych <= 'e') goto yy255; - if (yych <= 'z') goto yy184; + if (yych <= 'o') goto yy322; + if (yych <= 'z') goto yy298; + goto yy20; } } } -yy248: - YYDEBUG(248, *YYCURSOR); -#line 1846 "ext/date/lib/parse_date.re" - { - DEBUG_OUTPUT("monthtext"); - TIMELIB_INIT; - TIMELIB_HAVE_DATE(); - s->time->m = timelib_lookup_month(&ptr); - TIMELIB_DEINIT; - return TIMELIB_DATE_TEXT; +yy140: + YYDEBUG(140, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'S') { + if (yych == ')') goto yy115; + if (yych <= '@') goto yy20; + goto yy291; + } else { + if (yych <= 'Z') { + if (yych <= 'T') goto yy323; + goto yy291; + } else { + if (yych <= '`') goto yy20; + if (yych <= 'z') goto yy291; + goto yy20; + } } -#line 4742 "" -yy249: - YYDEBUG(249, *YYCURSOR); +yy141: + YYDEBUG(141, *YYCURSOR); ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 26) YYFILL(26); yych = *YYCURSOR; -yy250: - YYDEBUG(250, *YYCURSOR); +yy142: + YYDEBUG(142, *YYCURSOR); if (yybm[0+yych] & 16) { - goto yy249; + goto yy141; } - if (yych <= '/') goto yy55; - if (yych <= '2') goto yy252; - if (yych <= '3') goto yy253; - if (yych <= '9') goto yy254; - goto yy55; -yy251: - YYDEBUG(251, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy250; - if (yych <= '0') goto yy365; - if (yych <= '2') goto yy366; - if (yych <= '3') goto yy367; - goto yy250; -yy252: - YYDEBUG(252, *YYCURSOR); + if (yych <= '/') goto yy59; + if (yych <= '2') goto yy143; + if (yych <= '3') goto yy144; + if (yych <= '9') goto yy145; + goto yy59; +yy143: + YYDEBUG(143, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '9') { if (yych <= ' ') { if (yych <= 0x08) { - if (yych <= 0x00) goto yy268; - goto yy55; + if (yych <= 0x00) goto yy324; + goto yy59; } else { - if (yych <= '\t') goto yy266; - if (yych <= 0x1F) goto yy55; - goto yy266; + if (yych <= '\t') goto yy326; + if (yych <= 0x1F) goto yy59; + goto yy326; } } else { if (yych <= '-') { - if (yych == ',') goto yy266; - goto yy55; + if (yych == ',') goto yy326; + goto yy59; } else { - if (yych <= '.') goto yy266; - if (yych <= '/') goto yy55; - goto yy364; + if (yych <= '.') goto yy326; + if (yych <= '/') goto yy59; + goto yy328; } } } else { if (yych <= 'm') { if (yych <= 'd') { - if (yych <= 'c') goto yy55; - goto yy266; + if (yych <= 'c') goto yy59; + goto yy326; } else { - if (yych == 'h') goto yy266; - goto yy55; + if (yych == 'h') goto yy326; + goto yy59; } } else { if (yych <= 'r') { - if (yych <= 'n') goto yy263; - if (yych <= 'q') goto yy55; - goto yy264; - } else { - if (yych <= 's') goto yy261; - if (yych <= 't') goto yy265; - goto yy55; + if (yych <= 'n') goto yy329; + if (yych <= 'q') goto yy59; + goto yy329; + } else { + if (yych <= 's') goto yy330; + if (yych <= 't') goto yy331; + goto yy59; } } } -yy253: - YYDEBUG(253, *YYCURSOR); +yy144: + YYDEBUG(144, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '1') { if (yych <= ' ') { if (yych <= 0x08) { - if (yych <= 0x00) goto yy268; - goto yy55; + if (yych <= 0x00) goto yy324; + goto yy59; } else { - if (yych <= '\t') goto yy266; - if (yych <= 0x1F) goto yy55; - goto yy266; + if (yych <= '\t') goto yy326; + if (yych <= 0x1F) goto yy59; + goto yy326; } } else { if (yych <= '-') { - if (yych == ',') goto yy266; - goto yy55; + if (yych == ',') goto yy326; + goto yy59; } else { - if (yych <= '.') goto yy266; - if (yych <= '/') goto yy55; - goto yy364; + if (yych <= '.') goto yy326; + if (yych <= '/') goto yy59; + goto yy328; } } } else { if (yych <= 'm') { if (yych <= 'd') { - if (yych <= '9') goto yy260; - if (yych <= 'c') goto yy55; - goto yy266; + if (yych <= '9') goto yy332; + if (yych <= 'c') goto yy59; + goto yy326; } else { - if (yych == 'h') goto yy266; - goto yy55; + if (yych == 'h') goto yy326; + goto yy59; } } else { if (yych <= 'r') { - if (yych <= 'n') goto yy263; - if (yych <= 'q') goto yy55; - goto yy264; - } else { - if (yych <= 's') goto yy261; - if (yych <= 't') goto yy265; - goto yy55; + if (yych <= 'n') goto yy329; + if (yych <= 'q') goto yy59; + goto yy329; + } else { + if (yych <= 's') goto yy330; + if (yych <= 't') goto yy331; + goto yy59; } } } -yy254: - YYDEBUG(254, *YYCURSOR); +yy145: + YYDEBUG(145, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '9') { if (yych <= ' ') { if (yych <= 0x08) { - if (yych <= 0x00) goto yy268; - goto yy55; + if (yych <= 0x00) goto yy324; + goto yy59; } else { - if (yych <= '\t') goto yy266; - if (yych <= 0x1F) goto yy55; - goto yy266; + if (yych <= '\t') goto yy326; + if (yych <= 0x1F) goto yy59; + goto yy326; } } else { if (yych <= '-') { - if (yych == ',') goto yy266; - goto yy55; + if (yych == ',') goto yy326; + goto yy59; } else { - if (yych <= '.') goto yy266; - if (yych <= '/') goto yy55; - goto yy260; + if (yych <= '.') goto yy326; + if (yych <= '/') goto yy59; + goto yy332; } } } else { if (yych <= 'm') { if (yych <= 'd') { - if (yych <= 'c') goto yy55; - goto yy266; + if (yych <= 'c') goto yy59; + goto yy326; } else { - if (yych == 'h') goto yy266; - goto yy55; + if (yych == 'h') goto yy326; + goto yy59; } } else { if (yych <= 'r') { - if (yych <= 'n') goto yy263; - if (yych <= 'q') goto yy55; - goto yy264; - } else { - if (yych <= 's') goto yy261; - if (yych <= 't') goto yy265; - goto yy55; + if (yych <= 'n') goto yy329; + if (yych <= 'q') goto yy59; + goto yy329; + } else { + if (yych <= 's') goto yy330; + if (yych <= 't') goto yy331; + goto yy59; } } } -yy255: - YYDEBUG(255, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'M') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'L') goto yy185; +yy146: + YYDEBUG(146, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= ' ') { + if (yych == '\t') goto yy142; + if (yych <= 0x1F) goto yy20; + goto yy142; + } else { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy142; } } else { - if (yych <= 'l') { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy3; - goto yy185; - } else { - if (yych <= 'm') goto yy256; - if (yych <= 'z') goto yy185; - goto yy3; + if (yych <= 'H') { + if (yych <= '/') goto yy20; + if (yych <= '9') goto yy142; + if (yych <= '@') goto yy20; + goto yy291; + } else { + if (yych <= 'Z') { + if (yych <= 'I') goto yy333; + goto yy291; + } else { + if (yych <= '`') goto yy20; + if (yych <= 'z') goto yy291; + goto yy20; + } } } -yy256: - YYDEBUG(256, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'B') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; +yy147: + YYDEBUG(147, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ',') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy142; + goto yy20; } else { - if (yych <= '@') goto yy3; - if (yych <= 'A') goto yy186; + if (yych <= ' ') goto yy142; + if (yych == ')') goto yy115; + goto yy20; } } else { - if (yych <= 'a') { - if (yych <= 'Z') goto yy186; - if (yych <= '`') goto yy3; - goto yy186; - } else { - if (yych <= 'b') goto yy257; - if (yych <= 'z') goto yy186; - goto yy3; + if (yych <= '@') { + if (yych == '/') goto yy20; + if (yych <= '9') goto yy142; + goto yy20; + } else { + if (yych <= 'Z') goto yy291; + if (yych <= '`') goto yy20; + if (yych <= 'z') goto yy291; + goto yy20; } } -yy257: - YYDEBUG(257, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'D') { - if (yych == ')') goto yy181; - goto yy3; - } else { - if (yych <= 'E') goto yy258; - if (yych != 'e') goto yy3; - } -yy258: - YYDEBUG(258, *YYCURSOR); +yy148: + YYDEBUG(148, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy259; - if (yych != 'r') goto yy55; -yy259: - YYDEBUG(259, *YYCURSOR); - yyaccept = 5; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ' ') { - if (yych == '\t') goto yy250; - if (yych <= 0x1F) goto yy248; - goto yy250; - } else { - if (yych <= '.') { - if (yych <= ',') goto yy248; - goto yy250; + if (yych <= 'N') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= '/') goto yy248; - if (yych <= '9') goto yy250; - goto yy248; + if (yych <= '@') goto yy20; + if (yych <= 'M') goto yy291; + goto yy334; + } + } else { + if (yych <= 'm') { + if (yych <= 'Z') goto yy291; + if (yych <= '`') goto yy20; + goto yy291; + } else { + if (yych <= 'n') goto yy334; + if (yych <= 'z') goto yy291; + goto yy20; } } -yy260: - YYDEBUG(260, *YYCURSOR); +yy149: + YYDEBUG(149, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy361; - goto yy55; -yy261: - YYDEBUG(261, *YYCURSOR); - yyaccept = 6; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == 't') goto yy360; - goto yy267; -yy262: - YYDEBUG(262, *YYCURSOR); -#line 1592 "ext/date/lib/parse_date.re" - { - int length = 0; - DEBUG_OUTPUT("datetextual | datenoyear"); - TIMELIB_INIT; - TIMELIB_HAVE_DATE(); - s->time->m = timelib_get_month(&ptr); - s->time->d = timelib_get_nr(&ptr, 2); - s->time->y = timelib_get_nr_ex(&ptr, 4, &length); - TIMELIB_PROCESS_YEAR(s->time->y, length); - TIMELIB_DEINIT; - return TIMELIB_DATE_TEXT; - } -#line 5004 "" -yy263: - YYDEBUG(263, *YYCURSOR); - yyaccept = 6; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'd') goto yy360; - goto yy267; -yy264: - YYDEBUG(264, *YYCURSOR); - yyaccept = 6; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'd') goto yy360; - goto yy267; -yy265: - YYDEBUG(265, *YYCURSOR); - yyaccept = 6; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'h') goto yy360; - goto yy267; -yy266: - YYDEBUG(266, *YYCURSOR); - yyaccept = 6; - YYMARKER = ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 21) YYFILL(21); - yych = *YYCURSOR; -yy267: - YYDEBUG(267, *YYCURSOR); - if (yybm[0+yych] & 32) { - goto yy266; - } - if (yych <= '2') { - if (yych <= '/') goto yy262; - if (yych <= '0') goto yy351; - if (yych <= '1') goto yy352; - goto yy353; - } else { - if (yych <= '9') goto yy354; - if (yych == 'T') goto yy269; - goto yy262; - } -yy268: - YYDEBUG(268, *YYCURSOR); - yyaccept = 6; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '9') { - if (yych <= '0') { - if (yych <= '/') goto yy262; - goto yy270; + if (yych <= 'N') { + if (yych <= '@') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= '1') goto yy271; - if (yych <= '2') goto yy272; - goto yy273; + if (yych == 'L') goto yy335; + if (yych <= 'M') goto yy291; + goto yy336; } } else { - if (yych <= 'T') { - if (yych <= 'S') goto yy262; + if (yych <= 'l') { + if (yych <= 'Z') goto yy291; + if (yych <= '`') goto yy20; + if (yych <= 'k') goto yy291; + goto yy335; } else { - if (yych != 't') goto yy262; - } - } -yy269: - YYDEBUG(269, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '1') goto yy349; - if (yych <= '2') goto yy350; - if (yych <= '9') goto yy339; - goto yy55; -yy270: - YYDEBUG(270, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') { - if (yych == '.') goto yy340; - goto yy55; - } else { - if (yych <= '0') goto yy339; - if (yych <= '9') goto yy273; - if (yych <= ':') goto yy340; - goto yy55; - } -yy271: - YYDEBUG(271, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') { - if (yych == '.') goto yy274; - goto yy55; - } else { - if (yych <= '2') goto yy273; - if (yych <= '9') goto yy339; - if (yych <= ':') goto yy274; - goto yy55; - } -yy272: - YYDEBUG(272, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') { - if (yych == '.') goto yy274; - goto yy55; - } else { - if (yych <= '4') goto yy339; - if (yych == ':') goto yy274; - goto yy55; - } -yy273: - YYDEBUG(273, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '.') goto yy274; - if (yych != ':') goto yy55; -yy274: - YYDEBUG(274, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy275; - if (yych <= '9') goto yy277; - goto yy55; -yy275: - YYDEBUG(275, *YYCURSOR); - yyaccept = 7; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych == '.') goto yy278; - } else { - if (yych <= '9') goto yy332; - if (yych <= ':') goto yy278; - } -yy276: - YYDEBUG(276, *YYCURSOR); -#line 1894 "ext/date/lib/parse_date.re" - { - int tz_not_found; - DEBUG_OUTPUT("dateshortwithtimeshort | dateshortwithtimelong | dateshortwithtimelongtz"); - TIMELIB_INIT; - TIMELIB_HAVE_DATE(); - s->time->m = timelib_get_month(&ptr); - s->time->d = timelib_get_nr(&ptr, 2); - - TIMELIB_HAVE_TIME(); - s->time->h = timelib_get_nr(&ptr, 2); - s->time->i = timelib_get_nr(&ptr, 2); - if (*ptr == ':') { - s->time->s = timelib_get_nr(&ptr, 2); - - if (*ptr == '.') { - s->time->us = timelib_get_frac_nr(&ptr); - } - } - - if (*ptr != '\0') { - s->time->z = timelib_parse_zone(&ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper); - if (tz_not_found) { - add_error(s, TIMELIB_ERR_TZID_NOT_FOUND, "The timezone could not be found in the database"); - } + if (yych == 'n') goto yy336; + if (yych <= 'z') goto yy291; + goto yy20; } - TIMELIB_DEINIT; - return TIMELIB_SHORTDATE_WITH_TIME; } -#line 5160 "" -yy277: - YYDEBUG(277, *YYCURSOR); - yyaccept = 7; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '.') goto yy278; - if (yych != ':') goto yy276; -yy278: - YYDEBUG(278, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy279; - if (yych <= '6') goto yy280; - if (yych <= '9') goto yy281; - goto yy55; -yy279: - YYDEBUG(279, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy276; - if (yych <= '9') goto yy282; - goto yy276; -yy280: - YYDEBUG(280, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '0') goto yy282; - goto yy276; -yy281: - YYDEBUG(281, *YYCURSOR); - yych = *++YYCURSOR; - goto yy276; -yy282: - YYDEBUG(282, *YYCURSOR); - yyaccept = 7; +yy150: + YYDEBUG(150, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '*') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy284; - goto yy276; + if (yych <= 'M') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= ' ') goto yy284; - if (yych == '(') goto yy284; - goto yy276; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy291; } } else { - if (yych <= '@') { - if (yych == ',') goto yy276; - if (yych <= '-') goto yy284; - goto yy276; - } else { - if (yych <= 'Z') goto yy284; - if (yych <= '`') goto yy276; - if (yych <= 'z') goto yy284; - goto yy276; + if (yych <= '_') { + if (yych <= 'N') goto yy334; + if (yych <= 'Z') goto yy291; + if (yych <= '^') goto yy20; + goto yy297; + } else { + if (yych <= 'm') { + if (yych <= '`') goto yy20; + goto yy298; + } else { + if (yych <= 'n') goto yy337; + if (yych <= 'z') goto yy298; + goto yy20; + } } } -yy283: - YYDEBUG(283, *YYCURSOR); - ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12); - yych = *YYCURSOR; -yy284: - YYDEBUG(284, *YYCURSOR); - if (yych <= '@') { - if (yych <= '\'') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy55; - goto yy283; +yy151: + YYDEBUG(151, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'M') { + if (yych <= '.') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych == ' ') goto yy283; - goto yy55; + if (yych == '-') goto yy297; + goto yy20; } } else { - if (yych <= '+') { - if (yych <= '(') goto yy287; - if (yych <= '*') goto yy55; - goto yy286; + if (yych <= '@') { + if (yych <= '/') goto yy297; + goto yy20; } else { - if (yych == '-') goto yy286; - goto yy55; + if (yych == 'L') goto yy335; + goto yy291; } } } else { - if (yych <= 'Z') { - if (yych <= 'G') { - if (yych <= 'A') goto yy288; - if (yych <= 'F') goto yy289; + if (yych <= '`') { + if (yych <= 'Z') { + if (yych <= 'N') goto yy336; + goto yy291; } else { - if (yych == 'P') goto yy288; - goto yy289; + if (yych == '_') goto yy297; + goto yy20; } } else { - if (yych <= 'o') { - if (yych <= '`') goto yy55; - if (yych <= 'a') goto yy290; - goto yy291; + if (yych <= 'm') { + if (yych == 'l') goto yy338; + goto yy298; } else { - if (yych <= 'p') goto yy290; - if (yych <= 'z') goto yy291; - goto yy55; + if (yych <= 'n') goto yy339; + if (yych <= 'z') goto yy298; + goto yy20; } } } -yy285: - YYDEBUG(285, *YYCURSOR); +yy152: + YYDEBUG(152, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'L') { - if (yych == ')') goto yy281; - if (yych <= '@') goto yy276; - goto yy292; - } else { - if (yych <= 'Z') { - if (yych <= 'M') goto yy330; - goto yy292; + if (yych <= 'S') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= '`') goto yy276; - if (yych <= 'z') goto yy303; - goto yy276; + if (yych <= '@') goto yy20; + if (yych <= 'R') goto yy291; + goto yy340; + } + } else { + if (yych <= 'r') { + if (yych <= 'Z') goto yy291; + if (yych <= '`') goto yy20; + goto yy291; + } else { + if (yych <= 's') goto yy340; + if (yych <= 'z') goto yy291; + goto yy20; } } -yy286: - YYDEBUG(286, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '1') goto yy314; - if (yych <= '2') goto yy315; - if (yych <= '9') goto yy316; - goto yy55; -yy287: - YYDEBUG(287, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '@') goto yy55; - if (yych <= 'Z') goto yy291; - if (yych <= '`') goto yy55; - if (yych <= 'z') goto yy291; - goto yy55; -yy288: - YYDEBUG(288, *YYCURSOR); - yyaccept = 7; +yy153: + YYDEBUG(153, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'L') { + if (yych <= 'R') { if (yych <= '-') { - if (yych == ')') goto yy281; - goto yy276; + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= '.') goto yy297; - if (yych <= '@') goto yy276; - goto yy292; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy291; } } else { - if (yych <= '`') { - if (yych <= 'M') goto yy298; - if (yych <= 'Z') goto yy292; - goto yy276; - } else { - if (yych == 'm') goto yy313; - if (yych <= 'z') goto yy303; - goto yy276; + if (yych <= '_') { + if (yych <= 'S') goto yy340; + if (yych <= 'Z') goto yy291; + if (yych <= '^') goto yy20; + goto yy297; + } else { + if (yych <= 'r') { + if (yych <= '`') goto yy20; + goto yy298; + } else { + if (yych <= 's') goto yy341; + if (yych <= 'z') goto yy298; + goto yy20; + } } } -yy289: - YYDEBUG(289, *YYCURSOR); +yy154: + YYDEBUG(154, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '@') { - if (yych == ')') goto yy281; - goto yy276; - } else { - if (yych <= 'Z') goto yy292; - if (yych <= '`') goto yy276; - if (yych <= 'z') goto yy303; - goto yy276; - } -yy290: - YYDEBUG(290, *YYCURSOR); - yyaccept = 7; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'L') { - if (yych <= '-') { - if (yych == ')') goto yy281; - goto yy276; + if (yych <= 'Y') { + if (yych <= '@') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= '.') goto yy297; - if (yych <= '@') goto yy276; - goto yy292; + if (yych == 'R') goto yy342; + if (yych <= 'X') goto yy291; + goto yy343; } } else { - if (yych <= '`') { - if (yych <= 'M') goto yy298; - if (yych <= 'Z') goto yy292; - goto yy276; - } else { - if (yych == 'm') goto yy298; - if (yych <= 'z') goto yy292; - goto yy276; + if (yych <= 'r') { + if (yych <= 'Z') goto yy291; + if (yych <= '`') goto yy20; + if (yych <= 'q') goto yy291; + goto yy342; + } else { + if (yych == 'y') goto yy343; + if (yych <= 'z') goto yy291; + goto yy20; } } -yy291: - YYDEBUG(291, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '@') { - if (yych == ')') goto yy281; - goto yy276; - } else { - if (yych <= 'Z') goto yy292; - if (yych <= '`') goto yy276; - if (yych >= '{') goto yy276; - } -yy292: - YYDEBUG(292, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '@') { - if (yych == ')') goto yy281; - goto yy276; - } else { - if (yych <= 'Z') goto yy293; - if (yych <= '`') goto yy276; - if (yych >= '{') goto yy276; - } -yy293: - YYDEBUG(293, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '@') { - if (yych == ')') goto yy281; - goto yy276; - } else { - if (yych <= 'Z') goto yy294; - if (yych <= '`') goto yy276; - if (yych >= '{') goto yy276; - } -yy294: - YYDEBUG(294, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '@') { - if (yych == ')') goto yy281; - goto yy276; - } else { - if (yych <= 'Z') goto yy295; - if (yych <= '`') goto yy276; - if (yych >= '{') goto yy276; - } -yy295: - YYDEBUG(295, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '@') { - if (yych == ')') goto yy281; - goto yy276; - } else { - if (yych <= 'Z') goto yy296; - if (yych <= '`') goto yy276; - if (yych >= '{') goto yy276; - } -yy296: - YYDEBUG(296, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == ')') goto yy281; - goto yy276; -yy297: - YYDEBUG(297, *YYCURSOR); +yy155: + YYDEBUG(155, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy302; - if (yych == 'm') goto yy302; - goto yy55; -yy298: - YYDEBUG(298, *YYCURSOR); - yyaccept = 7; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ')') { - if (yych <= '\t') { - if (yych <= 0x00) goto yy300; - if (yych <= 0x08) goto yy276; - goto yy300; - } else { - if (yych == ' ') goto yy300; - if (yych <= '(') goto yy276; - goto yy281; - } - } else { - if (yych <= '@') { - if (yych != '.') goto yy276; + if (yych <= 'D') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= 'Z') goto yy293; - if (yych <= '`') goto yy276; - if (yych <= 'z') goto yy293; - goto yy276; + if (yych <= '@') goto yy20; + if (yych <= 'C') goto yy291; + goto yy344; } - } -yy299: - YYDEBUG(299, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '\t') { - if (yych <= 0x00) goto yy300; - if (yych <= 0x08) goto yy55; } else { - if (yych != ' ') goto yy55; - } -yy300: - YYDEBUG(300, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(301, *YYCURSOR); -#line 1870 "ext/date/lib/parse_date.re" - { - DEBUG_OUTPUT("dateshortwithtimeshort12 | dateshortwithtimelong12"); - TIMELIB_INIT; - TIMELIB_HAVE_DATE(); - s->time->m = timelib_get_month(&ptr); - s->time->d = timelib_get_nr(&ptr, 2); - - TIMELIB_HAVE_TIME(); - s->time->h = timelib_get_nr(&ptr, 2); - s->time->i = timelib_get_nr(&ptr, 2); - if (*ptr == ':' || *ptr == '.') { - s->time->s = timelib_get_nr(&ptr, 2); - - if (*ptr == '.') { - s->time->us = timelib_get_frac_nr(&ptr); - } + if (yych <= 'c') { + if (yych <= 'Z') goto yy291; + if (yych <= '`') goto yy20; + goto yy291; + } else { + if (yych <= 'd') goto yy344; + if (yych <= 'z') goto yy291; + goto yy20; } - - s->time->h += timelib_meridian(&ptr, s->time->h); - TIMELIB_DEINIT; - return TIMELIB_SHORTDATE_WITH_TIME; } -#line 5481 "" -yy302: - YYDEBUG(302, *YYCURSOR); +yy156: + YYDEBUG(156, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 0x1F) { - if (yych <= 0x00) goto yy300; - if (yych == '\t') goto yy300; - goto yy55; - } else { - if (yych <= ' ') goto yy300; - if (yych == '.') goto yy299; - goto yy55; - } -yy303: - YYDEBUG(303, *YYCURSOR); - yyaccept = 7; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych <= ',') { - if (yych == ')') goto yy281; - goto yy276; + if (yych <= 'N') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych == '.') goto yy276; - goto yy305; + if (yych <= '@') goto yy20; + if (yych <= 'M') goto yy291; + goto yy314; } } else { - if (yych <= '^') { - if (yych <= '@') goto yy276; - if (yych <= 'Z') goto yy293; - goto yy276; - } else { - if (yych <= '_') goto yy305; - if (yych <= '`') goto yy276; - if (yych >= '{') goto yy276; + if (yych <= 'm') { + if (yych <= 'Z') goto yy291; + if (yych <= '`') goto yy20; + goto yy291; + } else { + if (yych <= 'n') goto yy314; + if (yych <= 'z') goto yy291; + goto yy20; } } -yy304: - YYDEBUG(304, *YYCURSOR); - yyaccept = 7; +yy157: + YYDEBUG(157, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych <= ',') { - if (yych == ')') goto yy281; - goto yy276; + if (yych <= 'X') { + if (yych <= '.') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; + } else { + if (yych == '-') goto yy297; + goto yy20; + } } else { - if (yych == '.') goto yy276; + if (yych <= '@') { + if (yych <= '/') goto yy297; + goto yy20; + } else { + if (yych == 'R') goto yy342; + goto yy291; + } } } else { - if (yych <= '^') { - if (yych <= '@') goto yy276; - if (yych <= 'Z') goto yy294; - goto yy276; - } else { - if (yych <= '_') goto yy305; - if (yych <= '`') goto yy276; - if (yych <= 'z') goto yy308; - goto yy276; + if (yych <= '`') { + if (yych <= 'Z') { + if (yych <= 'Y') goto yy343; + goto yy291; + } else { + if (yych == '_') goto yy297; + goto yy20; + } + } else { + if (yych <= 'x') { + if (yych == 'r') goto yy345; + goto yy298; + } else { + if (yych <= 'y') goto yy346; + if (yych <= 'z') goto yy298; + goto yy20; + } } } -yy305: - YYDEBUG(305, *YYCURSOR); - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if (yych <= '@') goto yy55; - if (yych <= 'Z') goto yy306; - if (yych <= '`') goto yy55; - if (yych >= '{') goto yy55; -yy306: - YYDEBUG(306, *YYCURSOR); - yyaccept = 7; - YYMARKER = ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(307, *YYCURSOR); - if (yych <= '@') { +yy158: + YYDEBUG(158, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'C') { if (yych <= '-') { - if (yych <= ',') goto yy276; - goto yy305; + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == '/') goto yy305; - goto yy276; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy291; } } else { if (yych <= '_') { - if (yych <= 'Z') goto yy306; - if (yych <= '^') goto yy276; - goto yy305; + if (yych <= 'D') goto yy344; + if (yych <= 'Z') goto yy291; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= '`') goto yy276; - if (yych <= 'z') goto yy306; - goto yy276; + if (yych <= 'c') { + if (yych <= '`') goto yy20; + goto yy298; + } else { + if (yych <= 'd') goto yy347; + if (yych <= 'z') goto yy298; + goto yy20; + } } } -yy308: - YYDEBUG(308, *YYCURSOR); - yyaccept = 7; +yy159: + YYDEBUG(159, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych <= ',') { - if (yych == ')') goto yy281; - goto yy276; + if (yych <= 'M') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == '.') goto yy276; - goto yy305; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy291; } } else { - if (yych <= '^') { - if (yych <= '@') goto yy276; - if (yych <= 'Z') goto yy295; - goto yy276; - } else { - if (yych <= '_') goto yy305; - if (yych <= '`') goto yy276; - if (yych >= '{') goto yy276; + if (yych <= '_') { + if (yych <= 'N') goto yy314; + if (yych <= 'Z') goto yy291; + if (yych <= '^') goto yy20; + goto yy297; + } else { + if (yych <= 'm') { + if (yych <= '`') goto yy20; + goto yy298; + } else { + if (yych <= 'n') goto yy321; + if (yych <= 'z') goto yy298; + goto yy20; + } } } - YYDEBUG(309, *YYCURSOR); - yyaccept = 7; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych <= ',') { - if (yych == ')') goto yy281; - goto yy276; +yy160: + YYDEBUG(160, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'X') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych == '.') goto yy276; - goto yy305; + if (yych <= '@') goto yy20; + if (yych <= 'W') goto yy291; + goto yy348; } } else { - if (yych <= '^') { - if (yych <= '@') goto yy276; - if (yych <= 'Z') goto yy296; - goto yy276; - } else { - if (yych <= '_') goto yy305; - if (yych <= '`') goto yy276; - if (yych >= '{') goto yy276; + if (yych <= 'w') { + if (yych <= 'Z') goto yy291; + if (yych <= '`') goto yy20; + goto yy291; + } else { + if (yych <= 'x') goto yy348; + if (yych <= 'z') goto yy291; + goto yy20; } } - YYDEBUG(310, *YYCURSOR); - yyaccept = 7; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { +yy161: + YYDEBUG(161, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'N') { if (yych <= ')') { - if (yych <= '(') goto yy276; - goto yy281; + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych == '-') goto yy305; - goto yy276; + if (yych <= '@') goto yy20; + if (yych <= 'M') goto yy291; + goto yy311; } } else { - if (yych <= '_') { - if (yych <= '/') goto yy305; - if (yych <= '^') goto yy276; - goto yy305; - } else { - if (yych <= '`') goto yy276; - if (yych >= '{') goto yy276; + if (yych <= 'm') { + if (yych <= 'Z') goto yy291; + if (yych <= '`') goto yy20; + goto yy291; + } else { + if (yych <= 'n') goto yy311; + if (yych <= 'z') goto yy291; + goto yy20; } } -yy311: - YYDEBUG(311, *YYCURSOR); - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(312, *YYCURSOR); - if (yych <= '/') { - if (yych == '-') goto yy305; - if (yych <= '.') goto yy55; - goto yy305; +yy162: + YYDEBUG(162, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'W') { + if (yych <= 'N') { + if (yych == ')') goto yy115; + if (yych <= '@') goto yy20; + goto yy291; + } else { + if (yych <= 'O') goto yy349; + if (yych <= 'U') goto yy291; + if (yych <= 'V') goto yy304; + goto yy350; + } } else { - if (yych <= '_') { - if (yych <= '^') goto yy55; - goto yy305; + if (yych <= 'o') { + if (yych <= 'Z') goto yy291; + if (yych <= '`') goto yy20; + if (yych <= 'n') goto yy291; + goto yy349; } else { - if (yych <= '`') goto yy55; - if (yych <= 'z') goto yy311; - goto yy55; + if (yych <= 'v') { + if (yych <= 'u') goto yy291; + goto yy304; + } else { + if (yych <= 'w') goto yy350; + if (yych <= 'z') goto yy291; + goto yy20; + } } } -yy313: - YYDEBUG(313, *YYCURSOR); - yyaccept = 7; +yy163: + YYDEBUG(163, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '-') { - if (yych <= 0x1F) { - if (yych <= 0x00) goto yy300; - if (yych == '\t') goto yy300; - goto yy276; + if (yych <= 'W') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= '(') { - if (yych <= ' ') goto yy300; - goto yy276; - } else { - if (yych <= ')') goto yy281; - if (yych <= ',') goto yy276; - goto yy305; - } + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy291; } } else { - if (yych <= 'Z') { - if (yych <= '.') goto yy299; - if (yych <= '/') goto yy305; - if (yych <= '@') goto yy276; - goto yy293; + if (yych <= '_') { + if (yych <= 'X') goto yy348; + if (yych <= 'Z') goto yy291; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= '_') { - if (yych <= '^') goto yy276; - goto yy305; + if (yych <= 'w') { + if (yych <= '`') goto yy20; + goto yy298; } else { - if (yych <= '`') goto yy276; - if (yych <= 'z') goto yy304; - goto yy276; + if (yych <= 'x') goto yy352; + if (yych <= 'z') goto yy298; + goto yy20; } } } -yy314: - YYDEBUG(314, *YYCURSOR); - yyaccept = 7; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy276; - if (yych <= '9') goto yy319; - if (yych <= ':') goto yy317; - goto yy276; -yy315: - YYDEBUG(315, *YYCURSOR); - yyaccept = 7; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '5') { - if (yych <= '/') goto yy276; - if (yych <= '4') goto yy319; - goto yy318; - } else { - if (yych <= '9') goto yy281; - if (yych <= ':') goto yy317; - goto yy276; - } -yy316: - YYDEBUG(316, *YYCURSOR); - yyaccept = 7; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy276; - if (yych <= '5') goto yy318; - if (yych <= '9') goto yy281; - if (yych >= ';') goto yy276; -yy317: - YYDEBUG(317, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy318; - if (yych <= '9') goto yy281; - goto yy55; -yy318: - YYDEBUG(318, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy276; - if (yych <= '9') goto yy281; - goto yy276; -yy319: - YYDEBUG(319, *YYCURSOR); - yyaccept = 7; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy276; - if (yych <= '5') goto yy320; - if (yych <= '9') goto yy281; - if (yych <= ':') goto yy321; - goto yy276; -yy320: - YYDEBUG(320, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy276; - if (yych <= '9') goto yy327; - goto yy276; -yy321: - YYDEBUG(321, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy322; - if (yych <= '9') goto yy281; - goto yy55; -yy322: - YYDEBUG(322, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy276; - if (yych >= ':') goto yy276; - YYDEBUG(323, *YYCURSOR); - yyaccept = 7; - yych = *(YYMARKER = ++YYCURSOR); - if (yych != ':') goto yy276; - YYDEBUG(324, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy325; - if (yych <= '6') goto yy326; - goto yy55; -yy325: - YYDEBUG(325, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy281; - goto yy55; -yy326: - YYDEBUG(326, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '0') goto yy281; - goto yy55; -yy327: - YYDEBUG(327, *YYCURSOR); - yyaccept = 7; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy276; - if (yych <= '5') goto yy328; - if (yych <= '6') goto yy329; - goto yy276; -yy328: - YYDEBUG(328, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy281; - goto yy55; -yy329: - YYDEBUG(329, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '0') goto yy281; - goto yy55; -yy330: - YYDEBUG(330, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'S') { - if (yych == ')') goto yy281; - if (yych <= '@') goto yy276; - goto yy293; - } else { - if (yych <= 'Z') { - if (yych >= 'U') goto yy293; - } else { - if (yych <= '`') goto yy276; - if (yych <= 'z') goto yy293; - goto yy276; - } - } - YYDEBUG(331, *YYCURSOR); - yyaccept = 7; +yy164: + YYDEBUG(164, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ',') { - if (yych <= ')') { - if (yych <= '(') goto yy276; - goto yy281; + if (yych <= 'M') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == '+') goto yy286; - goto yy276; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy291; } } else { - if (yych <= 'Z') { - if (yych <= '-') goto yy286; - if (yych <= '@') goto yy276; - goto yy294; + if (yych <= '_') { + if (yych <= 'N') goto yy311; + if (yych <= 'Z') goto yy291; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= '`') goto yy276; - if (yych <= 'z') goto yy294; - goto yy276; + if (yych <= 'm') { + if (yych <= '`') goto yy20; + goto yy298; + } else { + if (yych <= 'n') goto yy318; + if (yych <= 'z') goto yy298; + goto yy20; + } } } -yy332: - YYDEBUG(332, *YYCURSOR); - yyaccept = 7; +yy165: + YYDEBUG(165, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ':') { - if (yych <= ' ') { - if (yych == '\t') goto yy333; - if (yych <= 0x1F) goto yy276; + if (yych <= 'V') { + if (yych <= '.') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; + } else { + if (yych == '-') goto yy297; + goto yy20; + } } else { - if (yych == '.') goto yy278; - if (yych <= '9') goto yy276; - goto yy278; + if (yych <= 'N') { + if (yych <= '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy291; + } else { + if (yych <= 'O') goto yy349; + if (yych <= 'U') goto yy291; + goto yy304; + } } } else { - if (yych <= 'P') { - if (yych == 'A') goto yy335; - if (yych <= 'O') goto yy276; - goto yy335; + if (yych <= 'n') { + if (yych <= '^') { + if (yych <= 'W') goto yy350; + if (yych <= 'Z') goto yy291; + goto yy20; + } else { + if (yych <= '_') goto yy297; + if (yych <= '`') goto yy20; + goto yy298; + } } else { - if (yych <= 'a') { - if (yych <= '`') goto yy276; - goto yy335; + if (yych <= 'v') { + if (yych <= 'o') goto yy353; + if (yych <= 'u') goto yy298; + goto yy305; } else { - if (yych == 'p') goto yy335; - goto yy276; + if (yych <= 'w') goto yy354; + if (yych <= 'z') goto yy298; + goto yy20; } } } -yy333: - YYDEBUG(333, *YYCURSOR); - ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); - yych = *YYCURSOR; - YYDEBUG(334, *YYCURSOR); - if (yych <= 'A') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy333; - goto yy55; +yy166: + YYDEBUG(166, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= ' ') goto yy333; - if (yych <= '@') goto yy55; + if (yych <= '@') goto yy20; + if (yych <= 'S') goto yy291; + goto yy355; } } else { - if (yych <= '`') { - if (yych != 'P') goto yy55; - } else { - if (yych <= 'a') goto yy335; - if (yych != 'p') goto yy55; + if (yych <= 's') { + if (yych <= 'Z') goto yy291; + if (yych <= '`') goto yy20; + goto yy291; + } else { + if (yych <= 't') goto yy355; + if (yych <= 'z') goto yy291; + goto yy20; } } -yy335: - YYDEBUG(335, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'L') { - if (yych != '.') goto yy55; - } else { - if (yych <= 'M') goto yy337; - if (yych == 'm') goto yy337; - goto yy55; - } - YYDEBUG(336, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'M') goto yy337; - if (yych != 'm') goto yy55; -yy337: - YYDEBUG(337, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 0x1F) { - if (yych <= 0x00) goto yy300; - if (yych == '\t') goto yy300; - goto yy55; - } else { - if (yych <= ' ') goto yy300; - if (yych != '.') goto yy55; - } - YYDEBUG(338, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '\t') { - if (yych <= 0x00) goto yy300; - if (yych <= 0x08) goto yy55; - goto yy300; - } else { - if (yych == ' ') goto yy300; - goto yy55; - } -yy339: - YYDEBUG(339, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '.') goto yy340; - if (yych != ':') goto yy55; -yy340: - YYDEBUG(340, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy341; - if (yych <= '9') goto yy342; - goto yy55; -yy341: - YYDEBUG(341, *YYCURSOR); - yyaccept = 7; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych == '.') goto yy343; - goto yy276; - } else { - if (yych <= '9') goto yy342; - if (yych <= ':') goto yy343; - goto yy276; - } -yy342: - YYDEBUG(342, *YYCURSOR); - yyaccept = 7; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '.') goto yy343; - if (yych != ':') goto yy276; -yy343: - YYDEBUG(343, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy344; - if (yych <= '6') goto yy345; - if (yych <= '9') goto yy281; - goto yy55; -yy344: - YYDEBUG(344, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy276; - if (yych <= '9') goto yy346; - goto yy276; -yy345: - YYDEBUG(345, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '0') goto yy276; -yy346: - YYDEBUG(346, *YYCURSOR); - yyaccept = 7; +yy167: + YYDEBUG(167, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '*') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy348; - goto yy276; + if (yych <= 'S') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= ' ') goto yy348; - if (yych == '(') goto yy348; - goto yy276; - } - } else { - if (yych <= '@') { - if (yych == ',') goto yy276; - if (yych <= '-') goto yy348; - goto yy276; - } else { - if (yych <= 'Z') goto yy348; - if (yych <= '`') goto yy276; - if (yych <= 'z') goto yy348; - goto yy276; - } - } -yy347: - YYDEBUG(347, *YYCURSOR); - ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12); - yych = *YYCURSOR; -yy348: - YYDEBUG(348, *YYCURSOR); - if (yych <= '+') { - if (yych <= ' ') { - if (yych == '\t') goto yy347; - if (yych <= 0x1F) goto yy55; - goto yy347; - } else { - if (yych == '(') goto yy287; - if (yych <= '*') goto yy55; - goto yy286; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy291; } } else { - if (yych <= 'F') { - if (yych == '-') goto yy286; - if (yych <= '@') goto yy55; - goto yy289; + if (yych <= '_') { + if (yych <= 'T') goto yy355; + if (yych <= 'Z') goto yy291; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 'Z') { - if (yych <= 'G') goto yy285; - goto yy289; + if (yych <= 's') { + if (yych <= '`') goto yy20; + goto yy298; } else { - if (yych <= '`') goto yy55; - if (yych <= 'z') goto yy291; - goto yy55; + if (yych <= 't') goto yy356; + if (yych <= 'z') goto yy298; + goto yy20; } } } -yy349: - YYDEBUG(349, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') { - if (yych == '.') goto yy340; - goto yy55; - } else { - if (yych <= '9') goto yy339; - if (yych <= ':') goto yy340; - goto yy55; - } -yy350: - YYDEBUG(350, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') { - if (yych == '.') goto yy340; - goto yy55; - } else { - if (yych <= '4') goto yy339; - if (yych == ':') goto yy340; - goto yy55; - } -yy351: - YYDEBUG(351, *YYCURSOR); - yyaccept = 6; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych == '.') goto yy340; - goto yy262; - } else { - if (yych <= '0') goto yy358; - if (yych <= '9') goto yy359; - if (yych <= ':') goto yy340; - goto yy262; - } -yy352: - YYDEBUG(352, *YYCURSOR); - yyaccept = 6; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych == '.') goto yy274; - goto yy262; - } else { - if (yych <= '2') goto yy359; - if (yych <= '9') goto yy358; - if (yych <= ':') goto yy274; - goto yy262; - } -yy353: - YYDEBUG(353, *YYCURSOR); - yyaccept = 6; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych == '.') goto yy274; - goto yy262; - } else { - if (yych <= '4') goto yy358; - if (yych <= '9') goto yy355; - if (yych <= ':') goto yy274; - goto yy262; - } -yy354: - YYDEBUG(354, *YYCURSOR); - yyaccept = 6; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych == '.') goto yy274; - goto yy262; - } else { - if (yych <= '9') goto yy355; - if (yych <= ':') goto yy274; - goto yy262; - } -yy355: - YYDEBUG(355, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy262; - if (yych >= ':') goto yy262; -yy356: - YYDEBUG(356, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy262; - if (yych >= ':') goto yy262; - YYDEBUG(357, *YYCURSOR); - yych = *++YYCURSOR; - goto yy262; -yy358: - YYDEBUG(358, *YYCURSOR); - yyaccept = 6; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych == '.') goto yy340; - goto yy262; - } else { - if (yych <= '9') goto yy356; - if (yych <= ':') goto yy340; - goto yy262; - } -yy359: - YYDEBUG(359, *YYCURSOR); - yyaccept = 6; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych == '.') goto yy274; - goto yy262; - } else { - if (yych <= '9') goto yy356; - if (yych <= ':') goto yy274; - goto yy262; - } -yy360: - YYDEBUG(360, *YYCURSOR); - yyaccept = 6; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 0x00) goto yy268; - goto yy267; -yy361: - YYDEBUG(361, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= ':') goto yy55; - YYDEBUG(362, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(363, *YYCURSOR); -#line 1564 "ext/date/lib/parse_date.re" - { - int length = 0; - DEBUG_OUTPUT("datenoday"); - TIMELIB_INIT; - TIMELIB_HAVE_DATE(); - s->time->m = timelib_get_month(&ptr); - s->time->y = timelib_get_nr_ex(&ptr, 4, &length); - s->time->d = 1; - TIMELIB_PROCESS_YEAR(s->time->y, length); - TIMELIB_DEINIT; - return TIMELIB_DATE_NO_DAY; - } -#line 6172 "" -yy364: - YYDEBUG(364, *YYCURSOR); +yy168: + YYDEBUG(168, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '9') { - if (yych <= ' ') { - if (yych <= 0x08) { - if (yych <= 0x00) goto yy268; - goto yy55; - } else { - if (yych <= '\t') goto yy266; - if (yych <= 0x1F) goto yy55; - goto yy266; - } + if (yych <= 'E') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= '-') { - if (yych == ',') goto yy266; - goto yy55; - } else { - if (yych <= '.') goto yy266; - if (yych <= '/') goto yy55; - goto yy361; - } + if (yych <= '@') goto yy20; + if (yych <= 'D') goto yy291; + goto yy357; } } else { - if (yych <= 'm') { - if (yych <= 'd') { - if (yych <= 'c') goto yy55; - goto yy266; - } else { - if (yych == 'h') goto yy266; - goto yy55; - } - } else { - if (yych <= 'r') { - if (yych <= 'n') goto yy263; - if (yych <= 'q') goto yy55; - goto yy264; - } else { - if (yych <= 's') goto yy261; - if (yych <= 't') goto yy265; - goto yy55; - } + if (yych <= 'd') { + if (yych <= 'Z') goto yy291; + if (yych <= '`') goto yy20; + goto yy291; + } else { + if (yych <= 'e') goto yy357; + if (yych <= 'z') goto yy291; + goto yy20; } } -yy365: - YYDEBUG(365, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '9') { - if (yych <= ' ') { - if (yych <= 0x08) { - if (yych <= 0x00) goto yy268; - goto yy55; - } else { - if (yych <= '\t') goto yy266; - if (yych <= 0x1F) goto yy55; - goto yy266; - } +yy169: + YYDEBUG(169, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'D') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= '-') { - if (yych == ',') goto yy266; - goto yy55; - } else { - if (yych <= '.') goto yy266; - if (yych <= '/') goto yy55; - goto yy368; - } + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy291; } } else { - if (yych <= 'm') { + if (yych <= '_') { + if (yych <= 'E') goto yy357; + if (yych <= 'Z') goto yy291; + if (yych <= '^') goto yy20; + goto yy297; + } else { if (yych <= 'd') { - if (yych <= 'c') goto yy55; - goto yy266; + if (yych <= '`') goto yy20; + goto yy298; } else { - if (yych == 'h') goto yy266; - goto yy55; - } - } else { - if (yych <= 'r') { - if (yych <= 'n') goto yy263; - if (yych <= 'q') goto yy55; - goto yy264; - } else { - if (yych <= 's') goto yy261; - if (yych <= 't') goto yy265; - goto yy55; + if (yych <= 'e') goto yy358; + if (yych <= 'z') goto yy298; + goto yy20; } } } -yy366: - YYDEBUG(366, *YYCURSOR); +yy170: + YYDEBUG(170, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '9') { - if (yych <= ' ') { - if (yych <= 0x08) { - if (yych <= 0x00) goto yy268; - goto yy55; - } else { - if (yych <= '\t') goto yy266; - if (yych <= 0x1F) goto yy55; - goto yy266; - } + if (yych <= 'T') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= '-') { - if (yych == ',') goto yy266; - goto yy55; - } else { - if (yych <= '.') goto yy266; - if (yych <= '/') goto yy55; - goto yy368; - } + if (yych <= '@') goto yy20; + if (yych <= 'S') goto yy291; + goto yy359; } } else { - if (yych <= 'm') { - if (yych <= 'd') { - if (yych <= 'c') goto yy55; - goto yy266; - } else { - if (yych == 'h') goto yy266; - goto yy55; - } - } else { - if (yych <= 'r') { - if (yych <= 'n') goto yy263; - if (yych <= 'q') goto yy55; - goto yy264; - } else { - if (yych <= 's') goto yy261; - if (yych <= 't') goto yy265; - goto yy55; - } + if (yych <= 's') { + if (yych <= 'Z') goto yy291; + if (yych <= '`') goto yy20; + goto yy291; + } else { + if (yych <= 't') goto yy359; + if (yych <= 'z') goto yy291; + goto yy20; } } -yy367: - YYDEBUG(367, *YYCURSOR); +yy171: + YYDEBUG(171, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '1') { - if (yych <= ' ') { - if (yych <= 0x08) { - if (yych <= 0x00) goto yy268; - goto yy55; - } else { - if (yych <= '\t') goto yy266; - if (yych <= 0x1F) goto yy55; - goto yy266; - } + if (yych <= 'V') { + if (yych <= 'B') { + if (yych == ')') goto yy115; + if (yych <= '@') goto yy20; + goto yy291; } else { - if (yych <= '-') { - if (yych == ',') goto yy266; - goto yy55; + if (yych <= 'O') { + if (yych <= 'C') goto yy360; + goto yy291; } else { - if (yych <= '.') goto yy266; - if (yych <= '/') goto yy55; + if (yych <= 'P') goto yy361; + if (yych <= 'U') goto yy291; + goto yy362; } } } else { - if (yych <= 'm') { - if (yych <= 'd') { - if (yych <= '9') goto yy260; - if (yych <= 'c') goto yy55; - goto yy266; + if (yych <= 'o') { + if (yych <= '`') { + if (yych <= 'Z') goto yy291; + goto yy20; } else { - if (yych == 'h') goto yy266; - goto yy55; + if (yych == 'c') goto yy360; + goto yy291; } } else { - if (yych <= 'r') { - if (yych <= 'n') goto yy263; - if (yych <= 'q') goto yy55; - goto yy264; - } else { - if (yych <= 's') goto yy261; - if (yych <= 't') goto yy265; - goto yy55; + if (yych <= 'u') { + if (yych <= 'p') goto yy361; + goto yy291; + } else { + if (yych <= 'v') goto yy362; + if (yych <= 'z') goto yy291; + goto yy20; } } } -yy368: - YYDEBUG(368, *YYCURSOR); +yy172: + YYDEBUG(172, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '9') { - if (yych <= ' ') { - if (yych <= 0x08) { - if (yych <= 0x00) goto yy268; - goto yy55; - } else { - if (yych <= '\t') goto yy266; - if (yych <= 0x1F) goto yy55; - goto yy266; - } + if (yych <= 'X') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= '-') { - if (yych <= '+') goto yy55; - if (yych <= ',') goto yy266; - } else { - if (yych <= '.') goto yy266; - if (yych <= '/') goto yy55; - goto yy361; - } + if (yych <= '@') goto yy20; + if (yych <= 'W') goto yy291; + goto yy311; } } else { - if (yych <= 'm') { - if (yych <= 'd') { - if (yych <= 'c') goto yy55; - goto yy266; - } else { - if (yych == 'h') goto yy266; - goto yy55; - } - } else { - if (yych <= 'r') { - if (yych <= 'n') goto yy263; - if (yych <= 'q') goto yy55; - goto yy264; - } else { - if (yych <= 's') goto yy261; - if (yych <= 't') goto yy265; - goto yy55; - } + if (yych <= 'w') { + if (yych <= 'Z') goto yy291; + if (yych <= '`') goto yy20; + goto yy291; + } else { + if (yych <= 'x') goto yy311; + if (yych <= 'z') goto yy291; + goto yy20; } } - YYDEBUG(369, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= ':') goto yy55; - YYDEBUG(370, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '/') goto yy371; - if (yych <= '9') goto yy372; -yy371: - YYDEBUG(371, *YYCURSOR); -#line 1708 "ext/date/lib/parse_date.re" - { - int length = 0; - DEBUG_OUTPUT("pgtextshort"); - TIMELIB_INIT; - TIMELIB_HAVE_DATE(); - s->time->m = timelib_get_month(&ptr); - s->time->d = timelib_get_nr(&ptr, 2); - s->time->y = timelib_get_nr_ex(&ptr, 4, &length); - TIMELIB_PROCESS_YEAR(s->time->y, length); - TIMELIB_DEINIT; - return TIMELIB_PG_TEXT; - } -#line 6416 "" -yy372: - YYDEBUG(372, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy371; - if (yych >= ':') goto yy371; - YYDEBUG(373, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy371; - if (yych >= ':') goto yy371; - YYDEBUG(374, *YYCURSOR); - yych = *++YYCURSOR; - goto yy371; -yy375: - YYDEBUG(375, *YYCURSOR); - yyaccept = 1; +yy173: + YYDEBUG(173, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'B') { + if (yych <= 'S') { if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy183; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy291; } } else { if (yych <= '_') { - if (yych <= 'C') goto yy247; - if (yych <= 'Z') goto yy183; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'T') goto yy359; + if (yych <= 'Z') goto yy291; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 'b') { - if (yych <= '`') goto yy3; - goto yy188; + if (yych <= 's') { + if (yych <= '`') goto yy20; + goto yy298; } else { - if (yych <= 'c') goto yy376; - if (yych <= 'z') goto yy188; - goto yy3; + if (yych <= 't') goto yy363; + if (yych <= 'z') goto yy298; + goto yy20; } } } -yy376: - YYDEBUG(376, *YYCURSOR); - yyaccept = 5; +yy174: + YYDEBUG(174, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '9') { - if (yych <= '(') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy248; - goto yy250; + if (yych <= 'U') { + if (yych <= '/') { + if (yych <= ',') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych == ' ') goto yy250; - goto yy248; + if (yych == '.') goto yy20; + goto yy297; } } else { - if (yych <= '-') { - if (yych <= ')') goto yy181; - if (yych <= ',') goto yy248; + if (yych <= 'C') { + if (yych <= '@') goto yy20; + if (yych <= 'B') goto yy291; + goto yy360; } else { - if (yych == '/') goto yy189; - goto yy250; + if (yych == 'P') goto yy361; + goto yy291; } } } else { - if (yych <= '^') { - if (yych <= 'D') { - if (yych <= '@') goto yy248; - goto yy184; - } else { - if (yych <= 'E') goto yy255; - if (yych <= 'Z') goto yy184; - goto yy248; + if (yych <= 'b') { + if (yych <= '^') { + if (yych <= 'V') goto yy362; + if (yych <= 'Z') goto yy291; + goto yy20; + } else { + if (yych <= '_') goto yy297; + if (yych <= '`') goto yy20; + goto yy298; } } else { - if (yych <= 'd') { - if (yych <= '_') goto yy189; - if (yych <= '`') goto yy248; - goto yy192; - } else { - if (yych <= 'e') goto yy378; - if (yych <= 'z') goto yy192; - goto yy248; + if (yych <= 'p') { + if (yych <= 'c') goto yy364; + if (yych <= 'o') goto yy298; + goto yy365; + } else { + if (yych == 'v') goto yy366; + if (yych <= 'z') goto yy298; + goto yy20; } } } -yy377: - YYDEBUG(377, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 4) { - goto yy190; - } - if (yych <= '/') goto yy250; - if (yych <= '0') goto yy365; - if (yych <= '2') goto yy366; - if (yych <= '3') goto yy367; - goto yy250; -yy378: - YYDEBUG(378, *YYCURSOR); - yyaccept = 1; +yy175: + YYDEBUG(175, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'L') { + if (yych <= 'W') { if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy185; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy291; } } else { if (yych <= '_') { - if (yych <= 'M') goto yy256; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'X') goto yy311; + if (yych <= 'Z') goto yy291; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 'l') { - if (yych <= '`') goto yy3; - goto yy193; + if (yych <= 'w') { + if (yych <= '`') goto yy20; + goto yy298; } else { - if (yych <= 'm') goto yy379; - if (yych <= 'z') goto yy193; - goto yy3; + if (yych <= 'x') goto yy318; + if (yych <= 'z') goto yy298; + goto yy20; } } } -yy379: - YYDEBUG(379, *YYCURSOR); - yyaccept = 1; +yy176: + YYDEBUG(176, *YYCURSOR); + yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'A') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy186; - } + if (yych <= '/') { + if (yych == '.') goto yy75; } else { - if (yych <= '_') { - if (yych <= 'B') goto yy257; - if (yych <= 'Z') goto yy186; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy3; - goto yy194; - } else { - if (yych <= 'b') goto yy380; - if (yych <= 'z') goto yy194; - goto yy3; - } - } + if (yych <= '9') goto yy367; + if (yych <= ':') goto yy75; } -yy380: - YYDEBUG(380, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'D') { - if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy3; - } else { - if (yych == '.') goto yy3; - if (yych <= '/') goto yy189; - goto yy3; +yy177: + YYDEBUG(177, *YYCURSOR); +#line 1373 "ext/date/lib/parse_date.re" + { + int tz_not_found; + DEBUG_OUTPUT("timetiny24 | timeshort24 | timelong24 | iso8601long"); + TIMELIB_INIT; + TIMELIB_HAVE_TIME(); + s->time->h = timelib_get_nr(&ptr, 2); + if (*ptr == ':' || *ptr == '.') { + s->time->i = timelib_get_nr(&ptr, 2); + if (*ptr == ':' || *ptr == '.') { + s->time->s = timelib_get_nr(&ptr, 2); + + if (*ptr == '.') { + s->time->us = timelib_get_frac_nr(&ptr); + } + } } - } else { - if (yych <= '`') { - if (yych <= 'E') goto yy258; - if (yych == '_') goto yy189; - goto yy3; - } else { - if (yych == 'e') goto yy381; - if (yych <= 'z') goto yy195; - goto yy3; + + if (*ptr != '\0') { + s->time->z = timelib_parse_zone(&ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper); + if (tz_not_found) { + add_error(s, TIMELIB_ERR_TZID_NOT_FOUND, "The timezone could not be found in the database"); + } } + TIMELIB_DEINIT; + return TIMELIB_TIME24_WITH_ZONE; } -yy381: - YYDEBUG(381, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy259; - if (yych != 'r') goto yy196; -yy382: - YYDEBUG(382, *YYCURSOR); - yyaccept = 5; +#line 5900 "" +yy178: + YYDEBUG(178, *YYCURSOR); + yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 8) { - goto yy195; - } - if (yych <= '-') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy250; - goto yy248; - } else { - if (yych <= ' ') goto yy250; - if (yych <= ',') goto yy248; - } + if (yych <= '/') { + if (yych == '.') goto yy75; + goto yy177; } else { - if (yych <= '9') { - if (yych == '/') goto yy189; - goto yy250; - } else { - if (yych == '_') goto yy189; - goto yy248; - } - } -yy383: - YYDEBUG(383, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 4) { - goto yy190; + if (yych <= '4') goto yy367; + if (yych == ':') goto yy75; + goto yy177; } - goto yy250; -yy384: - YYDEBUG(384, *YYCURSOR); +yy179: + YYDEBUG(179, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy75; + if (yych == ':') goto yy75; + goto yy177; +yy180: + YYDEBUG(180, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= 'U') { + if (yych <= '@') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= '@') goto yy3; - if (yych <= 'S') goto yy183; + if (yych == 'I') goto yy368; + if (yych <= 'T') goto yy291; + goto yy369; } } else { - if (yych <= 's') { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - goto yy183; - } else { - if (yych <= 't') goto yy385; - if (yych <= 'z') goto yy183; - goto yy3; + if (yych <= 'i') { + if (yych <= 'Z') goto yy291; + if (yych <= '`') goto yy20; + if (yych <= 'h') goto yy291; + goto yy368; + } else { + if (yych == 'u') goto yy369; + if (yych <= 'z') goto yy291; + goto yy20; } } -yy385: - YYDEBUG(385, *YYCURSOR); - yyaccept = 5; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych <= '(') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy248; - goto yy250; - } else { - if (yych == ' ') goto yy250; - goto yy248; - } +yy181: + YYDEBUG(181, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'M') { + if (yych <= '@') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= ',') { - if (yych <= ')') goto yy181; - goto yy248; - } else { - if (yych <= '-') goto yy251; - if (yych <= '.') goto yy250; - goto yy248; - } + if (yych == 'D') goto yy370; + if (yych <= 'L') goto yy291; + goto yy371; } } else { - if (yych <= 'Z') { - if (yych <= '@') { - if (yych <= '9') goto yy250; - goto yy248; - } else { - if (yych != 'O') goto yy184; - } - } else { - if (yych <= 'n') { - if (yych <= '`') goto yy248; - goto yy184; - } else { - if (yych <= 'o') goto yy386; - if (yych <= 'z') goto yy184; - goto yy248; - } + if (yych <= 'd') { + if (yych <= 'Z') goto yy291; + if (yych <= '`') goto yy20; + if (yych <= 'c') goto yy291; + goto yy370; + } else { + if (yych == 'm') goto yy371; + if (yych <= 'z') goto yy291; + goto yy20; } } -yy386: - YYDEBUG(386, *YYCURSOR); +yy182: + YYDEBUG(182, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'B') { + if (yych <= 'E') { if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= '@') goto yy3; - if (yych <= 'A') goto yy185; + if (yych <= '@') goto yy20; + if (yych <= 'D') goto yy291; + goto yy372; } } else { - if (yych <= 'a') { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy3; - goto yy185; - } else { - if (yych <= 'b') goto yy387; - if (yych <= 'z') goto yy185; - goto yy3; + if (yych <= 'd') { + if (yych <= 'Z') goto yy291; + if (yych <= '`') goto yy20; + goto yy291; + } else { + if (yych <= 'e') goto yy372; + if (yych <= 'z') goto yy291; + goto yy20; } } -yy387: - YYDEBUG(387, *YYCURSOR); +yy183: + YYDEBUG(183, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'E') { if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= '@') goto yy3; - if (yych <= 'D') goto yy186; + if (yych <= '@') goto yy20; + if (yych <= 'D') goto yy291; + goto yy373; } } else { if (yych <= 'd') { - if (yych <= 'Z') goto yy186; - if (yych <= '`') goto yy3; - goto yy186; - } else { - if (yych <= 'e') goto yy388; - if (yych <= 'z') goto yy186; - goto yy3; + if (yych <= 'Z') goto yy291; + if (yych <= '`') goto yy20; + goto yy291; + } else { + if (yych <= 'e') goto yy373; + if (yych <= 'z') goto yy291; + goto yy20; } } -yy388: - YYDEBUG(388, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'Q') { - if (yych == ')') goto yy181; - goto yy3; - } else { - if (yych <= 'R') goto yy259; - if (yych == 'r') goto yy259; - goto yy3; - } -yy389: - YYDEBUG(389, *YYCURSOR); - yyaccept = 1; +yy184: + YYDEBUG(184, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'S') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= 'T') { + if (yych <= '.') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; + } else { + if (yych == '-') goto yy297; + goto yy20; + } } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy183; + if (yych <= '@') { + if (yych <= '/') goto yy297; + goto yy20; + } else { + if (yych == 'I') goto yy368; + goto yy291; + } } } else { - if (yych <= '_') { - if (yych <= 'T') goto yy385; - if (yych <= 'Z') goto yy183; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= '`') { + if (yych <= 'Z') { + if (yych <= 'U') goto yy369; + goto yy291; + } else { + if (yych == '_') goto yy297; + goto yy20; + } } else { - if (yych <= 's') { - if (yych <= '`') goto yy3; - goto yy188; + if (yych <= 't') { + if (yych == 'i') goto yy374; + goto yy298; } else { - if (yych <= 't') goto yy390; - if (yych <= 'z') goto yy188; - goto yy3; + if (yych <= 'u') goto yy375; + if (yych <= 'z') goto yy298; + goto yy20; } } } -yy390: - YYDEBUG(390, *YYCURSOR); - yyaccept = 5; +yy185: + YYDEBUG(185, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '9') { - if (yych <= '(') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy248; - goto yy250; + if (yych <= 'L') { + if (yych <= '.') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych == ' ') goto yy250; - goto yy248; + if (yych == '-') goto yy297; + goto yy20; } } else { - if (yych <= '-') { - if (yych <= ')') goto yy181; - if (yych <= ',') goto yy248; - goto yy377; + if (yych <= '@') { + if (yych <= '/') goto yy297; + goto yy20; } else { - if (yych == '/') goto yy189; - goto yy250; + if (yych == 'D') goto yy370; + goto yy291; } } } else { - if (yych <= '^') { - if (yych <= 'N') { - if (yych <= '@') goto yy248; - goto yy184; + if (yych <= '`') { + if (yych <= 'Z') { + if (yych <= 'M') goto yy371; + goto yy291; } else { - if (yych <= 'O') goto yy386; - if (yych <= 'Z') goto yy184; - goto yy248; + if (yych == '_') goto yy297; + goto yy20; } } else { - if (yych <= 'n') { - if (yych <= '_') goto yy189; - if (yych <= '`') goto yy248; - goto yy192; - } else { - if (yych <= 'o') goto yy391; - if (yych <= 'z') goto yy192; - goto yy248; + if (yych <= 'l') { + if (yych == 'd') goto yy376; + goto yy298; + } else { + if (yych <= 'm') goto yy377; + if (yych <= 'z') goto yy298; + goto yy20; } } } -yy391: - YYDEBUG(391, *YYCURSOR); - yyaccept = 1; +yy186: + YYDEBUG(186, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'A') { + if (yych <= 'D') { if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy185; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy291; } } else { if (yych <= '_') { - if (yych <= 'B') goto yy387; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'E') goto yy372; + if (yych <= 'Z') goto yy291; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 'a') { - if (yych <= '`') goto yy3; - goto yy193; + if (yych <= 'd') { + if (yych <= '`') goto yy20; + goto yy298; } else { - if (yych <= 'b') goto yy392; - if (yych <= 'z') goto yy193; - goto yy3; + if (yych <= 'e') goto yy378; + if (yych <= 'z') goto yy298; + goto yy20; } } } -yy392: - YYDEBUG(392, *YYCURSOR); - yyaccept = 1; +yy187: + YYDEBUG(187, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'D') { if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy186; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy291; } } else { if (yych <= '_') { - if (yych <= 'E') goto yy388; - if (yych <= 'Z') goto yy186; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'E') goto yy373; + if (yych <= 'Z') goto yy291; + if (yych <= '^') goto yy20; + goto yy297; } else { if (yych <= 'd') { - if (yych <= '`') goto yy3; - goto yy194; + if (yych <= '`') goto yy20; + goto yy298; } else { - if (yych <= 'e') goto yy393; - if (yych <= 'z') goto yy194; - goto yy3; + if (yych <= 'e') goto yy379; + if (yych <= 'z') goto yy298; + goto yy20; } } } -yy393: - YYDEBUG(393, *YYCURSOR); - yyaccept = 1; +yy188: + YYDEBUG(188, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'Q') { - if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy3; - } else { - if (yych == '.') goto yy3; - if (yych <= '/') goto yy189; - goto yy3; - } - } else { - if (yych <= '`') { - if (yych <= 'R') goto yy259; - if (yych == '_') goto yy189; - goto yy3; - } else { - if (yych == 'r') goto yy382; - if (yych <= 'z') goto yy195; - goto yy3; - } - } -yy394: - YYDEBUG(394, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'G') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'F') goto yy183; - goto yy402; + if (yych <= '.') { + if (yych <= ' ') { + if (yych == '\t') goto yy142; + if (yych <= 0x1F) goto yy20; + goto yy142; + } else { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy142; } } else { - if (yych <= 'f') { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - goto yy183; - } else { - if (yych <= 'g') goto yy402; - if (yych <= 'z') goto yy183; - goto yy3; - } - } -yy395: - YYDEBUG(395, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'R') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= 'H') { + if (yych <= '/') goto yy20; + if (yych <= '9') goto yy142; + if (yych <= '@') goto yy20; + goto yy291; } else { - if (yych <= '@') goto yy3; - if (yych <= 'Q') goto yy183; - goto yy399; - } - } else { - if (yych <= 'q') { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - goto yy183; - } else { - if (yych <= 'r') goto yy399; - if (yych <= 'z') goto yy183; - goto yy3; + if (yych <= 'Z') { + if (yych <= 'I') goto yy380; + goto yy291; + } else { + if (yych <= '`') goto yy20; + if (yych <= 'z') goto yy291; + goto yy20; + } } } -yy396: - YYDEBUG(396, *YYCURSOR); +yy189: + YYDEBUG(189, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= 'E') { + if (yych <= '@') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= '@') goto yy3; - if (yych <= 'N') goto yy183; + if (yych <= 'C') goto yy291; + if (yych <= 'D') goto yy381; + goto yy382; } } else { - if (yych <= 'n') { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - goto yy183; - } else { - if (yych <= 'o') goto yy397; - if (yych <= 'z') goto yy183; - goto yy3; - } - } -yy397: - YYDEBUG(397, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '@') { - if (yych == ')') goto yy181; - } else { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy398; - if (yych <= 'z') goto yy184; - } -yy398: - YYDEBUG(398, *YYCURSOR); -#line 1766 "ext/date/lib/parse_date.re" - { - DEBUG_OUTPUT("ago"); - TIMELIB_INIT; - s->time->relative.y = 0 - s->time->relative.y; - s->time->relative.m = 0 - s->time->relative.m; - s->time->relative.d = 0 - s->time->relative.d; - s->time->relative.h = 0 - s->time->relative.h; - s->time->relative.i = 0 - s->time->relative.i; - s->time->relative.s = 0 - s->time->relative.s; - s->time->relative.weekday = 0 - s->time->relative.weekday; - if (s->time->relative.weekday == 0) { - s->time->relative.weekday = -7; - } - if (s->time->relative.have_special_relative && s->time->relative.special.type == TIMELIB_SPECIAL_WEEKDAY) { - s->time->relative.special.amount = 0 - s->time->relative.special.amount; + if (yych <= 'c') { + if (yych <= 'Z') goto yy291; + if (yych <= '`') goto yy20; + goto yy291; + } else { + if (yych <= 'd') goto yy381; + if (yych <= 'e') goto yy382; + if (yych <= 'z') goto yy291; + goto yy20; } - TIMELIB_DEINIT; - return TIMELIB_AGO; } -#line 7018 "" -yy399: - YYDEBUG(399, *YYCURSOR); - yyaccept = 5; +yy190: + YYDEBUG(190, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych <= '(') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy248; - goto yy250; - } else { - if (yych == ' ') goto yy250; - goto yy248; - } + if (yych <= 'D') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= ',') { - if (yych <= ')') goto yy181; - goto yy248; + if (yych <= '/') { + if (yych <= '.') goto yy20; + goto yy297; } else { - if (yych <= '-') goto yy251; - if (yych <= '.') goto yy250; - goto yy248; + if (yych <= '@') goto yy20; + if (yych <= 'C') goto yy291; + goto yy381; } } } else { - if (yych <= 'Z') { - if (yych <= '@') { - if (yych <= '9') goto yy250; - goto yy248; + if (yych <= '`') { + if (yych <= 'Z') { + if (yych <= 'E') goto yy382; + goto yy291; } else { - if (yych != 'I') goto yy184; + if (yych == '_') goto yy297; + goto yy20; } } else { - if (yych <= 'h') { - if (yych <= '`') goto yy248; - goto yy184; + if (yych <= 'd') { + if (yych <= 'c') goto yy298; + goto yy383; } else { - if (yych <= 'i') goto yy400; - if (yych <= 'z') goto yy184; - goto yy248; + if (yych <= 'e') goto yy384; + if (yych <= 'z') goto yy298; + goto yy20; } } } -yy400: - YYDEBUG(400, *YYCURSOR); +yy191: + YYDEBUG(191, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'L') { + if (yych <= 'S') { if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= '@') goto yy3; - if (yych <= 'K') goto yy185; + if (yych <= '@') goto yy20; + if (yych <= 'R') goto yy291; + goto yy385; } } else { - if (yych <= 'k') { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy3; - goto yy185; - } else { - if (yych <= 'l') goto yy401; - if (yych <= 'z') goto yy185; - goto yy3; + if (yych <= 'r') { + if (yych <= 'Z') goto yy291; + if (yych <= '`') goto yy20; + goto yy291; + } else { + if (yych <= 's') goto yy385; + if (yych <= 'z') goto yy291; + goto yy20; } } -yy401: - YYDEBUG(401, *YYCURSOR); - yyaccept = 5; +yy192: + YYDEBUG(192, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ',') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy250; - goto yy248; + if (yych <= 'R') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= ' ') goto yy250; - if (yych == ')') goto yy181; - goto yy248; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy291; } } else { - if (yych <= '@') { - if (yych == '/') goto yy248; - if (yych <= '9') goto yy250; - goto yy248; + if (yych <= '_') { + if (yych <= 'S') goto yy385; + if (yych <= 'Z') goto yy291; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 'Z') goto yy186; - if (yych <= '`') goto yy248; - if (yych <= 'z') goto yy186; - goto yy248; + if (yych <= 'r') { + if (yych <= '`') goto yy20; + goto yy298; + } else { + if (yych <= 's') goto yy386; + if (yych <= 'z') goto yy298; + goto yy20; + } } } -yy402: - YYDEBUG(402, *YYCURSOR); - yyaccept = 5; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych <= '(') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy248; - goto yy250; +yy193: + YYDEBUG(193, *YYCURSOR); + yyaccept = 0; + YYMARKER = ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0xC2) goto yy387; + goto yy8; +yy194: + YYDEBUG(194, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0xAF) goto yy388; + goto yy59; +yy195: + YYDEBUG(195, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12); + yych = *YYCURSOR; +yy196: + YYDEBUG(196, *YYCURSOR); + if (yych <= 'X') { + if (yych <= 'G') { + if (yych <= ' ') { + if (yych == '\t') goto yy195; + if (yych <= 0x1F) goto yy59; + goto yy195; } else { - if (yych == ' ') goto yy250; - goto yy248; + if (yych <= 'D') { + if (yych <= 'C') goto yy59; + goto yy198; + } else { + if (yych == 'F') goto yy199; + goto yy59; + } } } else { - if (yych <= ',') { - if (yych <= ')') goto yy181; - goto yy248; + if (yych <= 'S') { + if (yych <= 'L') { + if (yych <= 'H') goto yy79; + goto yy59; + } else { + if (yych <= 'M') goto yy200; + if (yych <= 'R') goto yy59; + goto yy201; + } } else { - if (yych <= '-') goto yy251; - if (yych <= '.') goto yy250; - goto yy248; + if (yych <= 'U') { + if (yych <= 'T') goto yy87; + goto yy88; + } else { + if (yych == 'W') goto yy90; + goto yy59; + } } } } else { - if (yych <= 'Z') { - if (yych <= '@') { - if (yych <= '9') goto yy250; - goto yy248; + if (yych <= 'r') { + if (yych <= 'f') { + if (yych <= 'c') { + if (yych <= 'Y') goto yy92; + goto yy59; + } else { + if (yych <= 'd') goto yy198; + if (yych <= 'e') goto yy59; + goto yy199; + } } else { - if (yych != 'U') goto yy184; + if (yych <= 'h') { + if (yych <= 'g') goto yy59; + goto yy79; + } else { + if (yych == 'm') goto yy200; + goto yy59; + } } } else { - if (yych <= 't') { - if (yych <= '`') goto yy248; - goto yy184; + if (yych <= 'w') { + if (yych <= 't') { + if (yych <= 's') goto yy201; + goto yy87; + } else { + if (yych <= 'u') goto yy88; + if (yych <= 'v') goto yy59; + goto yy90; + } } else { - if (yych <= 'u') goto yy403; - if (yych <= 'z') goto yy184; - goto yy248; + if (yych <= 'y') { + if (yych <= 'x') goto yy59; + goto yy92; + } else { + if (yych == 0xC2) goto yy211; + goto yy59; + } } } } -yy403: - YYDEBUG(403, *YYCURSOR); +yy197: + YYDEBUG(197, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'S') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'R') goto yy185; - } + if (yych <= 0xC1) { + if (yych <= '/') goto yy196; + if (yych <= '9') goto yy389; + goto yy196; + } else { + if (yych <= 0xC2) goto yy97; + if (yych == 0xE2) goto yy98; + goto yy196; + } +yy198: + YYDEBUG(198, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy242; + if (yych == 'a') goto yy242; + goto yy59; +yy199: + YYDEBUG(199, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'R') { + if (yych == 'O') goto yy245; + if (yych <= 'Q') goto yy59; + goto yy246; } else { - if (yych <= 'r') { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy3; - goto yy185; + if (yych <= 'o') { + if (yych <= 'n') goto yy59; + goto yy245; } else { - if (yych <= 's') goto yy404; - if (yych <= 'z') goto yy185; - goto yy3; + if (yych == 'r') goto yy246; + goto yy59; } } -yy404: - YYDEBUG(404, *YYCURSOR); +yy200: + YYDEBUG(200, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= 'S') { + if (yych <= 'N') { + if (yych == 'I') goto yy257; + goto yy59; } else { - if (yych <= '@') goto yy3; - if (yych <= 'S') goto yy186; + if (yych <= 'O') goto yy258; + if (yych <= 'R') goto yy59; + goto yy259; } } else { - if (yych <= 's') { - if (yych <= 'Z') goto yy186; - if (yych <= '`') goto yy3; - goto yy186; + if (yych <= 'n') { + if (yych == 'i') goto yy257; + goto yy59; } else { - if (yych <= 't') goto yy405; - if (yych <= 'z') goto yy186; - goto yy3; + if (yych <= 'o') goto yy258; + if (yych == 's') goto yy259; + goto yy59; } } -yy405: - YYDEBUG(405, *YYCURSOR); - yyaccept = 5; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '(') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy248; - goto yy250; +yy201: + YYDEBUG(201, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych <= 'D') { + if (yych == 'A') goto yy263; + goto yy59; } else { - if (yych == ' ') goto yy250; - goto yy248; + if (yych <= 'E') goto yy390; + if (yych <= 'T') goto yy59; + goto yy265; } } else { - if (yych <= '.') { - if (yych <= ')') goto yy181; - if (yych <= ',') goto yy248; - goto yy250; + if (yych <= 'd') { + if (yych == 'a') goto yy263; + goto yy59; } else { - if (yych <= '/') goto yy248; - if (yych <= '9') goto yy250; - goto yy248; + if (yych <= 'e') goto yy390; + if (yych == 'u') goto yy265; + goto yy59; } } -yy406: - YYDEBUG(406, *YYCURSOR); - yyaccept = 1; +yy202: + YYDEBUG(202, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'F') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy183; - } - } else { - if (yych <= '_') { - if (yych <= 'G') goto yy402; - if (yych <= 'Z') goto yy183; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 'f') { - if (yych <= '`') goto yy3; - goto yy188; + if (yych <= 'W') { + if (yych <= 'D') { + if (yych <= '/') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy20; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy20; + } } else { - if (yych <= 'g') goto yy413; - if (yych <= 'z') goto yy188; - goto yy3; + if (yych <= '9') { + if (yych <= '5') goto yy391; + goto yy392; + } else { + if (yych <= ':') goto yy393; + if (yych <= 'C') goto yy20; + goto yy196; + } } - } - } -yy407: - YYDEBUG(407, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'Q') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy183; + if (yych <= 'L') { + if (yych <= 'F') { + if (yych <= 'E') goto yy20; + goto yy196; + } else { + if (yych == 'H') goto yy196; + goto yy20; + } + } else { + if (yych <= 'R') { + if (yych <= 'M') goto yy196; + goto yy20; + } else { + if (yych == 'V') goto yy20; + goto yy196; + } + } } } else { - if (yych <= '_') { - if (yych <= 'R') goto yy399; - if (yych <= 'Z') goto yy183; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'm') { + if (yych <= 'e') { + if (yych <= 'Y') { + if (yych <= 'X') goto yy20; + goto yy196; + } else { + if (yych == 'd') goto yy196; + goto yy20; + } + } else { + if (yych <= 'g') { + if (yych <= 'f') goto yy196; + goto yy20; + } else { + if (yych <= 'h') goto yy196; + if (yych <= 'l') goto yy20; + goto yy196; + } + } } else { - if (yych <= 'q') { - if (yych <= '`') goto yy3; - goto yy188; + if (yych <= 'x') { + if (yych <= 'u') { + if (yych <= 'r') goto yy20; + goto yy196; + } else { + if (yych == 'w') goto yy196; + goto yy20; + } } else { - if (yych <= 'r') goto yy410; - if (yych <= 'z') goto yy188; - goto yy3; + if (yych <= 0xC2) { + if (yych <= 'y') goto yy196; + if (yych <= 0xC1) goto yy20; + goto yy97; + } else { + if (yych == 0xE2) goto yy98; + goto yy20; + } } } } -yy408: - YYDEBUG(408, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'N') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy183; - } - } else { - if (yych <= '_') { - if (yych <= 'O') goto yy397; - if (yych <= 'Z') goto yy183; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 'n') { - if (yych <= '`') goto yy3; - goto yy188; +yy203: + YYDEBUG(203, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy394; + if (yych <= '9') goto yy115; + goto yy59; +yy204: + YYDEBUG(204, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'X') { + if (yych <= 'E') { + if (yych <= ' ') { + if (yych == '\t') goto yy196; + if (yych <= 0x1F) goto yy20; + goto yy196; } else { - if (yych <= 'o') goto yy409; - if (yych <= 'z') goto yy188; - goto yy3; + if (yych <= '9') { + if (yych <= '/') goto yy20; + goto yy392; + } else { + if (yych == 'D') goto yy196; + goto yy20; + } } - } - } -yy409: - YYDEBUG(409, *YYCURSOR); - yyaccept = 8; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy398; } else { - if (yych == '.') goto yy398; - goto yy189; + if (yych <= 'M') { + if (yych <= 'G') { + if (yych <= 'F') goto yy196; + goto yy20; + } else { + if (yych <= 'H') goto yy196; + if (yych <= 'L') goto yy20; + goto yy196; + } + } else { + if (yych <= 'U') { + if (yych <= 'R') goto yy20; + goto yy196; + } else { + if (yych == 'W') goto yy196; + goto yy20; + } + } } } else { - if (yych <= '^') { - if (yych <= '@') goto yy398; - if (yych <= 'Z') goto yy184; - goto yy398; - } else { - if (yych <= '_') goto yy189; - if (yych <= '`') goto yy398; - if (yych <= 'z') goto yy192; - goto yy398; + if (yych <= 'r') { + if (yych <= 'f') { + if (yych <= 'c') { + if (yych <= 'Y') goto yy196; + goto yy20; + } else { + if (yych == 'e') goto yy20; + goto yy196; + } + } else { + if (yych <= 'h') { + if (yych <= 'g') goto yy20; + goto yy196; + } else { + if (yych == 'm') goto yy196; + goto yy20; + } + } + } else { + if (yych <= 'y') { + if (yych <= 'v') { + if (yych <= 'u') goto yy196; + goto yy20; + } else { + if (yych == 'x') goto yy20; + goto yy196; + } + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy20; + goto yy97; + } else { + if (yych == 0xE2) goto yy98; + goto yy20; + } + } } } -yy410: - YYDEBUG(410, *YYCURSOR); - yyaccept = 5; +yy205: + YYDEBUG(205, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '9') { - if (yych <= '(') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy248; - goto yy250; + if (yych <= 'X') { + if (yych <= 'E') { + if (yych <= ' ') { + if (yych == '\t') goto yy196; + if (yych <= 0x1F) goto yy20; + goto yy196; } else { - if (yych == ' ') goto yy250; - goto yy248; + if (yych <= '9') { + if (yych <= '/') goto yy20; + goto yy395; + } else { + if (yych == 'D') goto yy196; + goto yy20; + } } } else { - if (yych <= '-') { - if (yych <= ')') goto yy181; - if (yych <= ',') goto yy248; - goto yy377; + if (yych <= 'M') { + if (yych <= 'G') { + if (yych <= 'F') goto yy196; + goto yy20; + } else { + if (yych <= 'H') goto yy196; + if (yych <= 'L') goto yy20; + goto yy196; + } } else { - if (yych == '/') goto yy189; - goto yy250; + if (yych <= 'U') { + if (yych <= 'R') goto yy20; + goto yy196; + } else { + if (yych == 'W') goto yy196; + goto yy20; + } } } } else { - if (yych <= '^') { - if (yych <= 'H') { - if (yych <= '@') goto yy248; - goto yy184; + if (yych <= 'r') { + if (yych <= 'f') { + if (yych <= 'c') { + if (yych <= 'Y') goto yy196; + goto yy20; + } else { + if (yych == 'e') goto yy20; + goto yy196; + } } else { - if (yych <= 'I') goto yy400; - if (yych <= 'Z') goto yy184; - goto yy248; + if (yych <= 'h') { + if (yych <= 'g') goto yy20; + goto yy196; + } else { + if (yych == 'm') goto yy196; + goto yy20; + } } } else { - if (yych <= 'h') { - if (yych <= '_') goto yy189; - if (yych <= '`') goto yy248; - goto yy192; - } else { - if (yych <= 'i') goto yy411; - if (yych <= 'z') goto yy192; - goto yy248; + if (yych <= 'y') { + if (yych <= 'v') { + if (yych <= 'u') goto yy196; + goto yy20; + } else { + if (yych == 'x') goto yy20; + goto yy196; + } + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy20; + goto yy97; + } else { + if (yych == 0xE2) goto yy98; + goto yy20; + } } } } -yy411: - YYDEBUG(411, *YYCURSOR); - yyaccept = 1; +yy206: + YYDEBUG(206, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 13) YYFILL(13); + yych = *YYCURSOR; +yy207: + YYDEBUG(207, *YYCURSOR); + switch (yych) { + case '\t': + case ' ': + case '-': + case '.': goto yy206; + case 'A': + case 'a': goto yy76; + case 'D': + case 'd': goto yy215; + case 'F': + case 'f': goto yy216; + case 'I': goto yy80; + case 'J': + case 'j': goto yy82; + case 'M': + case 'm': goto yy217; + case 'N': + case 'n': goto yy84; + case 'O': + case 'o': goto yy85; + case 'S': + case 's': goto yy218; + case 'V': goto yy89; + case 'X': goto yy91; + default: goto yy59; + } +yy208: + YYDEBUG(208, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '.') { + if (yych <= ',') goto yy59; + if (yych <= '-') goto yy396; + goto yy397; + } else { + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy210; + goto yy59; + } +yy209: + YYDEBUG(209, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '.') { + if (yych <= ',') goto yy59; + if (yych <= '-') goto yy396; + goto yy397; + } else { + if (yych <= '/') goto yy59; + if (yych >= '3') goto yy59; + } +yy210: + YYDEBUG(210, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= ',') goto yy59; + if (yych <= '-') goto yy396; + if (yych <= '.') goto yy397; + goto yy59; +yy211: + YYDEBUG(211, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 0xB5) goto yy274; + goto yy59; +yy212: + YYDEBUG(212, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '.') { + if (yych <= ',') goto yy59; + if (yych <= '-') goto yy398; + goto yy396; + } else { + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy214; + goto yy59; + } +yy213: + YYDEBUG(213, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '.') { + if (yych <= ',') goto yy59; + if (yych <= '-') goto yy398; + goto yy396; + } else { + if (yych <= '/') goto yy59; + if (yych >= '3') goto yy59; + } +yy214: + YYDEBUG(214, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= ',') goto yy59; + if (yych <= '-') goto yy398; + if (yych <= '.') goto yy396; + goto yy59; +yy215: + YYDEBUG(215, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy243; + if (yych == 'e') goto yy243; + goto yy59; +yy216: + YYDEBUG(216, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy244; + if (yych == 'e') goto yy244; + goto yy59; +yy217: + YYDEBUG(217, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy256; + if (yych == 'a') goto yy256; + goto yy59; +yy218: + YYDEBUG(218, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy399; + if (yych == 'e') goto yy399; + goto yy59; +yy219: + YYDEBUG(219, *YYCURSOR); + yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'K') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= '.') { + if (yych <= ',') goto yy177; + if (yych <= '-') goto yy396; + goto yy400; + } else { + if (yych <= '/') goto yy177; + if (yych <= '9') goto yy222; + if (yych <= ':') goto yy401; + goto yy177; + } +yy220: + YYDEBUG(220, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= ',') goto yy177; + if (yych <= '-') goto yy396; + if (yych <= '.') goto yy400; + goto yy177; + } else { + if (yych <= '2') goto yy222; + if (yych <= '9') goto yy239; + if (yych <= ':') goto yy401; + goto yy177; + } +yy221: + YYDEBUG(221, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= ',') goto yy177; + if (yych <= '-') goto yy396; + goto yy400; + } else { + if (yych <= '/') goto yy177; + if (yych <= '9') goto yy239; + if (yych <= ':') goto yy401; + goto yy177; + } +yy222: + YYDEBUG(222, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= ',') goto yy177; + if (yych <= '-') goto yy396; + goto yy400; + } else { + if (yych == ':') goto yy401; + goto yy177; + } +yy223: + YYDEBUG(223, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych <= '/') { + if (yych >= '/') goto yy402; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy185; + if (yych <= '9') goto yy226; + if (yych >= 'n') goto yy403; } } else { - if (yych <= '_') { - if (yych <= 'L') goto yy401; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'r') { + if (yych >= 'r') goto yy403; } else { - if (yych <= 'k') { - if (yych <= '`') goto yy3; - goto yy193; - } else { - if (yych <= 'l') goto yy412; - if (yych <= 'z') goto yy193; - goto yy3; - } + if (yych <= 's') goto yy404; + if (yych <= 't') goto yy405; } } -yy412: - YYDEBUG(412, *YYCURSOR); +yy224: + YYDEBUG(224, *YYCURSOR); +#line 1467 "ext/date/lib/parse_date.re" + { + int length = 0; + DEBUG_OUTPUT("americanshort | american"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->m = timelib_get_nr(&ptr, 2); + s->time->d = timelib_get_nr(&ptr, 2); + if (*ptr == '/') { + s->time->y = timelib_get_nr_ex(&ptr, 4, &length); + TIMELIB_PROCESS_YEAR(s->time->y, length); + } + TIMELIB_DEINIT; + return TIMELIB_AMERICAN; + } +#line 6944 "" +yy225: + YYDEBUG(225, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= ' ') { - if (yych == '\t') goto yy250; - if (yych <= 0x1F) goto yy248; - goto yy250; + if (yych <= 'n') { + if (yych <= '/') { + if (yych <= '.') goto yy224; + goto yy402; } else { - if (yych <= ')') { - if (yych <= '(') goto yy248; - goto yy181; - } else { - if (yych <= ',') goto yy248; - if (yych <= '-') goto yy383; - goto yy250; - } + if (yych <= '1') goto yy226; + if (yych <= 'm') goto yy224; + goto yy403; } } else { - if (yych <= 'Z') { - if (yych <= '/') goto yy189; - if (yych <= '9') goto yy250; - if (yych <= '@') goto yy248; - goto yy186; + if (yych <= 'r') { + if (yych <= 'q') goto yy224; + goto yy403; } else { - if (yych <= '_') { - if (yych <= '^') goto yy248; - goto yy189; - } else { - if (yych <= '`') goto yy248; - if (yych <= 'z') goto yy194; - goto yy248; - } + if (yych <= 's') goto yy404; + if (yych <= 't') goto yy405; + goto yy224; } } -yy413: - YYDEBUG(413, *YYCURSOR); +yy226: + YYDEBUG(226, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '9') { - if (yych <= '(') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy248; - goto yy250; - } else { - if (yych == ' ') goto yy250; - goto yy248; - } + if (yych <= 'n') { + if (yych == '/') goto yy402; + if (yych <= 'm') goto yy224; + goto yy403; + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy224; + goto yy403; } else { - if (yych <= '-') { - if (yych <= ')') goto yy181; - if (yych <= ',') goto yy248; - goto yy377; - } else { - if (yych == '/') goto yy189; - goto yy250; - } + if (yych <= 's') goto yy404; + if (yych <= 't') goto yy405; + goto yy224; } + } +yy227: + YYDEBUG(227, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych == 'P') goto yy406; + if (yych <= 'T') goto yy59; + goto yy407; } else { - if (yych <= '^') { - if (yych <= 'T') { - if (yych <= '@') goto yy248; - goto yy184; - } else { - if (yych <= 'U') goto yy403; - if (yych <= 'Z') goto yy184; - goto yy248; - } + if (yych <= 'p') { + if (yych <= 'o') goto yy59; + goto yy406; } else { - if (yych <= 't') { - if (yych <= '_') goto yy189; - if (yych <= '`') goto yy248; - goto yy192; - } else { - if (yych <= 'u') goto yy414; - if (yych <= 'z') goto yy192; - goto yy248; - } + if (yych == 'u') goto yy407; + goto yy59; } } -yy414: - YYDEBUG(414, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'R') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; +yy228: + YYDEBUG(228, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy408; + if (yych == 'e') goto yy408; + goto yy59; +yy229: + YYDEBUG(229, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy409; + if (yych == 'e') goto yy409; + goto yy59; +yy230: + YYDEBUG(230, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych == 'A') goto yy410; + if (yych <= 'T') goto yy59; + goto yy411; + } else { + if (yych <= 'a') { + if (yych <= '`') goto yy59; + goto yy410; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy185; + if (yych == 'u') goto yy411; + goto yy59; } - } else { - if (yych <= '_') { - if (yych <= 'S') goto yy404; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; + } +yy231: + YYDEBUG(231, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy412; + if (yych == 'a') goto yy412; + goto yy59; +yy232: + YYDEBUG(232, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy413; + if (yych == 'o') goto yy413; + goto yy59; +yy233: + YYDEBUG(233, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy414; + if (yych == 'c') goto yy414; + goto yy59; +yy234: + YYDEBUG(234, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy415; + if (yych == 'e') goto yy415; + goto yy59; +yy235: + YYDEBUG(235, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy207; + if (yych <= '0') goto yy416; + if (yych <= '1') goto yy417; + if (yych <= '9') goto yy214; + goto yy207; +yy236: + YYDEBUG(236, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '9') { + if (yych == '-') goto yy418; + if (yych <= '/') goto yy196; + goto yy419; + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy196; + goto yy97; } else { - if (yych <= 'r') { - if (yych <= '`') goto yy3; - goto yy193; - } else { - if (yych <= 's') goto yy415; - if (yych <= 'z') goto yy193; - goto yy3; - } + if (yych == 0xE2) goto yy98; + goto yy196; } } -yy415: - YYDEBUG(415, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'S') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; +yy237: + YYDEBUG(237, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '9') { + if (yych == '-') goto yy418; + if (yych <= '/') goto yy196; + goto yy421; + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy196; + goto yy97; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy186; + if (yych == 0xE2) goto yy98; + goto yy196; } + } +yy238: + YYDEBUG(238, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy401; + goto yy177; } else { - if (yych <= '_') { - if (yych <= 'T') goto yy405; - if (yych <= 'Z') goto yy186; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= '9') goto yy239; + if (yych <= ':') goto yy401; + goto yy177; + } +yy239: + YYDEBUG(239, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy401; + if (yych == ':') goto yy401; + goto yy177; +yy240: + YYDEBUG(240, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy423; + if (yych == 'r') goto yy423; + goto yy59; +yy241: + YYDEBUG(241, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'G') goto yy424; + if (yych == 'g') goto yy424; + goto yy59; +yy242: + YYDEBUG(242, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy425; + if (yych == 'y') goto yy425; + goto yy59; +yy243: + YYDEBUG(243, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy426; + if (yych == 'c') goto yy426; + goto yy59; +yy244: + YYDEBUG(244, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy427; + if (yych == 'b') goto yy427; + goto yy59; +yy245: + YYDEBUG(245, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy428; + if (yych == 'r') goto yy428; + goto yy59; +yy246: + YYDEBUG(246, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy429; + if (yych == 'i') goto yy429; + goto yy59; +yy247: + YYDEBUG(247, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'U') goto yy430; + if (yych == 'u') goto yy430; + goto yy59; +yy248: + YYDEBUG(248, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4); + yych = *YYCURSOR; + YYDEBUG(249, *YYCURSOR); + if (yych <= ' ') { + if (yych == '\t') goto yy248; + if (yych <= 0x1F) goto yy59; + goto yy248; + } else { + if (yych <= '.') { + if (yych <= ',') goto yy59; + goto yy248; } else { - if (yych <= 's') { - if (yych <= '`') goto yy3; - goto yy194; - } else { - if (yych <= 't') goto yy416; - if (yych <= 'z') goto yy194; - goto yy3; - } + if (yych <= '/') goto yy59; + if (yych >= ':') goto yy59; } } -yy416: - YYDEBUG(416, *YYCURSOR); - yyaccept = 5; - yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 8) { - goto yy195; +yy250: + YYDEBUG(250, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy251; + if (yych <= '9') goto yy431; +yy251: + YYDEBUG(251, *YYCURSOR); +#line 1549 "ext/date/lib/parse_date.re" + { + int length = 0; + DEBUG_OUTPUT("datefull"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->d = timelib_get_nr(&ptr, 2); + timelib_skip_day_suffix(&ptr); + s->time->m = timelib_get_month(&ptr); + s->time->y = timelib_get_nr_ex(&ptr, 4, &length); + TIMELIB_PROCESS_YEAR(s->time->y, length); + TIMELIB_DEINIT; + return TIMELIB_DATE_FULL; } +#line 7201 "" +yy252: + YYDEBUG(252, *YYCURSOR); + yyaccept = 3; + yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy250; + if (yych <= '\t') { + if (yych <= 0x08) goto yy81; goto yy248; } else { - if (yych <= ' ') goto yy250; - if (yych == ')') goto yy181; - goto yy248; + if (yych == ' ') goto yy248; + goto yy81; } } else { - if (yych <= '/') { - if (yych <= '-') goto yy383; - if (yych <= '.') goto yy250; - goto yy189; + if (yych <= '9') { + if (yych <= '.') goto yy248; + if (yych <= '/') goto yy81; + goto yy250; } else { - if (yych <= '9') goto yy250; - if (yych == '_') goto yy189; + if (yych != 'I') goto yy81; + } + } +yy253: + YYDEBUG(253, *YYCURSOR); + yyaccept = 3; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ' ') { + if (yych == '\t') goto yy248; + if (yych <= 0x1F) goto yy81; + goto yy248; + } else { + if (yych <= '.') { + if (yych <= ',') goto yy81; goto yy248; + } else { + if (yych <= '/') goto yy81; + if (yych <= '9') goto yy250; + goto yy81; } } -yy417: - YYDEBUG(417, *YYCURSOR); +yy254: + YYDEBUG(254, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy432; + if (yych == 'n') goto yy432; + goto yy59; +yy255: + YYDEBUG(255, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'N') { - if (yych <= '@') { - if (yych == ')') goto yy181; - goto yy3; + if (yych == 'L') goto yy433; + if (yych <= 'M') goto yy59; + goto yy434; + } else { + if (yych <= 'l') { + if (yych <= 'k') goto yy59; + goto yy433; } else { - if (yych == 'L') goto yy424; - if (yych <= 'M') goto yy183; - goto yy423; + if (yych == 'n') goto yy434; + goto yy59; } + } +yy256: + YYDEBUG(256, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'Y') { + if (yych == 'R') goto yy435; + if (yych <= 'X') goto yy59; + goto yy253; } else { - if (yych <= 'l') { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - if (yych <= 'k') goto yy183; - goto yy424; - } else { - if (yych == 'n') goto yy423; - if (yych <= 'z') goto yy183; - goto yy3; + if (yych <= 'r') { + if (yych <= 'q') goto yy59; + goto yy435; + } else { + if (yych == 'y') goto yy253; + goto yy59; } } -yy418: - YYDEBUG(418, *YYCURSOR); +yy257: + YYDEBUG(257, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'N') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= 'K') { + if (yych == 'C') goto yy436; + goto yy59; } else { - if (yych <= '@') goto yy3; - if (yych <= 'M') goto yy183; + if (yych <= 'L') goto yy437; + if (yych <= 'M') goto yy59; + goto yy438; } } else { - if (yych <= 'm') { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - goto yy183; - } else { - if (yych <= 'n') goto yy419; - if (yych <= 'z') goto yy183; - goto yy3; + if (yych <= 'k') { + if (yych == 'c') goto yy436; + goto yy59; + } else { + if (yych <= 'l') goto yy437; + if (yych == 'n') goto yy438; + goto yy59; } } -yy419: - YYDEBUG(419, *YYCURSOR); - yyaccept = 5; +yy258: + YYDEBUG(258, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy439; + if (yych == 'n') goto yy439; + goto yy59; +yy259: + YYDEBUG(259, *YYCURSOR); + yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych <= '(') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy248; - goto yy250; - } else { - if (yych == ' ') goto yy250; - goto yy248; - } + if (yych == 'E') goto yy440; + if (yych == 'e') goto yy440; +yy260: + YYDEBUG(260, *YYCURSOR); +#line 1954 "ext/date/lib/parse_date.re" + { + timelib_ull i; + DEBUG_OUTPUT("relative"); + TIMELIB_INIT; + TIMELIB_HAVE_RELATIVE(); + + while(*ptr) { + i = timelib_get_signed_nr(s, &ptr, 24); + timelib_eat_spaces(&ptr); + timelib_set_relative(&ptr, i, 1, s, TIMELIB_TIME_PART_KEEP); + } + TIMELIB_DEINIT; + return TIMELIB_RELATIVE; + } +#line 7330 "" +yy261: + YYDEBUG(261, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'V') goto yy426; + if (yych == 'v') goto yy426; + goto yy59; +yy262: + YYDEBUG(262, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy441; + if (yych == 't') goto yy441; + goto yy59; +yy263: + YYDEBUG(263, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy442; + if (yych == 't') goto yy442; + goto yy59; +yy264: + YYDEBUG(264, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'P') { + if (yych == 'C') goto yy443; + if (yych <= 'O') goto yy59; + goto yy444; + } else { + if (yych <= 'c') { + if (yych <= 'b') goto yy59; + goto yy443; } else { - if (yych <= ',') { - if (yych <= ')') goto yy181; - goto yy248; + if (yych == 'p') goto yy444; + goto yy59; + } + } +yy265: + YYDEBUG(265, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy429; + if (yych == 'n') goto yy429; + goto yy59; +yy266: + YYDEBUG(266, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'U') goto yy445; + if (yych == 'u') goto yy445; + goto yy59; +yy267: + YYDEBUG(267, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy446; + if (yych == 'e') goto yy446; + goto yy59; +yy268: + YYDEBUG(268, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy440; + if (yych == 'e') goto yy440; + goto yy59; +yy269: + YYDEBUG(269, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'E') { + if (yych <= 'C') goto yy59; + if (yych <= 'D') goto yy447; + goto yy448; + } else { + if (yych <= 'c') goto yy59; + if (yych <= 'd') goto yy447; + if (yych <= 'e') goto yy448; + goto yy59; + } +yy270: + YYDEBUG(270, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy430; + if (yych == 'a') goto yy430; + goto yy59; +yy271: + YYDEBUG(271, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= ',') { + if (yych == '\t') goto yy287; + goto yy207; + } else { + if (yych <= '-') goto yy449; + if (yych <= '.') goto yy287; + if (yych <= '/') goto yy280; + goto yy207; + } +yy272: + YYDEBUG(272, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '.') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy207; + goto yy287; + } else { + if (yych <= ',') goto yy207; + if (yych <= '-') goto yy449; + goto yy287; + } + } else { + if (yych <= 'U') { + if (yych <= '/') goto yy280; + if (yych <= 'T') goto yy207; + goto yy445; + } else { + if (yych == 'u') goto yy445; + goto yy207; + } + } +yy273: + YYDEBUG(273, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12); + yych = *YYCURSOR; + if (yych <= 'c') { + if (yych <= 'M') { + if (yych <= 'F') { + if (yych == 'D') goto yy198; + if (yych <= 'E') goto yy59; + goto yy199; + } else { + if (yych == 'H') goto yy79; + if (yych <= 'L') goto yy59; + goto yy200; + } + } else { + if (yych <= 'U') { + if (yych <= 'R') goto yy59; + if (yych <= 'S') goto yy201; + if (yych <= 'T') goto yy87; + goto yy88; } else { - if (yych <= '-') goto yy251; - if (yych <= '.') goto yy250; - goto yy248; + if (yych <= 'W') { + if (yych <= 'V') goto yy59; + goto yy90; + } else { + if (yych == 'Y') goto yy92; + goto yy59; + } } } } else { - if (yych <= 'Z') { - if (yych <= '@') { - if (yych <= '9') goto yy250; - goto yy248; + if (yych <= 's') { + if (yych <= 'g') { + if (yych <= 'd') goto yy198; + if (yych == 'f') goto yy199; + goto yy59; } else { - if (yych != 'U') goto yy184; + if (yych <= 'l') { + if (yych <= 'h') goto yy79; + goto yy59; + } else { + if (yych <= 'm') goto yy200; + if (yych <= 'r') goto yy59; + goto yy201; + } } } else { - if (yych <= 't') { - if (yych <= '`') goto yy248; - goto yy184; + if (yych <= 'w') { + if (yych <= 't') goto yy87; + if (yych <= 'u') goto yy88; + if (yych <= 'v') goto yy59; + goto yy90; } else { - if (yych <= 'u') goto yy420; - if (yych <= 'z') goto yy184; - goto yy248; + if (yych <= 'y') { + if (yych <= 'x') goto yy59; + goto yy92; + } else { + if (yych == 0xC2) goto yy97; + goto yy59; + } } } } -yy420: - YYDEBUG(420, *YYCURSOR); +yy274: + YYDEBUG(274, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'A') { - if (yych == ')') goto yy181; - if (yych <= '@') goto yy3; + if (yych == 'S') goto yy259; + if (yych == 's') goto yy259; + goto yy59; +yy275: + YYDEBUG(275, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0xAF) goto yy450; + goto yy59; +yy276: + YYDEBUG(276, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= ',') goto yy177; + if (yych <= '-') goto yy396; + goto yy451; + } else { + if (yych <= '/') goto yy177; + if (yych <= '9') goto yy452; + if (yych <= ':') goto yy453; + goto yy177; + } +yy277: + YYDEBUG(277, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= ',') goto yy177; + if (yych <= '-') goto yy396; + if (yych <= '.') goto yy451; + goto yy177; + } else { + if (yych <= '2') goto yy452; + if (yych <= '9') goto yy454; + if (yych <= ':') goto yy453; + goto yy177; + } +yy278: + YYDEBUG(278, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= ',') goto yy177; + if (yych <= '-') goto yy396; + goto yy451; + } else { + if (yych <= '/') goto yy177; + if (yych <= '9') goto yy454; + if (yych <= ':') goto yy453; + goto yy177; + } +yy279: + YYDEBUG(279, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= ',') goto yy177; + if (yych <= '-') goto yy396; + goto yy451; } else { - if (yych <= '`') { - if (yych <= 'Z') goto yy185; - goto yy3; - } else { - if (yych <= 'a') goto yy421; - if (yych <= 'z') goto yy185; - goto yy3; - } + if (yych == ':') goto yy453; + goto yy177; } -yy421: - YYDEBUG(421, *YYCURSOR); +yy280: + YYDEBUG(280, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'R') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + switch (yych) { + case 'A': + case 'a': goto yy227; + case 'D': + case 'd': goto yy228; + case 'F': + case 'f': goto yy229; + case 'J': + case 'j': goto yy230; + case 'M': + case 'm': goto yy231; + case 'N': + case 'n': goto yy232; + case 'O': + case 'o': goto yy233; + case 'S': + case 's': goto yy234; + default: goto yy59; + } +yy281: + YYDEBUG(281, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy453; + goto yy177; + } else { + if (yych <= '9') goto yy455; + if (yych <= ':') goto yy453; + goto yy177; + } +yy282: + YYDEBUG(282, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy453; + if (yych == ':') goto yy453; + goto yy177; +yy283: + YYDEBUG(283, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy284; + if (yych != 'm') goto yy59; +yy284: + YYDEBUG(284, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 0x1F) { + if (yych <= 0x00) goto yy456; + if (yych == '\t') goto yy456; + goto yy59; + } else { + if (yych <= ' ') goto yy456; + if (yych == '.') goto yy458; + goto yy59; + } +yy285: + YYDEBUG(285, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12); + yych = *YYCURSOR; + if (yych <= '`') { + if (yych <= 'M') { + if (yych <= 'E') { + if (yych <= 'A') { + if (yych <= '@') goto yy59; + goto yy106; + } else { + if (yych == 'D') goto yy198; + goto yy59; + } + } else { + if (yych <= 'G') { + if (yych <= 'F') goto yy199; + goto yy59; + } else { + if (yych <= 'H') goto yy79; + if (yych <= 'L') goto yy59; + goto yy200; + } + } } else { - if (yych <= '@') goto yy3; - if (yych <= 'Q') goto yy186; + if (yych <= 'T') { + if (yych <= 'P') { + if (yych <= 'O') goto yy59; + goto yy106; + } else { + if (yych <= 'R') goto yy59; + if (yych <= 'S') goto yy201; + goto yy87; + } + } else { + if (yych <= 'W') { + if (yych <= 'U') goto yy88; + if (yych <= 'V') goto yy59; + goto yy90; + } else { + if (yych == 'Y') goto yy92; + goto yy59; + } + } } } else { - if (yych <= 'q') { - if (yych <= 'Z') goto yy186; - if (yych <= '`') goto yy3; - goto yy186; - } else { - if (yych <= 'r') goto yy422; - if (yych <= 'z') goto yy186; - goto yy3; + if (yych <= 'p') { + if (yych <= 'f') { + if (yych <= 'c') { + if (yych <= 'a') goto yy106; + goto yy59; + } else { + if (yych <= 'd') goto yy198; + if (yych <= 'e') goto yy59; + goto yy199; + } + } else { + if (yych <= 'l') { + if (yych == 'h') goto yy79; + goto yy59; + } else { + if (yych <= 'm') goto yy200; + if (yych <= 'o') goto yy59; + goto yy106; + } + } + } else { + if (yych <= 'v') { + if (yych <= 's') { + if (yych <= 'r') goto yy59; + goto yy201; + } else { + if (yych <= 't') goto yy87; + if (yych <= 'u') goto yy88; + goto yy59; + } + } else { + if (yych <= 'y') { + if (yych <= 'w') goto yy90; + if (yych <= 'x') goto yy59; + goto yy92; + } else { + if (yych == 0xC2) goto yy107; + goto yy59; + } + } } } -yy422: - YYDEBUG(422, *YYCURSOR); +yy286: + YYDEBUG(286, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0xAF) goto yy459; + goto yy59; +yy287: + YYDEBUG(287, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'X') { - if (yych == ')') goto yy181; - goto yy3; + if (yych <= '/') goto yy207; + if (yych <= '0') goto yy208; + if (yych <= '1') goto yy209; + if (yych <= '9') goto yy210; + goto yy207; +yy288: + YYDEBUG(288, *YYCURSOR); + yych = *++YYCURSOR; + switch (yych) { + case '0': goto yy460; + case '1': goto yy461; + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy462; + case 'A': + case 'a': goto yy463; + case 'D': + case 'd': goto yy464; + case 'F': + case 'f': goto yy465; + case 'J': + case 'j': goto yy466; + case 'M': + case 'm': goto yy467; + case 'N': + case 'n': goto yy468; + case 'O': + case 'o': goto yy469; + case 'S': + case 's': goto yy470; + default: goto yy59; + } +yy289: + YYDEBUG(289, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy290; + if (yych <= '9') goto yy471; +yy290: + YYDEBUG(290, *YYCURSOR); +#line 1233 "ext/date/lib/parse_date.re" + { + timelib_sll i; + timelib_ull us; + const char *ptr_before; + bool is_negative; + + TIMELIB_INIT; + TIMELIB_HAVE_RELATIVE(); + TIMELIB_UNHAVE_DATE(); + TIMELIB_UNHAVE_TIME(); + TIMELIB_HAVE_TZ(); + + is_negative = *(ptr + 1) == '-'; + + i = timelib_get_signed_nr(s, &ptr, 24); + + ptr_before = ptr; + us = timelib_get_signed_nr(s, &ptr, 6); + us = us * pow(10, 7 - (ptr - ptr_before)); + if (is_negative) { + us *= -1; + } + + s->time->y = 1970; + s->time->m = 1; + s->time->d = 1; + s->time->h = s->time->i = s->time->s = 0; + s->time->us = 0; + s->time->relative.s += i; + s->time->relative.us = us; + s->time->is_localtime = 1; + s->time->zone_type = TIMELIB_ZONETYPE_OFFSET; + s->time->z = 0; + s->time->dst = 0; + + TIMELIB_DEINIT; + return TIMELIB_RELATIVE; + } +#line 7815 "" +yy291: + YYDEBUG(291, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '@') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= 'Y') goto yy259; - if (yych == 'y') goto yy259; - goto yy3; + if (yych <= 'Z') goto yy472; + if (yych <= '`') goto yy20; + if (yych <= 'z') goto yy472; + goto yy20; } -yy423: - YYDEBUG(423, *YYCURSOR); - yyaccept = 5; +yy292: + YYDEBUG(292, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '@') { + if (yych == ')') goto yy115; + } else { + if (yych <= 'Z') goto yy472; + if (yych <= '`') goto yy293; + if (yych <= 'z') goto yy472; + } +yy293: + YYDEBUG(293, *YYCURSOR); +#line 1795 "ext/date/lib/parse_date.re" + { + DEBUG_OUTPUT("ago"); + TIMELIB_INIT; + s->time->relative.y = 0 - s->time->relative.y; + s->time->relative.m = 0 - s->time->relative.m; + s->time->relative.d = 0 - s->time->relative.d; + s->time->relative.h = 0 - s->time->relative.h; + s->time->relative.i = 0 - s->time->relative.i; + s->time->relative.s = 0 - s->time->relative.s; + s->time->relative.weekday = 0 - s->time->relative.weekday; + if (s->time->relative.weekday == 0) { + s->time->relative.weekday = -7; + } + if (s->time->relative.have_special_relative && s->time->relative.special.type == TIMELIB_SPECIAL_WEEKDAY) { + s->time->relative.special.amount = 0 - s->time->relative.special.amount; + } + TIMELIB_DEINIT; + return TIMELIB_AGO; + } +#line 7860 "" +yy294: + YYDEBUG(294, *YYCURSOR); + yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy248; - goto yy250; + if (yych >= '\t') goto yy142; } else { - if (yych == ' ') goto yy250; - goto yy248; + if (yych == ' ') goto yy142; } } else { if (yych <= ',') { - if (yych <= ')') goto yy181; - goto yy248; + if (yych <= ')') goto yy115; } else { - if (yych <= '-') goto yy251; - if (yych <= '.') goto yy250; - goto yy248; + if (yych <= '-') goto yy473; + if (yych <= '.') goto yy142; } } } else { if (yych <= 'Z') { if (yych <= '@') { - if (yych <= '9') goto yy250; - goto yy248; + if (yych <= '9') goto yy142; } else { - if (yych == 'E') goto yy425; - goto yy184; + if (yych == 'I') goto yy474; + goto yy472; } } else { - if (yych <= 'd') { - if (yych <= '`') goto yy248; - goto yy184; + if (yych <= 'h') { + if (yych >= 'a') goto yy472; } else { - if (yych <= 'e') goto yy425; - if (yych <= 'z') goto yy184; - goto yy248; + if (yych <= 'i') goto yy474; + if (yych <= 'z') goto yy472; } } } -yy424: - YYDEBUG(424, *YYCURSOR); - yyaccept = 5; +yy295: + YYDEBUG(295, *YYCURSOR); +#line 1875 "ext/date/lib/parse_date.re" + { + DEBUG_OUTPUT("monthtext"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->m = timelib_lookup_month(&ptr); + TIMELIB_DEINIT; + return TIMELIB_DATE_TEXT; + } +#line 7908 "" +yy296: + YYDEBUG(296, *YYCURSOR); + yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy248; - goto yy250; + if (yych <= 0x08) goto yy295; + goto yy142; } else { - if (yych == ' ') goto yy250; - goto yy248; + if (yych == ' ') goto yy142; + goto yy295; } } else { if (yych <= ',') { - if (yych <= ')') goto yy181; - goto yy248; + if (yych <= ')') goto yy115; + goto yy295; } else { - if (yych <= '-') goto yy251; - if (yych <= '.') goto yy250; - goto yy248; + if (yych <= '-') goto yy473; + if (yych <= '.') goto yy142; + goto yy295; } } } else { if (yych <= 'Z') { if (yych <= '@') { - if (yych <= '9') goto yy250; - goto yy248; + if (yych <= '9') goto yy142; + goto yy295; } else { - if (yych != 'Y') goto yy184; + if (yych == 'U') goto yy475; + goto yy472; } } else { - if (yych <= 'x') { - if (yych <= '`') goto yy248; - goto yy184; + if (yych <= 't') { + if (yych <= '`') goto yy295; + goto yy472; } else { - if (yych <= 'y') goto yy425; - if (yych <= 'z') goto yy184; - goto yy248; + if (yych <= 'u') goto yy475; + if (yych <= 'z') goto yy472; + goto yy295; } } } -yy425: - YYDEBUG(425, *YYCURSOR); - yyaccept = 5; +yy297: + YYDEBUG(297, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yybm[0+yych] & 64) { + goto yy476; + } + goto yy59; +yy298: + YYDEBUG(298, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ',') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy250; - goto yy248; + if (yych <= '/') { + if (yych <= ',') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= ' ') goto yy250; - if (yych == ')') goto yy181; - goto yy248; + if (yych == '.') goto yy20; + goto yy297; } } else { - if (yych <= '@') { - if (yych == '/') goto yy248; - if (yych <= '9') goto yy250; - goto yy248; + if (yych <= '^') { + if (yych <= '@') goto yy20; + if (yych <= 'Z') goto yy472; + goto yy20; + } else { + if (yych <= '_') goto yy297; + if (yych <= '`') goto yy20; + if (yych <= 'z') goto yy478; + goto yy20; + } + } +yy299: + YYDEBUG(299, *YYCURSOR); + yyaccept = 8; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= ',') { + if (yych == ')') goto yy115; + goto yy293; } else { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy248; - if (yych <= 'z') goto yy185; - goto yy248; + if (yych == '.') goto yy293; + goto yy297; + } + } else { + if (yych <= '^') { + if (yych <= '@') goto yy293; + if (yych <= 'Z') goto yy472; + goto yy293; + } else { + if (yych <= '_') goto yy297; + if (yych <= '`') goto yy293; + if (yych <= 'z') goto yy478; + goto yy293; } } -yy426: - YYDEBUG(426, *YYCURSOR); - yyaccept = 1; +yy300: + YYDEBUG(300, *YYCURSOR); + yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'M') { - if (yych <= '.') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= '9') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy295; + goto yy142; } else { - if (yych == '-') goto yy189; - goto yy3; + if (yych == ' ') goto yy142; + goto yy295; } } else { - if (yych <= '@') { - if (yych <= '/') goto yy189; - goto yy3; + if (yych <= '-') { + if (yych <= ')') goto yy115; + if (yych <= ',') goto yy295; + goto yy479; } else { - if (yych == 'L') goto yy424; - goto yy183; + if (yych == '/') goto yy297; + goto yy142; } } } else { - if (yych <= '`') { - if (yych <= 'Z') { - if (yych <= 'N') goto yy423; - goto yy183; + if (yych <= '^') { + if (yych <= 'H') { + if (yych <= '@') goto yy295; + goto yy472; } else { - if (yych == '_') goto yy189; - goto yy3; + if (yych <= 'I') goto yy474; + if (yych <= 'Z') goto yy472; + goto yy295; } } else { - if (yych <= 'm') { - if (yych == 'l') goto yy433; - goto yy188; + if (yych <= 'h') { + if (yych <= '_') goto yy297; + if (yych <= '`') goto yy295; + goto yy478; } else { - if (yych <= 'n') goto yy432; - if (yych <= 'z') goto yy188; - goto yy3; + if (yych <= 'i') goto yy480; + if (yych <= 'z') goto yy478; + goto yy295; } } } -yy427: - YYDEBUG(427, *YYCURSOR); - yyaccept = 1; +yy301: + YYDEBUG(301, *YYCURSOR); + yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'M') { + if (yych <= '9') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy295; + goto yy142; + } else { + if (yych == ' ') goto yy142; + goto yy295; + } + } else { + if (yych <= '-') { + if (yych <= ')') goto yy115; + if (yych <= ',') goto yy295; + goto yy479; + } else { + if (yych == '/') goto yy297; + goto yy142; + } + } + } else { + if (yych <= '^') { + if (yych <= 'T') { + if (yych <= '@') goto yy295; + goto yy472; + } else { + if (yych <= 'U') goto yy475; + if (yych <= 'Z') goto yy472; + goto yy295; + } + } else { + if (yych <= 't') { + if (yych <= '_') goto yy297; + if (yych <= '`') goto yy295; + goto yy478; + } else { + if (yych <= 'u') goto yy481; + if (yych <= 'z') goto yy478; + goto yy295; + } + } + } +yy302: + YYDEBUG(302, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'K') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; + } else { + if (yych <= '@') goto yy20; + if (yych <= 'J') goto yy472; + goto yy482; + } + } else { + if (yych <= 'j') { + if (yych <= 'Z') goto yy472; + if (yych <= '`') goto yy20; + goto yy472; + } else { + if (yych <= 'k') goto yy482; + if (yych <= 'z') goto yy472; + goto yy20; + } + } +yy303: + YYDEBUG(303, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'J') { if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy183; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy472; } } else { if (yych <= '_') { - if (yych <= 'N') goto yy419; - if (yych <= 'Z') goto yy183; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'K') goto yy482; + if (yych <= 'Z') goto yy472; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 'm') { - if (yych <= '`') goto yy3; - goto yy188; + if (yych <= 'j') { + if (yych <= '`') goto yy20; + goto yy478; } else { - if (yych <= 'n') goto yy428; - if (yych <= 'z') goto yy188; - goto yy3; + if (yych <= 'k') goto yy483; + if (yych <= 'z') goto yy478; + goto yy20; } } } -yy428: - YYDEBUG(428, *YYCURSOR); - yyaccept = 5; +yy304: + YYDEBUG(304, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy295; + goto yy142; + } else { + if (yych == ' ') goto yy142; + goto yy295; + } + } else { + if (yych <= ',') { + if (yych <= ')') goto yy115; + goto yy295; + } else { + if (yych <= '-') goto yy473; + if (yych <= '.') goto yy142; + goto yy295; + } + } + } else { + if (yych <= 'Z') { + if (yych <= '@') { + if (yych <= '9') goto yy142; + goto yy295; + } else { + if (yych == 'E') goto yy484; + goto yy472; + } + } else { + if (yych <= 'd') { + if (yych <= '`') goto yy295; + goto yy472; + } else { + if (yych <= 'e') goto yy484; + if (yych <= 'z') goto yy472; + goto yy295; + } + } + } +yy305: + YYDEBUG(305, *YYCURSOR); + yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy248; - goto yy250; + if (yych <= 0x08) goto yy295; + goto yy142; } else { - if (yych == ' ') goto yy250; - goto yy248; + if (yych == ' ') goto yy142; + goto yy295; } } else { if (yych <= '-') { - if (yych <= ')') goto yy181; - if (yych <= ',') goto yy248; - goto yy377; + if (yych <= ')') goto yy115; + if (yych <= ',') goto yy295; + goto yy479; } else { - if (yych == '/') goto yy189; - goto yy250; + if (yych == '/') goto yy297; + goto yy142; } } } else { if (yych <= '^') { - if (yych <= 'T') { - if (yych <= '@') goto yy248; - goto yy184; + if (yych <= 'D') { + if (yych <= '@') goto yy295; + goto yy472; } else { - if (yych <= 'U') goto yy420; - if (yych <= 'Z') goto yy184; - goto yy248; + if (yych <= 'E') goto yy484; + if (yych <= 'Z') goto yy472; + goto yy295; } } else { - if (yych <= 't') { - if (yych <= '_') goto yy189; - if (yych <= '`') goto yy248; - goto yy192; - } else { - if (yych <= 'u') goto yy429; - if (yych <= 'z') goto yy192; - goto yy248; + if (yych <= 'd') { + if (yych <= '_') goto yy297; + if (yych <= '`') goto yy295; + goto yy478; + } else { + if (yych <= 'e') goto yy485; + if (yych <= 'z') goto yy478; + goto yy295; } } } -yy429: - YYDEBUG(429, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '@') { - if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy3; +yy306: + YYDEBUG(306, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'H') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych == '.') goto yy3; - if (yych <= '/') goto yy189; - goto yy3; + if (yych <= '@') goto yy20; + if (yych <= 'G') goto yy472; + goto yy486; } } else { - if (yych <= '_') { - if (yych <= 'A') goto yy421; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'g') { + if (yych <= 'Z') goto yy472; + if (yych <= '`') goto yy20; + goto yy472; } else { - if (yych <= '`') goto yy3; - if (yych <= 'a') goto yy430; - if (yych <= 'z') goto yy193; - goto yy3; + if (yych <= 'h') goto yy486; + if (yych <= 'z') goto yy472; + goto yy20; } } -yy430: - YYDEBUG(430, *YYCURSOR); - yyaccept = 1; +yy307: + YYDEBUG(307, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'V') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; + } else { + if (yych <= '@') goto yy20; + if (yych <= 'U') goto yy472; + goto yy487; + } + } else { + if (yych <= 'u') { + if (yych <= 'Z') goto yy472; + if (yych <= '`') goto yy20; + goto yy472; + } else { + if (yych <= 'v') goto yy487; + if (yych <= 'z') goto yy472; + goto yy20; + } + } +yy308: + YYDEBUG(308, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'Q') { + if (yych <= 'G') { if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy186; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy472; } } else { if (yych <= '_') { - if (yych <= 'R') goto yy422; - if (yych <= 'Z') goto yy186; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'H') goto yy486; + if (yych <= 'Z') goto yy472; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 'q') { - if (yych <= '`') goto yy3; - goto yy194; + if (yych <= 'g') { + if (yych <= '`') goto yy20; + goto yy478; } else { - if (yych <= 'r') goto yy431; - if (yych <= 'z') goto yy194; - goto yy3; + if (yych <= 'h') goto yy488; + if (yych <= 'z') goto yy478; + goto yy20; } } } -yy431: - YYDEBUG(431, *YYCURSOR); - yyaccept = 1; +yy309: + YYDEBUG(309, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'X') { - if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy3; + if (yych <= 'U') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == '.') goto yy3; - if (yych <= '/') goto yy189; - goto yy3; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy472; } } else { - if (yych <= '`') { - if (yych <= 'Y') goto yy259; - if (yych == '_') goto yy189; - goto yy3; - } else { - if (yych == 'y') goto yy382; - if (yych <= 'z') goto yy195; - goto yy3; + if (yych <= '_') { + if (yych <= 'V') goto yy487; + if (yych <= 'Z') goto yy472; + if (yych <= '^') goto yy20; + goto yy297; + } else { + if (yych <= 'u') { + if (yych <= '`') goto yy20; + goto yy478; + } else { + if (yych <= 'v') goto yy489; + if (yych <= 'z') goto yy478; + goto yy20; + } } } -yy432: - YYDEBUG(432, *YYCURSOR); - yyaccept = 5; +yy310: + YYDEBUG(310, *YYCURSOR); + yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '9') { + if (yych <= '/') { if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy248; - goto yy250; + if (yych <= 0x08) goto yy295; + goto yy142; } else { - if (yych == ' ') goto yy250; - goto yy248; + if (yych == ' ') goto yy142; + goto yy295; } } else { - if (yych <= '-') { - if (yych <= ')') goto yy181; - if (yych <= ',') goto yy248; - goto yy377; + if (yych <= ',') { + if (yych <= ')') goto yy115; + goto yy295; } else { - if (yych == '/') goto yy189; - goto yy250; + if (yych <= '-') goto yy473; + if (yych <= '.') goto yy142; + goto yy295; } } } else { - if (yych <= '^') { - if (yych <= 'D') { - if (yych <= '@') goto yy248; - goto yy184; + if (yych <= 'Z') { + if (yych <= '@') { + if (yych <= '9') goto yy142; + goto yy295; } else { - if (yych <= 'E') goto yy425; - if (yych <= 'Z') goto yy184; - goto yy248; + if (yych == 'R') goto yy490; + goto yy472; } } else { - if (yych <= 'd') { - if (yych <= '_') goto yy189; - if (yych <= '`') goto yy248; - goto yy192; - } else { - if (yych <= 'e') goto yy434; - if (yych <= 'z') goto yy192; - goto yy248; + if (yych <= 'q') { + if (yych <= '`') goto yy295; + goto yy472; + } else { + if (yych <= 'r') goto yy490; + if (yych <= 'z') goto yy472; + goto yy295; } } } -yy433: - YYDEBUG(433, *YYCURSOR); - yyaccept = 5; +yy311: + YYDEBUG(311, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; + } else { + if (yych <= '@') goto yy20; + if (yych <= 'S') goto yy472; + goto yy491; + } + } else { + if (yych <= 's') { + if (yych <= 'Z') goto yy472; + if (yych <= '`') goto yy20; + goto yy472; + } else { + if (yych <= 't') goto yy491; + if (yych <= 'z') goto yy472; + goto yy20; + } + } +yy312: + YYDEBUG(312, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'S') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; + } else { + if (yych <= '@') goto yy20; + if (yych <= 'R') goto yy472; + goto yy492; + } + } else { + if (yych <= 'r') { + if (yych <= 'Z') goto yy472; + if (yych <= '`') goto yy20; + goto yy472; + } else { + if (yych <= 's') goto yy492; + if (yych <= 'z') goto yy472; + goto yy20; + } + } +yy313: + YYDEBUG(313, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'R') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; + } else { + if (yych <= '@') goto yy20; + if (yych <= 'Q') goto yy472; + goto yy493; + } + } else { + if (yych <= 'q') { + if (yych <= 'Z') goto yy472; + if (yych <= '`') goto yy20; + goto yy472; + } else { + if (yych <= 'r') goto yy493; + if (yych <= 'z') goto yy472; + goto yy20; + } + } +yy314: + YYDEBUG(314, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'D') { + if (yych <= ')') { + if (yych >= ')') goto yy115; + } else { + if (yych <= '@') goto yy315; + if (yych <= 'C') goto yy472; + goto yy494; + } + } else { + if (yych <= 'c') { + if (yych <= 'Z') goto yy472; + if (yych >= 'a') goto yy472; + } else { + if (yych <= 'd') goto yy494; + if (yych <= 'z') goto yy472; + } + } +yy315: + YYDEBUG(315, *YYCURSOR); +#line 1816 "ext/date/lib/parse_date.re" + { + const timelib_relunit* relunit; + DEBUG_OUTPUT("daytext"); + TIMELIB_INIT; + TIMELIB_HAVE_RELATIVE(); + TIMELIB_HAVE_WEEKDAY_RELATIVE(); + TIMELIB_UNHAVE_TIME(); + relunit = timelib_lookup_relunit(&ptr); + s->time->relative.weekday = relunit->multiplier; + if (s->time->relative.weekday_behavior != 2) { + s->time->relative.weekday_behavior = 1; + } + + TIMELIB_DEINIT; + return TIMELIB_WEEKDAY; + } +#line 8500 "" +yy316: + YYDEBUG(316, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'N') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; + } else { + if (yych <= '@') goto yy20; + if (yych <= 'M') goto yy472; + goto yy495; + } + } else { + if (yych <= 'm') { + if (yych <= 'Z') goto yy472; + if (yych <= '`') goto yy20; + goto yy472; + } else { + if (yych <= 'n') goto yy495; + if (yych <= 'z') goto yy472; + goto yy20; + } + } +yy317: + YYDEBUG(317, *YYCURSOR); + yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '9') { if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy248; - goto yy250; + if (yych <= 0x08) goto yy295; + goto yy142; } else { - if (yych == ' ') goto yy250; - goto yy248; + if (yych == ' ') goto yy142; + goto yy295; } } else { if (yych <= '-') { - if (yych <= ')') goto yy181; - if (yych <= ',') goto yy248; - goto yy377; + if (yych <= ')') goto yy115; + if (yych <= ',') goto yy295; + goto yy479; } else { - if (yych == '/') goto yy189; - goto yy250; + if (yych == '/') goto yy297; + goto yy142; } } } else { if (yych <= '^') { - if (yych <= 'X') { - if (yych <= '@') goto yy248; - goto yy184; + if (yych <= 'Q') { + if (yych <= '@') goto yy295; + goto yy472; } else { - if (yych <= 'Y') goto yy425; - if (yych <= 'Z') goto yy184; - goto yy248; + if (yych <= 'R') goto yy490; + if (yych <= 'Z') goto yy472; + goto yy295; } } else { - if (yych <= 'x') { - if (yych <= '_') goto yy189; - if (yych <= '`') goto yy248; - goto yy192; - } else { - if (yych <= 'y') goto yy434; - if (yych <= 'z') goto yy192; - goto yy248; + if (yych <= 'q') { + if (yych <= '_') goto yy297; + if (yych <= '`') goto yy295; + goto yy478; + } else { + if (yych <= 'r') goto yy496; + if (yych <= 'z') goto yy478; + goto yy295; } } } -yy434: - YYDEBUG(434, *YYCURSOR); - yyaccept = 5; +yy318: + YYDEBUG(318, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= ' ') { - if (yych == '\t') goto yy250; - if (yych <= 0x1F) goto yy248; - goto yy250; + if (yych <= 'S') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= ')') { - if (yych <= '(') goto yy248; - goto yy181; - } else { - if (yych <= ',') goto yy248; - if (yych <= '-') goto yy383; - goto yy250; - } + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy472; } } else { - if (yych <= 'Z') { - if (yych <= '/') goto yy189; - if (yych <= '9') goto yy250; - if (yych <= '@') goto yy248; - goto yy185; + if (yych <= '_') { + if (yych <= 'T') goto yy491; + if (yych <= 'Z') goto yy472; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= '_') { - if (yych <= '^') goto yy248; - goto yy189; + if (yych <= 's') { + if (yych <= '`') goto yy20; + goto yy478; } else { - if (yych <= '`') goto yy248; - if (yych <= 'z') goto yy193; - goto yy248; + if (yych <= 't') goto yy497; + if (yych <= 'z') goto yy478; + goto yy20; } } } -yy435: - YYDEBUG(435, *YYCURSOR); - yyaccept = 1; +yy319: + YYDEBUG(319, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= ' ') { - if (yych == '\t') goto yy250; - if (yych <= 0x1F) goto yy3; - goto yy250; + if (yych <= 'R') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy250; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy472; } } else { - if (yych <= 'H') { - if (yych <= '/') goto yy3; - if (yych <= '9') goto yy250; - if (yych <= '@') goto yy3; - goto yy183; + if (yych <= '_') { + if (yych <= 'S') goto yy492; + if (yych <= 'Z') goto yy472; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 'Z') { - if (yych >= 'J') goto yy183; + if (yych <= 'r') { + if (yych <= '`') goto yy20; + goto yy478; } else { - if (yych <= '`') goto yy3; - if (yych <= 'z') goto yy183; - goto yy3; + if (yych <= 's') goto yy498; + if (yych <= 'z') goto yy478; + goto yy20; } } } -yy436: - YYDEBUG(436, *YYCURSOR); - yyaccept = 1; +yy320: + YYDEBUG(320, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ',') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy250; - goto yy3; + if (yych <= 'Q') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= ' ') goto yy250; - if (yych == ')') goto yy181; - goto yy3; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy472; } } else { - if (yych <= '@') { - if (yych == '/') goto yy3; - if (yych <= '9') goto yy250; - goto yy3; + if (yych <= '_') { + if (yych <= 'R') goto yy493; + if (yych <= 'Z') goto yy472; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy3; - if (yych <= 'z') goto yy184; - goto yy3; + if (yych <= 'q') { + if (yych <= '`') goto yy20; + goto yy478; + } else { + if (yych <= 'r') goto yy499; + if (yych <= 'z') goto yy478; + goto yy20; + } } } -yy437: - YYDEBUG(437, *YYCURSOR); - yyaccept = 1; +yy321: + YYDEBUG(321, *YYCURSOR); + yyaccept = 9; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= ' ') { - if (yych == '\t') goto yy250; - if (yych <= 0x1F) goto yy3; - goto yy250; + if (yych <= 'C') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy315; + goto yy297; } else { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy250; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy315; + goto yy472; } } else { - if (yych <= 'H') { - if (yych <= '/') goto yy3; - if (yych <= '9') goto yy250; - if (yych <= '@') goto yy3; - goto yy183; + if (yych <= '_') { + if (yych <= 'D') goto yy494; + if (yych <= 'Z') goto yy472; + if (yych <= '^') goto yy315; + goto yy297; } else { - if (yych <= 'Z') { - if (yych >= 'J') goto yy183; + if (yych <= 'c') { + if (yych <= '`') goto yy315; + goto yy478; } else { - if (yych <= '`') goto yy3; - if (yych <= 'z') goto yy183; - goto yy3; + if (yych <= 'd') goto yy500; + if (yych <= 'z') goto yy478; + goto yy315; } } } - YYDEBUG(438, *YYCURSOR); - yyaccept = 1; +yy322: + YYDEBUG(322, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= ' ') { - if (yych == '\t') goto yy250; - if (yych <= 0x1F) goto yy3; - goto yy250; + if (yych <= 'M') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy250; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy472; } } else { - if (yych <= 'H') { - if (yych <= '/') goto yy3; - if (yych <= '9') goto yy250; - if (yych <= '@') goto yy3; - goto yy184; + if (yych <= '_') { + if (yych <= 'N') goto yy495; + if (yych <= 'Z') goto yy472; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 'Z') { - if (yych >= 'J') goto yy184; + if (yych <= 'm') { + if (yych <= '`') goto yy20; + goto yy478; } else { - if (yych <= '`') goto yy3; - if (yych <= 'z') goto yy184; - goto yy3; + if (yych <= 'n') goto yy501; + if (yych <= 'z') goto yy478; + goto yy20; } } } - YYDEBUG(439, *YYCURSOR); - yyaccept = 1; +yy323: + YYDEBUG(323, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ',') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy250; - goto yy3; + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= ' ') goto yy250; - if (yych == ')') goto yy181; - goto yy3; + if (yych == '+') goto yy502; + goto yy20; } } else { - if (yych <= '@') { - if (yych == '/') goto yy3; - if (yych <= '9') goto yy250; - goto yy3; + if (yych <= 'Z') { + if (yych <= '-') goto yy502; + if (yych <= '@') goto yy20; + goto yy472; } else { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy3; - if (yych <= 'z') goto yy185; - goto yy3; + if (yych <= '`') goto yy20; + if (yych <= 'z') goto yy472; + goto yy20; } } -yy440: - YYDEBUG(440, *YYCURSOR); - yyaccept = 1; +yy324: + YYDEBUG(324, *YYCURSOR); + yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ',') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy250; - goto yy3; + if (yych <= '9') { + if (yych <= '0') { + if (yych >= '0') goto yy503; } else { - if (yych <= ' ') goto yy250; - if (yych == ')') goto yy181; - goto yy3; + if (yych <= '1') goto yy504; + if (yych <= '2') goto yy505; + goto yy506; } } else { - if (yych <= '@') { - if (yych == '/') goto yy3; - if (yych <= '9') goto yy250; - goto yy3; + if (yych <= 'T') { + if (yych >= 'T') goto yy507; } else { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - if (yych <= 'z') goto yy183; - goto yy3; + if (yych == 't') goto yy507; } } -yy441: - YYDEBUG(441, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { +yy325: + YYDEBUG(325, *YYCURSOR); +#line 1618 "ext/date/lib/parse_date.re" + { + int length = 0; + DEBUG_OUTPUT("datetextual | datenoyear"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->m = timelib_get_month(&ptr); + s->time->d = timelib_get_nr(&ptr, 2); + s->time->y = timelib_get_nr_ex(&ptr, 4, &length); + TIMELIB_PROCESS_YEAR(s->time->y, length); + TIMELIB_DEINIT; + return TIMELIB_DATE_TEXT; + } +#line 8781 "" +yy326: + YYDEBUG(326, *YYCURSOR); + yyaccept = 10; + YYMARKER = ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 21) YYFILL(21); + yych = *YYCURSOR; +yy327: + YYDEBUG(327, *YYCURSOR); + if (yybm[0+yych] & 32) { + goto yy326; + } + if (yych <= '2') { + if (yych <= '/') goto yy325; + if (yych <= '0') goto yy508; + if (yych <= '1') goto yy509; + goto yy510; + } else { + if (yych <= '9') goto yy511; + if (yych == 'T') goto yy507; + goto yy325; + } +yy328: + YYDEBUG(328, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '9') { if (yych <= ' ') { - if (yych == '\t') goto yy250; - if (yych <= 0x1F) goto yy3; - goto yy250; + if (yych <= 0x08) { + if (yych <= 0x00) goto yy324; + goto yy59; + } else { + if (yych <= '\t') goto yy326; + if (yych <= 0x1F) goto yy59; + goto yy326; + } } else { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy250; + if (yych <= '-') { + if (yych == ',') goto yy326; + goto yy59; + } else { + if (yych <= '.') goto yy326; + if (yych <= '/') goto yy59; + goto yy512; + } } } else { - if (yych <= 'H') { - if (yych <= '/') goto yy3; - if (yych <= '9') goto yy250; - if (yych <= '@') goto yy3; - goto yy183; + if (yych <= 'm') { + if (yych <= 'd') { + if (yych <= 'c') goto yy59; + goto yy326; + } else { + if (yych == 'h') goto yy326; + goto yy59; + } } else { - if (yych <= 'Z') { - if (yych <= 'I') goto yy436; - goto yy183; + if (yych <= 'r') { + if (yych <= 'n') goto yy329; + if (yych <= 'q') goto yy59; } else { - if (yych <= '`') goto yy3; - if (yych <= 'z') goto yy183; - goto yy3; + if (yych <= 's') goto yy330; + if (yych <= 't') goto yy331; + goto yy59; } } } -yy442: - YYDEBUG(442, *YYCURSOR); - yyaccept = 1; +yy329: + YYDEBUG(329, *YYCURSOR); + yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'W') { - if (yych <= 'D') { - if (yych <= ' ') { - if (yych == '\t') goto yy59; - if (yych <= 0x1F) goto yy3; - goto yy59; + if (yych == 'd') goto yy513; + goto yy327; +yy330: + YYDEBUG(330, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 't') goto yy513; + goto yy327; +yy331: + YYDEBUG(331, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'h') goto yy513; + goto yy327; +yy332: + YYDEBUG(332, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy512; + goto yy59; +yy333: + YYDEBUG(333, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ',') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy142; + goto yy20; + } else { + if (yych <= ' ') goto yy142; + if (yych == ')') goto yy115; + goto yy20; + } + } else { + if (yych <= '@') { + if (yych == '/') goto yy20; + if (yych <= '9') goto yy142; + goto yy20; + } else { + if (yych <= 'Z') goto yy472; + if (yych <= '`') goto yy20; + if (yych <= 'z') goto yy472; + goto yy20; + } + } +yy334: + YYDEBUG(334, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy295; + goto yy142; } else { - if (yych <= '9') { - if (yych <= '/') goto yy3; - goto yy487; - } else { - if (yych <= ':') goto yy204; - if (yych <= 'C') goto yy3; - goto yy59; - } + if (yych == ' ') goto yy142; + goto yy295; } } else { - if (yych <= 'L') { - if (yych <= 'F') { - if (yych <= 'E') goto yy3; - goto yy59; - } else { - if (yych == 'H') goto yy59; - goto yy3; - } + if (yych <= ',') { + if (yych <= ')') goto yy115; + goto yy295; } else { - if (yych <= 'R') { - if (yych <= 'M') goto yy59; - goto yy3; - } else { - if (yych == 'V') goto yy3; - goto yy59; - } + if (yych <= '-') goto yy473; + if (yych <= '.') goto yy142; + goto yy295; } } } else { - if (yych <= 'l') { - if (yych <= 'd') { - if (yych == 'Y') goto yy59; - if (yych <= 'c') goto yy3; - goto yy59; + if (yych <= 'Z') { + if (yych <= '@') { + if (yych <= '9') goto yy142; + goto yy295; } else { - if (yych <= 'f') { - if (yych <= 'e') goto yy3; - goto yy59; - } else { - if (yych == 'h') goto yy59; - goto yy3; - } + if (yych == 'U') goto yy514; + goto yy472; } } else { - if (yych <= 'w') { - if (yych <= 'r') { - if (yych <= 'm') goto yy59; - goto yy3; - } else { - if (yych == 'v') goto yy3; - goto yy59; - } + if (yych <= 't') { + if (yych <= '`') goto yy295; + goto yy472; } else { - if (yych <= 'y') { - if (yych <= 'x') goto yy3; - goto yy59; - } else { - if (yych == 0xC2) goto yy59; - goto yy3; - } + if (yych <= 'u') goto yy514; + if (yych <= 'z') goto yy472; + goto yy295; } } } -yy443: - YYDEBUG(443, *YYCURSOR); - yyaccept = 1; +yy335: + YYDEBUG(335, *YYCURSOR); + yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'V') { - if (yych <= 'C') { - if (yych <= '/') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy3; - goto yy59; - } else { - if (yych == ' ') goto yy59; - goto yy3; - } + if (yych <= '/') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy295; + goto yy142; } else { - if (yych <= '5') { - if (yych <= '4') goto yy487; - goto yy447; - } else { - if (yych <= '9') goto yy448; - if (yych <= ':') goto yy204; - goto yy3; - } + if (yych == ' ') goto yy142; + goto yy295; } } else { - if (yych <= 'H') { - if (yych <= 'E') { - if (yych <= 'D') goto yy59; - goto yy3; - } else { - if (yych == 'G') goto yy3; - goto yy59; - } + if (yych <= ',') { + if (yych <= ')') goto yy115; + goto yy295; } else { - if (yych <= 'M') { - if (yych <= 'L') goto yy3; - goto yy59; - } else { - if (yych <= 'R') goto yy3; - if (yych <= 'U') goto yy59; - goto yy3; - } + if (yych <= '-') goto yy473; + if (yych <= '.') goto yy142; + goto yy295; } } } else { - if (yych <= 'l') { - if (yych <= 'd') { - if (yych <= 'X') { - if (yych <= 'W') goto yy59; - goto yy3; - } else { - if (yych <= 'Y') goto yy59; - if (yych <= 'c') goto yy3; - goto yy59; - } + if (yych <= 'Z') { + if (yych <= '@') { + if (yych <= '9') goto yy142; + goto yy295; } else { - if (yych <= 'f') { - if (yych <= 'e') goto yy3; - goto yy59; - } else { - if (yych == 'h') goto yy59; - goto yy3; - } + if (yych == 'Y') goto yy515; + goto yy472; } } else { - if (yych <= 'w') { - if (yych <= 'r') { - if (yych <= 'm') goto yy59; - goto yy3; - } else { - if (yych == 'v') goto yy3; - goto yy59; - } + if (yych <= 'x') { + if (yych <= '`') goto yy295; + goto yy472; } else { - if (yych <= 'y') { - if (yych <= 'x') goto yy3; - goto yy59; - } else { - if (yych == 0xC2) goto yy59; - goto yy3; - } + if (yych <= 'y') goto yy515; + if (yych <= 'z') goto yy472; + goto yy295; } } } -yy444: - YYDEBUG(444, *YYCURSOR); - yyaccept = 1; +yy336: + YYDEBUG(336, *YYCURSOR); + yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'V') { - if (yych <= 'C') { - if (yych <= ' ') { - if (yych == '\t') goto yy59; - if (yych <= 0x1F) goto yy3; - goto yy59; + if (yych <= '/') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy295; + goto yy142; } else { - if (yych <= '5') { - if (yych <= '/') goto yy3; - goto yy447; - } else { - if (yych <= '9') goto yy448; - if (yych <= ':') goto yy204; - goto yy3; - } + if (yych == ' ') goto yy142; + goto yy295; } } else { - if (yych <= 'H') { - if (yych <= 'E') { - if (yych <= 'D') goto yy59; - goto yy3; - } else { - if (yych == 'G') goto yy3; - goto yy59; - } + if (yych <= ',') { + if (yych <= ')') goto yy115; + goto yy295; } else { - if (yych <= 'M') { - if (yych <= 'L') goto yy3; - goto yy59; - } else { - if (yych <= 'R') goto yy3; - if (yych <= 'U') goto yy59; - goto yy3; - } + if (yych <= '-') goto yy473; + if (yych <= '.') goto yy142; + goto yy295; } } } else { - if (yych <= 'l') { - if (yych <= 'd') { - if (yych <= 'X') { - if (yych <= 'W') goto yy59; - goto yy3; - } else { - if (yych <= 'Y') goto yy59; - if (yych <= 'c') goto yy3; - goto yy59; - } + if (yych <= 'Z') { + if (yych <= '@') { + if (yych <= '9') goto yy142; + goto yy295; } else { - if (yych <= 'f') { - if (yych <= 'e') goto yy3; - goto yy59; - } else { - if (yych == 'h') goto yy59; - goto yy3; - } + if (yych == 'E') goto yy515; + goto yy472; } } else { - if (yych <= 'w') { - if (yych <= 'r') { - if (yych <= 'm') goto yy59; - goto yy3; - } else { - if (yych == 'v') goto yy3; - goto yy59; - } + if (yych <= 'd') { + if (yych <= '`') goto yy295; + goto yy472; } else { - if (yych <= 'y') { - if (yych <= 'x') goto yy3; - goto yy59; - } else { - if (yych == 0xC2) goto yy59; - goto yy3; - } + if (yych <= 'e') goto yy515; + if (yych <= 'z') goto yy472; + goto yy295; } } } -yy445: - YYDEBUG(445, *YYCURSOR); - ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 24) YYFILL(24); - yych = *YYCURSOR; - YYDEBUG(446, *YYCURSOR); - if (yybm[0+yych] & 2) { - goto yy56; - } - if (yych <= ',') { - if (yych == '+') goto yy445; - goto yy55; - } else { - if (yych <= '-') goto yy445; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy54; - goto yy55; - } -yy447: - YYDEBUG(447, *YYCURSOR); - yyaccept = 1; +yy337: + YYDEBUG(337, *YYCURSOR); + yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'W') { - if (yych <= 'E') { - if (yych <= ' ') { - if (yych == '\t') goto yy59; - if (yych <= 0x1F) goto yy3; - goto yy59; + if (yych <= '9') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy295; + goto yy142; } else { - if (yych <= '9') { - if (yych <= '/') goto yy3; - goto yy486; - } else { - if (yych == 'D') goto yy59; - goto yy3; - } + if (yych == ' ') goto yy142; + goto yy295; } } else { - if (yych <= 'L') { - if (yych == 'G') goto yy3; - if (yych <= 'H') goto yy59; - goto yy3; + if (yych <= '-') { + if (yych <= ')') goto yy115; + if (yych <= ',') goto yy295; + goto yy479; } else { - if (yych <= 'R') { - if (yych <= 'M') goto yy59; - goto yy3; - } else { - if (yych == 'V') goto yy3; - goto yy59; - } + if (yych == '/') goto yy297; + goto yy142; } } } else { - if (yych <= 'l') { - if (yych <= 'd') { - if (yych == 'Y') goto yy59; - if (yych <= 'c') goto yy3; - goto yy59; + if (yych <= '^') { + if (yych <= 'T') { + if (yych <= '@') goto yy295; + goto yy472; } else { - if (yych <= 'f') { - if (yych <= 'e') goto yy3; - goto yy59; - } else { - if (yych == 'h') goto yy59; - goto yy3; - } + if (yych <= 'U') goto yy514; + if (yych <= 'Z') goto yy472; + goto yy295; } } else { - if (yych <= 'w') { - if (yych <= 'r') { - if (yych <= 'm') goto yy59; - goto yy3; - } else { - if (yych == 'v') goto yy3; - goto yy59; - } + if (yych <= 't') { + if (yych <= '_') goto yy297; + if (yych <= '`') goto yy295; + goto yy478; } else { - if (yych <= 'y') { - if (yych <= 'x') goto yy3; - goto yy59; - } else { - if (yych == 0xC2) goto yy59; - goto yy3; - } + if (yych <= 'u') goto yy516; + if (yych <= 'z') goto yy478; + goto yy295; } } } -yy448: - YYDEBUG(448, *YYCURSOR); - yyaccept = 1; +yy338: + YYDEBUG(338, *YYCURSOR); + yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'W') { - if (yych <= 'E') { - if (yych <= ' ') { - if (yych == '\t') goto yy59; - if (yych <= 0x1F) goto yy3; - goto yy59; + if (yych <= '9') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy295; + goto yy142; } else { - if (yych <= '9') { - if (yych <= '/') goto yy3; - } else { - if (yych == 'D') goto yy59; - goto yy3; - } + if (yych == ' ') goto yy142; + goto yy295; } } else { - if (yych <= 'L') { - if (yych == 'G') goto yy3; - if (yych <= 'H') goto yy59; - goto yy3; + if (yych <= '-') { + if (yych <= ')') goto yy115; + if (yych <= ',') goto yy295; + goto yy479; } else { - if (yych <= 'R') { - if (yych <= 'M') goto yy59; - goto yy3; - } else { - if (yych == 'V') goto yy3; - goto yy59; - } + if (yych == '/') goto yy297; + goto yy142; } } } else { - if (yych <= 'l') { - if (yych <= 'd') { - if (yych == 'Y') goto yy59; - if (yych <= 'c') goto yy3; - goto yy59; + if (yych <= '^') { + if (yych <= 'X') { + if (yych <= '@') goto yy295; + goto yy472; } else { - if (yych <= 'f') { - if (yych <= 'e') goto yy3; - goto yy59; - } else { - if (yych == 'h') goto yy59; - goto yy3; - } + if (yych <= 'Y') goto yy515; + if (yych <= 'Z') goto yy472; + goto yy295; } } else { - if (yych <= 'w') { - if (yych <= 'r') { - if (yych <= 'm') goto yy59; - goto yy3; - } else { - if (yych == 'v') goto yy3; - goto yy59; - } - } else { - if (yych <= 'y') { - if (yych <= 'x') goto yy3; - goto yy59; - } else { - if (yych == 0xC2) goto yy59; - goto yy3; - } + if (yych <= 'x') { + if (yych <= '_') goto yy297; + if (yych <= '`') goto yy295; + goto yy478; + } else { + if (yych <= 'y') goto yy517; + if (yych <= 'z') goto yy478; + goto yy295; } } } - YYDEBUG(449, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy59; - if (yych >= ':') goto yy59; -yy450: - YYDEBUG(450, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '-') goto yy452; - if (yych <= '/') goto yy59; - if (yych >= ':') goto yy59; -yy451: - YYDEBUG(451, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '-') goto yy462; - if (yych <= '/') goto yy59; - if (yych <= '9') goto yy463; - goto yy59; -yy452: - YYDEBUG(452, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '0') goto yy453; - if (yych <= '1') goto yy454; - goto yy55; -yy453: - YYDEBUG(453, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy455; - goto yy55; -yy454: - YYDEBUG(454, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= '3') goto yy55; -yy455: - YYDEBUG(455, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '-') goto yy55; - YYDEBUG(456, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '0') goto yy457; - if (yych <= '2') goto yy458; - if (yych <= '3') goto yy459; - goto yy55; -yy457: - YYDEBUG(457, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy460; - goto yy55; -yy458: - YYDEBUG(458, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy460; - goto yy55; -yy459: - YYDEBUG(459, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= '2') goto yy55; -yy460: - YYDEBUG(460, *YYCURSOR); - ++YYCURSOR; -yy461: - YYDEBUG(461, *YYCURSOR); -#line 1457 "ext/date/lib/parse_date.re" - { - DEBUG_OUTPUT("iso8601date4 | iso8601date2 | iso8601dateslash | dateslash"); - TIMELIB_INIT; - TIMELIB_HAVE_DATE(); - s->time->y = timelib_get_signed_nr(s, &ptr, 4); - s->time->m = timelib_get_nr(&ptr, 2); - s->time->d = timelib_get_nr(&ptr, 2); - TIMELIB_DEINIT; - return TIMELIB_ISO_DATE; - } -#line 8818 "" -yy462: - YYDEBUG(462, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '0') goto yy477; - if (yych <= '1') goto yy478; - goto yy55; -yy463: - YYDEBUG(463, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '-') goto yy462; - if (yych <= '/') goto yy59; - if (yych >= ':') goto yy59; -yy464: - YYDEBUG(464, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '-') goto yy462; - if (yych <= '/') goto yy59; - if (yych >= ':') goto yy59; - YYDEBUG(465, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '-') goto yy462; - if (yych <= '/') goto yy59; - if (yych >= ':') goto yy59; - YYDEBUG(466, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '-') goto yy462; - if (yych <= '/') goto yy59; - if (yych >= ':') goto yy59; - YYDEBUG(467, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '-') goto yy462; - if (yych <= '/') goto yy59; - if (yych >= ':') goto yy59; - YYDEBUG(468, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '-') goto yy462; - if (yych <= '/') goto yy59; - if (yych >= ':') goto yy59; - YYDEBUG(469, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '-') goto yy462; - if (yych <= '/') goto yy59; - if (yych >= ':') goto yy59; - YYDEBUG(470, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '-') goto yy462; - if (yych <= '/') goto yy59; - if (yych >= ':') goto yy59; - YYDEBUG(471, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '-') goto yy462; - if (yych <= '/') goto yy55; - if (yych >= ':') goto yy55; - YYDEBUG(472, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '-') goto yy462; - if (yych <= '/') goto yy55; - if (yych >= ':') goto yy55; - YYDEBUG(473, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '-') goto yy462; - if (yych <= '/') goto yy55; - if (yych >= ':') goto yy55; - YYDEBUG(474, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '-') goto yy462; - if (yych <= '/') goto yy55; - if (yych >= ':') goto yy55; - YYDEBUG(475, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '-') goto yy462; - if (yych <= '/') goto yy55; - if (yych >= ':') goto yy55; - YYDEBUG(476, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '-') goto yy462; - goto yy55; -yy477: - YYDEBUG(477, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy479; - goto yy55; -yy478: - YYDEBUG(478, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= '3') goto yy55; -yy479: - YYDEBUG(479, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '-') goto yy55; - YYDEBUG(480, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '0') goto yy481; - if (yych <= '2') goto yy482; - if (yych <= '3') goto yy483; - goto yy55; -yy481: - YYDEBUG(481, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy484; - goto yy55; -yy482: - YYDEBUG(482, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy484; - goto yy55; -yy483: - YYDEBUG(483, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= '2') goto yy55; -yy484: - YYDEBUG(484, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(485, *YYCURSOR); -#line 1483 "ext/date/lib/parse_date.re" - { - DEBUG_OUTPUT("iso8601datex"); - TIMELIB_INIT; - TIMELIB_HAVE_DATE(); - s->time->y = timelib_get_signed_nr(s, &ptr, 19); - s->time->m = timelib_get_nr(&ptr, 2); - s->time->d = timelib_get_nr(&ptr, 2); - TIMELIB_DEINIT; - return TIMELIB_ISO_DATE; - } -#line 8951 "" -yy486: - YYDEBUG(486, *YYCURSOR); - yyaccept = 1; +yy339: + YYDEBUG(339, *YYCURSOR); + yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'W') { - if (yych <= 'E') { - if (yych <= ' ') { - if (yych == '\t') goto yy59; - if (yych <= 0x1F) goto yy3; - goto yy59; + if (yych <= '9') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy295; + goto yy142; } else { - if (yych <= '9') { - if (yych <= '/') goto yy3; - goto yy450; - } else { - if (yych == 'D') goto yy59; - goto yy3; - } + if (yych == ' ') goto yy142; + goto yy295; } } else { - if (yych <= 'L') { - if (yych == 'G') goto yy3; - if (yych <= 'H') goto yy59; - goto yy3; + if (yych <= '-') { + if (yych <= ')') goto yy115; + if (yych <= ',') goto yy295; + goto yy479; } else { - if (yych <= 'R') { - if (yych <= 'M') goto yy59; - goto yy3; - } else { - if (yych == 'V') goto yy3; - goto yy59; - } + if (yych == '/') goto yy297; + goto yy142; } } } else { - if (yych <= 'l') { - if (yych <= 'd') { - if (yych == 'Y') goto yy59; - if (yych <= 'c') goto yy3; - goto yy59; + if (yych <= '^') { + if (yych <= 'D') { + if (yych <= '@') goto yy295; + goto yy472; } else { - if (yych <= 'f') { - if (yych <= 'e') goto yy3; - goto yy59; - } else { - if (yych == 'h') goto yy59; - goto yy3; - } + if (yych <= 'E') goto yy515; + if (yych <= 'Z') goto yy472; + goto yy295; } } else { - if (yych <= 'w') { - if (yych <= 'r') { - if (yych <= 'm') goto yy59; - goto yy3; - } else { - if (yych == 'v') goto yy3; - goto yy59; - } + if (yych <= 'd') { + if (yych <= '_') goto yy297; + if (yych <= '`') goto yy295; + goto yy478; + } else { + if (yych <= 'e') goto yy517; + if (yych <= 'z') goto yy478; + goto yy295; + } + } + } +yy340: + YYDEBUG(340, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; + } else { + if (yych <= '@') goto yy20; + if (yych <= 'S') goto yy472; + goto yy518; + } + } else { + if (yych <= 's') { + if (yych <= 'Z') goto yy472; + if (yych <= '`') goto yy20; + goto yy472; + } else { + if (yych <= 't') goto yy518; + if (yych <= 'z') goto yy472; + goto yy20; + } + } +yy341: + YYDEBUG(341, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; + } else { + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy472; + } + } else { + if (yych <= '_') { + if (yych <= 'T') goto yy518; + if (yych <= 'Z') goto yy472; + if (yych <= '^') goto yy20; + goto yy297; + } else { + if (yych <= 's') { + if (yych <= '`') goto yy20; + goto yy478; } else { - if (yych <= 'y') { - if (yych <= 'x') goto yy3; - goto yy59; - } else { - if (yych == 0xC2) goto yy59; - goto yy3; - } + if (yych <= 't') goto yy519; + if (yych <= 'z') goto yy478; + goto yy20; } } } -yy487: - YYDEBUG(487, *YYCURSOR); - yyaccept = 1; +yy342: + YYDEBUG(342, *YYCURSOR); + yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'V') { - if (yych <= 'C') { - if (yych <= ' ') { - if (yych == '\t') goto yy59; - if (yych <= 0x1F) goto yy3; - goto yy59; + if (yych <= '/') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy295; + goto yy142; } else { - if (yych <= '5') { - if (yych <= '/') goto yy3; - } else { - if (yych <= '9') goto yy486; - if (yych <= ':') goto yy208; - goto yy3; - } + if (yych == ' ') goto yy142; + goto yy295; } } else { - if (yych <= 'H') { - if (yych <= 'E') { - if (yych <= 'D') goto yy59; - goto yy3; - } else { - if (yych == 'G') goto yy3; - goto yy59; - } + if (yych <= ',') { + if (yych <= ')') goto yy115; + goto yy295; } else { - if (yych <= 'M') { - if (yych <= 'L') goto yy3; - goto yy59; - } else { - if (yych <= 'R') goto yy3; - if (yych <= 'U') goto yy59; - goto yy3; - } + if (yych <= '-') goto yy473; + if (yych <= '.') goto yy142; + goto yy295; } } } else { - if (yych <= 'l') { - if (yych <= 'd') { - if (yych <= 'X') { - if (yych <= 'W') goto yy59; - goto yy3; - } else { - if (yych <= 'Y') goto yy59; - if (yych <= 'c') goto yy3; - goto yy59; - } + if (yych <= 'Z') { + if (yych <= '@') { + if (yych <= '9') goto yy142; + goto yy295; } else { - if (yych <= 'f') { - if (yych <= 'e') goto yy3; - goto yy59; - } else { - if (yych == 'h') goto yy59; - goto yy3; - } + if (yych == 'C') goto yy520; + goto yy472; } } else { - if (yych <= 'w') { - if (yych <= 'r') { - if (yych <= 'm') goto yy59; - goto yy3; - } else { - if (yych == 'v') goto yy3; - goto yy59; - } + if (yych <= 'b') { + if (yych <= '`') goto yy295; + goto yy472; } else { - if (yych <= 'y') { - if (yych <= 'x') goto yy3; - goto yy59; - } else { - if (yych == 0xC2) goto yy59; - goto yy3; - } + if (yych <= 'c') goto yy520; + if (yych <= 'z') goto yy472; + goto yy295; } } } - YYDEBUG(488, *YYCURSOR); - yyaccept = 1; +yy343: + YYDEBUG(343, *YYCURSOR); + yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'W') { - if (yych <= 'E') { - if (yych <= ' ') { - if (yych == '\t') goto yy59; - if (yych <= 0x1F) goto yy3; - goto yy59; + if (yych <= '-') { + if (yych <= ' ') { + if (yych == '\t') goto yy142; + if (yych <= 0x1F) goto yy295; + goto yy142; + } else { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy295; + goto yy473; + } + } else { + if (yych <= '@') { + if (yych == '/') goto yy295; + if (yych <= '9') goto yy142; + goto yy295; + } else { + if (yych <= 'Z') goto yy472; + if (yych <= '`') goto yy295; + if (yych <= 'z') goto yy472; + goto yy295; + } + } +yy344: + YYDEBUG(344, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'N') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; + } else { + if (yych <= '@') goto yy20; + if (yych <= 'M') goto yy472; + goto yy521; + } + } else { + if (yych <= 'm') { + if (yych <= 'Z') goto yy472; + if (yych <= '`') goto yy20; + goto yy472; + } else { + if (yych <= 'n') goto yy521; + if (yych <= 'z') goto yy472; + goto yy20; + } + } +yy345: + YYDEBUG(345, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '9') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy295; + goto yy142; } else { - if (yych <= '9') { - if (yych <= '/') goto yy3; - } else { - if (yych == 'D') goto yy59; - goto yy3; - } + if (yych == ' ') goto yy142; + goto yy295; } } else { - if (yych <= 'L') { - if (yych == 'G') goto yy3; - if (yych <= 'H') goto yy59; - goto yy3; + if (yych <= '-') { + if (yych <= ')') goto yy115; + if (yych <= ',') goto yy295; + goto yy479; } else { - if (yych <= 'R') { - if (yych <= 'M') goto yy59; - goto yy3; - } else { - if (yych == 'V') goto yy3; - goto yy59; - } + if (yych == '/') goto yy297; + goto yy142; } } } else { - if (yych <= 'l') { - if (yych <= 'd') { - if (yych == 'Y') goto yy59; - if (yych <= 'c') goto yy3; - goto yy59; + if (yych <= '^') { + if (yych <= 'B') { + if (yych <= '@') goto yy295; + goto yy472; } else { - if (yych <= 'f') { - if (yych <= 'e') goto yy3; - goto yy59; - } else { - if (yych == 'h') goto yy59; - goto yy3; - } + if (yych <= 'C') goto yy520; + if (yych <= 'Z') goto yy472; + goto yy295; } } else { - if (yych <= 'w') { - if (yych <= 'r') { - if (yych <= 'm') goto yy59; - goto yy3; - } else { - if (yych == 'v') goto yy3; - goto yy59; - } - } else { - if (yych <= 'y') { - if (yych <= 'x') goto yy3; - goto yy59; - } else { - if (yych == 0xC2) goto yy59; - goto yy3; - } + if (yych <= 'b') { + if (yych <= '_') goto yy297; + if (yych <= '`') goto yy295; + goto yy478; + } else { + if (yych <= 'c') goto yy522; + if (yych <= 'z') goto yy478; + goto yy295; } } } - YYDEBUG(489, *YYCURSOR); - yyaccept = 1; +yy346: + YYDEBUG(346, *YYCURSOR); + yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'U') { - if (yych <= '9') { - if (yych <= ',') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy3; - goto yy59; - } else { - if (yych == ' ') goto yy59; - goto yy3; - } - } else { - if (yych <= '/') { - if (yych <= '-') goto yy452; - goto yy3; - } else { - if (yych <= '5') goto yy490; - if (yych <= '6') goto yy491; - goto yy451; - } - } + if (yych <= '.') { + if (yych <= ' ') { + if (yych == '\t') goto yy142; + if (yych <= 0x1F) goto yy295; + goto yy142; } else { - if (yych <= 'G') { - if (yych <= 'D') { - if (yych <= 'C') goto yy3; - goto yy59; - } else { - if (yych == 'F') goto yy59; - goto yy3; - } + if (yych <= ')') { + if (yych <= '(') goto yy295; + goto yy115; } else { - if (yych <= 'L') { - if (yych <= 'H') goto yy59; - goto yy3; - } else { - if (yych <= 'M') goto yy59; - if (yych <= 'R') goto yy3; - goto yy59; - } + if (yych <= ',') goto yy295; + if (yych <= '-') goto yy479; + goto yy142; } } } else { - if (yych <= 'h') { - if (yych <= 'c') { - if (yych <= 'W') { - if (yych <= 'V') goto yy3; - goto yy59; - } else { - if (yych == 'Y') goto yy59; - goto yy3; - } + if (yych <= 'Z') { + if (yych <= '/') goto yy297; + if (yych <= '9') goto yy142; + if (yych <= '@') goto yy295; + goto yy472; + } else { + if (yych <= '_') { + if (yych <= '^') goto yy295; + goto yy297; } else { - if (yych <= 'e') { - if (yych <= 'd') goto yy59; - goto yy3; - } else { - if (yych == 'g') goto yy3; - goto yy59; - } + if (yych <= '`') goto yy295; + if (yych <= 'z') goto yy478; + goto yy295; } + } + } +yy347: + YYDEBUG(347, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'M') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= 'v') { - if (yych <= 'm') { - if (yych <= 'l') goto yy3; - goto yy59; - } else { - if (yych <= 'r') goto yy3; - if (yych <= 'u') goto yy59; - goto yy3; - } + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy472; + } + } else { + if (yych <= '_') { + if (yych <= 'N') goto yy521; + if (yych <= 'Z') goto yy472; + if (yych <= '^') goto yy20; + goto yy297; + } else { + if (yych <= 'm') { + if (yych <= '`') goto yy20; + goto yy478; } else { - if (yych <= 'y') { - if (yych == 'x') goto yy3; - goto yy59; - } else { - if (yych == 0xC2) goto yy59; - goto yy3; - } + if (yych <= 'n') goto yy523; + if (yych <= 'z') goto yy478; + goto yy20; } } } -yy490: - YYDEBUG(490, *YYCURSOR); +yy348: + YYDEBUG(348, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '-') goto yy462; - if (yych <= '/') goto yy59; - if (yych <= '9') goto yy492; - goto yy59; -yy491: - YYDEBUG(491, *YYCURSOR); + if (yych <= 'T') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; + } else { + if (yych <= '@') goto yy20; + if (yych <= 'S') goto yy472; + goto yy524; + } + } else { + if (yych <= 's') { + if (yych <= 'Z') goto yy472; + if (yych <= '`') goto yy20; + goto yy472; + } else { + if (yych <= 't') goto yy524; + if (yych <= 'z') goto yy472; + goto yy20; + } + } +yy349: + YYDEBUG(349, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'N') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; + } else { + if (yych <= '@') goto yy20; + if (yych <= 'M') goto yy472; + goto yy525; + } + } else { + if (yych <= 'm') { + if (yych <= 'Z') goto yy472; + if (yych <= '`') goto yy20; + goto yy472; + } else { + if (yych <= 'n') goto yy525; + if (yych <= 'z') goto yy472; + goto yy20; + } + } +yy350: + YYDEBUG(350, *YYCURSOR); yych = *++YYCURSOR; + if (yych <= '@') { + if (yych == ')') goto yy115; + } else { + if (yych <= 'Z') goto yy472; + if (yych <= '`') goto yy351; + if (yych <= 'z') goto yy472; + } +yy351: + YYDEBUG(351, *YYCURSOR); +#line 1164 "ext/date/lib/parse_date.re" + { + DEBUG_OUTPUT("now"); + TIMELIB_INIT; + + TIMELIB_DEINIT; + return TIMELIB_RELATIVE; + } +#line 9483 "" +yy352: + YYDEBUG(352, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; + } else { + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy472; + } + } else { + if (yych <= '_') { + if (yych <= 'T') goto yy524; + if (yych <= 'Z') goto yy472; + if (yych <= '^') goto yy20; + goto yy297; + } else { + if (yych <= 's') { + if (yych <= '`') goto yy20; + goto yy478; + } else { + if (yych <= 't') goto yy527; + if (yych <= 'z') goto yy478; + goto yy20; + } + } + } +yy353: + YYDEBUG(353, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'M') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; + } else { + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy472; + } + } else { + if (yych <= '_') { + if (yych <= 'N') goto yy525; + if (yych <= 'Z') goto yy472; + if (yych <= '^') goto yy20; + goto yy297; + } else { + if (yych <= 'm') { + if (yych <= '`') goto yy20; + goto yy478; + } else { + if (yych <= 'n') goto yy528; + if (yych <= 'z') goto yy478; + goto yy20; + } + } + } +yy354: + YYDEBUG(354, *YYCURSOR); + yyaccept = 11; + yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { - if (yych == '-') goto yy462; - goto yy59; + if (yych <= ',') { + if (yych == ')') goto yy115; + goto yy351; + } else { + if (yych == '.') goto yy351; + goto yy297; + } } else { - if (yych <= '0') goto yy492; - if (yych <= '9') goto yy463; - goto yy59; + if (yych <= '^') { + if (yych <= '@') goto yy351; + if (yych <= 'Z') goto yy472; + goto yy351; + } else { + if (yych <= '_') goto yy297; + if (yych <= '`') goto yy351; + if (yych <= 'z') goto yy478; + goto yy351; + } } -yy492: - YYDEBUG(492, *YYCURSOR); - yyaccept = 1; +yy355: + YYDEBUG(355, *YYCURSOR); + yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'V') { - if (yych <= 'C') { - if (yych <= ' ') { - if (yych == '\t') goto yy59; - if (yych <= 0x1F) goto yy3; - goto yy59; + if (yych <= '/') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy295; + goto yy142; } else { - if (yych <= '-') { - if (yych <= ',') goto yy3; - goto yy462; - } else { - if (yych <= '/') goto yy3; - if (yych <= '9') goto yy464; - goto yy3; - } + if (yych == ' ') goto yy142; + goto yy295; } } else { - if (yych <= 'H') { - if (yych <= 'E') { - if (yych <= 'D') goto yy59; - goto yy3; - } else { - if (yych == 'G') goto yy3; - goto yy59; - } + if (yych <= ',') { + if (yych <= ')') goto yy115; + goto yy295; } else { - if (yych <= 'M') { - if (yych <= 'L') goto yy3; - goto yy59; - } else { - if (yych <= 'R') goto yy3; - if (yych <= 'U') goto yy59; - goto yy3; - } + if (yych <= '-') goto yy473; + if (yych <= '.') goto yy142; + goto yy295; } } } else { - if (yych <= 'l') { - if (yych <= 'd') { - if (yych <= 'X') { - if (yych <= 'W') goto yy59; - goto yy3; - } else { - if (yych <= 'Y') goto yy59; - if (yych <= 'c') goto yy3; - goto yy59; - } + if (yych <= 'Z') { + if (yych <= '@') { + if (yych <= '9') goto yy142; + goto yy295; } else { - if (yych <= 'f') { - if (yych <= 'e') goto yy3; - goto yy59; - } else { - if (yych == 'h') goto yy59; - goto yy3; - } + if (yych == 'O') goto yy529; + goto yy472; } } else { - if (yych <= 'w') { - if (yych <= 'r') { - if (yych <= 'm') goto yy59; - goto yy3; - } else { - if (yych == 'v') goto yy3; - goto yy59; - } + if (yych <= 'n') { + if (yych <= '`') goto yy295; + goto yy472; } else { - if (yych <= 'y') { - if (yych <= 'x') goto yy3; - goto yy59; - } else { - if (yych == 0xC2) goto yy59; - goto yy3; - } + if (yych <= 'o') goto yy529; + if (yych <= 'z') goto yy472; + goto yy295; } } } -yy493: - YYDEBUG(493, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy495; - if (yych <= '0') goto yy780; - if (yych <= '1') goto yy781; - if (yych <= '9') goto yy782; - goto yy495; -yy494: - YYDEBUG(494, *YYCURSOR); - ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 13) YYFILL(13); - yych = *YYCURSOR; -yy495: - YYDEBUG(495, *YYCURSOR); - if (yych <= 'W') { - if (yych <= 'G') { - if (yych <= '.') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy494; - goto yy55; - } else { - if (yych <= ' ') goto yy494; - if (yych <= ',') goto yy55; - goto yy610; - } +yy356: + YYDEBUG(356, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '9') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy295; + goto yy142; } else { - if (yych <= 'C') { - if (yych == 'A') goto yy513; - goto yy55; - } else { - if (yych <= 'D') goto yy499; - if (yych == 'F') goto yy500; - goto yy55; - } + if (yych == ' ') goto yy142; + goto yy295; } } else { - if (yych <= 'O') { - if (yych <= 'J') { - if (yych <= 'H') goto yy64; - if (yych <= 'I') goto yy508; - goto yy512; - } else { - if (yych <= 'L') goto yy55; - if (yych <= 'M') goto yy496; - if (yych <= 'N') goto yy515; - goto yy514; - } + if (yych <= '-') { + if (yych <= ')') goto yy115; + if (yych <= ',') goto yy295; + goto yy479; } else { - if (yych <= 'S') { - if (yych <= 'P') goto yy517; - if (yych <= 'R') goto yy55; - goto yy497; - } else { - if (yych <= 'T') goto yy69; - if (yych <= 'U') goto yy62; - if (yych <= 'V') goto yy510; - goto yy68; - } + if (yych == '/') goto yy297; + goto yy142; } } } else { - if (yych <= 'm') { - if (yych <= 'e') { - if (yych <= '`') { - if (yych <= 'X') goto yy511; - if (yych <= 'Y') goto yy67; - goto yy55; - } else { - if (yych <= 'a') goto yy513; - if (yych == 'd') goto yy499; - goto yy55; - } + if (yych <= '^') { + if (yych <= 'N') { + if (yych <= '@') goto yy295; + goto yy472; } else { - if (yych <= 'h') { - if (yych <= 'f') goto yy500; - if (yych <= 'g') goto yy55; - goto yy64; - } else { - if (yych == 'j') goto yy512; - if (yych <= 'l') goto yy55; - } + if (yych <= 'O') goto yy529; + if (yych <= 'Z') goto yy472; + goto yy295; } } else { - if (yych <= 'u') { - if (yych <= 'p') { - if (yych <= 'n') goto yy515; - if (yych <= 'o') goto yy514; - goto yy517; - } else { - if (yych <= 'r') goto yy55; - if (yych <= 's') goto yy497; - if (yych <= 't') goto yy69; - goto yy62; - } + if (yych <= 'n') { + if (yych <= '_') goto yy297; + if (yych <= '`') goto yy295; + goto yy478; } else { - if (yych <= 'x') { - if (yych == 'w') goto yy68; - goto yy55; - } else { - if (yych <= 'y') goto yy67; - if (yych == 0xC2) goto yy61; - goto yy55; - } + if (yych <= 'o') goto yy530; + if (yych <= 'z') goto yy478; + goto yy295; } } } -yy496: - YYDEBUG(496, *YYCURSOR); +yy357: + YYDEBUG(357, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'S') { - if (yych <= 'I') { - if (yych == 'A') goto yy625; - if (yych <= 'H') goto yy55; - goto yy154; + if (yych <= 'V') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych == 'O') goto yy153; - if (yych <= 'R') goto yy55; - goto yy155; + if (yych <= '@') goto yy20; + if (yych <= 'U') goto yy472; + goto yy531; } } else { - if (yych <= 'i') { - if (yych == 'a') goto yy625; - if (yych <= 'h') goto yy55; - goto yy154; + if (yych <= 'u') { + if (yych <= 'Z') goto yy472; + if (yych <= '`') goto yy20; + goto yy472; + } else { + if (yych <= 'v') goto yy531; + if (yych <= 'z') goto yy472; + goto yy20; + } + } +yy358: + YYDEBUG(358, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'U') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= 'o') { - if (yych <= 'n') goto yy55; - goto yy153; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy472; + } + } else { + if (yych <= '_') { + if (yych <= 'V') goto yy531; + if (yych <= 'Z') goto yy472; + if (yych <= '^') goto yy20; + goto yy297; + } else { + if (yych <= 'u') { + if (yych <= '`') goto yy20; + goto yy478; } else { - if (yych == 's') goto yy155; - goto yy55; + if (yych <= 'v') goto yy532; + if (yych <= 'z') goto yy478; + goto yy20; } } } -yy497: - YYDEBUG(497, *YYCURSOR); +yy359: + YYDEBUG(359, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'U') { - if (yych <= 'D') { - if (yych == 'A') goto yy133; - goto yy55; + if (yych <= ')') { + if (yych <= '(') goto yy315; + goto yy115; } else { - if (yych <= 'E') goto yy1108; - if (yych <= 'T') goto yy55; - goto yy132; + if (yych <= '@') goto yy315; + if (yych <= 'T') goto yy472; + goto yy533; } } else { - if (yych <= 'd') { - if (yych == 'a') goto yy133; - goto yy55; - } else { - if (yych <= 'e') goto yy1108; - if (yych == 'u') goto yy132; - goto yy55; + if (yych <= 't') { + if (yych <= 'Z') goto yy472; + if (yych <= '`') goto yy315; + goto yy472; + } else { + if (yych <= 'u') goto yy533; + if (yych <= 'z') goto yy472; + goto yy315; } } -yy498: - YYDEBUG(498, *YYCURSOR); +yy360: + YYDEBUG(360, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '`') { - if (yych <= 'D') { - if (yych == 'A') goto yy133; - goto yy55; + if (yych <= 'O') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= 'E') goto yy1108; - if (yych == 'U') goto yy132; - goto yy55; + if (yych <= '@') goto yy20; + if (yych <= 'N') goto yy472; + goto yy534; } } else { - if (yych <= 'e') { - if (yych <= 'a') goto yy133; - if (yych <= 'd') goto yy55; - goto yy1108; - } else { - if (yych <= 's') goto yy55; - if (yych <= 't') goto yy773; - if (yych <= 'u') goto yy132; - goto yy55; + if (yych <= 'n') { + if (yych <= 'Z') goto yy472; + if (yych <= '`') goto yy20; + goto yy472; + } else { + if (yych <= 'o') goto yy534; + if (yych <= 'z') goto yy472; + goto yy20; } } -yy499: - YYDEBUG(499, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'E') { - if (yych == 'A') goto yy129; - if (yych <= 'D') goto yy55; - goto yy612; +yy361: + YYDEBUG(361, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy295; + goto yy142; + } else { + if (yych == ' ') goto yy142; + goto yy295; + } + } else { + if (yych <= ',') { + if (yych <= ')') goto yy115; + goto yy295; + } else { + if (yych <= '-') goto yy473; + if (yych <= '.') goto yy142; + goto yy295; + } + } } else { - if (yych <= 'a') { - if (yych <= '`') goto yy55; - goto yy129; + if (yych <= 'Z') { + if (yych <= '@') { + if (yych <= '9') goto yy142; + goto yy295; + } else { + if (yych == 'T') goto yy535; + goto yy472; + } } else { - if (yych == 'e') goto yy612; - goto yy55; + if (yych <= 's') { + if (yych <= '`') goto yy295; + goto yy472; + } else { + if (yych <= 't') goto yy535; + if (yych <= 'z') goto yy472; + goto yy295; + } } } -yy500: - YYDEBUG(500, *YYCURSOR); +yy362: + YYDEBUG(362, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'R') { - if (yych <= 'N') { - if (yych == 'E') goto yy628; - goto yy55; + if (yych <= 'E') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= 'O') goto yy113; - if (yych <= 'Q') goto yy55; - goto yy112; + if (yych <= '@') goto yy20; + if (yych <= 'D') goto yy472; + goto yy536; } } else { - if (yych <= 'n') { - if (yych == 'e') goto yy628; - goto yy55; + if (yych <= 'd') { + if (yych <= 'Z') goto yy472; + if (yych <= '`') goto yy20; + goto yy472; } else { - if (yych <= 'o') goto yy113; - if (yych == 'r') goto yy112; - goto yy55; + if (yych <= 'e') goto yy536; + if (yych <= 'z') goto yy472; + goto yy20; } } -yy501: - YYDEBUG(501, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych == 'H') goto yy81; - if (yych <= 'T') goto yy55; - goto yy82; - } else { - if (yych <= 'h') { - if (yych <= 'g') goto yy55; - goto yy1107; +yy363: + YYDEBUG(363, *YYCURSOR); + yyaccept = 9; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'T') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy315; + goto yy297; } else { - if (yych == 'u') goto yy82; - goto yy55; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy315; + goto yy472; } - } -yy502: - YYDEBUG(502, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '-') goto yy786; - if (yych <= '/') goto yy59; - if (yych <= '9') goto yy785; - goto yy59; -yy503: - YYDEBUG(503, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'c') { - if (yych == 'O') goto yy563; - goto yy55; } else { - if (yych <= 'd') goto yy773; - if (yych == 'o') goto yy563; - goto yy55; - } -yy504: - YYDEBUG(504, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'd') goto yy773; - goto yy55; -yy505: - YYDEBUG(505, *YYCURSOR); - yych = *++YYCURSOR; - switch (yych) { - case '0': - case '1': - case '2': goto yy699; - case '3': goto yy701; - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy702; - case 'A': - case 'a': goto yy706; - case 'D': - case 'd': goto yy710; - case 'F': - case 'f': goto yy704; - case 'J': - case 'j': goto yy703; - case 'M': - case 'm': goto yy705; - case 'N': - case 'n': goto yy709; - case 'O': - case 'o': goto yy708; - case 'S': - case 's': goto yy707; - default: goto yy55; - } -yy506: - YYDEBUG(506, *YYCURSOR); - yych = *++YYCURSOR; - switch (yych) { - case '0': goto yy649; - case '1': goto yy650; - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy651; - case 'A': - case 'a': goto yy655; - case 'D': - case 'd': goto yy659; - case 'F': - case 'f': goto yy653; - case 'J': - case 'j': goto yy652; - case 'M': - case 'm': goto yy654; - case 'N': - case 'n': goto yy658; - case 'O': - case 'o': goto yy657; - case 'S': - case 's': goto yy656; - default: goto yy611; - } -yy507: - YYDEBUG(507, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '1') { - if (yych <= '/') goto yy611; - if (yych <= '0') goto yy601; - goto yy602; - } else { - if (yych <= '5') goto yy603; - if (yych <= '9') goto yy604; - goto yy611; + if (yych <= '_') { + if (yych <= 'U') goto yy533; + if (yych <= 'Z') goto yy472; + if (yych <= '^') goto yy315; + goto yy297; + } else { + if (yych <= 't') { + if (yych <= '`') goto yy315; + goto yy478; + } else { + if (yych <= 'u') goto yy537; + if (yych <= 'z') goto yy478; + goto yy315; + } + } } -yy508: - YYDEBUG(508, *YYCURSOR); - yyaccept = 9; +yy364: + YYDEBUG(364, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy565; + if (yych <= 'N') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= ' ') goto yy565; - if (yych <= ',') goto yy509; - if (yych <= '.') goto yy565; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy472; } } else { - if (yych <= 'U') { - if (yych <= '9') goto yy567; - if (yych == 'I') goto yy600; + if (yych <= '_') { + if (yych <= 'O') goto yy534; + if (yych <= 'Z') goto yy472; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych == 'W') goto yy509; - if (yych <= 'X') goto yy573; + if (yych <= 'n') { + if (yych <= '`') goto yy20; + goto yy478; + } else { + if (yych <= 'o') goto yy538; + if (yych <= 'z') goto yy478; + goto yy20; + } } } -yy509: - YYDEBUG(509, *YYCURSOR); -#line 1606 "ext/date/lib/parse_date.re" - { - DEBUG_OUTPUT("datenoyearrev"); - TIMELIB_INIT; - TIMELIB_HAVE_DATE(); - s->time->d = timelib_get_nr(&ptr, 2); - timelib_skip_day_suffix(&ptr); - s->time->m = timelib_get_month(&ptr); - TIMELIB_DEINIT; - return TIMELIB_DATE_TEXT; - } -#line 9716 "" -yy510: - YYDEBUG(510, *YYCURSOR); - yyaccept = 9; +yy365: + YYDEBUG(365, *YYCURSOR); + yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ',') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy509; - goto yy565; + if (yych <= '9') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy295; + goto yy142; + } else { + if (yych == ' ') goto yy142; + goto yy295; + } } else { - if (yych == ' ') goto yy565; - goto yy509; + if (yych <= '-') { + if (yych <= ')') goto yy115; + if (yych <= ',') goto yy295; + goto yy479; + } else { + if (yych == '/') goto yy297; + goto yy142; + } } } else { - if (yych <= '9') { - if (yych <= '.') goto yy565; - if (yych <= '/') goto yy509; - goto yy567; + if (yych <= '^') { + if (yych <= 'S') { + if (yych <= '@') goto yy295; + goto yy472; + } else { + if (yych <= 'T') goto yy535; + if (yych <= 'Z') goto yy472; + goto yy295; + } } else { - if (yych == 'I') goto yy598; - goto yy509; + if (yych <= 's') { + if (yych <= '_') goto yy297; + if (yych <= '`') goto yy295; + goto yy478; + } else { + if (yych <= 't') goto yy539; + if (yych <= 'z') goto yy478; + goto yy295; + } } } -yy511: - YYDEBUG(511, *YYCURSOR); - yyaccept = 9; +yy366: + YYDEBUG(366, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ',') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy509; - goto yy565; + if (yych <= 'D') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == ' ') goto yy565; - goto yy509; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy472; } } else { - if (yych <= '9') { - if (yych <= '.') goto yy565; - if (yych <= '/') goto yy509; - goto yy567; + if (yych <= '_') { + if (yych <= 'E') goto yy536; + if (yych <= 'Z') goto yy472; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych == 'I') goto yy597; - goto yy509; + if (yych <= 'd') { + if (yych <= '`') goto yy20; + goto yy478; + } else { + if (yych <= 'e') goto yy540; + if (yych <= 'z') goto yy478; + goto yy20; + } } } -yy512: - YYDEBUG(512, *YYCURSOR); +yy367: + YYDEBUG(367, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy75; + goto yy177; + } else { + if (yych <= '5') goto yy541; + if (yych == ':') goto yy75; + goto yy177; + } +yy368: + YYDEBUG(368, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych == 'A') goto yy590; - if (yych <= 'T') goto yy55; - goto yy589; + if (yych <= 'S') { + if (yych <= '@') { + if (yych == ')') goto yy115; + goto yy20; + } else { + if (yych <= 'Q') goto yy472; + if (yych <= 'R') goto yy542; + goto yy524; + } } else { - if (yych <= 'a') { - if (yych <= '`') goto yy55; - goto yy590; + if (yych <= 'q') { + if (yych <= 'Z') goto yy472; + if (yych <= '`') goto yy20; + goto yy472; } else { - if (yych == 'u') goto yy589; - goto yy55; + if (yych <= 'r') goto yy542; + if (yych <= 's') goto yy524; + if (yych <= 'z') goto yy472; + goto yy20; } } -yy513: - YYDEBUG(513, *YYCURSOR); +yy369: + YYDEBUG(369, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych <= 'L') { - if (yych == '.') goto yy518; - goto yy55; + if (yych <= 'R') { + if (yych <= ')') { + if (yych <= '(') goto yy315; + goto yy115; } else { - if (yych <= 'M') goto yy519; - if (yych == 'P') goto yy583; - goto yy55; + if (yych <= '@') goto yy315; + if (yych <= 'Q') goto yy472; + goto yy543; } } else { - if (yych <= 'o') { - if (yych <= 'U') goto yy582; - if (yych == 'm') goto yy519; - goto yy55; - } else { - if (yych <= 'p') goto yy583; - if (yych == 'u') goto yy582; - goto yy55; + if (yych <= 'q') { + if (yych <= 'Z') goto yy472; + if (yych <= '`') goto yy315; + goto yy472; + } else { + if (yych <= 'r') goto yy543; + if (yych <= 'z') goto yy472; + goto yy315; } } -yy514: - YYDEBUG(514, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy577; - if (yych == 'c') goto yy577; - goto yy55; -yy515: - YYDEBUG(515, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy563; - if (yych == 'o') goto yy563; - goto yy55; -yy516: - YYDEBUG(516, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy523; - if (yych <= '9') goto yy525; - goto yy55; -yy517: - YYDEBUG(517, *YYCURSOR); +yy370: + YYDEBUG(370, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'L') { - if (yych != '.') goto yy55; + if (yych <= 'A') { + if (yych == ')') goto yy115; + if (yych <= '@') goto yy20; + goto yy544; } else { - if (yych <= 'M') goto yy519; - if (yych == 'm') goto yy519; - goto yy55; + if (yych <= '`') { + if (yych <= 'Z') goto yy472; + goto yy20; + } else { + if (yych <= 'a') goto yy544; + if (yych <= 'z') goto yy472; + goto yy20; + } } -yy518: - YYDEBUG(518, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'M') goto yy519; - if (yych != 'm') goto yy55; -yy519: - YYDEBUG(519, *YYCURSOR); +yy371: + YYDEBUG(371, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 0x1F) { - if (yych <= 0x00) goto yy521; - if (yych == '\t') goto yy521; - goto yy55; + if (yych <= 'O') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; + } else { + if (yych <= '@') goto yy20; + if (yych <= 'N') goto yy472; + goto yy545; + } } else { - if (yych <= ' ') goto yy521; - if (yych != '.') goto yy55; + if (yych <= 'n') { + if (yych <= 'Z') goto yy472; + if (yych <= '`') goto yy20; + goto yy472; + } else { + if (yych <= 'o') goto yy545; + if (yych <= 'z') goto yy472; + goto yy20; + } } - YYDEBUG(520, *YYCURSOR); +yy372: + YYDEBUG(372, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '\t') { - if (yych <= 0x00) goto yy521; - if (yych <= 0x08) goto yy55; + if (yych <= 'S') { + if (yych <= ')') { + if (yych <= '(') goto yy315; + goto yy115; + } else { + if (yych <= '@') goto yy315; + if (yych <= 'R') goto yy472; + goto yy546; + } } else { - if (yych != ' ') goto yy55; - } -yy521: - YYDEBUG(521, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(522, *YYCURSOR); -#line 1310 "ext/date/lib/parse_date.re" - { - DEBUG_OUTPUT("timetiny12 | timeshort12 | timelong12"); - TIMELIB_INIT; - TIMELIB_HAVE_TIME(); - s->time->h = timelib_get_nr(&ptr, 2); - if (*ptr == ':' || *ptr == '.') { - s->time->i = timelib_get_nr(&ptr, 2); - if (*ptr == ':' || *ptr == '.') { - s->time->s = timelib_get_nr(&ptr, 2); - } + if (yych <= 'r') { + if (yych <= 'Z') goto yy472; + if (yych <= '`') goto yy315; + goto yy472; + } else { + if (yych <= 's') goto yy546; + if (yych <= 'z') goto yy472; + goto yy315; } - s->time->h += timelib_meridian(&ptr, s->time->h); - TIMELIB_DEINIT; - return TIMELIB_TIME12; } -#line 9873 "" -yy523: - YYDEBUG(523, *YYCURSOR); - yyaccept = 10; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych == '.') goto yy526; +yy373: + YYDEBUG(373, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'L') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; + } else { + if (yych <= '@') goto yy20; + if (yych <= 'K') goto yy472; + goto yy547; + } } else { - if (yych <= '9') goto yy540; - if (yych <= ':') goto yy526; + if (yych <= 'k') { + if (yych <= 'Z') goto yy472; + if (yych <= '`') goto yy20; + goto yy472; + } else { + if (yych <= 'l') goto yy547; + if (yych <= 'z') goto yy472; + goto yy20; + } } -yy524: - YYDEBUG(524, *YYCURSOR); -#line 1347 "ext/date/lib/parse_date.re" - { - int tz_not_found; - DEBUG_OUTPUT("timetiny24 | timeshort24 | timelong24 | iso8601long"); - TIMELIB_INIT; - TIMELIB_HAVE_TIME(); - s->time->h = timelib_get_nr(&ptr, 2); - if (*ptr == ':' || *ptr == '.') { - s->time->i = timelib_get_nr(&ptr, 2); - if (*ptr == ':' || *ptr == '.') { - s->time->s = timelib_get_nr(&ptr, 2); - - if (*ptr == '.') { - s->time->us = timelib_get_frac_nr(&ptr); - } +yy374: + YYDEBUG(374, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'R') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; + } else { + if (yych <= '/') { + if (yych <= '.') goto yy20; + goto yy297; + } else { + if (yych <= '@') goto yy20; + if (yych <= 'Q') goto yy472; + goto yy542; } } - - if (*ptr != '\0') { - s->time->z = timelib_parse_zone(&ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper); - if (tz_not_found) { - add_error(s, TIMELIB_ERR_TZID_NOT_FOUND, "The timezone could not be found in the database"); + } else { + if (yych <= '`') { + if (yych <= 'Z') { + if (yych <= 'S') goto yy524; + goto yy472; + } else { + if (yych == '_') goto yy297; + goto yy20; + } + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy478; + goto yy548; + } else { + if (yych <= 's') goto yy527; + if (yych <= 'z') goto yy478; + goto yy20; } } - TIMELIB_DEINIT; - return TIMELIB_TIME24_WITH_ZONE; } -#line 9913 "" -yy525: - YYDEBUG(525, *YYCURSOR); - yyaccept = 10; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '.') goto yy526; - if (yych != ':') goto yy524; -yy526: - YYDEBUG(526, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy527; - if (yych <= '6') goto yy528; - if (yych <= '9') goto yy529; - goto yy55; -yy527: - YYDEBUG(527, *YYCURSOR); - yyaccept = 10; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '.') goto yy530; - if (yych <= '/') goto yy524; - if (yych <= '9') goto yy533; - goto yy524; -yy528: - YYDEBUG(528, *YYCURSOR); - yyaccept = 10; +yy375: + YYDEBUG(375, *YYCURSOR); + yyaccept = 9; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '.') goto yy530; - if (yych == '0') goto yy533; - goto yy524; -yy529: - YYDEBUG(529, *YYCURSOR); - yyaccept = 10; + if (yych <= 'Q') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy315; + goto yy297; + } else { + if (yych == '/') goto yy297; + if (yych <= '@') goto yy315; + goto yy472; + } + } else { + if (yych <= '_') { + if (yych <= 'R') goto yy543; + if (yych <= 'Z') goto yy472; + if (yych <= '^') goto yy315; + goto yy297; + } else { + if (yych <= 'q') { + if (yych <= '`') goto yy315; + goto yy478; + } else { + if (yych <= 'r') goto yy549; + if (yych <= 'z') goto yy478; + goto yy315; + } + } + } +yy376: + YYDEBUG(376, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych != '.') goto yy524; -yy530: - YYDEBUG(530, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 128) { - goto yy531; + if (yych <= '@') { + if (yych <= ',') { + if (yych == ')') goto yy115; + goto yy20; + } else { + if (yych == '.') goto yy20; + if (yych <= '/') goto yy297; + goto yy20; + } + } else { + if (yych <= '_') { + if (yych <= 'A') goto yy544; + if (yych <= 'Z') goto yy472; + if (yych <= '^') goto yy20; + goto yy297; + } else { + if (yych <= '`') goto yy20; + if (yych <= 'a') goto yy550; + if (yych <= 'z') goto yy478; + goto yy20; + } } - goto yy55; -yy531: - YYDEBUG(531, *YYCURSOR); - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(532, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy531; +yy377: + YYDEBUG(377, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'N') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; + } else { + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy472; + } + } else { + if (yych <= '_') { + if (yych <= 'O') goto yy545; + if (yych <= 'Z') goto yy472; + if (yych <= '^') goto yy20; + goto yy297; + } else { + if (yych <= 'n') { + if (yych <= '`') goto yy20; + goto yy478; + } else { + if (yych <= 'o') goto yy551; + if (yych <= 'z') goto yy478; + goto yy20; + } + } } - goto yy524; -yy533: - YYDEBUG(533, *YYCURSOR); - yyaccept = 10; +yy378: + YYDEBUG(378, *YYCURSOR); + yyaccept = 9; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '@') { - if (yych <= 0x1F) { - if (yych != '\t') goto yy524; + if (yych <= 'R') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy315; + goto yy297; } else { - if (yych <= ' ') goto yy534; - if (yych == '.') goto yy530; - goto yy524; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy315; + goto yy472; } } else { - if (yych <= '`') { - if (yych <= 'A') goto yy536; - if (yych == 'P') goto yy536; - goto yy524; + if (yych <= '_') { + if (yych <= 'S') goto yy546; + if (yych <= 'Z') goto yy472; + if (yych <= '^') goto yy315; + goto yy297; } else { - if (yych <= 'a') goto yy536; - if (yych == 'p') goto yy536; - goto yy524; + if (yych <= 'r') { + if (yych <= '`') goto yy315; + goto yy478; + } else { + if (yych <= 's') goto yy552; + if (yych <= 'z') goto yy478; + goto yy315; + } } } -yy534: - YYDEBUG(534, *YYCURSOR); - ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); - yych = *YYCURSOR; - YYDEBUG(535, *YYCURSOR); - if (yych <= 'A') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy534; - goto yy55; +yy379: + YYDEBUG(379, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'K') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= ' ') goto yy534; - if (yych <= '@') goto yy55; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy472; } } else { - if (yych <= '`') { - if (yych != 'P') goto yy55; + if (yych <= '_') { + if (yych <= 'L') goto yy547; + if (yych <= 'Z') goto yy472; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 'a') goto yy536; - if (yych != 'p') goto yy55; + if (yych <= 'k') { + if (yych <= '`') goto yy20; + goto yy478; + } else { + if (yych <= 'l') goto yy553; + if (yych <= 'z') goto yy478; + goto yy20; + } } } -yy536: - YYDEBUG(536, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'L') { - if (yych != '.') goto yy55; +yy380: + YYDEBUG(380, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= ' ') { + if (yych == '\t') goto yy142; + if (yych <= 0x1F) goto yy20; + goto yy142; + } else { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy142; + } } else { - if (yych <= 'M') goto yy538; - if (yych == 'm') goto yy538; - goto yy55; + if (yych <= 'H') { + if (yych <= '/') goto yy20; + if (yych <= '9') goto yy142; + if (yych <= '@') goto yy20; + goto yy472; + } else { + if (yych <= 'Z') { + if (yych <= 'I') goto yy554; + goto yy472; + } else { + if (yych <= '`') goto yy20; + if (yych <= 'z') goto yy472; + goto yy20; + } + } } - YYDEBUG(537, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'M') goto yy538; - if (yych != 'm') goto yy55; -yy538: - YYDEBUG(538, *YYCURSOR); +yy381: + YYDEBUG(381, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 0x1F) { - if (yych <= 0x00) goto yy521; - if (yych == '\t') goto yy521; - goto yy55; + if (yych <= 'N') { + if (yych <= ')') { + if (yych <= '(') goto yy315; + goto yy115; + } else { + if (yych <= '@') goto yy315; + if (yych <= 'M') goto yy472; + goto yy555; + } } else { - if (yych <= ' ') goto yy521; - if (yych != '.') goto yy55; + if (yych <= 'm') { + if (yych <= 'Z') goto yy472; + if (yych <= '`') goto yy315; + goto yy472; + } else { + if (yych <= 'n') goto yy555; + if (yych <= 'z') goto yy472; + goto yy315; + } } - YYDEBUG(539, *YYCURSOR); +yy382: + YYDEBUG(382, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '\t') { - if (yych <= 0x00) goto yy521; - if (yych <= 0x08) goto yy55; - goto yy521; + if (yych <= 'K') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; + } else { + if (yych <= '@') goto yy20; + if (yych <= 'J') goto yy472; + goto yy546; + } } else { - if (yych == ' ') goto yy521; - goto yy55; + if (yych <= 'j') { + if (yych <= 'Z') goto yy472; + if (yych <= '`') goto yy20; + goto yy472; + } else { + if (yych <= 'k') goto yy546; + if (yych <= 'z') goto yy472; + goto yy20; + } } -yy540: - YYDEBUG(540, *YYCURSOR); - yyaccept = 10; +yy383: + YYDEBUG(383, *YYCURSOR); + yyaccept = 9; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ':') { - if (yych <= ' ') { - if (yych == '\t') goto yy541; - if (yych <= 0x1F) goto yy524; + if (yych <= 'M') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy315; + goto yy297; } else { - if (yych == '.') goto yy526; - if (yych <= '9') goto yy524; - goto yy544; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy315; + goto yy472; } } else { - if (yych <= 'P') { - if (yych == 'A') goto yy543; - if (yych <= 'O') goto yy524; - goto yy543; + if (yych <= '_') { + if (yych <= 'N') goto yy555; + if (yych <= 'Z') goto yy472; + if (yych <= '^') goto yy315; + goto yy297; } else { - if (yych <= 'a') { - if (yych <= '`') goto yy524; - goto yy543; + if (yych <= 'm') { + if (yych <= '`') goto yy315; + goto yy478; } else { - if (yych == 'p') goto yy543; - goto yy524; + if (yych <= 'n') goto yy556; + if (yych <= 'z') goto yy478; + goto yy315; } } } -yy541: - YYDEBUG(541, *YYCURSOR); - ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); - yych = *YYCURSOR; - YYDEBUG(542, *YYCURSOR); - if (yych <= 'A') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy541; - goto yy55; +yy384: + YYDEBUG(384, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'J') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= ' ') goto yy541; - if (yych <= '@') goto yy55; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy472; } } else { - if (yych <= '`') { - if (yych != 'P') goto yy55; + if (yych <= '_') { + if (yych <= 'K') goto yy546; + if (yych <= 'Z') goto yy472; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 'a') goto yy543; - if (yych != 'p') goto yy55; + if (yych <= 'j') { + if (yych <= '`') goto yy20; + goto yy478; + } else { + if (yych <= 'k') goto yy552; + if (yych <= 'z') goto yy478; + goto yy20; + } } } -yy543: - YYDEBUG(543, *YYCURSOR); +yy385: + YYDEBUG(385, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'L') { - if (yych == '.') goto yy560; - goto yy55; + if (yych <= 'T') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; + } else { + if (yych <= '@') goto yy20; + if (yych <= 'S') goto yy472; + goto yy557; + } } else { - if (yych <= 'M') goto yy561; - if (yych == 'm') goto yy561; - goto yy55; + if (yych <= 's') { + if (yych <= 'Z') goto yy472; + if (yych <= '`') goto yy20; + goto yy472; + } else { + if (yych <= 't') goto yy557; + if (yych <= 'z') goto yy472; + goto yy20; + } } -yy544: - YYDEBUG(544, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy545; - if (yych <= '6') goto yy546; - if (yych <= '9') goto yy529; - goto yy55; -yy545: - YYDEBUG(545, *YYCURSOR); - yyaccept = 10; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '.') goto yy530; - if (yych <= '/') goto yy524; - if (yych <= '9') goto yy547; - goto yy524; -yy546: - YYDEBUG(546, *YYCURSOR); - yyaccept = 10; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '.') goto yy530; - if (yych != '0') goto yy524; -yy547: - YYDEBUG(547, *YYCURSOR); - yyaccept = 10; +yy386: + YYDEBUG(386, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ':') { - if (yych <= ' ') { - if (yych == '\t') goto yy534; - if (yych <= 0x1F) goto yy524; - goto yy534; + if (yych <= 'S') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == '.') goto yy548; - if (yych <= '9') goto yy524; - goto yy549; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy472; } } else { - if (yych <= 'P') { - if (yych == 'A') goto yy536; - if (yych <= 'O') goto yy524; - goto yy536; + if (yych <= '_') { + if (yych <= 'T') goto yy557; + if (yych <= 'Z') goto yy472; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 'a') { - if (yych <= '`') goto yy524; - goto yy536; + if (yych <= 's') { + if (yych <= '`') goto yy20; + goto yy478; } else { - if (yych == 'p') goto yy536; - goto yy524; + if (yych <= 't') goto yy558; + if (yych <= 'z') goto yy478; + goto yy20; } } } -yy548: - YYDEBUG(548, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy558; - goto yy55; -yy549: - YYDEBUG(549, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= ':') goto yy55; -yy550: - YYDEBUG(550, *YYCURSOR); +yy387: + YYDEBUG(387, *YYCURSOR); ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); + if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; - YYDEBUG(551, *YYCURSOR); - if (yych <= 'O') { - if (yych <= '9') { - if (yych <= '/') goto yy55; - goto yy550; + if (yych == 0xA0) goto yy193; + goto yy59; +yy388: + YYDEBUG(388, *YYCURSOR); + yyaccept = 0; + YYMARKER = ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0xE2) goto yy559; + goto yy8; +yy389: + YYDEBUG(389, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 0xC1) { + if (yych <= '/') goto yy196; + if (yych <= '9') goto yy560; + goto yy196; + } else { + if (yych <= 0xC2) goto yy97; + if (yych == 0xE2) goto yy98; + goto yy196; + } +yy390: + YYDEBUG(390, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy443; + if (yych == 'c') goto yy443; + goto yy59; +yy391: + YYDEBUG(391, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'X') { + if (yych <= 'E') { + if (yych <= ' ') { + if (yych == '\t') goto yy196; + if (yych <= 0x1F) goto yy20; + goto yy196; + } else { + if (yych <= '9') { + if (yych <= '/') goto yy20; + goto yy561; + } else { + if (yych == 'D') goto yy196; + goto yy20; + } + } } else { - if (yych != 'A') goto yy55; + if (yych <= 'M') { + if (yych <= 'G') { + if (yych <= 'F') goto yy196; + goto yy20; + } else { + if (yych <= 'H') goto yy196; + if (yych <= 'L') goto yy20; + goto yy196; + } + } else { + if (yych <= 'U') { + if (yych <= 'R') goto yy20; + goto yy196; + } else { + if (yych == 'W') goto yy196; + goto yy20; + } + } } } else { - if (yych <= 'a') { - if (yych <= 'P') goto yy552; - if (yych <= '`') goto yy55; + if (yych <= 'r') { + if (yych <= 'f') { + if (yych <= 'c') { + if (yych <= 'Y') goto yy196; + goto yy20; + } else { + if (yych == 'e') goto yy20; + goto yy196; + } + } else { + if (yych <= 'h') { + if (yych <= 'g') goto yy20; + goto yy196; + } else { + if (yych == 'm') goto yy196; + goto yy20; + } + } } else { - if (yych != 'p') goto yy55; + if (yych <= 'y') { + if (yych <= 'v') { + if (yych <= 'u') goto yy196; + goto yy20; + } else { + if (yych == 'x') goto yy20; + goto yy196; + } + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy20; + goto yy97; + } else { + if (yych == 0xE2) goto yy98; + goto yy20; + } + } } } -yy552: - YYDEBUG(552, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'L') { - if (yych != '.') goto yy55; +yy392: + YYDEBUG(392, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'X') { + if (yych <= 'E') { + if (yych <= ' ') { + if (yych == '\t') goto yy196; + if (yych <= 0x1F) goto yy20; + goto yy196; + } else { + if (yych <= '9') { + if (yych <= '/') goto yy20; + goto yy562; + } else { + if (yych == 'D') goto yy196; + goto yy20; + } + } + } else { + if (yych <= 'M') { + if (yych <= 'G') { + if (yych <= 'F') goto yy196; + goto yy20; + } else { + if (yych <= 'H') goto yy196; + if (yych <= 'L') goto yy20; + goto yy196; + } + } else { + if (yych <= 'U') { + if (yych <= 'R') goto yy20; + goto yy196; + } else { + if (yych == 'W') goto yy196; + goto yy20; + } + } + } } else { - if (yych <= 'M') goto yy554; - if (yych == 'm') goto yy554; - goto yy55; + if (yych <= 'r') { + if (yych <= 'f') { + if (yych <= 'c') { + if (yych <= 'Y') goto yy196; + goto yy20; + } else { + if (yych == 'e') goto yy20; + goto yy196; + } + } else { + if (yych <= 'h') { + if (yych <= 'g') goto yy20; + goto yy196; + } else { + if (yych == 'm') goto yy196; + goto yy20; + } + } + } else { + if (yych <= 'y') { + if (yych <= 'v') { + if (yych <= 'u') goto yy196; + goto yy20; + } else { + if (yych == 'x') goto yy20; + goto yy196; + } + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy20; + goto yy97; + } else { + if (yych == 0xE2) goto yy98; + goto yy20; + } + } + } } - YYDEBUG(553, *YYCURSOR); +yy393: + YYDEBUG(393, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy554; - if (yych != 'm') goto yy55; -yy554: - YYDEBUG(554, *YYCURSOR); + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy563; + if (yych <= '9') goto yy115; + goto yy59; +yy394: + YYDEBUG(394, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 0x1F) { - if (yych <= 0x00) goto yy556; - if (yych == '\t') goto yy556; - goto yy55; - } else { - if (yych <= ' ') goto yy556; - if (yych != '.') goto yy55; + if (yych <= '/') goto yy20; + if (yych <= '9') goto yy115; + goto yy20; +yy395: + YYDEBUG(395, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 0xC1) { + if (yych <= '/') goto yy196; + if (yych <= '9') goto yy562; + goto yy196; + } else { + if (yych <= 0xC2) goto yy97; + if (yych == 0xE2) goto yy98; + goto yy196; } - YYDEBUG(555, *YYCURSOR); +yy396: + YYDEBUG(396, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '\t') { - if (yych <= 0x00) goto yy556; - if (yych <= 0x08) goto yy55; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy564; + goto yy59; +yy397: + YYDEBUG(397, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy565; + goto yy59; +yy398: + YYDEBUG(398, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '2') goto yy566; + if (yych <= '3') goto yy568; + if (yych <= '9') goto yy569; + goto yy59; +yy399: + YYDEBUG(399, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'P') goto yy444; + if (yych == 'p') goto yy444; + goto yy59; +yy400: + YYDEBUG(400, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy570; + if (yych <= '6') goto yy571; + if (yych <= '9') goto yy572; + goto yy59; +yy401: + YYDEBUG(401, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy573; + if (yych <= '6') goto yy574; + if (yych <= '9') goto yy575; + goto yy59; +yy402: + YYDEBUG(402, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy576; + goto yy59; +yy403: + YYDEBUG(403, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'd') goto yy577; + goto yy59; +yy404: + YYDEBUG(404, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 't') goto yy577; + goto yy59; +yy405: + YYDEBUG(405, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'h') goto yy577; + goto yy59; +yy406: + YYDEBUG(406, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy578; + if (yych == 'r') goto yy578; + goto yy59; +yy407: + YYDEBUG(407, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'G') goto yy578; + if (yych == 'g') goto yy578; + goto yy59; +yy408: + YYDEBUG(408, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy578; + if (yych == 'c') goto yy578; + goto yy59; +yy409: + YYDEBUG(409, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy578; + if (yych == 'b') goto yy578; + goto yy59; +yy410: + YYDEBUG(410, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy578; + if (yych == 'n') goto yy578; + goto yy59; +yy411: + YYDEBUG(411, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'N') { + if (yych == 'L') goto yy578; + if (yych <= 'M') goto yy59; + goto yy578; } else { - if (yych != ' ') goto yy55; - } -yy556: - YYDEBUG(556, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(557, *YYCURSOR); -#line 1327 "ext/date/lib/parse_date.re" - { - DEBUG_OUTPUT("mssqltime"); - TIMELIB_INIT; - TIMELIB_HAVE_TIME(); - s->time->h = timelib_get_nr(&ptr, 2); - s->time->i = timelib_get_nr(&ptr, 2); - if (*ptr == ':' || *ptr == '.') { - s->time->s = timelib_get_nr(&ptr, 2); - - if (*ptr == ':' || *ptr == '.') { - s->time->us = timelib_get_frac_nr(&ptr); - } - } - timelib_eat_spaces(&ptr); - s->time->h += timelib_meridian(&ptr, s->time->h); - TIMELIB_DEINIT; - return TIMELIB_TIME24_WITH_ZONE; - } -#line 10245 "" -yy558: - YYDEBUG(558, *YYCURSOR); - yyaccept = 10; - YYMARKER = ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); - yych = *YYCURSOR; - YYDEBUG(559, *YYCURSOR); - if (yych <= 'O') { - if (yych <= '9') { - if (yych <= '/') goto yy524; - goto yy558; + if (yych <= 'l') { + if (yych <= 'k') goto yy59; + goto yy578; } else { - if (yych == 'A') goto yy552; - goto yy524; + if (yych == 'n') goto yy578; + goto yy59; } + } +yy412: + YYDEBUG(412, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'Y') { + if (yych == 'R') goto yy578; + if (yych <= 'X') goto yy59; + goto yy578; } else { - if (yych <= 'a') { - if (yych <= 'P') goto yy552; - if (yych <= '`') goto yy524; - goto yy552; + if (yych <= 'r') { + if (yych <= 'q') goto yy59; + goto yy578; } else { - if (yych == 'p') goto yy552; - goto yy524; + if (yych == 'y') goto yy578; + goto yy59; } } -yy560: - YYDEBUG(560, *YYCURSOR); +yy413: + YYDEBUG(413, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'M') goto yy561; - if (yych != 'm') goto yy55; -yy561: - YYDEBUG(561, *YYCURSOR); + if (yych == 'V') goto yy578; + if (yych == 'v') goto yy578; + goto yy59; +yy414: + YYDEBUG(414, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 0x1F) { - if (yych <= 0x00) goto yy521; - if (yych == '\t') goto yy521; - goto yy55; + if (yych == 'T') goto yy578; + if (yych == 't') goto yy578; + goto yy59; +yy415: + YYDEBUG(415, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'P') goto yy579; + if (yych == 'p') goto yy579; + goto yy59; +yy416: + YYDEBUG(416, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '.') { + if (yych <= ',') goto yy59; + if (yych <= '-') goto yy398; + goto yy396; } else { - if (yych <= ' ') goto yy521; - if (yych != '.') goto yy55; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy580; + goto yy59; } - YYDEBUG(562, *YYCURSOR); +yy417: + YYDEBUG(417, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '\t') { - if (yych <= 0x00) goto yy521; - if (yych <= 0x08) goto yy55; - goto yy521; + if (yych <= '.') { + if (yych <= ',') goto yy59; + if (yych <= '-') goto yy398; + goto yy396; } else { - if (yych == ' ') goto yy521; - goto yy55; + if (yych <= '/') goto yy59; + if (yych <= '2') goto yy580; + goto yy59; } -yy563: - YYDEBUG(563, *YYCURSOR); +yy418: + YYDEBUG(418, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'V') goto yy564; - if (yych != 'v') goto yy55; -yy564: - YYDEBUG(564, *YYCURSOR); - yyaccept = 9; + switch (yych) { + case '0': goto yy581; + case '1': goto yy582; + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy462; + case 'A': + case 'a': goto yy463; + case 'D': + case 'd': goto yy464; + case 'F': + case 'f': goto yy465; + case 'J': + case 'j': goto yy466; + case 'M': + case 'm': goto yy467; + case 'N': + case 'n': goto yy468; + case 'O': + case 'o': goto yy469; + case 'S': + case 's': goto yy470; + default: goto yy59; + } +yy419: + YYDEBUG(419, *YYCURSOR); + yyaccept = 12; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= 0x1F) { - if (yych != '\t') goto yy509; + if (yych <= 'O') { + if (yych <= '5') { + if (yych <= '-') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy584; + } else { + if (yych <= ' ') goto yy584; + if (yych >= '-') goto yy585; + } + } else { + if (yych <= '0') { + if (yych <= '.') goto yy586; + if (yych <= '/') goto yy587; + goto yy588; + } else { + if (yych <= '1') goto yy589; + if (yych <= '2') goto yy590; + if (yych <= '3') goto yy591; + goto yy592; + } + } } else { - if (yych <= ' ') goto yy565; - if (yych <= ',') goto yy509; - } - } else { - if (yych <= 'D') { - if (yych <= '/') goto yy509; - if (yych <= '9') goto yy567; - goto yy509; - } else { - if (yych <= 'E') goto yy569; - if (yych == 'e') goto yy569; - goto yy509; + if (yych <= 'C') { + if (yych <= ':') { + if (yych <= '6') goto yy593; + if (yych <= '9') goto yy594; + goto yy595; + } else { + if (yych == 'A') goto yy584; + } + } else { + if (yych <= 'F') { + if (yych != 'E') goto yy584; + } else { + if (yych <= 'G') goto yy420; + if (yych <= 'J') goto yy584; + if (yych >= 'M') goto yy584; + } + } } - } -yy565: - YYDEBUG(565, *YYCURSOR); - ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4); - yych = *YYCURSOR; -yy566: - YYDEBUG(566, *YYCURSOR); - if (yych <= ' ') { - if (yych == '\t') goto yy565; - if (yych <= 0x1F) goto yy55; - goto yy565; } else { - if (yych <= '.') { - if (yych <= ',') goto yy55; - goto yy565; + if (yych <= 'i') { + if (yych <= 'a') { + if (yych <= 'W') { + if (yych <= 'R') goto yy420; + if (yych <= 'V') goto yy584; + goto yy607; + } else { + if (yych <= 'Y') goto yy584; + if (yych >= 'a') goto yy584; + } + } else { + if (yych <= 'e') { + if (yych == 'd') goto yy584; + } else { + if (yych == 'g') goto yy420; + if (yych <= 'h') goto yy584; + } + } } else { - if (yych <= '/') goto yy55; - if (yych >= ':') goto yy55; + if (yych <= 'w') { + if (yych <= 'o') { + if (yych <= 'j') goto yy584; + if (yych >= 'm') goto yy584; + } else { + if (yych <= 'r') goto yy420; + if (yych != 'v') goto yy584; + } + } else { + if (yych <= 0xC1) { + if (yych == 'y') goto yy584; + } else { + if (yych <= 0xC2) goto yy97; + if (yych == 0xE2) goto yy98; + } + } } } -yy567: - YYDEBUG(567, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '/') goto yy568; - if (yych <= '9') goto yy574; -yy568: - YYDEBUG(568, *YYCURSOR); -#line 1523 "ext/date/lib/parse_date.re" +yy420: + YYDEBUG(420, *YYCURSOR); +#line 1401 "ext/date/lib/parse_date.re" { - int length = 0; - DEBUG_OUTPUT("datefull"); + DEBUG_OUTPUT("gnunocolon"); TIMELIB_INIT; - TIMELIB_HAVE_DATE(); - s->time->d = timelib_get_nr(&ptr, 2); - timelib_skip_day_suffix(&ptr); - s->time->m = timelib_get_month(&ptr); - s->time->y = timelib_get_nr_ex(&ptr, 4, &length); - TIMELIB_PROCESS_YEAR(s->time->y, length); + switch (s->time->have_time) { + case 0: + s->time->h = timelib_get_nr(&ptr, 2); + s->time->i = timelib_get_nr(&ptr, 2); + s->time->s = 0; + break; + case 1: + s->time->y = timelib_get_nr(&ptr, 4); + break; + default: + TIMELIB_DEINIT; + add_error(s, TIMELIB_ERR_DOUBLE_TIME, "Double time specification"); + return TIMELIB_ERROR; + } + s->time->have_time++; TIMELIB_DEINIT; - return TIMELIB_DATE_FULL; + return TIMELIB_GNU_NOCOLON; } -#line 10365 "" -yy569: - YYDEBUG(569, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'M') goto yy570; - if (yych != 'm') goto yy55; -yy570: - YYDEBUG(570, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy571; - if (yych != 'b') goto yy55; -yy571: - YYDEBUG(571, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy572; - if (yych != 'e') goto yy55; -yy572: - YYDEBUG(572, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy573; - if (yych != 'r') goto yy55; -yy573: - YYDEBUG(573, *YYCURSOR); - yyaccept = 9; +#line 11008 "" +yy421: + YYDEBUG(421, *YYCURSOR); + yyaccept = 13; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ' ') { - if (yych == '\t') goto yy565; - if (yych <= 0x1F) goto yy509; - goto yy565; + if (yych <= 'R') { + if (yych <= '3') { + if (yych <= '-') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy584; + } else { + if (yych <= ' ') goto yy584; + if (yych >= '-') goto yy585; + } + } else { + if (yych <= '0') { + if (yych <= '.') goto yy586; + if (yych <= '/') goto yy587; + goto yy609; + } else { + if (yych <= '1') goto yy610; + if (yych <= '2') goto yy611; + goto yy612; + } + } + } else { + if (yych <= 'D') { + if (yych <= '@') { + if (yych <= '9') goto yy594; + if (yych <= ':') goto yy595; + } else { + if (yych <= 'A') goto yy584; + if (yych >= 'D') goto yy584; + } + } else { + if (yych <= 'G') { + if (yych == 'F') goto yy584; + } else { + if (yych <= 'J') goto yy584; + if (yych <= 'L') goto yy422; + if (yych <= 'O') goto yy584; + } + } + } } else { - if (yych <= '.') { - if (yych <= ',') goto yy509; - goto yy565; + if (yych <= 'j') { + if (yych <= 'c') { + if (yych <= 'Y') { + if (yych == 'W') goto yy607; + goto yy584; + } else { + if (yych == 'a') goto yy584; + } + } else { + if (yych <= 'f') { + if (yych != 'e') goto yy584; + } else { + if (yych == 'h') goto yy584; + if (yych >= 'j') goto yy584; + } + } } else { - if (yych <= '/') goto yy509; - if (yych <= '9') goto yy567; - goto yy509; + if (yych <= 'w') { + if (yych <= 'r') { + if (yych <= 'l') goto yy422; + if (yych <= 'o') goto yy584; + } else { + if (yych != 'v') goto yy584; + } + } else { + if (yych <= 0xC1) { + if (yych == 'y') goto yy584; + } else { + if (yych <= 0xC2) goto yy97; + if (yych == 0xE2) goto yy98; + } + } } } -yy574: - YYDEBUG(574, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy568; - if (yych >= ':') goto yy568; -yy575: - YYDEBUG(575, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy568; - if (yych >= ':') goto yy568; - YYDEBUG(576, *YYCURSOR); - yych = *++YYCURSOR; - goto yy568; -yy577: - YYDEBUG(577, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy578; - if (yych != 't') goto yy55; -yy578: - YYDEBUG(578, *YYCURSOR); - yyaccept = 9; +yy422: + YYDEBUG(422, *YYCURSOR); +#line 1786 "ext/date/lib/parse_date.re" + { + DEBUG_OUTPUT("year4"); + TIMELIB_INIT; + s->time->y = timelib_get_nr(&ptr, 4); + TIMELIB_DEINIT; + return TIMELIB_CLF; + } +#line 11097 "" +yy423: + YYDEBUG(423, *YYCURSOR); + yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == '\t') goto yy565; - goto yy509; + if (yych == '\t') goto yy248; + goto yy81; } else { - if (yych <= ' ') goto yy565; - if (yych <= ',') goto yy509; - goto yy565; + if (yych <= ' ') goto yy248; + if (yych <= ',') goto yy81; + goto yy248; } } else { - if (yych <= 'N') { - if (yych <= '/') goto yy509; - if (yych <= '9') goto yy567; - goto yy509; + if (yych <= 'H') { + if (yych <= '/') goto yy81; + if (yych <= '9') goto yy250; + goto yy81; } else { - if (yych <= 'O') goto yy579; - if (yych != 'o') goto yy509; + if (yych <= 'I') goto yy613; + if (yych == 'i') goto yy613; + goto yy81; } } -yy579: - YYDEBUG(579, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy580; - if (yych != 'b') goto yy55; -yy580: - YYDEBUG(580, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy581; - if (yych != 'e') goto yy55; -yy581: - YYDEBUG(581, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy573; - if (yych == 'r') goto yy573; - goto yy55; -yy582: - YYDEBUG(582, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'G') goto yy586; - if (yych == 'g') goto yy586; - goto yy55; -yy583: - YYDEBUG(583, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy584; - if (yych != 'r') goto yy55; -yy584: - YYDEBUG(584, *YYCURSOR); - yyaccept = 9; +yy424: + YYDEBUG(424, *YYCURSOR); + yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == '\t') goto yy565; - goto yy509; + if (yych == '\t') goto yy248; + goto yy81; } else { - if (yych <= ' ') goto yy565; - if (yych <= ',') goto yy509; - goto yy565; + if (yych <= ' ') goto yy248; + if (yych <= ',') goto yy81; + goto yy248; } } else { - if (yych <= 'H') { - if (yych <= '/') goto yy509; - if (yych <= '9') goto yy567; - goto yy509; + if (yych <= 'T') { + if (yych <= '/') goto yy81; + if (yych <= '9') goto yy250; + goto yy81; } else { - if (yych <= 'I') goto yy585; - if (yych != 'i') goto yy509; + if (yych <= 'U') goto yy614; + if (yych == 'u') goto yy614; + goto yy81; } } -yy585: - YYDEBUG(585, *YYCURSOR); +yy425: + YYDEBUG(425, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'L') goto yy573; - if (yych == 'l') goto yy573; - goto yy55; -yy586: - YYDEBUG(586, *YYCURSOR); - yyaccept = 9; + if (yych == 'S') goto yy615; + if (yych == 's') goto yy615; + goto yy260; +yy426: + YYDEBUG(426, *YYCURSOR); + yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == '\t') goto yy565; - goto yy509; - } else { - if (yych <= ' ') goto yy565; - if (yych <= ',') goto yy509; - goto yy565; - } - } else { - if (yych <= 'T') { - if (yych <= '/') goto yy509; - if (yych <= '9') goto yy567; - goto yy509; + if (yych == '\t') goto yy248; + goto yy81; } else { - if (yych <= 'U') goto yy587; - if (yych != 'u') goto yy509; + if (yych <= ' ') goto yy248; + if (yych <= ',') goto yy81; + goto yy248; } - } -yy587: - YYDEBUG(587, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy588; - if (yych != 's') goto yy55; -yy588: - YYDEBUG(588, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy573; - if (yych == 't') goto yy573; - goto yy55; -yy589: - YYDEBUG(589, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'N') { - if (yych == 'L') goto yy596; - if (yych <= 'M') goto yy55; - goto yy595; } else { - if (yych <= 'l') { - if (yych <= 'k') goto yy55; - goto yy596; + if (yych <= 'D') { + if (yych <= '/') goto yy81; + if (yych <= '9') goto yy250; + goto yy81; } else { - if (yych == 'n') goto yy595; - goto yy55; + if (yych <= 'E') goto yy616; + if (yych == 'e') goto yy616; + goto yy81; } } -yy590: - YYDEBUG(590, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy591; - if (yych != 'n') goto yy55; -yy591: - YYDEBUG(591, *YYCURSOR); - yyaccept = 9; +yy427: + YYDEBUG(427, *YYCURSOR); + yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == '\t') goto yy565; - goto yy509; + if (yych == '\t') goto yy248; + goto yy81; } else { - if (yych <= ' ') goto yy565; - if (yych <= ',') goto yy509; - goto yy565; + if (yych <= ' ') goto yy248; + if (yych <= ',') goto yy81; + goto yy248; } } else { - if (yych <= 'T') { - if (yych <= '/') goto yy509; - if (yych <= '9') goto yy567; - goto yy509; + if (yych <= 'Q') { + if (yych <= '/') goto yy81; + if (yych <= '9') goto yy250; + goto yy81; } else { - if (yych <= 'U') goto yy592; - if (yych != 'u') goto yy509; + if (yych <= 'R') goto yy617; + if (yych == 'r') goto yy617; + goto yy81; } } -yy592: - YYDEBUG(592, *YYCURSOR); +yy428: + YYDEBUG(428, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy593; - if (yych != 'a') goto yy55; -yy593: - YYDEBUG(593, *YYCURSOR); + if (yych == 'T') goto yy618; + if (yych == 't') goto yy618; + goto yy59; +yy429: + YYDEBUG(429, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'D') goto yy198; + if (yych == 'd') goto yy198; + goto yy260; +yy430: + YYDEBUG(430, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy594; - if (yych != 'r') goto yy55; -yy594: - YYDEBUG(594, *YYCURSOR); + if (yych == 'R') goto yy425; + if (yych == 'r') goto yy425; + goto yy59; +yy431: + YYDEBUG(431, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy573; - if (yych == 'y') goto yy573; - goto yy55; -yy595: - YYDEBUG(595, *YYCURSOR); - yyaccept = 9; + if (yych <= '/') goto yy251; + if (yych <= '9') goto yy619; + goto yy251; +yy432: + YYDEBUG(432, *YYCURSOR); + yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == '\t') goto yy565; - goto yy509; + if (yych == '\t') goto yy248; + goto yy81; } else { - if (yych <= ' ') goto yy565; - if (yych <= ',') goto yy509; - goto yy565; + if (yych <= ' ') goto yy248; + if (yych <= ',') goto yy81; + goto yy248; } } else { - if (yych <= 'D') { - if (yych <= '/') goto yy509; - if (yych <= '9') goto yy567; - goto yy509; - } else { - if (yych <= 'E') goto yy573; - if (yych == 'e') goto yy573; - goto yy509; + if (yych <= 'T') { + if (yych <= '/') goto yy81; + if (yych <= '9') goto yy250; + goto yy81; + } else { + if (yych <= 'U') goto yy620; + if (yych == 'u') goto yy620; + goto yy81; } } -yy596: - YYDEBUG(596, *YYCURSOR); - yyaccept = 9; +yy433: + YYDEBUG(433, *YYCURSOR); + yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == '\t') goto yy565; - goto yy509; + if (yych == '\t') goto yy248; + goto yy81; } else { - if (yych <= ' ') goto yy565; - if (yych <= ',') goto yy509; - goto yy565; + if (yych <= ' ') goto yy248; + if (yych <= ',') goto yy81; + goto yy248; } } else { if (yych <= 'X') { - if (yych <= '/') goto yy509; - if (yych <= '9') goto yy567; - goto yy509; - } else { - if (yych <= 'Y') goto yy573; - if (yych == 'y') goto yy573; - goto yy509; - } - } -yy597: - YYDEBUG(597, *YYCURSOR); - yyaccept = 9; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ',') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy509; - goto yy565; - } else { - if (yych == ' ') goto yy565; - goto yy509; - } - } else { - if (yych <= '9') { - if (yych <= '.') goto yy565; - if (yych <= '/') goto yy509; - goto yy567; + if (yych <= '/') goto yy81; + if (yych <= '9') goto yy250; + goto yy81; } else { - if (yych == 'I') goto yy573; - goto yy509; + if (yych <= 'Y') goto yy253; + if (yych == 'y') goto yy253; + goto yy81; } } -yy598: - YYDEBUG(598, *YYCURSOR); - yyaccept = 9; +yy434: + YYDEBUG(434, *YYCURSOR); + yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ',') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy509; - goto yy565; + if (yych <= '.') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy248; + goto yy81; } else { - if (yych == ' ') goto yy565; - goto yy509; + if (yych <= ' ') goto yy248; + if (yych <= ',') goto yy81; + goto yy248; } } else { - if (yych <= '9') { - if (yych <= '.') goto yy565; - if (yych <= '/') goto yy509; - goto yy567; + if (yych <= 'D') { + if (yych <= '/') goto yy81; + if (yych <= '9') goto yy250; + goto yy81; } else { - if (yych != 'I') goto yy509; + if (yych <= 'E') goto yy253; + if (yych == 'e') goto yy253; + goto yy81; } } - YYDEBUG(599, *YYCURSOR); - yyaccept = 9; +yy435: + YYDEBUG(435, *YYCURSOR); + yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ',') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy509; - goto yy565; + if (yych <= '.') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy248; + goto yy81; } else { - if (yych == ' ') goto yy565; - goto yy509; + if (yych <= ' ') goto yy248; + if (yych <= ',') goto yy81; + goto yy248; } } else { - if (yych <= '9') { - if (yych <= '.') goto yy565; - if (yych <= '/') goto yy509; - goto yy567; + if (yych <= 'B') { + if (yych <= '/') goto yy81; + if (yych <= '9') goto yy250; + goto yy81; } else { - if (yych == 'I') goto yy573; - goto yy509; + if (yych <= 'C') goto yy621; + if (yych == 'c') goto yy621; + goto yy81; } } -yy600: - YYDEBUG(600, *YYCURSOR); - yyaccept = 9; +yy436: + YYDEBUG(436, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy622; + if (yych == 'r') goto yy622; + goto yy59; +yy437: + YYDEBUG(437, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy623; + if (yych == 'l') goto yy623; + goto yy59; +yy438: + YYDEBUG(438, *YYCURSOR); + yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ',') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy509; - goto yy565; - } else { - if (yych == ' ') goto yy565; - goto yy509; - } + if (yych <= 'U') { + if (yych == 'S') goto yy615; + if (yych <= 'T') goto yy260; + goto yy624; } else { - if (yych <= '9') { - if (yych <= '.') goto yy565; - if (yych <= '/') goto yy509; - goto yy567; + if (yych <= 's') { + if (yych <= 'r') goto yy260; + goto yy615; } else { - if (yych == 'I') goto yy573; - goto yy509; + if (yych == 'u') goto yy624; + goto yy260; } } -yy601: - YYDEBUG(601, *YYCURSOR); - yyaccept = 10; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= ',') goto yy524; - if (yych <= '-') goto yy635; - goto yy634; - } else { - if (yych <= '/') goto yy524; - if (yych <= '9') goto yy648; - if (yych <= ':') goto yy526; - goto yy524; - } -yy602: - YYDEBUG(602, *YYCURSOR); - yyaccept = 10; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych <= ',') goto yy524; - if (yych <= '-') goto yy635; - if (yych <= '.') goto yy634; - goto yy524; - } else { - if (yych <= '2') goto yy648; - if (yych <= '9') goto yy647; - if (yych <= ':') goto yy526; - goto yy524; - } -yy603: - YYDEBUG(603, *YYCURSOR); - yyaccept = 10; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= ',') goto yy524; - if (yych <= '-') goto yy635; - goto yy634; - } else { - if (yych <= '/') goto yy524; - if (yych <= '9') goto yy647; - if (yych <= ':') goto yy526; - goto yy524; - } -yy604: - YYDEBUG(604, *YYCURSOR); - yyaccept = 10; +yy439: + YYDEBUG(439, *YYCURSOR); + yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= ',') goto yy524; - if (yych <= '-') goto yy635; - goto yy634; - } else { - if (yych == ':') goto yy526; - goto yy524; - } -yy605: - YYDEBUG(605, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy628; - if (yych == 'e') goto yy628; - goto yy55; -yy606: - YYDEBUG(606, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy625; - if (yych == 'a') goto yy625; - goto yy55; -yy607: - YYDEBUG(607, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych == 'P') goto yy583; - if (yych <= 'T') goto yy55; - goto yy582; + if (yych <= 'T') { + if (yych == 'D') goto yy198; + if (yych <= 'S') goto yy260; + goto yy625; } else { - if (yych <= 'p') { - if (yych <= 'o') goto yy55; - goto yy583; + if (yych <= 'd') { + if (yych <= 'c') goto yy260; + goto yy198; } else { - if (yych == 'u') goto yy582; - goto yy55; + if (yych == 't') goto yy625; + goto yy260; } } -yy608: - YYDEBUG(608, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy618; - if (yych == 'e') goto yy618; - goto yy55; -yy609: - YYDEBUG(609, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy612; - if (yych == 'e') goto yy612; - goto yy55; -yy610: - YYDEBUG(610, *YYCURSOR); - ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 13) YYFILL(13); - yych = *YYCURSOR; -yy611: - YYDEBUG(611, *YYCURSOR); - switch (yych) { - case '\t': - case ' ': - case '-': - case '.': goto yy610; - case 'A': - case 'a': goto yy607; - case 'D': - case 'd': goto yy609; - case 'F': - case 'f': goto yy605; - case 'I': goto yy508; - case 'J': - case 'j': goto yy512; - case 'M': - case 'm': goto yy606; - case 'N': - case 'n': goto yy515; - case 'O': - case 'o': goto yy514; - case 'S': - case 's': goto yy608; - case 'V': goto yy510; - case 'X': goto yy511; - default: goto yy55; - } -yy612: - YYDEBUG(612, *YYCURSOR); +yy440: + YYDEBUG(440, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy613; - if (yych != 'c') goto yy55; -yy613: - YYDEBUG(613, *YYCURSOR); - yyaccept = 9; + if (yych == 'C') goto yy425; + if (yych == 'c') goto yy425; + goto yy59; +yy441: + YYDEBUG(441, *YYCURSOR); + yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == '\t') goto yy565; - goto yy509; + if (yych == '\t') goto yy248; + goto yy81; } else { - if (yych <= ' ') goto yy565; - if (yych <= ',') goto yy509; - goto yy565; + if (yych <= ' ') goto yy248; + if (yych <= ',') goto yy81; + goto yy248; } } else { - if (yych <= 'D') { - if (yych <= '/') goto yy509; - if (yych <= '9') goto yy567; - goto yy509; + if (yych <= 'N') { + if (yych <= '/') goto yy81; + if (yych <= '9') goto yy250; + goto yy81; } else { - if (yych <= 'E') goto yy614; - if (yych != 'e') goto yy509; + if (yych <= 'O') goto yy626; + if (yych == 'o') goto yy626; + goto yy81; } } -yy614: - YYDEBUG(614, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'M') goto yy615; - if (yych != 'm') goto yy55; -yy615: - YYDEBUG(615, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy616; - if (yych != 'b') goto yy55; -yy616: - YYDEBUG(616, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy617; - if (yych != 'e') goto yy55; -yy617: - YYDEBUG(617, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy573; - if (yych == 'r') goto yy573; - goto yy55; -yy618: - YYDEBUG(618, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'P') goto yy619; - if (yych != 'p') goto yy55; -yy619: - YYDEBUG(619, *YYCURSOR); - yyaccept = 9; +yy442: + YYDEBUG(442, *YYCURSOR); + yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy565; - goto yy509; - } else { - if (yych <= ' ') goto yy565; - if (yych <= ',') goto yy509; - goto yy565; - } + if (yych == 'U') goto yy627; + if (yych == 'u') goto yy627; + goto yy260; +yy443: + YYDEBUG(443, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych == 'O') goto yy628; + if (yych <= 'R') goto yy260; + goto yy615; } else { - if (yych <= 'S') { - if (yych <= '/') goto yy509; - if (yych <= '9') goto yy567; - goto yy509; + if (yych <= 'o') { + if (yych <= 'n') goto yy260; + goto yy628; } else { - if (yych <= 'T') goto yy620; - if (yych != 't') goto yy509; + if (yych == 's') goto yy615; + goto yy260; } } -yy620: - YYDEBUG(620, *YYCURSOR); - yyaccept = 9; +yy444: + YYDEBUG(444, *YYCURSOR); + yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= 0x1F) { - if (yych == '\t') goto yy565; - goto yy509; + if (yych == '\t') goto yy248; + goto yy81; } else { - if (yych <= ' ') goto yy565; - if (yych <= ',') goto yy509; - goto yy565; + if (yych <= ' ') goto yy248; + if (yych <= ',') goto yy81; + goto yy248; } } else { - if (yych <= 'D') { - if (yych <= '/') goto yy509; - if (yych <= '9') goto yy567; - goto yy509; + if (yych <= 'S') { + if (yych <= '/') goto yy81; + if (yych <= '9') goto yy250; + goto yy81; } else { - if (yych <= 'E') goto yy621; - if (yych != 'e') goto yy509; + if (yych <= 'T') goto yy426; + if (yych == 't') goto yy426; + goto yy81; } } -yy621: - YYDEBUG(621, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'M') goto yy622; - if (yych != 'm') goto yy55; -yy622: - YYDEBUG(622, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy623; - if (yych != 'b') goto yy55; -yy623: - YYDEBUG(623, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy624; - if (yych != 'e') goto yy55; -yy624: - YYDEBUG(624, *YYCURSOR); +yy445: + YYDEBUG(445, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'R') goto yy629; + if (yych == 'r') goto yy629; + goto yy260; +yy446: + YYDEBUG(446, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'S') goto yy630; + if (yych == 's') goto yy630; + goto yy260; +yy447: + YYDEBUG(447, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'N') goto yy631; + if (yych == 'n') goto yy631; + goto yy260; +yy448: + YYDEBUG(448, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy573; - if (yych == 'r') goto yy573; - goto yy55; -yy625: - YYDEBUG(625, *YYCURSOR); + if (yych == 'K') goto yy632; + if (yych == 'k') goto yy632; + goto yy59; +yy449: + YYDEBUG(449, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'Y') { - if (yych == 'R') goto yy626; - if (yych <= 'X') goto yy55; - goto yy573; - } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy55; - } else { - if (yych == 'y') goto yy573; - goto yy55; - } - } -yy626: - YYDEBUG(626, *YYCURSOR); - yyaccept = 9; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy565; - goto yy509; + if (yych <= '/') goto yy207; + if (yych <= '0') goto yy633; + if (yych <= '1') goto yy634; + if (yych <= '9') goto yy635; + goto yy207; +yy450: + YYDEBUG(450, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12); + yych = *YYCURSOR; + if (yych <= 'd') { + if (yych <= 'R') { + if (yych <= 'F') { + if (yych == 'D') goto yy198; + if (yych <= 'E') goto yy59; + goto yy199; + } else { + if (yych <= 'H') { + if (yych <= 'G') goto yy59; + goto yy79; + } else { + if (yych == 'M') goto yy200; + goto yy59; + } + } } else { - if (yych <= ' ') goto yy565; - if (yych <= ',') goto yy509; - goto yy565; + if (yych <= 'V') { + if (yych <= 'S') goto yy201; + if (yych <= 'T') goto yy87; + if (yych <= 'U') goto yy88; + goto yy59; + } else { + if (yych <= 'X') { + if (yych <= 'W') goto yy90; + goto yy59; + } else { + if (yych <= 'Y') goto yy92; + if (yych <= 'c') goto yy59; + goto yy198; + } + } } } else { - if (yych <= 'B') { - if (yych <= '/') goto yy509; - if (yych <= '9') goto yy567; - goto yy509; + if (yych <= 't') { + if (yych <= 'h') { + if (yych == 'f') goto yy199; + if (yych <= 'g') goto yy59; + goto yy79; + } else { + if (yych <= 'm') { + if (yych <= 'l') goto yy59; + goto yy200; + } else { + if (yych <= 'r') goto yy59; + if (yych <= 's') goto yy201; + goto yy87; + } + } } else { - if (yych <= 'C') goto yy627; - if (yych != 'c') goto yy509; + if (yych <= 'y') { + if (yych <= 'v') { + if (yych <= 'u') goto yy88; + goto yy59; + } else { + if (yych <= 'w') goto yy90; + if (yych <= 'x') goto yy59; + goto yy92; + } + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy59; + goto yy211; + } else { + if (yych == 0xE2) goto yy98; + goto yy59; + } + } } } -yy627: - YYDEBUG(627, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy573; - if (yych == 'h') goto yy573; - goto yy55; -yy628: - YYDEBUG(628, *YYCURSOR); +yy451: + YYDEBUG(451, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'B') goto yy629; - if (yych != 'b') goto yy55; -yy629: - YYDEBUG(629, *YYCURSOR); - yyaccept = 9; + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy636; + if (yych <= '6') goto yy637; + if (yych <= '9') goto yy572; + goto yy59; +yy452: + YYDEBUG(452, *YYCURSOR); + yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy565; - goto yy509; + if (yych <= 'A') { + if (yych <= ',') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy177; + goto yy638; + } else { + if (yych == ' ') goto yy638; + goto yy177; + } } else { - if (yych <= ' ') goto yy565; - if (yych <= ',') goto yy509; - goto yy565; + if (yych <= '9') { + if (yych <= '-') goto yy396; + if (yych <= '.') goto yy451; + goto yy177; + } else { + if (yych <= ':') goto yy453; + if (yych <= '@') goto yy177; + goto yy106; + } } } else { - if (yych <= 'Q') { - if (yych <= '/') goto yy509; - if (yych <= '9') goto yy567; - goto yy509; + if (yych <= 'o') { + if (yych <= 'P') { + if (yych <= 'O') goto yy177; + goto yy106; + } else { + if (yych == 'a') goto yy106; + goto yy177; + } } else { - if (yych <= 'R') goto yy630; - if (yych != 'r') goto yy509; + if (yych <= 0xC2) { + if (yych <= 'p') goto yy106; + if (yych <= 0xC1) goto yy177; + goto yy640; + } else { + if (yych == 0xE2) goto yy641; + goto yy177; + } } } -yy630: - YYDEBUG(630, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'U') goto yy631; - if (yych != 'u') goto yy55; -yy631: - YYDEBUG(631, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy632; - if (yych != 'a') goto yy55; -yy632: - YYDEBUG(632, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy633; - if (yych != 'r') goto yy55; -yy633: - YYDEBUG(633, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy573; - if (yych == 'y') goto yy573; - goto yy55; -yy634: - YYDEBUG(634, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy641; - if (yych <= '6') goto yy642; - if (yych <= '9') goto yy643; - goto yy55; -yy635: - YYDEBUG(635, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= ':') goto yy55; - YYDEBUG(636, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= ':') goto yy55; -yy637: - YYDEBUG(637, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= ':') goto yy55; -yy638: - YYDEBUG(638, *YYCURSOR); +yy453: + YYDEBUG(453, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= ':') goto yy55; - YYDEBUG(639, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(640, *YYCURSOR); -#line 1538 "ext/date/lib/parse_date.re" - { - DEBUG_OUTPUT("pointed date YYYY"); - TIMELIB_INIT; - TIMELIB_HAVE_DATE(); - s->time->d = timelib_get_nr(&ptr, 2); - s->time->m = timelib_get_nr(&ptr, 2); - s->time->y = timelib_get_nr(&ptr, 4); - TIMELIB_DEINIT; - return TIMELIB_DATE_FULL_POINTED; - } -#line 11112 "" -yy641: - YYDEBUG(641, *YYCURSOR); - yyaccept = 10; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '.') goto yy530; - if (yych <= '/') goto yy524; - if (yych <= '9') goto yy646; - goto yy524; -yy642: - YYDEBUG(642, *YYCURSOR); - yyaccept = 10; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych == '.') goto yy530; - goto yy524; - } else { - if (yych <= '0') goto yy646; - if (yych <= '9') goto yy644; - goto yy524; - } -yy643: - YYDEBUG(643, *YYCURSOR); - yyaccept = 10; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '.') goto yy530; - if (yych <= '/') goto yy524; - if (yych >= ':') goto yy524; -yy644: - YYDEBUG(644, *YYCURSOR); - yyaccept = 11; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy645; - if (yych <= '9') goto yy638; -yy645: - YYDEBUG(645, *YYCURSOR); -#line 1550 "ext/date/lib/parse_date.re" - { - int length = 0; - DEBUG_OUTPUT("pointed date YY"); - TIMELIB_INIT; - TIMELIB_HAVE_DATE(); - s->time->d = timelib_get_nr(&ptr, 2); - s->time->m = timelib_get_nr(&ptr, 2); - s->time->y = timelib_get_nr_ex(&ptr, 2, &length); - TIMELIB_PROCESS_YEAR(s->time->y, length); - TIMELIB_DEINIT; - return TIMELIB_DATE_FULL_POINTED; - } -#line 11161 "" -yy646: - YYDEBUG(646, *YYCURSOR); - yyaccept = 10; + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy642; + if (yych <= '6') goto yy643; + if (yych <= '9') goto yy575; + goto yy59; +yy454: + YYDEBUG(454, *YYCURSOR); + yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '9') { - if (yych <= ' ') { - if (yych == '\t') goto yy534; - if (yych <= 0x1F) goto yy524; - goto yy534; + if (yych <= 'A') { + if (yych <= '-') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy177; + goto yy638; + } else { + if (yych == ' ') goto yy638; + goto yy177; + } } else { - if (yych == '.') goto yy530; - if (yych <= '/') goto yy524; - goto yy638; + if (yych <= '9') { + if (yych <= '.') goto yy453; + goto yy177; + } else { + if (yych <= ':') goto yy453; + if (yych <= '@') goto yy177; + goto yy106; + } } } else { - if (yych <= 'P') { - if (yych == 'A') goto yy536; - if (yych <= 'O') goto yy524; - goto yy536; + if (yych <= 'o') { + if (yych <= 'P') { + if (yych <= 'O') goto yy177; + goto yy106; + } else { + if (yych == 'a') goto yy106; + goto yy177; + } } else { - if (yych <= 'a') { - if (yych <= '`') goto yy524; - goto yy536; + if (yych <= 0xC2) { + if (yych <= 'p') goto yy106; + if (yych <= 0xC1) goto yy177; + goto yy640; } else { - if (yych == 'p') goto yy536; - goto yy524; + if (yych == 0xE2) goto yy641; + goto yy177; } } } -yy647: - YYDEBUG(647, *YYCURSOR); - yyaccept = 10; +yy455: + YYDEBUG(455, *YYCURSOR); + yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ':') { - if (yych <= ' ') { - if (yych == '\t') goto yy541; - if (yych <= 0x1F) goto yy524; - goto yy541; + if (yych <= 'A') { + if (yych <= '-') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy177; + goto yy638; + } else { + if (yych == ' ') goto yy638; + goto yy177; + } } else { - if (yych == '.') goto yy526; - if (yych <= '9') goto yy524; - goto yy526; + if (yych <= '9') { + if (yych <= '.') goto yy453; + goto yy177; + } else { + if (yych <= ':') goto yy644; + if (yych <= '@') goto yy177; + goto yy106; + } } } else { - if (yych <= 'P') { - if (yych == 'A') goto yy543; - if (yych <= 'O') goto yy524; - goto yy543; + if (yych <= 'o') { + if (yych <= 'P') { + if (yych <= 'O') goto yy177; + goto yy106; + } else { + if (yych == 'a') goto yy106; + goto yy177; + } } else { - if (yych <= 'a') { - if (yych <= '`') goto yy524; - goto yy543; + if (yych <= 0xC2) { + if (yych <= 'p') goto yy106; + if (yych <= 0xC1) goto yy177; + goto yy640; } else { - if (yych == 'p') goto yy543; - goto yy524; + if (yych == 0xE2) goto yy641; + goto yy177; } } } -yy648: - YYDEBUG(648, *YYCURSOR); - yyaccept = 10; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ':') { - if (yych <= ' ') { - if (yych == '\t') goto yy541; - if (yych <= 0x1F) goto yy524; - goto yy541; +yy456: + YYDEBUG(456, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(457, *YYCURSOR); +#line 1335 "ext/date/lib/parse_date.re" + { + DEBUG_OUTPUT("timetiny12 | timeshort12 | timelong12"); + TIMELIB_INIT; + TIMELIB_HAVE_TIME(); + s->time->h = timelib_get_nr(&ptr, 2); + if (*ptr == ':' || *ptr == '.') { + s->time->i = timelib_get_nr(&ptr, 2); + if (*ptr == ':' || *ptr == '.') { + s->time->s = timelib_get_nr(&ptr, 2); + } + } + timelib_eat_spaces(&ptr); + s->time->h += timelib_meridian(&ptr, s->time->h); + TIMELIB_DEINIT; + return TIMELIB_TIME12; + } +#line 11721 "" +yy458: + YYDEBUG(458, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '\t') { + if (yych <= 0x00) goto yy456; + if (yych <= 0x08) goto yy59; + goto yy456; + } else { + if (yych == ' ') goto yy456; + goto yy59; + } +yy459: + YYDEBUG(459, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12); + yych = *YYCURSOR; + if (yych <= 'a') { + if (yych <= 'O') { + if (yych <= 'E') { + if (yych <= 'A') { + if (yych <= '@') goto yy59; + goto yy106; + } else { + if (yych == 'D') goto yy198; + goto yy59; + } + } else { + if (yych <= 'H') { + if (yych <= 'F') goto yy199; + if (yych <= 'G') goto yy59; + goto yy79; + } else { + if (yych == 'M') goto yy200; + goto yy59; + } + } } else { - if (yych <= '-') { - if (yych <= ',') goto yy524; - goto yy635; + if (yych <= 'U') { + if (yych <= 'R') { + if (yych <= 'P') goto yy106; + goto yy59; + } else { + if (yych <= 'S') goto yy201; + if (yych <= 'T') goto yy87; + goto yy88; + } } else { - if (yych <= '.') goto yy634; - if (yych <= '9') goto yy524; - goto yy526; + if (yych <= 'X') { + if (yych == 'W') goto yy90; + goto yy59; + } else { + if (yych <= 'Y') goto yy92; + if (yych <= '`') goto yy59; + goto yy106; + } } } } else { - if (yych <= 'P') { - if (yych == 'A') goto yy543; - if (yych <= 'O') goto yy524; - goto yy543; + if (yych <= 'r') { + if (yych <= 'g') { + if (yych <= 'd') { + if (yych <= 'c') goto yy59; + goto yy198; + } else { + if (yych == 'f') goto yy199; + goto yy59; + } + } else { + if (yych <= 'm') { + if (yych <= 'h') goto yy79; + if (yych <= 'l') goto yy59; + goto yy200; + } else { + if (yych == 'p') goto yy106; + goto yy59; + } + } } else { - if (yych <= 'a') { - if (yych <= '`') goto yy524; - goto yy543; + if (yych <= 'x') { + if (yych <= 'u') { + if (yych <= 's') goto yy201; + if (yych <= 't') goto yy87; + goto yy88; + } else { + if (yych == 'w') goto yy90; + goto yy59; + } } else { - if (yych == 'p') goto yy543; - goto yy524; + if (yych <= 0xC2) { + if (yych <= 'y') goto yy92; + if (yych <= 0xC1) goto yy59; + goto yy211; + } else { + if (yych == 0xE2) goto yy108; + goto yy59; + } } } } -yy649: - YYDEBUG(649, *YYCURSOR); +yy460: + YYDEBUG(460, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '.') { - if (yych <= ',') goto yy55; - if (yych <= '-') goto yy688; - goto yy635; - } else { - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy651; - goto yy55; - } -yy650: - YYDEBUG(650, *YYCURSOR); + if (yych == '-') goto yy645; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy646; + goto yy59; +yy461: + YYDEBUG(461, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '.') { - if (yych <= ',') goto yy55; - if (yych <= '-') goto yy688; - goto yy635; - } else { - if (yych <= '/') goto yy55; - if (yych >= '3') goto yy55; - } -yy651: - YYDEBUG(651, *YYCURSOR); + if (yych == '-') goto yy645; + if (yych <= '/') goto yy59; + if (yych <= '2') goto yy646; + goto yy59; +yy462: + YYDEBUG(462, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= ',') goto yy55; - if (yych <= '-') goto yy688; - if (yych <= '.') goto yy635; - goto yy55; -yy652: - YYDEBUG(652, *YYCURSOR); + if (yych == '-') goto yy645; + goto yy59; +yy463: + YYDEBUG(463, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'U') { - if (yych == 'A') goto yy684; - if (yych <= 'T') goto yy55; - goto yy683; + if (yych == 'P') goto yy647; + if (yych <= 'T') goto yy59; + goto yy648; } else { - if (yych <= 'a') { - if (yych <= '`') goto yy55; - goto yy684; + if (yych <= 'p') { + if (yych <= 'o') goto yy59; + goto yy647; } else { - if (yych == 'u') goto yy683; - goto yy55; + if (yych == 'u') goto yy648; + goto yy59; } } -yy653: - YYDEBUG(653, *YYCURSOR); +yy464: + YYDEBUG(464, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy681; - if (yych == 'e') goto yy681; - goto yy55; -yy654: - YYDEBUG(654, *YYCURSOR); + if (yych == 'E') goto yy649; + if (yych == 'e') goto yy649; + goto yy59; +yy465: + YYDEBUG(465, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy678; - if (yych == 'a') goto yy678; - goto yy55; -yy655: - YYDEBUG(655, *YYCURSOR); + if (yych == 'E') goto yy650; + if (yych == 'e') goto yy650; + goto yy59; +yy466: + YYDEBUG(466, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'U') { - if (yych == 'P') goto yy675; - if (yych <= 'T') goto yy55; - goto yy674; + if (yych == 'A') goto yy651; + if (yych <= 'T') goto yy59; + goto yy652; } else { - if (yych <= 'p') { - if (yych <= 'o') goto yy55; - goto yy675; + if (yych <= 'a') { + if (yych <= '`') goto yy59; + goto yy651; } else { - if (yych == 'u') goto yy674; - goto yy55; + if (yych == 'u') goto yy652; + goto yy59; } } -yy656: - YYDEBUG(656, *YYCURSOR); +yy467: + YYDEBUG(467, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy671; - if (yych == 'e') goto yy671; - goto yy55; -yy657: - YYDEBUG(657, *YYCURSOR); + if (yych == 'A') goto yy653; + if (yych == 'a') goto yy653; + goto yy59; +yy468: + YYDEBUG(468, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy669; - if (yych == 'c') goto yy669; - goto yy55; -yy658: - YYDEBUG(658, *YYCURSOR); + if (yych == 'O') goto yy654; + if (yych == 'o') goto yy654; + goto yy59; +yy469: + YYDEBUG(469, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy667; - if (yych == 'o') goto yy667; - goto yy55; -yy659: - YYDEBUG(659, *YYCURSOR); + if (yych == 'C') goto yy655; + if (yych == 'c') goto yy655; + goto yy59; +yy470: + YYDEBUG(470, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy660; - if (yych != 'e') goto yy55; -yy660: - YYDEBUG(660, *YYCURSOR); + if (yych == 'E') goto yy656; + if (yych == 'e') goto yy656; + goto yy59; +yy471: + YYDEBUG(471, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy661; - if (yych != 'c') goto yy55; -yy661: - YYDEBUG(661, *YYCURSOR); - yyaccept = 9; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy565; - goto yy509; - } else { - if (yych <= ' ') goto yy565; - if (yych <= ',') goto yy509; - if (yych >= '.') goto yy565; - } + if (yych <= '/') goto yy290; + if (yych <= '9') goto yy657; + goto yy290; +yy472: + YYDEBUG(472, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '@') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= 'D') { - if (yych <= '/') goto yy509; - if (yych <= '9') goto yy567; - goto yy509; - } else { - if (yych <= 'E') goto yy614; - if (yych == 'e') goto yy614; - goto yy509; - } + if (yych <= 'Z') goto yy658; + if (yych <= '`') goto yy20; + if (yych <= 'z') goto yy658; + goto yy20; } -yy662: - YYDEBUG(662, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy566; - if (yych <= '0') goto yy663; - if (yych <= '2') goto yy664; - if (yych <= '3') goto yy665; - goto yy566; -yy663: - YYDEBUG(663, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy568; - if (yych <= '9') goto yy666; - goto yy568; -yy664: - YYDEBUG(664, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy568; - if (yych <= '9') goto yy666; - goto yy568; -yy665: - YYDEBUG(665, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy568; - if (yych <= '1') goto yy666; - if (yych <= '9') goto yy574; - goto yy568; -yy666: - YYDEBUG(666, *YYCURSOR); +yy473: + YYDEBUG(473, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy568; - if (yych <= '9') goto yy575; - goto yy568; -yy667: - YYDEBUG(667, *YYCURSOR); + if (yych <= '/') goto yy142; + if (yych <= '2') goto yy659; + if (yych <= '3') goto yy660; + goto yy142; +yy474: + YYDEBUG(474, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'V') goto yy668; - if (yych != 'v') goto yy55; -yy668: - YYDEBUG(668, *YYCURSOR); - yyaccept = 9; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy565; - goto yy509; + if (yych <= 'L') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= ' ') goto yy565; - if (yych <= ',') goto yy509; - if (yych <= '-') goto yy662; - goto yy565; + if (yych <= '@') goto yy20; + if (yych <= 'K') goto yy658; + goto yy661; } } else { - if (yych <= 'D') { - if (yych <= '/') goto yy509; - if (yych <= '9') goto yy567; - goto yy509; - } else { - if (yych <= 'E') goto yy569; - if (yych == 'e') goto yy569; - goto yy509; + if (yych <= 'k') { + if (yych <= 'Z') goto yy658; + if (yych <= '`') goto yy20; + goto yy658; + } else { + if (yych <= 'l') goto yy661; + if (yych <= 'z') goto yy658; + goto yy20; } } -yy669: - YYDEBUG(669, *YYCURSOR); +yy475: + YYDEBUG(475, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy670; - if (yych != 't') goto yy55; -yy670: - YYDEBUG(670, *YYCURSOR); - yyaccept = 9; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy565; - goto yy509; + if (yych <= 'S') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= ' ') goto yy565; - if (yych <= ',') goto yy509; - if (yych <= '-') goto yy662; - goto yy565; + if (yych <= '@') goto yy20; + if (yych <= 'R') goto yy658; + goto yy662; } } else { - if (yych <= 'N') { - if (yych <= '/') goto yy509; - if (yych <= '9') goto yy567; - goto yy509; - } else { - if (yych <= 'O') goto yy579; - if (yych == 'o') goto yy579; - goto yy509; + if (yych <= 'r') { + if (yych <= 'Z') goto yy658; + if (yych <= '`') goto yy20; + goto yy658; + } else { + if (yych <= 's') goto yy662; + if (yych <= 'z') goto yy658; + goto yy20; } } -yy671: - YYDEBUG(671, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'P') goto yy672; - if (yych != 'p') goto yy55; -yy672: - YYDEBUG(672, *YYCURSOR); - yyaccept = 9; - yych = *(YYMARKER = ++YYCURSOR); +yy476: + YYDEBUG(476, *YYCURSOR); + yyaccept = 2; + YYMARKER = ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(477, *YYCURSOR); + if (yybm[0+yych] & 64) { + goto yy476; + } if (yych <= '.') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy565; - goto yy509; - } else { - if (yych <= ' ') goto yy565; - if (yych <= ',') goto yy509; - if (yych <= '-') goto yy662; - goto yy565; - } + if (yych == '-') goto yy297; + goto yy20; } else { - if (yych <= 'S') { - if (yych <= '/') goto yy509; - if (yych <= '9') goto yy567; - goto yy509; - } else { - if (yych <= 'T') goto yy673; - if (yych != 't') goto yy509; - } + if (yych <= '/') goto yy297; + if (yych == '_') goto yy297; + goto yy20; } -yy673: - YYDEBUG(673, *YYCURSOR); - yyaccept = 9; +yy478: + YYDEBUG(478, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy565; - goto yy509; + if (yych <= '/') { + if (yych <= ',') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= ' ') goto yy565; - if (yych <= ',') goto yy509; - if (yych <= '-') goto yy662; - goto yy565; + if (yych == '.') goto yy20; + goto yy297; } } else { - if (yych <= 'D') { - if (yych <= '/') goto yy509; - if (yych <= '9') goto yy567; - goto yy509; - } else { - if (yych <= 'E') goto yy621; - if (yych == 'e') goto yy621; - goto yy509; + if (yych <= '^') { + if (yych <= '@') goto yy20; + if (yych <= 'Z') goto yy658; + goto yy20; + } else { + if (yych <= '_') goto yy297; + if (yych <= '`') goto yy20; + if (yych <= 'z') goto yy663; + goto yy20; } } -yy674: - YYDEBUG(674, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'G') goto yy677; - if (yych == 'g') goto yy677; - goto yy55; -yy675: - YYDEBUG(675, *YYCURSOR); +yy479: + YYDEBUG(479, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy676; - if (yych != 'r') goto yy55; -yy676: - YYDEBUG(676, *YYCURSOR); - yyaccept = 9; + if (yybm[0+yych] & 64) { + goto yy476; + } + if (yych <= '/') goto yy142; + if (yych <= '2') goto yy659; + if (yych <= '3') goto yy660; + goto yy142; +yy480: + YYDEBUG(480, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy565; - goto yy509; + if (yych <= 'K') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= ' ') goto yy565; - if (yych <= ',') goto yy509; - if (yych <= '-') goto yy662; - goto yy565; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy658; } } else { - if (yych <= 'H') { - if (yych <= '/') goto yy509; - if (yych <= '9') goto yy567; - goto yy509; - } else { - if (yych <= 'I') goto yy585; - if (yych == 'i') goto yy585; - goto yy509; + if (yych <= '_') { + if (yych <= 'L') goto yy661; + if (yych <= 'Z') goto yy658; + if (yych <= '^') goto yy20; + goto yy297; + } else { + if (yych <= 'k') { + if (yych <= '`') goto yy20; + goto yy663; + } else { + if (yych <= 'l') goto yy664; + if (yych <= 'z') goto yy663; + goto yy20; + } } } -yy677: - YYDEBUG(677, *YYCURSOR); - yyaccept = 9; +yy481: + YYDEBUG(481, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy565; - goto yy509; + if (yych <= 'R') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= ' ') goto yy565; - if (yych <= ',') goto yy509; - if (yych <= '-') goto yy662; - goto yy565; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy658; } } else { - if (yych <= 'T') { - if (yych <= '/') goto yy509; - if (yych <= '9') goto yy567; - goto yy509; - } else { - if (yych <= 'U') goto yy587; - if (yych == 'u') goto yy587; - goto yy509; + if (yych <= '_') { + if (yych <= 'S') goto yy662; + if (yych <= 'Z') goto yy658; + if (yych <= '^') goto yy20; + goto yy297; + } else { + if (yych <= 'r') { + if (yych <= '`') goto yy20; + goto yy663; + } else { + if (yych <= 's') goto yy665; + if (yych <= 'z') goto yy663; + goto yy20; + } } } -yy678: - YYDEBUG(678, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'Y') { - if (yych == 'R') goto yy679; - if (yych <= 'X') goto yy55; - goto yy680; +yy482: + YYDEBUG(482, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ')') { + if (yych == ' ') goto yy666; + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy55; + if (yych <= 'Z') { + if (yych <= '@') goto yy20; + goto yy658; } else { - if (yych == 'y') goto yy680; - goto yy55; + if (yych <= '`') goto yy20; + if (yych <= 'z') goto yy658; + goto yy20; } } -yy679: - YYDEBUG(679, *YYCURSOR); - yyaccept = 9; +yy483: + YYDEBUG(483, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy565; - goto yy509; + if (yych <= '(') { + if (yych == ' ') goto yy666; + goto yy20; } else { - if (yych <= ' ') goto yy565; - if (yych <= ',') goto yy509; - if (yych <= '-') goto yy662; - goto yy565; + if (yych <= ')') goto yy115; + if (yych == '-') goto yy297; + goto yy20; } } else { - if (yych <= 'B') { - if (yych <= '/') goto yy509; - if (yych <= '9') goto yy567; - goto yy509; - } else { - if (yych <= 'C') goto yy627; - if (yych == 'c') goto yy627; - goto yy509; + if (yych <= '^') { + if (yych <= '/') goto yy297; + if (yych <= '@') goto yy20; + if (yych <= 'Z') goto yy658; + goto yy20; + } else { + if (yych <= '_') goto yy297; + if (yych <= '`') goto yy20; + if (yych <= 'z') goto yy663; + goto yy20; } } -yy680: - YYDEBUG(680, *YYCURSOR); - yyaccept = 9; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ',') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy509; - goto yy565; +yy484: + YYDEBUG(484, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'M') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych == ' ') goto yy565; - goto yy509; + if (yych <= '@') goto yy20; + if (yych <= 'L') goto yy658; + goto yy667; } } else { - if (yych <= '.') { - if (yych <= '-') goto yy662; - goto yy565; + if (yych <= 'l') { + if (yych <= 'Z') goto yy658; + if (yych <= '`') goto yy20; + goto yy658; } else { - if (yych <= '/') goto yy509; - if (yych <= '9') goto yy567; - goto yy509; + if (yych <= 'm') goto yy667; + if (yych <= 'z') goto yy658; + goto yy20; } } -yy681: - YYDEBUG(681, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy682; - if (yych != 'b') goto yy55; -yy682: - YYDEBUG(682, *YYCURSOR); - yyaccept = 9; +yy485: + YYDEBUG(485, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy565; - goto yy509; + if (yych <= 'L') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= ' ') goto yy565; - if (yych <= ',') goto yy509; - if (yych <= '-') goto yy662; - goto yy565; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy658; } } else { - if (yych <= 'Q') { - if (yych <= '/') goto yy509; - if (yych <= '9') goto yy567; - goto yy509; - } else { - if (yych <= 'R') goto yy630; - if (yych == 'r') goto yy630; - goto yy509; + if (yych <= '_') { + if (yych <= 'M') goto yy667; + if (yych <= 'Z') goto yy658; + if (yych <= '^') goto yy20; + goto yy297; + } else { + if (yych <= 'l') { + if (yych <= '`') goto yy20; + goto yy663; + } else { + if (yych <= 'm') goto yy668; + if (yych <= 'z') goto yy663; + goto yy20; + } } } -yy683: - YYDEBUG(683, *YYCURSOR); +yy486: + YYDEBUG(486, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'N') { - if (yych == 'L') goto yy687; - if (yych <= 'M') goto yy55; - goto yy686; - } else { - if (yych <= 'l') { - if (yych <= 'k') goto yy55; - goto yy687; + if (yych <= 'T') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych == 'n') goto yy686; - goto yy55; + if (yych <= '@') goto yy20; + if (yych <= 'S') goto yy658; + goto yy669; + } + } else { + if (yych <= 's') { + if (yych <= 'Z') goto yy658; + if (yych <= '`') goto yy20; + goto yy658; + } else { + if (yych <= 't') goto yy669; + if (yych <= 'z') goto yy658; + goto yy20; } } -yy684: - YYDEBUG(684, *YYCURSOR); +yy487: + YYDEBUG(487, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy685; - if (yych != 'n') goto yy55; -yy685: - YYDEBUG(685, *YYCURSOR); - yyaccept = 9; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy565; - goto yy509; + if (yych <= 'E') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= ' ') goto yy565; - if (yych <= ',') goto yy509; - if (yych <= '-') goto yy662; - goto yy565; + if (yych <= '@') goto yy20; + if (yych <= 'D') goto yy658; + goto yy670; } } else { - if (yych <= 'T') { - if (yych <= '/') goto yy509; - if (yych <= '9') goto yy567; - goto yy509; - } else { - if (yych <= 'U') goto yy592; - if (yych == 'u') goto yy592; - goto yy509; + if (yych <= 'd') { + if (yych <= 'Z') goto yy658; + if (yych <= '`') goto yy20; + goto yy658; + } else { + if (yych <= 'e') goto yy670; + if (yych <= 'z') goto yy658; + goto yy20; } } -yy686: - YYDEBUG(686, *YYCURSOR); - yyaccept = 9; +yy488: + YYDEBUG(488, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy565; - goto yy509; + if (yych <= 'S') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= ' ') goto yy565; - if (yych <= ',') goto yy509; - if (yych <= '-') goto yy662; - goto yy565; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy658; } } else { - if (yych <= 'D') { - if (yych <= '/') goto yy509; - if (yych <= '9') goto yy567; - goto yy509; - } else { - if (yych <= 'E') goto yy573; - if (yych == 'e') goto yy573; - goto yy509; + if (yych <= '_') { + if (yych <= 'T') goto yy669; + if (yych <= 'Z') goto yy658; + if (yych <= '^') goto yy20; + goto yy297; + } else { + if (yych <= 's') { + if (yych <= '`') goto yy20; + goto yy663; + } else { + if (yych <= 't') goto yy671; + if (yych <= 'z') goto yy663; + goto yy20; + } } } -yy687: - YYDEBUG(687, *YYCURSOR); - yyaccept = 9; +yy489: + YYDEBUG(489, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy565; - goto yy509; + if (yych <= 'D') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= ' ') goto yy565; - if (yych <= ',') goto yy509; - if (yych <= '-') goto yy662; - goto yy565; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy658; } } else { - if (yych <= 'X') { - if (yych <= '/') goto yy509; - if (yych <= '9') goto yy567; - goto yy509; - } else { - if (yych <= 'Y') goto yy573; - if (yych == 'y') goto yy573; - goto yy509; + if (yych <= '_') { + if (yych <= 'E') goto yy670; + if (yych <= 'Z') goto yy658; + if (yych <= '^') goto yy20; + goto yy297; + } else { + if (yych <= 'd') { + if (yych <= '`') goto yy20; + goto yy663; + } else { + if (yych <= 'e') goto yy672; + if (yych <= 'z') goto yy663; + goto yy20; + } } } -yy688: - YYDEBUG(688, *YYCURSOR); +yy490: + YYDEBUG(490, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '2') goto yy689; - if (yych <= '3') goto yy691; - if (yych <= '9') goto yy692; - goto yy55; -yy689: - YYDEBUG(689, *YYCURSOR); - yyaccept = 12; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'n') { - if (yych <= '/') goto yy690; - if (yych <= '9') goto yy698; - if (yych >= 'n') goto yy694; - } else { - if (yych <= 'r') { - if (yych >= 'r') goto yy695; + if (yych <= 'U') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= 's') goto yy693; - if (yych <= 't') goto yy696; + if (yych <= '@') goto yy20; + if (yych <= 'T') goto yy658; + goto yy673; + } + } else { + if (yych <= 't') { + if (yych <= 'Z') goto yy658; + if (yych <= '`') goto yy20; + goto yy658; + } else { + if (yych <= 'u') goto yy673; + if (yych <= 'z') goto yy658; + goto yy20; } } -yy690: - YYDEBUG(690, *YYCURSOR); -#line 1509 "ext/date/lib/parse_date.re" - { - int length = 0; - DEBUG_OUTPUT("gnudateshort"); - TIMELIB_INIT; - TIMELIB_HAVE_DATE(); - s->time->y = timelib_get_nr_ex(&ptr, 4, &length); - s->time->m = timelib_get_nr(&ptr, 2); - s->time->d = timelib_get_nr(&ptr, 2); - TIMELIB_PROCESS_YEAR(s->time->y, length); - TIMELIB_DEINIT; - return TIMELIB_ISO_DATE; - } -#line 11815 "" -yy691: - YYDEBUG(691, *YYCURSOR); - yyaccept = 12; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'n') { - if (yych <= '1') { - if (yych <= '/') goto yy690; - goto yy698; +yy491: + YYDEBUG(491, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'H') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= '9') goto yy637; - if (yych <= 'm') goto yy690; - goto yy694; + if (yych <= '@') goto yy20; + if (yych <= 'G') goto yy658; + goto yy674; } } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy690; - goto yy695; - } else { - if (yych <= 's') goto yy693; - if (yych <= 't') goto yy696; - goto yy690; + if (yych <= 'g') { + if (yych <= 'Z') goto yy658; + if (yych <= '`') goto yy20; + goto yy658; + } else { + if (yych <= 'h') goto yy674; + if (yych <= 'z') goto yy658; + goto yy20; } } -yy692: - YYDEBUG(692, *YYCURSOR); - yyaccept = 12; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'n') { - if (yych <= '/') goto yy690; - if (yych <= '9') goto yy637; - if (yych <= 'm') goto yy690; - goto yy694; - } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy690; - goto yy695; +yy492: + YYDEBUG(492, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= 's') goto yy693; - if (yych <= 't') goto yy696; - goto yy690; + if (yych <= '@') goto yy20; + if (yych <= 'S') goto yy658; + goto yy675; + } + } else { + if (yych <= 's') { + if (yych <= 'Z') goto yy658; + if (yych <= '`') goto yy20; + goto yy658; + } else { + if (yych <= 't') goto yy675; + if (yych <= 'z') goto yy658; + goto yy20; } } -yy693: - YYDEBUG(693, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 't') goto yy697; - goto yy55; -yy694: - YYDEBUG(694, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'd') goto yy697; - goto yy55; -yy695: - YYDEBUG(695, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'd') goto yy697; - goto yy55; -yy696: - YYDEBUG(696, *YYCURSOR); +yy493: + YYDEBUG(493, *YYCURSOR); yych = *++YYCURSOR; - if (yych != 'h') goto yy55; -yy697: - YYDEBUG(697, *YYCURSOR); + if (yych <= 'T') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; + } else { + if (yych <= '@') goto yy20; + if (yych <= 'S') goto yy658; + goto yy676; + } + } else { + if (yych <= 's') { + if (yych <= 'Z') goto yy658; + if (yych <= '`') goto yy20; + goto yy658; + } else { + if (yych <= 't') goto yy676; + if (yych <= 'z') goto yy658; + goto yy20; + } + } +yy494: + YYDEBUG(494, *YYCURSOR); yych = *++YYCURSOR; - goto yy690; -yy698: - YYDEBUG(698, *YYCURSOR); - yyaccept = 12; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'n') { - if (yych <= '/') goto yy690; - if (yych <= '9') goto yy638; - if (yych <= 'm') goto yy690; - goto yy694; + if (yych <= 'A') { + if (yych == ')') goto yy115; + if (yych <= '@') goto yy20; + goto yy677; } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy690; - goto yy695; + if (yych <= '`') { + if (yych <= 'Z') goto yy658; + goto yy20; } else { - if (yych <= 's') goto yy693; - if (yych <= 't') goto yy696; - goto yy690; + if (yych <= 'a') goto yy677; + if (yych <= 'z') goto yy658; + goto yy20; } } -yy699: - YYDEBUG(699, *YYCURSOR); - yyaccept = 13; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'n') { - if (yych <= '/') { - if (yych >= '/') goto yy767; +yy495: + YYDEBUG(495, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= '9') goto yy702; - if (yych >= 'n') goto yy764; + if (yych <= '@') goto yy20; + if (yych <= 'S') goto yy658; + goto yy678; } } else { - if (yych <= 'r') { - if (yych >= 'r') goto yy765; - } else { - if (yych <= 's') goto yy763; - if (yych <= 't') goto yy766; - } - } -yy700: - YYDEBUG(700, *YYCURSOR); -#line 1441 "ext/date/lib/parse_date.re" - { - int length = 0; - DEBUG_OUTPUT("americanshort | american"); - TIMELIB_INIT; - TIMELIB_HAVE_DATE(); - s->time->m = timelib_get_nr(&ptr, 2); - s->time->d = timelib_get_nr(&ptr, 2); - if (*ptr == '/') { - s->time->y = timelib_get_nr_ex(&ptr, 4, &length); - TIMELIB_PROCESS_YEAR(s->time->y, length); + if (yych <= 's') { + if (yych <= 'Z') goto yy658; + if (yych <= '`') goto yy20; + goto yy658; + } else { + if (yych <= 't') goto yy678; + if (yych <= 'z') goto yy658; + goto yy20; } - TIMELIB_DEINIT; - return TIMELIB_AMERICAN; } -#line 11936 "" -yy701: - YYDEBUG(701, *YYCURSOR); - yyaccept = 13; +yy496: + YYDEBUG(496, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'n') { - if (yych <= '/') { - if (yych <= '.') goto yy700; - goto yy767; + if (yych <= 'T') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= '1') goto yy702; - if (yych <= 'm') goto yy700; - goto yy764; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy658; } } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy700; - goto yy765; + if (yych <= '_') { + if (yych <= 'U') goto yy673; + if (yych <= 'Z') goto yy658; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 's') goto yy763; - if (yych <= 't') goto yy766; - goto yy700; + if (yych <= 't') { + if (yych <= '`') goto yy20; + goto yy663; + } else { + if (yych <= 'u') goto yy679; + if (yych <= 'z') goto yy663; + goto yy20; + } } } -yy702: - YYDEBUG(702, *YYCURSOR); - yyaccept = 13; +yy497: + YYDEBUG(497, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'n') { - if (yych == '/') goto yy767; - if (yych <= 'm') goto yy700; - goto yy764; - } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy700; - goto yy765; + if (yych <= 'G') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= 's') goto yy763; - if (yych <= 't') goto yy766; - goto yy700; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy658; } - } -yy703: - YYDEBUG(703, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych == 'A') goto yy762; - if (yych <= 'T') goto yy55; - goto yy761; } else { - if (yych <= 'a') { - if (yych <= '`') goto yy55; - goto yy762; + if (yych <= '_') { + if (yych <= 'H') goto yy674; + if (yych <= 'Z') goto yy658; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych == 'u') goto yy761; - goto yy55; + if (yych <= 'g') { + if (yych <= '`') goto yy20; + goto yy663; + } else { + if (yych <= 'h') goto yy680; + if (yych <= 'z') goto yy663; + goto yy20; + } } } -yy704: - YYDEBUG(704, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy760; - if (yych == 'e') goto yy760; - goto yy55; -yy705: - YYDEBUG(705, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy759; - if (yych == 'a') goto yy759; - goto yy55; -yy706: - YYDEBUG(706, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych == 'P') goto yy758; - if (yych <= 'T') goto yy55; - goto yy757; +yy498: + YYDEBUG(498, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; + } else { + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy658; + } } else { - if (yych <= 'p') { - if (yych <= 'o') goto yy55; - goto yy758; + if (yych <= '_') { + if (yych <= 'T') goto yy675; + if (yych <= 'Z') goto yy658; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych == 'u') goto yy757; - goto yy55; + if (yych <= 's') { + if (yych <= '`') goto yy20; + goto yy663; + } else { + if (yych <= 't') goto yy681; + if (yych <= 'z') goto yy663; + goto yy20; + } } } -yy707: - YYDEBUG(707, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy755; - if (yych == 'e') goto yy755; - goto yy55; -yy708: - YYDEBUG(708, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy754; - if (yych == 'c') goto yy754; - goto yy55; -yy709: - YYDEBUG(709, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy753; - if (yych == 'o') goto yy753; - goto yy55; -yy710: - YYDEBUG(710, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy711; - if (yych != 'e') goto yy55; -yy711: - YYDEBUG(711, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy712; - if (yych != 'c') goto yy55; -yy712: - YYDEBUG(712, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '/') goto yy55; -yy713: - YYDEBUG(713, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= ':') goto yy55; - YYDEBUG(714, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= ':') goto yy55; - YYDEBUG(715, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= ':') goto yy55; - YYDEBUG(716, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= ':') goto yy55; - YYDEBUG(717, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != ':') goto yy55; - YYDEBUG(718, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '1') goto yy719; - if (yych <= '2') goto yy720; - goto yy55; -yy719: - YYDEBUG(719, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy721; - goto yy55; -yy720: - YYDEBUG(720, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= '5') goto yy55; -yy721: - YYDEBUG(721, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != ':') goto yy55; - YYDEBUG(722, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= '6') goto yy55; - YYDEBUG(723, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= ':') goto yy55; - YYDEBUG(724, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != ':') goto yy55; - YYDEBUG(725, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy726; - if (yych <= '6') goto yy727; - goto yy55; -yy726: - YYDEBUG(726, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy728; - goto yy55; -yy727: - YYDEBUG(727, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '0') goto yy55; -yy728: - YYDEBUG(728, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\t') goto yy729; - if (yych != ' ') goto yy55; -yy729: - YYDEBUG(729, *YYCURSOR); - ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12); - yych = *YYCURSOR; - YYDEBUG(730, *YYCURSOR); - if (yych <= '*') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy55; - goto yy729; +yy499: + YYDEBUG(499, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == ' ') goto yy729; - goto yy55; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy658; } } else { - if (yych <= '-') { - if (yych == ',') goto yy55; - goto yy732; + if (yych <= '_') { + if (yych <= 'T') goto yy676; + if (yych <= 'Z') goto yy658; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych != 'G') goto yy55; + if (yych <= 's') { + if (yych <= '`') goto yy20; + goto yy663; + } else { + if (yych <= 't') goto yy682; + if (yych <= 'z') goto yy663; + goto yy20; + } } } - YYDEBUG(731, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'M') goto yy751; - goto yy55; -yy732: - YYDEBUG(732, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '1') goto yy733; - if (yych <= '2') goto yy735; - if (yych <= '9') goto yy736; - goto yy55; -yy733: - YYDEBUG(733, *YYCURSOR); - yyaccept = 14; +yy500: + YYDEBUG(500, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy734; - if (yych <= '9') goto yy740; - if (yych <= ':') goto yy737; -yy734: - YYDEBUG(734, *YYCURSOR); -#line 1736 "ext/date/lib/parse_date.re" - { - int tz_not_found; - DEBUG_OUTPUT("clf"); - TIMELIB_INIT; - TIMELIB_HAVE_TIME(); - TIMELIB_HAVE_DATE(); - s->time->d = timelib_get_nr(&ptr, 2); - s->time->m = timelib_get_month(&ptr); - s->time->y = timelib_get_nr(&ptr, 4); - s->time->h = timelib_get_nr(&ptr, 2); - s->time->i = timelib_get_nr(&ptr, 2); - s->time->s = timelib_get_nr(&ptr, 2); - s->time->z = timelib_parse_zone(&ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper); - if (tz_not_found) { - add_error(s, TIMELIB_ERR_TZID_NOT_FOUND, "The timezone could not be found in the database"); + if (yych <= '@') { + if (yych <= ',') { + if (yych == ')') goto yy115; + goto yy20; + } else { + if (yych == '.') goto yy20; + if (yych <= '/') goto yy297; + goto yy20; + } + } else { + if (yych <= '_') { + if (yych <= 'A') goto yy677; + if (yych <= 'Z') goto yy658; + if (yych <= '^') goto yy20; + goto yy297; + } else { + if (yych <= '`') goto yy20; + if (yych <= 'a') goto yy683; + if (yych <= 'z') goto yy663; + goto yy20; } - TIMELIB_DEINIT; - return TIMELIB_CLF; - } -#line 12190 "" -yy735: - YYDEBUG(735, *YYCURSOR); - yyaccept = 14; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '5') { - if (yych <= '/') goto yy734; - if (yych <= '4') goto yy740; - goto yy738; - } else { - if (yych <= '9') goto yy739; - if (yych <= ':') goto yy737; - goto yy734; } -yy736: - YYDEBUG(736, *YYCURSOR); - yyaccept = 14; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy734; - if (yych <= '5') goto yy738; - if (yych <= '9') goto yy739; - if (yych >= ';') goto yy734; -yy737: - YYDEBUG(737, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy738; - if (yych <= '9') goto yy739; - goto yy55; -yy738: - YYDEBUG(738, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy734; - if (yych >= ':') goto yy734; -yy739: - YYDEBUG(739, *YYCURSOR); - yych = *++YYCURSOR; - goto yy734; -yy740: - YYDEBUG(740, *YYCURSOR); - yyaccept = 14; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy734; - if (yych <= '5') goto yy741; - if (yych <= '9') goto yy739; - if (yych <= ':') goto yy742; - goto yy734; -yy741: - YYDEBUG(741, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy734; - if (yych <= '9') goto yy748; - goto yy734; -yy742: - YYDEBUG(742, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy743; - if (yych <= '9') goto yy739; - goto yy55; -yy743: - YYDEBUG(743, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy734; - if (yych >= ':') goto yy734; - YYDEBUG(744, *YYCURSOR); - yyaccept = 14; - yych = *(YYMARKER = ++YYCURSOR); - if (yych != ':') goto yy734; - YYDEBUG(745, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy746; - if (yych <= '6') goto yy747; - goto yy55; -yy746: - YYDEBUG(746, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy739; - goto yy55; -yy747: - YYDEBUG(747, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '0') goto yy739; - goto yy55; -yy748: - YYDEBUG(748, *YYCURSOR); - yyaccept = 14; +yy501: + YYDEBUG(501, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy734; - if (yych <= '5') goto yy749; - if (yych <= '6') goto yy750; - goto yy734; -yy749: - YYDEBUG(749, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy739; - goto yy55; -yy750: - YYDEBUG(750, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '0') goto yy739; - goto yy55; -yy751: - YYDEBUG(751, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != 'T') goto yy55; - YYDEBUG(752, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '+') goto yy732; - if (yych == '-') goto yy732; - goto yy55; -yy753: - YYDEBUG(753, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'V') goto yy712; - if (yych == 'v') goto yy712; - goto yy55; -yy754: - YYDEBUG(754, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy712; - if (yych == 't') goto yy712; - goto yy55; -yy755: - YYDEBUG(755, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'P') goto yy756; - if (yych != 'p') goto yy55; -yy756: - YYDEBUG(756, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'S') { - if (yych == '/') goto yy713; - goto yy55; - } else { - if (yych <= 'T') goto yy712; - if (yych == 't') goto yy712; - goto yy55; - } -yy757: - YYDEBUG(757, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'G') goto yy712; - if (yych == 'g') goto yy712; - goto yy55; -yy758: - YYDEBUG(758, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy712; - if (yych == 'r') goto yy712; - goto yy55; -yy759: - YYDEBUG(759, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'Y') { - if (yych == 'R') goto yy712; - if (yych <= 'X') goto yy55; - goto yy712; - } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy55; - goto yy712; + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == 'y') goto yy712; - goto yy55; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy658; } - } -yy760: - YYDEBUG(760, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy712; - if (yych == 'b') goto yy712; - goto yy55; -yy761: - YYDEBUG(761, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'N') { - if (yych == 'L') goto yy712; - if (yych <= 'M') goto yy55; - goto yy712; } else { - if (yych <= 'l') { - if (yych <= 'k') goto yy55; - goto yy712; + if (yych <= '_') { + if (yych <= 'T') goto yy678; + if (yych <= 'Z') goto yy658; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych == 'n') goto yy712; - goto yy55; + if (yych <= 's') { + if (yych <= '`') goto yy20; + goto yy663; + } else { + if (yych <= 't') goto yy684; + if (yych <= 'z') goto yy663; + goto yy20; + } } } -yy762: - YYDEBUG(762, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy712; - if (yych == 'n') goto yy712; - goto yy55; -yy763: - YYDEBUG(763, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 't') goto yy772; - goto yy55; -yy764: - YYDEBUG(764, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'd') goto yy772; - goto yy55; -yy765: - YYDEBUG(765, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'd') goto yy772; - goto yy55; -yy766: - YYDEBUG(766, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'h') goto yy772; - goto yy55; -yy767: - YYDEBUG(767, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= ':') goto yy55; - YYDEBUG(768, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy700; - if (yych >= ':') goto yy700; - YYDEBUG(769, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy700; - if (yych >= ':') goto yy700; - YYDEBUG(770, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy700; - if (yych >= ':') goto yy700; - YYDEBUG(771, *YYCURSOR); +yy502: + YYDEBUG(502, *YYCURSOR); yych = *++YYCURSOR; - goto yy700; -yy772: - YYDEBUG(772, *YYCURSOR); - yyaccept = 13; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '/') goto yy767; - goto yy700; -yy773: - YYDEBUG(773, *YYCURSOR); + if (yych <= '/') goto yy59; + if (yych <= '1') goto yy685; + if (yych <= '2') goto yy686; + if (yych <= '9') goto yy687; + goto yy59; +yy503: + YYDEBUG(503, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= ',') { - if (yych == '\t') goto yy775; - goto yy611; + if (yych <= '/') { + if (yych == '.') goto yy688; + goto yy59; } else { - if (yych <= '-') goto yy776; - if (yych <= '.') goto yy775; - if (yych >= '0') goto yy611; - } -yy774: - YYDEBUG(774, *YYCURSOR); - yych = *++YYCURSOR; - switch (yych) { - case 'A': - case 'a': goto yy706; - case 'D': - case 'd': goto yy710; - case 'F': - case 'f': goto yy704; - case 'J': - case 'j': goto yy703; - case 'M': - case 'm': goto yy705; - case 'N': - case 'n': goto yy709; - case 'O': - case 'o': goto yy708; - case 'S': - case 's': goto yy707; - default: goto yy55; + if (yych <= '0') goto yy689; + if (yych <= '9') goto yy506; + if (yych <= ':') goto yy688; + goto yy59; } -yy775: - YYDEBUG(775, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy611; - if (yych <= '0') goto yy780; - if (yych <= '1') goto yy781; - if (yych <= '9') goto yy782; - goto yy611; -yy776: - YYDEBUG(776, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy611; - if (yych <= '0') goto yy777; - if (yych <= '1') goto yy778; - if (yych <= '9') goto yy779; - goto yy611; -yy777: - YYDEBUG(777, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= ',') goto yy55; - if (yych <= '.') goto yy635; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy779; - goto yy55; -yy778: - YYDEBUG(778, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= ',') goto yy55; - if (yych <= '.') goto yy635; - if (yych <= '/') goto yy55; - if (yych >= '3') goto yy55; -yy779: - YYDEBUG(779, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= ',') goto yy55; - if (yych <= '.') goto yy635; - goto yy55; -yy780: - YYDEBUG(780, *YYCURSOR); +yy504: + YYDEBUG(504, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '.') { - if (yych <= ',') goto yy55; - if (yych <= '-') goto yy635; - goto yy783; + if (yych <= '/') { + if (yych == '.') goto yy690; + goto yy59; } else { - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy782; - goto yy55; + if (yych <= '2') goto yy506; + if (yych <= '9') goto yy689; + if (yych <= ':') goto yy690; + goto yy59; } -yy781: - YYDEBUG(781, *YYCURSOR); +yy505: + YYDEBUG(505, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '.') { - if (yych <= ',') goto yy55; - if (yych <= '-') goto yy635; - goto yy783; + if (yych <= '/') { + if (yych == '.') goto yy690; + goto yy59; } else { - if (yych <= '/') goto yy55; - if (yych >= '3') goto yy55; + if (yych <= '4') goto yy689; + if (yych == ':') goto yy690; + goto yy59; } -yy782: - YYDEBUG(782, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= ',') goto yy55; - if (yych <= '-') goto yy635; - if (yych >= '/') goto yy55; -yy783: - YYDEBUG(783, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= ':') goto yy55; - YYDEBUG(784, *YYCURSOR); +yy506: + YYDEBUG(506, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy644; - goto yy55; -yy785: - YYDEBUG(785, *YYCURSOR); + if (yych == '.') goto yy690; + if (yych == ':') goto yy690; + goto yy59; +yy507: + YYDEBUG(507, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '-') goto yy829; if (yych <= '/') goto yy59; - if (yych <= '9') goto yy827; + if (yych <= '1') goto yy691; + if (yych <= '2') goto yy692; + if (yych <= '9') goto yy689; goto yy59; -yy786: - YYDEBUG(786, *YYCURSOR); - yych = *++YYCURSOR; - switch (yych) { - case '0': goto yy795; - case '1': goto yy796; - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy797; - case 'A': - case 'a': goto yy790; - case 'D': - case 'd': goto yy794; - case 'F': - case 'f': goto yy788; - case 'J': - case 'j': goto yy787; - case 'M': - case 'm': goto yy789; - case 'N': - case 'n': goto yy793; - case 'O': - case 'o': goto yy792; - case 'S': - case 's': goto yy791; - default: goto yy55; - } -yy787: - YYDEBUG(787, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych == 'A') goto yy826; - if (yych <= 'T') goto yy55; - goto yy825; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy55; - goto yy826; - } else { - if (yych == 'u') goto yy825; - goto yy55; - } - } -yy788: - YYDEBUG(788, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy824; - if (yych == 'e') goto yy824; - goto yy55; -yy789: - YYDEBUG(789, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy823; - if (yych == 'a') goto yy823; - goto yy55; -yy790: - YYDEBUG(790, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych == 'P') goto yy822; - if (yych <= 'T') goto yy55; - goto yy821; +yy508: + YYDEBUG(508, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy688; + goto yy325; } else { - if (yych <= 'p') { - if (yych <= 'o') goto yy55; - goto yy822; - } else { - if (yych == 'u') goto yy821; - goto yy55; - } + if (yych <= '0') goto yy693; + if (yych <= '9') goto yy694; + if (yych <= ':') goto yy688; + goto yy325; } -yy791: - YYDEBUG(791, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy819; - if (yych == 'e') goto yy819; - goto yy55; -yy792: - YYDEBUG(792, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy818; - if (yych == 'c') goto yy818; - goto yy55; -yy793: - YYDEBUG(793, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy817; - if (yych == 'o') goto yy817; - goto yy55; -yy794: - YYDEBUG(794, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy809; - if (yych == 'e') goto yy809; - goto yy55; -yy795: - YYDEBUG(795, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '-') goto yy798; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy802; - goto yy55; -yy796: - YYDEBUG(796, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '-') goto yy798; - if (yych <= '/') goto yy55; - if (yych <= '2') goto yy802; - goto yy55; -yy797: - YYDEBUG(797, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '-') goto yy55; -yy798: - YYDEBUG(798, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '2') goto yy799; - if (yych <= '3') goto yy800; - if (yych <= '9') goto yy801; - goto yy55; -yy799: - YYDEBUG(799, *YYCURSOR); - yyaccept = 12; +yy509: + YYDEBUG(509, *YYCURSOR); + yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'n') { - if (yych <= '/') goto yy690; - if (yych <= '9') goto yy801; - if (yych <= 'm') goto yy690; - goto yy694; + if (yych <= '/') { + if (yych == '.') goto yy690; + goto yy325; } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy690; - goto yy695; - } else { - if (yych <= 's') goto yy693; - if (yych <= 't') goto yy696; - goto yy690; - } + if (yych <= '2') goto yy694; + if (yych <= '9') goto yy693; + if (yych <= ':') goto yy690; + goto yy325; } -yy800: - YYDEBUG(800, *YYCURSOR); - yyaccept = 12; +yy510: + YYDEBUG(510, *YYCURSOR); + yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'n') { - if (yych <= '/') goto yy690; - if (yych <= '1') goto yy801; - if (yych <= 'm') goto yy690; - goto yy694; + if (yych <= '/') { + if (yych == '.') goto yy690; + goto yy325; } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy690; - goto yy695; - } else { - if (yych <= 's') goto yy693; - if (yych <= 't') goto yy696; - goto yy690; - } + if (yych <= '4') goto yy693; + if (yych <= '9') goto yy695; + if (yych <= ':') goto yy690; + goto yy325; } -yy801: - YYDEBUG(801, *YYCURSOR); - yyaccept = 12; +yy511: + YYDEBUG(511, *YYCURSOR); + yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'q') { - if (yych == 'n') goto yy694; - goto yy690; + if (yych <= '/') { + if (yych == '.') goto yy690; + goto yy325; } else { - if (yych <= 'r') goto yy695; - if (yych <= 's') goto yy693; - if (yych <= 't') goto yy696; - goto yy690; + if (yych <= '9') goto yy695; + if (yych <= ':') goto yy690; + goto yy325; } -yy802: - YYDEBUG(802, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '-') goto yy55; - YYDEBUG(803, *YYCURSOR); +yy512: + YYDEBUG(512, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '2') { - if (yych <= '/') goto yy55; - if (yych >= '1') goto yy805; - } else { - if (yych <= '3') goto yy806; - if (yych <= '9') goto yy801; - goto yy55; - } - YYDEBUG(804, *YYCURSOR); - yyaccept = 12; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy696; + goto yy59; +yy513: + YYDEBUG(513, *YYCURSOR); + yyaccept = 10; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'n') { - if (yych <= '/') goto yy690; - if (yych <= '9') goto yy807; - if (yych <= 'm') goto yy690; - goto yy694; + if (yych <= 0x00) goto yy324; + goto yy327; +yy514: + YYDEBUG(514, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'A') { + if (yych == ')') goto yy115; + if (yych <= '@') goto yy20; + goto yy698; } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy690; - goto yy695; + if (yych <= '`') { + if (yych <= 'Z') goto yy658; + goto yy20; } else { - if (yych <= 's') goto yy693; - if (yych <= 't') goto yy696; - goto yy690; + if (yych <= 'a') goto yy698; + if (yych <= 'z') goto yy658; + goto yy20; } } -yy805: - YYDEBUG(805, *YYCURSOR); - yyaccept = 12; +yy515: + YYDEBUG(515, *YYCURSOR); + yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'n') { - if (yych <= '/') goto yy690; - if (yych <= '9') goto yy807; - if (yych <= 'm') goto yy690; - goto yy694; - } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy690; - goto yy695; + if (yych <= ',') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy142; + goto yy295; } else { - if (yych <= 's') goto yy693; - if (yych <= 't') goto yy696; - goto yy690; + if (yych <= ' ') goto yy142; + if (yych == ')') goto yy115; + goto yy295; } - } -yy806: - YYDEBUG(806, *YYCURSOR); - yyaccept = 12; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'n') { - if (yych <= '/') goto yy690; - if (yych <= '1') goto yy807; - if (yych <= 'm') goto yy690; - goto yy694; } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy690; - goto yy695; - } else { - if (yych <= 's') goto yy693; - if (yych <= 't') goto yy696; - goto yy690; + if (yych <= '@') { + if (yych == '/') goto yy295; + if (yych <= '9') goto yy142; + goto yy295; + } else { + if (yych <= 'Z') goto yy658; + if (yych <= '`') goto yy295; + if (yych <= 'z') goto yy658; + goto yy295; } } -yy807: - YYDEBUG(807, *YYCURSOR); - yyaccept = 15; +yy516: + YYDEBUG(516, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'q') { - if (yych == 'n') goto yy694; - } else { - if (yych <= 'r') goto yy695; - if (yych <= 's') goto yy693; - if (yych <= 't') goto yy696; - } -yy808: - YYDEBUG(808, *YYCURSOR); -#line 1469 "ext/date/lib/parse_date.re" - { - int length = 0; - DEBUG_OUTPUT("iso8601date2"); - TIMELIB_INIT; - TIMELIB_HAVE_DATE(); - s->time->y = timelib_get_nr_ex(&ptr, 4, &length); - s->time->m = timelib_get_nr(&ptr, 2); - s->time->d = timelib_get_nr(&ptr, 2); - TIMELIB_PROCESS_YEAR(s->time->y, length); - TIMELIB_DEINIT; - return TIMELIB_ISO_DATE; - } -#line 12823 "" -yy809: - YYDEBUG(809, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy810; - if (yych != 'c') goto yy55; -yy810: - YYDEBUG(810, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '-') goto yy55; -yy811: - YYDEBUG(811, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '0') goto yy812; - if (yych <= '2') goto yy813; - if (yych <= '3') goto yy814; - goto yy55; -yy812: - YYDEBUG(812, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy815; - goto yy55; -yy813: - YYDEBUG(813, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy815; - goto yy55; -yy814: - YYDEBUG(814, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= '2') goto yy55; -yy815: - YYDEBUG(815, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(816, *YYCURSOR); -#line 1722 "ext/date/lib/parse_date.re" - { - int length = 0; - DEBUG_OUTPUT("pgtextreverse"); - TIMELIB_INIT; - TIMELIB_HAVE_DATE(); - s->time->y = timelib_get_nr_ex(&ptr, 4, &length); - s->time->m = timelib_get_month(&ptr); - s->time->d = timelib_get_nr(&ptr, 2); - TIMELIB_PROCESS_YEAR(s->time->y, length); - TIMELIB_DEINIT; - return TIMELIB_PG_TEXT; - } -#line 12875 "" -yy817: - YYDEBUG(817, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'V') goto yy810; - if (yych == 'v') goto yy810; - goto yy55; -yy818: - YYDEBUG(818, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy810; - if (yych == 't') goto yy810; - goto yy55; -yy819: - YYDEBUG(819, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'P') goto yy820; - if (yych != 'p') goto yy55; -yy820: - YYDEBUG(820, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'S') { - if (yych == '-') goto yy811; - goto yy55; - } else { - if (yych <= 'T') goto yy810; - if (yych == 't') goto yy810; - goto yy55; - } -yy821: - YYDEBUG(821, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'G') goto yy810; - if (yych == 'g') goto yy810; - goto yy55; -yy822: - YYDEBUG(822, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy810; - if (yych == 'r') goto yy810; - goto yy55; -yy823: - YYDEBUG(823, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'Y') { - if (yych == 'R') goto yy810; - if (yych <= 'X') goto yy55; - goto yy810; - } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy55; - goto yy810; + if (yych <= '@') { + if (yych <= ',') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych == 'y') goto yy810; - goto yy55; + if (yych == '.') goto yy20; + if (yych <= '/') goto yy297; + goto yy20; } - } -yy824: - YYDEBUG(824, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy810; - if (yych == 'b') goto yy810; - goto yy55; -yy825: - YYDEBUG(825, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'N') { - if (yych == 'L') goto yy810; - if (yych <= 'M') goto yy55; - goto yy810; } else { - if (yych <= 'l') { - if (yych <= 'k') goto yy55; - goto yy810; + if (yych <= '_') { + if (yych <= 'A') goto yy698; + if (yych <= 'Z') goto yy658; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych == 'n') goto yy810; - goto yy55; + if (yych <= '`') goto yy20; + if (yych <= 'a') goto yy699; + if (yych <= 'z') goto yy663; + goto yy20; } } -yy826: - YYDEBUG(826, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy810; - if (yych == 'n') goto yy810; - goto yy55; -yy827: - YYDEBUG(827, *YYCURSOR); - yyaccept = 16; +yy517: + YYDEBUG(517, *YYCURSOR); + yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'O') { - if (yych <= '3') { - if (yych <= '-') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy835; - } else { - if (yych <= ' ') goto yy835; - if (yych >= '-') goto yy832; - } - } else { - if (yych <= '0') { - if (yych <= '.') goto yy836; - if (yych <= '/') goto yy833; - goto yy849; - } else { - if (yych <= '1') goto yy850; - if (yych <= '2') goto yy852; - goto yy853; - } - } + if (yych <= '.') { + if (yych <= ' ') { + if (yych == '\t') goto yy142; + if (yych <= 0x1F) goto yy295; + goto yy142; } else { - if (yych <= 'D') { - if (yych <= '@') { - if (yych <= '9') goto yy73; - if (yych <= ':') goto yy851; - } else { - if (yych <= 'A') goto yy835; - if (yych >= 'D') goto yy835; - } + if (yych <= ')') { + if (yych <= '(') goto yy295; + goto yy115; } else { - if (yych <= 'G') { - if (yych == 'F') goto yy835; - } else { - if (yych <= 'J') goto yy835; - if (yych >= 'M') goto yy835; - } + if (yych <= ',') goto yy295; + if (yych <= '-') goto yy700; + goto yy142; } } } else { - if (yych <= 'h') { - if (yych <= 'a') { - if (yych <= 'W') { - if (yych <= 'R') goto yy828; - if (yych <= 'V') goto yy835; - goto yy854; - } else { - if (yych <= 'Y') goto yy835; - if (yych >= 'a') goto yy835; - } - } else { - if (yych <= 'e') { - if (yych == 'd') goto yy835; - } else { - if (yych != 'g') goto yy835; - } - } + if (yych <= 'Z') { + if (yych <= '/') goto yy297; + if (yych <= '9') goto yy142; + if (yych <= '@') goto yy295; + goto yy658; } else { - if (yych <= 'u') { - if (yych <= 'l') { - if (yych == 'j') goto yy835; - } else { - if (yych <= 'o') goto yy835; - if (yych >= 's') goto yy835; - } + if (yych <= '_') { + if (yych <= '^') goto yy295; + goto yy297; } else { - if (yych <= 'x') { - if (yych == 'w') goto yy835; - } else { - if (yych <= 'y') goto yy835; - if (yych == 0xC2) goto yy835; - } + if (yych <= '`') goto yy295; + if (yych <= 'z') goto yy663; + goto yy295; } } } -yy828: - YYDEBUG(828, *YYCURSOR); -#line 1757 "ext/date/lib/parse_date.re" - { - DEBUG_OUTPUT("year4"); - TIMELIB_INIT; - s->time->y = timelib_get_nr(&ptr, 4); - TIMELIB_DEINIT; - return TIMELIB_CLF; - } -#line 13048 "" -yy829: - YYDEBUG(829, *YYCURSOR); - yych = *++YYCURSOR; - switch (yych) { - case '0': goto yy830; - case '1': goto yy831; - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy797; - case 'A': - case 'a': goto yy790; - case 'D': - case 'd': goto yy794; - case 'F': - case 'f': goto yy788; - case 'J': - case 'j': goto yy787; - case 'M': - case 'm': goto yy789; - case 'N': - case 'n': goto yy793; - case 'O': - case 'o': goto yy792; - case 'S': - case 's': goto yy791; - default: goto yy55; - } -yy830: - YYDEBUG(830, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '-') goto yy798; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy797; - goto yy55; -yy831: - YYDEBUG(831, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '-') goto yy798; - if (yych <= '/') goto yy55; - if (yych <= '2') goto yy797; - goto yy55; -yy832: - YYDEBUG(832, *YYCURSOR); - yych = *++YYCURSOR; - switch (yych) { - case '0': goto yy1017; - case '1': goto yy1019; - case '2': goto yy1020; - case '3': goto yy1021; - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy1022; - case 'A': - case 'a': goto yy1011; - case 'D': - case 'd': goto yy1015; - case 'F': - case 'f': goto yy1009; - case 'J': - case 'j': goto yy1008; - case 'M': - case 'm': goto yy1010; - case 'N': - case 'n': goto yy1014; - case 'O': - case 'o': goto yy1013; - case 'S': - case 's': goto yy1012; - case 'W': goto yy1016; - default: goto yy983; +yy518: + YYDEBUG(518, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '@') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy701; + goto yy20; + } else { + if (yych <= ' ') goto yy703; + if (yych == ')') goto yy115; + goto yy20; + } + } else { + if (yych <= 0xC1) { + if (yych <= 'Z') goto yy658; + if (yych <= '`') goto yy20; + if (yych <= 'z') goto yy658; + goto yy20; + } else { + if (yych <= 0xC2) goto yy704; + if (yych == 0xE2) goto yy705; + goto yy20; + } } -yy833: - YYDEBUG(833, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '0') goto yy991; - if (yych <= '1') goto yy992; - if (yych <= '9') goto yy993; - goto yy55; -yy834: - YYDEBUG(834, *YYCURSOR); - ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12); - yych = *YYCURSOR; -yy835: - YYDEBUG(835, *YYCURSOR); - if (yych <= 'W') { - if (yych <= 'G') { - if (yych <= '.') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy834; - goto yy55; - } else { - if (yych <= ' ') goto yy834; - if (yych <= ',') goto yy55; - goto yy982; - } +yy519: + YYDEBUG(519, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy20; + goto yy701; } else { - if (yych <= 'C') { - if (yych == 'A') goto yy844; - goto yy55; - } else { - if (yych <= 'D') goto yy848; - if (yych == 'F') goto yy842; - goto yy55; - } + if (yych == ' ') goto yy703; + goto yy20; } } else { - if (yych <= 'N') { - if (yych <= 'J') { - if (yych <= 'H') goto yy64; - if (yych <= 'I') goto yy837; - goto yy841; - } else { - if (yych <= 'L') goto yy55; - if (yych <= 'M') goto yy843; - goto yy847; - } + if (yych <= ',') { + if (yych <= ')') goto yy115; + goto yy20; } else { - if (yych <= 'S') { - if (yych <= 'O') goto yy846; - if (yych <= 'R') goto yy55; - goto yy845; - } else { - if (yych <= 'T') goto yy69; - if (yych <= 'U') goto yy62; - if (yych <= 'V') goto yy839; - goto yy68; - } + if (yych == '.') goto yy20; + goto yy297; } } } else { - if (yych <= 'l') { - if (yych <= 'd') { - if (yych <= '`') { - if (yych <= 'X') goto yy840; - if (yych <= 'Y') goto yy67; - goto yy55; - } else { - if (yych <= 'a') goto yy844; - if (yych <= 'c') goto yy55; - goto yy848; - } + if (yych <= '`') { + if (yych <= 'Z') { + if (yych <= '@') goto yy20; + goto yy658; } else { - if (yych <= 'g') { - if (yych == 'f') goto yy842; - goto yy55; - } else { - if (yych <= 'h') goto yy64; - if (yych == 'j') goto yy841; - goto yy55; - } + if (yych == '_') goto yy297; + goto yy20; } } else { - if (yych <= 'u') { - if (yych <= 'o') { - if (yych <= 'm') goto yy843; - if (yych <= 'n') goto yy847; - goto yy846; - } else { - if (yych <= 'r') goto yy55; - if (yych <= 's') goto yy845; - if (yych <= 't') goto yy69; - goto yy62; - } + if (yych <= 0xC2) { + if (yych <= 'z') goto yy663; + if (yych <= 0xC1) goto yy20; + goto yy704; } else { - if (yych <= 'x') { - if (yych == 'w') goto yy68; - goto yy55; - } else { - if (yych <= 'y') goto yy67; - if (yych == 0xC2) goto yy61; - goto yy55; - } + if (yych == 0xE2) goto yy705; + goto yy20; } } } -yy836: - YYDEBUG(836, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy983; - if (yych <= '0') goto yy975; - if (yych <= '2') goto yy976; - if (yych <= '3') goto yy977; - goto yy983; -yy837: - YYDEBUG(837, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) <= 'U') { - if (yych == 'I') goto yy974; - } else { - if (yych == 'W') goto yy838; - if (yych <= 'X') goto yy928; - } -yy838: - YYDEBUG(838, *YYCURSOR); -#line 1578 "ext/date/lib/parse_date.re" - { - int length = 0; - DEBUG_OUTPUT("datenodayrev"); - TIMELIB_INIT; - TIMELIB_HAVE_DATE(); - s->time->y = timelib_get_nr_ex(&ptr, 4, &length); - s->time->m = timelib_get_month(&ptr); - s->time->d = 1; - TIMELIB_PROCESS_YEAR(s->time->y, length); - TIMELIB_DEINIT; - return TIMELIB_DATE_NO_DAY; - } -#line 13266 "" -yy839: - YYDEBUG(839, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy972; - goto yy838; -yy840: - YYDEBUG(840, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy971; - goto yy838; -yy841: - YYDEBUG(841, *YYCURSOR); +yy520: + YYDEBUG(520, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych == 'A') goto yy964; - if (yych <= 'T') goto yy55; - goto yy963; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy55; - goto yy964; + if (yych <= 'H') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych == 'u') goto yy963; - goto yy55; + if (yych <= '@') goto yy20; + if (yych <= 'G') goto yy658; + goto yy661; + } + } else { + if (yych <= 'g') { + if (yych <= 'Z') goto yy658; + if (yych <= '`') goto yy20; + goto yy658; + } else { + if (yych <= 'h') goto yy661; + if (yych <= 'z') goto yy658; + goto yy20; } } -yy842: - YYDEBUG(842, *YYCURSOR); +yy521: + YYDEBUG(521, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'R') { - if (yych <= 'N') { - if (yych == 'E') goto yy957; - goto yy55; + if (yych <= 'I') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= 'O') goto yy113; - if (yych <= 'Q') goto yy55; - goto yy112; + if (yych <= '@') goto yy20; + if (yych <= 'H') goto yy658; + goto yy706; } } else { - if (yych <= 'n') { - if (yych == 'e') goto yy957; - goto yy55; + if (yych <= 'h') { + if (yych <= 'Z') goto yy658; + if (yych <= '`') goto yy20; + goto yy658; } else { - if (yych <= 'o') goto yy113; - if (yych == 'r') goto yy112; - goto yy55; + if (yych <= 'i') goto yy706; + if (yych <= 'z') goto yy658; + goto yy20; } } -yy843: - YYDEBUG(843, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'S') { - if (yych <= 'I') { - if (yych == 'A') goto yy954; - if (yych <= 'H') goto yy55; - goto yy154; +yy522: + YYDEBUG(522, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'G') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == 'O') goto yy153; - if (yych <= 'R') goto yy55; - goto yy155; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy658; } } else { - if (yych <= 'i') { - if (yych == 'a') goto yy954; - if (yych <= 'h') goto yy55; - goto yy154; + if (yych <= '_') { + if (yych <= 'H') goto yy661; + if (yych <= 'Z') goto yy658; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 'o') { - if (yych <= 'n') goto yy55; - goto yy153; + if (yych <= 'g') { + if (yych <= '`') goto yy20; + goto yy663; } else { - if (yych == 's') goto yy155; - goto yy55; + if (yych <= 'h') goto yy664; + if (yych <= 'z') goto yy663; + goto yy20; } } } -yy844: - YYDEBUG(844, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych == 'P') goto yy948; - if (yych <= 'T') goto yy55; - goto yy947; - } else { - if (yych <= 'p') { - if (yych <= 'o') goto yy55; - goto yy948; - } else { - if (yych == 'u') goto yy947; - goto yy55; - } - } -yy845: - YYDEBUG(845, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych <= 'D') { - if (yych == 'A') goto yy133; - goto yy55; +yy523: + YYDEBUG(523, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'H') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= 'E') goto yy940; - if (yych <= 'T') goto yy55; - goto yy132; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy658; } } else { - if (yych <= 'd') { - if (yych == 'a') goto yy133; - goto yy55; + if (yych <= '_') { + if (yych <= 'I') goto yy706; + if (yych <= 'Z') goto yy658; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 'e') goto yy940; - if (yych == 'u') goto yy132; - goto yy55; + if (yych <= 'h') { + if (yych <= '`') goto yy20; + goto yy663; + } else { + if (yych <= 'i') goto yy707; + if (yych <= 'z') goto yy663; + goto yy20; + } } } -yy846: - YYDEBUG(846, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy935; - if (yych == 'c') goto yy935; - goto yy55; -yy847: - YYDEBUG(847, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy929; - if (yych == 'o') goto yy929; - goto yy55; -yy848: - YYDEBUG(848, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'E') { - if (yych == 'A') goto yy129; - if (yych <= 'D') goto yy55; - goto yy922; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy55; - goto yy129; +yy524: + YYDEBUG(524, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '@') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy701; + goto yy20; } else { - if (yych == 'e') goto yy922; - goto yy55; + if (yych <= ' ') goto yy701; + if (yych == ')') goto yy115; + goto yy20; + } + } else { + if (yych <= 0xC1) { + if (yych <= 'Z') goto yy658; + if (yych <= '`') goto yy20; + if (yych <= 'z') goto yy658; + goto yy20; + } else { + if (yych <= 0xC2) goto yy704; + if (yych == 0xE2) goto yy705; + goto yy20; } } -yy849: - YYDEBUG(849, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy59; - if (yych <= '0') goto yy919; - if (yych <= '9') goto yy920; - goto yy59; -yy850: - YYDEBUG(850, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy59; - if (yych <= '2') goto yy888; - if (yych <= '9') goto yy867; - goto yy59; -yy851: - YYDEBUG(851, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '0') goto yy868; - if (yych <= '1') goto yy869; - goto yy55; -yy852: - YYDEBUG(852, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy59; - if (yych <= '9') goto yy867; - goto yy59; -yy853: - YYDEBUG(853, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy59; - if (yych <= '5') goto yy863; - if (yych <= '6') goto yy864; - if (yych <= '9') goto yy74; - goto yy59; -yy854: - YYDEBUG(854, *YYCURSOR); +yy525: + YYDEBUG(525, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '5') { - if (yych <= '/') goto yy55; - if (yych <= '0') goto yy855; - if (yych <= '4') goto yy856; - goto yy857; + if (yych <= '@') { + if (yych == ')') goto yy115; } else { - if (yych <= 'E') { - if (yych <= 'D') goto yy55; - goto yy96; - } else { - if (yych == 'e') goto yy96; - goto yy55; - } - } -yy855: - YYDEBUG(855, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '0') goto yy55; - if (yych <= '9') goto yy858; - goto yy55; -yy856: - YYDEBUG(856, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy858; - goto yy55; -yy857: - YYDEBUG(857, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= '4') goto yy55; -yy858: - YYDEBUG(858, *YYCURSOR); - yyaccept = 17; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '-') goto yy860; - if (yych <= '/') goto yy859; - if (yych <= '7') goto yy861; -yy859: - YYDEBUG(859, *YYCURSOR); -#line 1689 "ext/date/lib/parse_date.re" - { - timelib_sll w, d; - DEBUG_OUTPUT("isoweek"); - TIMELIB_INIT; - TIMELIB_HAVE_DATE(); - TIMELIB_HAVE_RELATIVE(); - - s->time->y = timelib_get_nr(&ptr, 4); - w = timelib_get_nr(&ptr, 2); - d = 1; - s->time->m = 1; - s->time->d = 1; - s->time->relative.d = timelib_daynr_from_weeknr(s->time->y, w, d); - - TIMELIB_DEINIT; - return TIMELIB_ISO_WEEK; + if (yych <= 'Z') goto yy658; + if (yych <= '`') goto yy526; + if (yych <= 'z') goto yy658; } -#line 13505 "" -yy860: - YYDEBUG(860, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= '8') goto yy55; -yy861: - YYDEBUG(861, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(862, *YYCURSOR); -#line 1670 "ext/date/lib/parse_date.re" +yy526: + YYDEBUG(526, *YYCURSOR); +#line 1173 "ext/date/lib/parse_date.re" { - timelib_sll w, d; - DEBUG_OUTPUT("isoweekday"); + DEBUG_OUTPUT("noon"); TIMELIB_INIT; - TIMELIB_HAVE_DATE(); - TIMELIB_HAVE_RELATIVE(); - - s->time->y = timelib_get_nr(&ptr, 4); - w = timelib_get_nr(&ptr, 2); - d = timelib_get_nr(&ptr, 1); - s->time->m = 1; - s->time->d = 1; - s->time->relative.d = timelib_daynr_from_weeknr(s->time->y, w, d); + TIMELIB_UNHAVE_TIME(); + TIMELIB_HAVE_TIME(); + s->time->h = 12; TIMELIB_DEINIT; - return TIMELIB_ISO_WEEK; + return TIMELIB_RELATIVE; } -#line 13533 "" -yy863: - YYDEBUG(863, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy59; - if (yych <= '9') goto yy865; - goto yy59; -yy864: - YYDEBUG(864, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy59; - if (yych <= '6') goto yy865; - if (yych <= '9') goto yy75; - goto yy59; -yy865: - YYDEBUG(865, *YYCURSOR); - yyaccept = 18; +#line 13059 "" +yy527: + YYDEBUG(527, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'W') { - if (yych <= 'E') { - if (yych <= ' ') { - if (yych == '\t') goto yy59; - if (yych >= ' ') goto yy59; + if (yych <= '/') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy20; + goto yy701; } else { - if (yych <= '9') { - if (yych >= '0') goto yy76; - } else { - if (yych == 'D') goto yy59; - } + if (yych == ' ') goto yy701; + goto yy20; } } else { - if (yych <= 'L') { - if (yych == 'G') goto yy866; - if (yych <= 'H') goto yy59; + if (yych <= ',') { + if (yych <= ')') goto yy115; + goto yy20; } else { - if (yych <= 'R') { - if (yych <= 'M') goto yy59; - } else { - if (yych != 'V') goto yy59; - } + if (yych == '.') goto yy20; + goto yy297; } } } else { - if (yych <= 'l') { - if (yych <= 'd') { - if (yych == 'Y') goto yy59; - if (yych >= 'd') goto yy59; + if (yych <= '`') { + if (yych <= 'Z') { + if (yych <= '@') goto yy20; + goto yy658; } else { - if (yych <= 'f') { - if (yych >= 'f') goto yy59; - } else { - if (yych == 'h') goto yy59; - } + if (yych == '_') goto yy297; + goto yy20; } } else { - if (yych <= 'w') { - if (yych <= 'r') { - if (yych <= 'm') goto yy59; - } else { - if (yych != 'v') goto yy59; - } + if (yych <= 0xC2) { + if (yych <= 'z') goto yy663; + if (yych <= 0xC1) goto yy20; + goto yy704; } else { - if (yych <= 'y') { - if (yych >= 'y') goto yy59; - } else { - if (yych == 0xC2) goto yy59; - } + if (yych == 0xE2) goto yy705; + goto yy20; } } } -yy866: - YYDEBUG(866, *YYCURSOR); -#line 1656 "ext/date/lib/parse_date.re" - { - int length = 0; - DEBUG_OUTPUT("pgydotd"); - TIMELIB_INIT; - TIMELIB_HAVE_DATE(); - s->time->y = timelib_get_nr_ex(&ptr, 4, &length); - s->time->d = timelib_get_nr(&ptr, 3); - s->time->m = 1; - TIMELIB_PROCESS_YEAR(s->time->y, length); - TIMELIB_DEINIT; - return TIMELIB_PG_YEARDAY; - } -#line 13618 "" -yy867: - YYDEBUG(867, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy59; - if (yych <= '9') goto yy865; - goto yy59; -yy868: - YYDEBUG(868, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy870; - goto yy55; -yy869: - YYDEBUG(869, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= '3') goto yy55; -yy870: - YYDEBUG(870, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != ':') goto yy55; - YYDEBUG(871, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '0') goto yy872; - if (yych <= '2') goto yy873; - if (yych <= '3') goto yy874; - goto yy55; -yy872: - YYDEBUG(872, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy875; - goto yy55; -yy873: - YYDEBUG(873, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy875; - goto yy55; -yy874: - YYDEBUG(874, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= '2') goto yy55; -yy875: - YYDEBUG(875, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != ' ') goto yy55; - YYDEBUG(876, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '1') goto yy877; - if (yych <= '2') goto yy878; - goto yy55; -yy877: - YYDEBUG(877, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy879; - goto yy55; -yy878: - YYDEBUG(878, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= '5') goto yy55; -yy879: - YYDEBUG(879, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != ':') goto yy55; - YYDEBUG(880, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= '6') goto yy55; - YYDEBUG(881, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= ':') goto yy55; - YYDEBUG(882, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != ':') goto yy55; - YYDEBUG(883, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy884; - if (yych <= '6') goto yy885; - goto yy55; -yy884: - YYDEBUG(884, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy886; - goto yy55; -yy885: - YYDEBUG(885, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '0') goto yy55; -yy886: - YYDEBUG(886, *YYCURSOR); - ++YYCURSOR; -yy887: - YYDEBUG(887, *YYCURSOR); -#line 1630 "ext/date/lib/parse_date.re" - { - int tz_not_found; - DEBUG_OUTPUT("xmlrpc | xmlrpcnocolon | soap | wddx | exif"); - TIMELIB_INIT; - TIMELIB_HAVE_TIME(); - TIMELIB_HAVE_DATE(); - s->time->y = timelib_get_nr(&ptr, 4); - s->time->m = timelib_get_nr(&ptr, 2); - s->time->d = timelib_get_nr(&ptr, 2); - s->time->h = timelib_get_nr(&ptr, 2); - s->time->i = timelib_get_nr(&ptr, 2); - s->time->s = timelib_get_nr(&ptr, 2); - if (*ptr == '.') { - s->time->us = timelib_get_frac_nr(&ptr); - if (*ptr) { /* timezone is optional */ - s->time->z = timelib_parse_zone(&ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper); - if (tz_not_found) { - add_error(s, TIMELIB_ERR_TZID_NOT_FOUND, "The timezone could not be found in the database"); - } - } +yy528: + YYDEBUG(528, *YYCURSOR); + yyaccept = 14; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= ',') { + if (yych == ')') goto yy115; + goto yy526; + } else { + if (yych == '.') goto yy526; + goto yy297; } - TIMELIB_DEINIT; - return TIMELIB_XMLRPC_SOAP; - } -#line 13746 "" -yy888: - YYDEBUG(888, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '2') { - if (yych <= '/') goto yy59; - if (yych >= '1') goto yy890; } else { - if (yych <= '3') goto yy891; - if (yych <= '9') goto yy865; - goto yy59; + if (yych <= '^') { + if (yych <= '@') goto yy526; + if (yych <= 'Z') goto yy658; + goto yy526; + } else { + if (yych <= '_') goto yy297; + if (yych <= '`') goto yy526; + if (yych <= 'z') goto yy663; + goto yy526; + } } -yy889: - YYDEBUG(889, *YYCURSOR); - yyaccept = 18; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'W') { - if (yych <= 'E') { - if (yych <= ' ') { - if (yych == '\t') goto yy59; - if (yych <= 0x1F) goto yy866; - goto yy59; - } else { - if (yych <= '9') { - if (yych <= '/') goto yy866; - goto yy892; - } else { - if (yych == 'D') goto yy59; - goto yy866; - } - } +yy529: + YYDEBUG(529, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'B') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= 'L') { - if (yych == 'G') goto yy866; - if (yych <= 'H') goto yy59; - goto yy866; - } else { - if (yych <= 'R') { - if (yych <= 'M') goto yy59; - goto yy866; - } else { - if (yych == 'V') goto yy866; - goto yy59; - } - } + if (yych <= '@') goto yy20; + if (yych <= 'A') goto yy658; + goto yy708; } } else { - if (yych <= 'l') { - if (yych <= 'd') { - if (yych == 'Y') goto yy59; - if (yych <= 'c') goto yy866; - goto yy59; - } else { - if (yych <= 'f') { - if (yych <= 'e') goto yy866; - goto yy59; - } else { - if (yych == 'h') goto yy59; - goto yy866; - } - } - } else { - if (yych <= 'w') { - if (yych <= 'r') { - if (yych <= 'm') goto yy59; - goto yy866; - } else { - if (yych == 'v') goto yy866; - goto yy59; - } - } else { - if (yych <= 'y') { - if (yych <= 'x') goto yy866; - goto yy59; - } else { - if (yych == 0xC2) goto yy59; - goto yy866; - } - } + if (yych <= 'a') { + if (yych <= 'Z') goto yy658; + if (yych <= '`') goto yy20; + goto yy658; + } else { + if (yych <= 'b') goto yy708; + if (yych <= 'z') goto yy658; + goto yy20; } } -yy890: - YYDEBUG(890, *YYCURSOR); - yyaccept = 18; +yy530: + YYDEBUG(530, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'W') { - if (yych <= 'E') { - if (yych <= ' ') { - if (yych == '\t') goto yy59; - if (yych <= 0x1F) goto yy866; - goto yy59; - } else { - if (yych <= '9') { - if (yych <= '/') goto yy866; - goto yy892; - } else { - if (yych == 'D') goto yy59; - goto yy866; - } - } + if (yych <= 'A') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= 'L') { - if (yych == 'G') goto yy866; - if (yych <= 'H') goto yy59; - goto yy866; - } else { - if (yych <= 'R') { - if (yych <= 'M') goto yy59; - goto yy866; - } else { - if (yych == 'V') goto yy866; - goto yy59; - } - } + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy658; } } else { - if (yych <= 'l') { - if (yych <= 'd') { - if (yych == 'Y') goto yy59; - if (yych <= 'c') goto yy866; - goto yy59; - } else { - if (yych <= 'f') { - if (yych <= 'e') goto yy866; - goto yy59; - } else { - if (yych == 'h') goto yy59; - goto yy866; - } - } + if (yych <= '_') { + if (yych <= 'B') goto yy708; + if (yych <= 'Z') goto yy658; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 'w') { - if (yych <= 'r') { - if (yych <= 'm') goto yy59; - goto yy866; - } else { - if (yych == 'v') goto yy866; - goto yy59; - } + if (yych <= 'a') { + if (yych <= '`') goto yy20; + goto yy663; } else { - if (yych <= 'y') { - if (yych <= 'x') goto yy866; - goto yy59; - } else { - if (yych == 0xC2) goto yy59; - goto yy866; - } + if (yych <= 'b') goto yy709; + if (yych <= 'z') goto yy663; + goto yy20; } } } -yy891: - YYDEBUG(891, *YYCURSOR); - yyaccept = 18; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'W') { - if (yych <= 'D') { - if (yych <= ' ') { - if (yych == '\t') goto yy59; - if (yych <= 0x1F) goto yy866; - goto yy59; - } else { - if (yych <= '1') { - if (yych <= '/') goto yy866; - } else { - if (yych <= '9') goto yy76; - if (yych <= 'C') goto yy866; - goto yy59; - } - } +yy531: + YYDEBUG(531, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'I') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= 'L') { - if (yych <= 'F') { - if (yych <= 'E') goto yy866; - goto yy59; - } else { - if (yych == 'H') goto yy59; - goto yy866; - } - } else { - if (yych <= 'R') { - if (yych <= 'M') goto yy59; - goto yy866; - } else { - if (yych == 'V') goto yy866; - goto yy59; - } - } + if (yych <= '@') goto yy20; + if (yych <= 'H') goto yy658; + goto yy710; } } else { - if (yych <= 'l') { - if (yych <= 'd') { - if (yych == 'Y') goto yy59; - if (yych <= 'c') goto yy866; - goto yy59; - } else { - if (yych <= 'f') { - if (yych <= 'e') goto yy866; - goto yy59; - } else { - if (yych == 'h') goto yy59; - goto yy866; - } - } + if (yych <= 'h') { + if (yych <= 'Z') goto yy658; + if (yych <= '`') goto yy20; + goto yy658; } else { - if (yych <= 'w') { - if (yych <= 'r') { - if (yych <= 'm') goto yy59; - goto yy866; - } else { - if (yych == 'v') goto yy866; - goto yy59; - } - } else { - if (yych <= 'y') { - if (yych <= 'x') goto yy866; - goto yy59; - } else { - if (yych == 0xC2) goto yy59; - goto yy866; - } - } + if (yych <= 'i') goto yy710; + if (yych <= 'z') goto yy658; + goto yy20; } } -yy892: - YYDEBUG(892, *YYCURSOR); - yyaccept = 19; +yy532: + YYDEBUG(532, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'W') { - if (yych <= 'F') { - if (yych <= '/') { - if (yych <= '\t') { - if (yych >= '\t') goto yy58; - } else { - if (yych == ' ') goto yy58; - } - } else { - if (yych <= 'C') { - if (yych <= '9') goto yy77; - } else { - if (yych <= 'D') goto yy65; - if (yych >= 'F') goto yy66; - } - } + if (yych <= 'H') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= 'R') { - if (yych <= 'H') { - if (yych >= 'H') goto yy64; - } else { - if (yych == 'M') goto yy60; - } - } else { - if (yych <= 'T') { - if (yych <= 'S') goto yy63; - goto yy894; - } else { - if (yych <= 'U') goto yy62; - if (yych >= 'W') goto yy68; - } - } + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy658; } } else { - if (yych <= 'm') { - if (yych <= 'e') { - if (yych <= 'Y') { - if (yych >= 'Y') goto yy67; - } else { - if (yych == 'd') goto yy65; - } - } else { - if (yych <= 'g') { - if (yych <= 'f') goto yy66; - } else { - if (yych <= 'h') goto yy64; - if (yych >= 'm') goto yy60; - } - } + if (yych <= '_') { + if (yych <= 'I') goto yy710; + if (yych <= 'Z') goto yy658; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 'v') { - if (yych <= 's') { - if (yych >= 's') goto yy63; - } else { - if (yych <= 't') goto yy895; - if (yych <= 'u') goto yy62; - } + if (yych <= 'h') { + if (yych <= '`') goto yy20; + goto yy663; } else { - if (yych <= 'y') { - if (yych <= 'w') goto yy68; - if (yych >= 'y') goto yy67; - } else { - if (yych == 0xC2) goto yy61; - } + if (yych <= 'i') goto yy711; + if (yych <= 'z') goto yy663; + goto yy20; } } } -yy893: - YYDEBUG(893, *YYCURSOR); -#line 1618 "ext/date/lib/parse_date.re" - { - DEBUG_OUTPUT("datenocolon"); - TIMELIB_INIT; - TIMELIB_HAVE_DATE(); - s->time->y = timelib_get_nr(&ptr, 4); - s->time->m = timelib_get_nr(&ptr, 2); - s->time->d = timelib_get_nr(&ptr, 2); - TIMELIB_DEINIT; - return TIMELIB_DATE_NOCOLON; - } -#line 14053 "" -yy894: - YYDEBUG(894, *YYCURSOR); +yy533: + YYDEBUG(533, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'H') { - if (yych <= '2') { - if (yych <= '/') goto yy55; - if (yych <= '1') goto yy909; - goto yy910; + if (yych <= 'R') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= '9') goto yy911; - if (yych <= 'G') goto yy55; - goto yy81; + if (yych <= '@') goto yy20; + if (yych <= 'Q') goto yy658; + goto yy712; } } else { - if (yych <= 'g') { - if (yych == 'U') goto yy82; - goto yy55; - } else { - if (yych <= 'h') goto yy81; - if (yych == 'u') goto yy82; - goto yy55; + if (yych <= 'q') { + if (yych <= 'Z') goto yy658; + if (yych <= '`') goto yy20; + goto yy658; + } else { + if (yych <= 'r') goto yy712; + if (yych <= 'z') goto yy658; + goto yy20; } } -yy895: - YYDEBUG(895, *YYCURSOR); +yy534: + YYDEBUG(534, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'H') { - if (yych <= '2') { - if (yych <= '/') goto yy55; - if (yych >= '2') goto yy897; + if (yych <= 'N') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= '9') goto yy898; - if (yych <= 'G') goto yy55; - goto yy81; + if (yych <= '@') goto yy20; + if (yych <= 'M') goto yy658; + goto yy713; } } else { - if (yych <= 'g') { - if (yych == 'U') goto yy82; - goto yy55; + if (yych <= 'm') { + if (yych <= 'Z') goto yy658; + if (yych <= '`') goto yy20; + goto yy658; } else { - if (yych <= 'h') goto yy81; - if (yych == 'u') goto yy82; - goto yy55; + if (yych <= 'n') goto yy713; + if (yych <= 'z') goto yy658; + goto yy20; } } - YYDEBUG(896, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy903; - if (yych <= '9') goto yy898; - goto yy55; -yy897: - YYDEBUG(897, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '4') goto yy903; - if (yych <= '5') goto yy899; - goto yy55; -yy898: - YYDEBUG(898, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= '6') goto yy55; -yy899: - YYDEBUG(899, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= ':') goto yy55; -yy900: - YYDEBUG(900, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy901; - if (yych <= '6') goto yy902; - goto yy55; -yy901: - YYDEBUG(901, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy886; - goto yy55; -yy902: - YYDEBUG(902, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '0') goto yy886; - goto yy55; -yy903: - YYDEBUG(903, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy904; - if (yych <= '9') goto yy900; - goto yy55; -yy904: - YYDEBUG(904, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy905; - if (yych <= '6') goto yy906; - if (yych <= '9') goto yy900; - goto yy55; -yy905: - YYDEBUG(905, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy907; - if (yych <= '6') goto yy908; - if (yych <= '9') goto yy886; - goto yy55; -yy906: - YYDEBUG(906, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '0') goto yy907; - if (yych <= '5') goto yy901; - if (yych <= '6') goto yy902; - goto yy55; -yy907: - YYDEBUG(907, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy887; - if (yych <= '9') goto yy886; - goto yy887; -yy908: - YYDEBUG(908, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '0') goto yy886; - goto yy887; -yy909: - YYDEBUG(909, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy918; - if (yych <= '9') goto yy911; - if (yych <= ':') goto yy912; - goto yy55; -yy910: - YYDEBUG(910, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '5') { - if (yych <= '/') goto yy55; - if (yych <= '4') goto yy918; - goto yy899; - } else { - if (yych == ':') goto yy912; - goto yy55; - } -yy911: - YYDEBUG(911, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy899; - if (yych != ':') goto yy55; -yy912: - YYDEBUG(912, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= '6') goto yy55; - YYDEBUG(913, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= ':') goto yy55; - YYDEBUG(914, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != ':') goto yy55; - YYDEBUG(915, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy916; - if (yych <= '6') goto yy917; - goto yy55; -yy916: - YYDEBUG(916, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy886; - goto yy55; -yy917: - YYDEBUG(917, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '0') goto yy886; - goto yy55; -yy918: - YYDEBUG(918, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy904; - if (yych <= '9') goto yy900; - if (yych <= ':') goto yy912; - goto yy55; -yy919: - YYDEBUG(919, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '2') { - if (yych <= '/') goto yy59; - if (yych <= '0') goto yy921; - goto yy890; - } else { - if (yych <= '3') goto yy891; - if (yych <= '9') goto yy865; - goto yy59; - } -yy920: - YYDEBUG(920, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '2') { - if (yych <= '/') goto yy59; - if (yych <= '0') goto yy889; - goto yy890; - } else { - if (yych <= '3') goto yy891; - if (yych <= '9') goto yy865; - goto yy59; - } -yy921: - YYDEBUG(921, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy59; - if (yych <= '9') goto yy892; - goto yy59; -yy922: - YYDEBUG(922, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy923; - if (yych != 'c') goto yy55; -yy923: - YYDEBUG(923, *YYCURSOR); - yyaccept = 20; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'E') goto yy924; - if (yych != 'e') goto yy838; -yy924: - YYDEBUG(924, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'M') goto yy925; - if (yych != 'm') goto yy55; -yy925: - YYDEBUG(925, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy926; - if (yych != 'b') goto yy55; -yy926: - YYDEBUG(926, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy927; - if (yych != 'e') goto yy55; -yy927: - YYDEBUG(927, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy928; - if (yych != 'r') goto yy55; -yy928: - YYDEBUG(928, *YYCURSOR); - yych = *++YYCURSOR; - goto yy838; -yy929: - YYDEBUG(929, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'V') goto yy930; - if (yych != 'v') goto yy55; -yy930: - YYDEBUG(930, *YYCURSOR); - yyaccept = 20; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'E') goto yy931; - if (yych != 'e') goto yy838; -yy931: - YYDEBUG(931, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'M') goto yy932; - if (yych != 'm') goto yy55; -yy932: - YYDEBUG(932, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy933; - if (yych != 'b') goto yy55; -yy933: - YYDEBUG(933, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy934; - if (yych != 'e') goto yy55; -yy934: - YYDEBUG(934, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy928; - if (yych == 'r') goto yy928; - goto yy55; -yy935: - YYDEBUG(935, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy936; - if (yych != 't') goto yy55; -yy936: - YYDEBUG(936, *YYCURSOR); - yyaccept = 20; +yy535: + YYDEBUG(535, *YYCURSOR); + yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'O') goto yy937; - if (yych != 'o') goto yy838; -yy937: - YYDEBUG(937, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy938; - if (yych != 'b') goto yy55; -yy938: - YYDEBUG(938, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy939; - if (yych != 'e') goto yy55; -yy939: - YYDEBUG(939, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy928; - if (yych == 'r') goto yy928; - goto yy55; -yy940: - YYDEBUG(940, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'P') { - if (yych == 'C') goto yy135; - if (yych <= 'O') goto yy55; - } else { - if (yych <= 'c') { - if (yych <= 'b') goto yy55; - goto yy135; + if (yych <= '/') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy295; + goto yy142; + } else { + if (yych == ' ') goto yy142; + goto yy295; + } } else { - if (yych != 'p') goto yy55; + if (yych <= ',') { + if (yych <= ')') goto yy115; + goto yy295; + } else { + if (yych <= '-') goto yy473; + if (yych <= '.') goto yy142; + goto yy295; + } } - } -yy941: - YYDEBUG(941, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy942; - if (yych != 't') goto yy838; -yy942: - YYDEBUG(942, *YYCURSOR); - yyaccept = 20; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'E') goto yy943; - if (yych != 'e') goto yy838; -yy943: - YYDEBUG(943, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'M') goto yy944; - if (yych != 'm') goto yy55; -yy944: - YYDEBUG(944, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy945; - if (yych != 'b') goto yy55; -yy945: - YYDEBUG(945, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy946; - if (yych != 'e') goto yy55; -yy946: - YYDEBUG(946, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy928; - if (yych == 'r') goto yy928; - goto yy55; -yy947: - YYDEBUG(947, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'G') goto yy951; - if (yych == 'g') goto yy951; - goto yy55; -yy948: - YYDEBUG(948, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy949; - if (yych != 'r') goto yy55; -yy949: - YYDEBUG(949, *YYCURSOR); - yyaccept = 20; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'I') goto yy950; - if (yych != 'i') goto yy838; -yy950: - YYDEBUG(950, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy928; - if (yych == 'l') goto yy928; - goto yy55; -yy951: - YYDEBUG(951, *YYCURSOR); - yyaccept = 20; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'U') goto yy952; - if (yych != 'u') goto yy838; -yy952: - YYDEBUG(952, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy953; - if (yych != 's') goto yy55; -yy953: - YYDEBUG(953, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy928; - if (yych == 't') goto yy928; - goto yy55; -yy954: - YYDEBUG(954, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'Y') { - if (yych == 'R') goto yy955; - if (yych <= 'X') goto yy55; - goto yy928; } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy55; + if (yych <= 'Z') { + if (yych <= '@') { + if (yych <= '9') goto yy142; + goto yy295; + } else { + if (yych == 'E') goto yy714; + goto yy658; + } } else { - if (yych == 'y') goto yy928; - goto yy55; + if (yych <= 'd') { + if (yych <= '`') goto yy295; + goto yy658; + } else { + if (yych <= 'e') goto yy714; + if (yych <= 'z') goto yy658; + goto yy295; + } } } -yy955: - YYDEBUG(955, *YYCURSOR); - yyaccept = 20; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'C') goto yy956; - if (yych != 'c') goto yy838; -yy956: - YYDEBUG(956, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy928; - if (yych == 'h') goto yy928; - goto yy55; -yy957: - YYDEBUG(957, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy958; - if (yych != 'b') goto yy55; -yy958: - YYDEBUG(958, *YYCURSOR); - yyaccept = 20; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'R') goto yy959; - if (yych != 'r') goto yy838; -yy959: - YYDEBUG(959, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'U') goto yy960; - if (yych != 'u') goto yy55; -yy960: - YYDEBUG(960, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy961; - if (yych != 'a') goto yy55; -yy961: - YYDEBUG(961, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy962; - if (yych != 'r') goto yy55; -yy962: - YYDEBUG(962, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy928; - if (yych == 'y') goto yy928; - goto yy55; -yy963: - YYDEBUG(963, *YYCURSOR); +yy536: + YYDEBUG(536, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'N') { - if (yych == 'L') goto yy970; - if (yych <= 'M') goto yy55; - goto yy969; - } else { - if (yych <= 'l') { - if (yych <= 'k') goto yy55; - goto yy970; + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych == 'n') goto yy969; - goto yy55; + if (yych <= '@') goto yy20; + if (yych <= 'M') goto yy658; + goto yy715; } - } -yy964: - YYDEBUG(964, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy965; - if (yych != 'n') goto yy55; -yy965: - YYDEBUG(965, *YYCURSOR); - yyaccept = 20; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'U') goto yy966; - if (yych != 'u') goto yy838; -yy966: - YYDEBUG(966, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy967; - if (yych != 'a') goto yy55; -yy967: - YYDEBUG(967, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy968; - if (yych != 'r') goto yy55; -yy968: - YYDEBUG(968, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy928; - if (yych == 'y') goto yy928; - goto yy55; -yy969: - YYDEBUG(969, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy928; - if (yych == 'e') goto yy928; - goto yy838; -yy970: - YYDEBUG(970, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy928; - if (yych == 'y') goto yy928; - goto yy838; -yy971: - YYDEBUG(971, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy928; - goto yy838; -yy972: - YYDEBUG(972, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != 'I') goto yy838; - YYDEBUG(973, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy928; - goto yy838; -yy974: - YYDEBUG(974, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy928; - goto yy838; -yy975: - YYDEBUG(975, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '0') goto yy990; - if (yych <= '9') goto yy989; - goto yy55; -yy976: - YYDEBUG(976, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy988; - goto yy55; -yy977: - YYDEBUG(977, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy986; - if (yych <= '6') goto yy985; - goto yy55; -yy978: - YYDEBUG(978, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy957; - if (yych == 'e') goto yy957; - goto yy55; -yy979: - YYDEBUG(979, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy954; - if (yych == 'a') goto yy954; - goto yy55; -yy980: - YYDEBUG(980, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy984; - if (yych == 'e') goto yy984; - goto yy55; -yy981: - YYDEBUG(981, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy922; - if (yych == 'e') goto yy922; - goto yy55; -yy982: - YYDEBUG(982, *YYCURSOR); - ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 9) YYFILL(9); - yych = *YYCURSOR; -yy983: - YYDEBUG(983, *YYCURSOR); - switch (yych) { - case '\t': - case ' ': - case '-': - case '.': goto yy982; - case 'A': - case 'a': goto yy844; - case 'D': - case 'd': goto yy981; - case 'F': - case 'f': goto yy978; - case 'I': goto yy837; - case 'J': - case 'j': goto yy841; - case 'M': - case 'm': goto yy979; - case 'N': - case 'n': goto yy847; - case 'O': - case 'o': goto yy846; - case 'S': - case 's': goto yy980; - case 'V': goto yy839; - case 'X': goto yy840; - default: goto yy55; - } -yy984: - YYDEBUG(984, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'P') goto yy941; - if (yych == 'p') goto yy941; - goto yy55; -yy985: - YYDEBUG(985, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '6') goto yy987; - goto yy55; -yy986: - YYDEBUG(986, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= ':') goto yy55; -yy987: - YYDEBUG(987, *YYCURSOR); - yych = *++YYCURSOR; - goto yy866; -yy988: - YYDEBUG(988, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy987; - goto yy55; -yy989: - YYDEBUG(989, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy987; - goto yy55; -yy990: - YYDEBUG(990, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '0') goto yy55; - if (yych <= '9') goto yy987; - goto yy55; -yy991: - YYDEBUG(991, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '.') goto yy55; - if (yych <= '/') goto yy994; - if (yych <= '9') goto yy1002; - goto yy55; -yy992: - YYDEBUG(992, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '.') goto yy55; - if (yych <= '/') goto yy994; - if (yych <= '2') goto yy1002; - goto yy55; -yy993: - YYDEBUG(993, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '/') goto yy55; -yy994: - YYDEBUG(994, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '2') goto yy995; - if (yych <= '3') goto yy996; - if (yych <= '9') goto yy997; - goto yy55; -yy995: - YYDEBUG(995, *YYCURSOR); - yyaccept = 21; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'n') { - if (yych <= '/') goto yy461; - if (yych <= '9') goto yy997; - if (yych <= 'm') goto yy461; - goto yy999; } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy461; - goto yy1000; + if (yych <= 'm') { + if (yych <= 'Z') goto yy658; + if (yych <= '`') goto yy20; + goto yy658; } else { - if (yych <= 's') goto yy998; - if (yych <= 't') goto yy1001; - goto yy461; + if (yych <= 'n') goto yy715; + if (yych <= 'z') goto yy658; + goto yy20; } } -yy996: - YYDEBUG(996, *YYCURSOR); - yyaccept = 21; +yy537: + YYDEBUG(537, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'n') { - if (yych <= '/') goto yy461; - if (yych <= '1') goto yy997; - if (yych <= 'm') goto yy461; - goto yy999; - } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy461; - goto yy1000; + if (yych <= 'Q') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= 's') goto yy998; - if (yych <= 't') goto yy1001; - goto yy461; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy658; } - } -yy997: - YYDEBUG(997, *YYCURSOR); - yyaccept = 21; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'q') { - if (yych == 'n') goto yy999; - goto yy461; - } else { - if (yych <= 'r') goto yy1000; - if (yych <= 's') goto yy998; - if (yych <= 't') goto yy1001; - goto yy461; - } -yy998: - YYDEBUG(998, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 't') goto yy460; - goto yy55; -yy999: - YYDEBUG(999, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'd') goto yy460; - goto yy55; -yy1000: - YYDEBUG(1000, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'd') goto yy460; - goto yy55; -yy1001: - YYDEBUG(1001, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'h') goto yy460; - goto yy55; -yy1002: - YYDEBUG(1002, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '/') goto yy55; - YYDEBUG(1003, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '2') { - if (yych <= '/') goto yy55; - if (yych >= '1') goto yy1005; } else { - if (yych <= '3') goto yy1006; - if (yych <= '9') goto yy997; - goto yy55; - } - YYDEBUG(1004, *YYCURSOR); - yyaccept = 21; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'n') { - if (yych <= '/') goto yy461; - if (yych <= '9') goto yy1007; - if (yych <= 'm') goto yy461; - goto yy999; - } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy461; - goto yy1000; + if (yych <= '_') { + if (yych <= 'R') goto yy712; + if (yych <= 'Z') goto yy658; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 's') goto yy998; - if (yych <= 't') goto yy1001; - goto yy461; + if (yych <= 'q') { + if (yych <= '`') goto yy20; + goto yy663; + } else { + if (yych <= 'r') goto yy716; + if (yych <= 'z') goto yy663; + goto yy20; + } } } -yy1005: - YYDEBUG(1005, *YYCURSOR); - yyaccept = 21; +yy538: + YYDEBUG(538, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'n') { - if (yych <= '/') goto yy461; - if (yych <= '9') goto yy1007; - if (yych <= 'm') goto yy461; - goto yy999; + if (yych <= 'M') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; + } else { + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy658; + } } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy461; - goto yy1000; + if (yych <= '_') { + if (yych <= 'N') goto yy713; + if (yych <= 'Z') goto yy658; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 's') goto yy998; - if (yych <= 't') goto yy1001; - goto yy461; + if (yych <= 'm') { + if (yych <= '`') goto yy20; + goto yy663; + } else { + if (yych <= 'n') goto yy717; + if (yych <= 'z') goto yy663; + goto yy20; + } } } -yy1006: - YYDEBUG(1006, *YYCURSOR); - yyaccept = 21; +yy539: + YYDEBUG(539, *YYCURSOR); + yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'n') { - if (yych <= '/') goto yy461; - if (yych <= '1') goto yy1007; - if (yych <= 'm') goto yy461; - goto yy999; + if (yych <= '9') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy295; + goto yy142; + } else { + if (yych == ' ') goto yy142; + goto yy295; + } + } else { + if (yych <= '-') { + if (yych <= ')') goto yy115; + if (yych <= ',') goto yy295; + goto yy479; + } else { + if (yych == '/') goto yy297; + goto yy142; + } + } } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy461; - goto yy1000; + if (yych <= '^') { + if (yych <= 'D') { + if (yych <= '@') goto yy295; + goto yy658; + } else { + if (yych <= 'E') goto yy714; + if (yych <= 'Z') goto yy658; + goto yy295; + } } else { - if (yych <= 's') goto yy998; - if (yych <= 't') goto yy1001; - goto yy461; + if (yych <= 'd') { + if (yych <= '_') goto yy297; + if (yych <= '`') goto yy295; + goto yy663; + } else { + if (yych <= 'e') goto yy718; + if (yych <= 'z') goto yy663; + goto yy295; + } } } -yy1007: - YYDEBUG(1007, *YYCURSOR); - yyaccept = 21; +yy540: + YYDEBUG(540, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'n') { - if (yych == '/') goto yy460; - if (yych <= 'm') goto yy461; - goto yy999; - } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy461; - goto yy1000; + if (yych <= 'M') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= 's') goto yy998; - if (yych <= 't') goto yy1001; - goto yy461; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy658; } - } -yy1008: - YYDEBUG(1008, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych == 'A') goto yy1103; - if (yych <= 'T') goto yy55; - goto yy1102; } else { - if (yych <= 'a') { - if (yych <= '`') goto yy55; - goto yy1103; + if (yych <= '_') { + if (yych <= 'N') goto yy715; + if (yych <= 'Z') goto yy658; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych == 'u') goto yy1102; - goto yy55; + if (yych <= 'm') { + if (yych <= '`') goto yy20; + goto yy663; + } else { + if (yych <= 'n') goto yy719; + if (yych <= 'z') goto yy663; + goto yy20; + } } } -yy1009: - YYDEBUG(1009, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy1100; - if (yych == 'e') goto yy1100; - goto yy55; -yy1010: - YYDEBUG(1010, *YYCURSOR); +yy541: + YYDEBUG(541, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy1097; - if (yych == 'a') goto yy1097; - goto yy55; -yy1011: - YYDEBUG(1011, *YYCURSOR); + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy720; + goto yy59; +yy542: + YYDEBUG(542, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych == 'P') goto yy1094; - if (yych <= 'T') goto yy55; - goto yy1093; - } else { - if (yych <= 'p') { - if (yych <= 'o') goto yy55; - goto yy1094; + if (yych <= 'D') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych == 'u') goto yy1093; - goto yy55; + if (yych <= '@') goto yy20; + if (yych <= 'C') goto yy658; + goto yy674; } - } -yy1012: - YYDEBUG(1012, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy1090; - if (yych == 'e') goto yy1090; - goto yy55; -yy1013: - YYDEBUG(1013, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy1088; - if (yych == 'c') goto yy1088; - goto yy55; -yy1014: - YYDEBUG(1014, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy1086; - if (yych == 'o') goto yy1086; - goto yy55; -yy1015: - YYDEBUG(1015, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy1084; - if (yych == 'e') goto yy1084; - goto yy55; -yy1016: - YYDEBUG(1016, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '0') goto yy855; - if (yych <= '4') goto yy856; - if (yych <= '5') goto yy857; - goto yy55; -yy1017: - YYDEBUG(1017, *YYCURSOR); - yyaccept = 22; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych == '-') goto yy1023; - } else { - if (yych <= '0') goto yy1082; - if (yych <= '9') goto yy1083; - } -yy1018: - YYDEBUG(1018, *YYCURSOR); -#line 1495 "ext/date/lib/parse_date.re" - { - int length = 0; - DEBUG_OUTPUT("gnudateshorter"); - TIMELIB_INIT; - TIMELIB_HAVE_DATE(); - s->time->y = timelib_get_nr_ex(&ptr, 4, &length); - s->time->m = timelib_get_nr(&ptr, 2); - s->time->d = 1; - TIMELIB_PROCESS_YEAR(s->time->y, length); - TIMELIB_DEINIT; - return TIMELIB_ISO_DATE; - } -#line 14988 "" -yy1019: - YYDEBUG(1019, *YYCURSOR); - yyaccept = 22; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych == '-') goto yy1023; - goto yy1018; } else { - if (yych <= '2') goto yy1042; - if (yych <= '9') goto yy988; - goto yy1018; - } -yy1020: - YYDEBUG(1020, *YYCURSOR); - yyaccept = 22; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '-') goto yy1023; - if (yych <= '/') goto yy1018; - if (yych <= '9') goto yy988; - goto yy1018; -yy1021: - YYDEBUG(1021, *YYCURSOR); - yyaccept = 22; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych == '-') goto yy1023; - goto yy1018; - } else { - if (yych <= '5') goto yy986; - if (yych <= '6') goto yy985; - goto yy1018; + if (yych <= 'c') { + if (yych <= 'Z') goto yy658; + if (yych <= '`') goto yy20; + goto yy658; + } else { + if (yych <= 'd') goto yy674; + if (yych <= 'z') goto yy658; + goto yy20; + } } -yy1022: - YYDEBUG(1022, *YYCURSOR); - yyaccept = 22; - yych = *(YYMARKER = ++YYCURSOR); - if (yych != '-') goto yy1018; -yy1023: - YYDEBUG(1023, *YYCURSOR); +yy543: + YYDEBUG(543, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '2') goto yy1024; - if (yych <= '3') goto yy1025; - if (yych <= '9') goto yy1026; - goto yy55; -yy1024: - YYDEBUG(1024, *YYCURSOR); - yyaccept = 12; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'm') { - if (yych <= '9') { - if (yych <= '/') goto yy690; - goto yy1026; + if (yych <= 'S') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych == 'T') goto yy1031; - goto yy690; + if (yych <= '@') goto yy20; + if (yych <= 'R') goto yy658; + goto yy712; } } else { if (yych <= 'r') { - if (yych <= 'n') goto yy1028; - if (yych <= 'q') goto yy690; - goto yy1029; - } else { - if (yych <= 's') goto yy1027; - if (yych <= 't') goto yy1030; - goto yy690; + if (yych <= 'Z') goto yy658; + if (yych <= '`') goto yy20; + goto yy658; + } else { + if (yych <= 's') goto yy712; + if (yych <= 'z') goto yy658; + goto yy20; } } -yy1025: - YYDEBUG(1025, *YYCURSOR); - yyaccept = 12; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'm') { - if (yych <= '1') { - if (yych <= '/') goto yy690; +yy544: + YYDEBUG(544, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'Y') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych == 'T') goto yy1031; - goto yy690; + if (yych <= '@') goto yy20; + if (yych <= 'X') goto yy658; + goto yy721; } } else { - if (yych <= 'r') { - if (yych <= 'n') goto yy1028; - if (yych <= 'q') goto yy690; - goto yy1029; - } else { - if (yych <= 's') goto yy1027; - if (yych <= 't') goto yy1030; - goto yy690; - } - } -yy1026: - YYDEBUG(1026, *YYCURSOR); - yyaccept = 12; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'n') { - if (yych == 'T') goto yy1031; - if (yych <= 'm') goto yy690; - goto yy1028; - } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy690; - goto yy1029; - } else { - if (yych <= 's') goto yy1027; - if (yych <= 't') goto yy1030; - goto yy690; + if (yych <= 'x') { + if (yych <= 'Z') goto yy658; + if (yych <= '`') goto yy20; + goto yy658; + } else { + if (yych <= 'y') goto yy721; + if (yych <= 'z') goto yy658; + goto yy20; } } -yy1027: - YYDEBUG(1027, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 't') goto yy1041; - goto yy55; -yy1028: - YYDEBUG(1028, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'd') goto yy1041; - goto yy55; -yy1029: - YYDEBUG(1029, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'd') goto yy1041; - goto yy55; -yy1030: - YYDEBUG(1030, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'h') goto yy1041; - goto yy55; -yy1031: - YYDEBUG(1031, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '1') goto yy1032; - if (yych <= '2') goto yy1033; - if (yych <= '9') goto yy1034; - goto yy55; -yy1032: - YYDEBUG(1032, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy1034; - if (yych <= ':') goto yy1035; - goto yy55; -yy1033: - YYDEBUG(1033, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '4') goto yy1034; - if (yych == ':') goto yy1035; - goto yy55; -yy1034: - YYDEBUG(1034, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != ':') goto yy55; -yy1035: - YYDEBUG(1035, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy1036; - if (yych <= '9') goto yy1037; - goto yy55; -yy1036: - YYDEBUG(1036, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy1037; - if (yych <= ':') goto yy1038; - goto yy55; -yy1037: - YYDEBUG(1037, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != ':') goto yy55; -yy1038: - YYDEBUG(1038, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy1039; - if (yych <= '6') goto yy1040; - if (yych <= '9') goto yy886; - goto yy55; -yy1039: - YYDEBUG(1039, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy887; - if (yych <= '9') goto yy886; - goto yy887; -yy1040: - YYDEBUG(1040, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '0') goto yy886; - goto yy887; -yy1041: - YYDEBUG(1041, *YYCURSOR); - yyaccept = 12; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'T') goto yy1031; - goto yy690; -yy1042: - YYDEBUG(1042, *YYCURSOR); - yyaccept = 22; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '-') goto yy1043; - if (yych <= '/') goto yy1018; - if (yych <= '9') goto yy987; - goto yy1018; -yy1043: - YYDEBUG(1043, *YYCURSOR); +yy545: + YYDEBUG(545, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '2') { - if (yych <= '/') goto yy55; - if (yych >= '1') goto yy1045; - } else { - if (yych <= '3') goto yy1046; - if (yych <= '9') goto yy1026; - goto yy55; - } - YYDEBUG(1044, *YYCURSOR); - yyaccept = 12; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'm') { - if (yych <= '9') { - if (yych <= '/') goto yy690; - goto yy1047; + if (yych <= 'R') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych == 'T') goto yy1031; - goto yy690; + if (yych <= '@') goto yy20; + if (yych <= 'Q') goto yy658; + goto yy723; } } else { - if (yych <= 'r') { - if (yych <= 'n') goto yy1028; - if (yych <= 'q') goto yy690; - goto yy1029; - } else { - if (yych <= 's') goto yy1027; - if (yych <= 't') goto yy1030; - goto yy690; + if (yych <= 'q') { + if (yych <= 'Z') goto yy658; + if (yych <= '`') goto yy20; + goto yy658; + } else { + if (yych <= 'r') goto yy723; + if (yych <= 'z') goto yy658; + goto yy20; } } -yy1045: - YYDEBUG(1045, *YYCURSOR); - yyaccept = 12; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'm') { - if (yych <= '9') { - if (yych <= '/') goto yy690; - goto yy1047; +yy546: + YYDEBUG(546, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'D') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych == 'T') goto yy1031; - goto yy690; + if (yych <= '@') goto yy20; + if (yych <= 'C') goto yy658; + goto yy724; } } else { - if (yych <= 'r') { - if (yych <= 'n') goto yy1028; - if (yych <= 'q') goto yy690; - goto yy1029; - } else { - if (yych <= 's') goto yy1027; - if (yych <= 't') goto yy1030; - goto yy690; + if (yych <= 'c') { + if (yych <= 'Z') goto yy658; + if (yych <= '`') goto yy20; + goto yy658; + } else { + if (yych <= 'd') goto yy724; + if (yych <= 'z') goto yy658; + goto yy20; } } -yy1046: - YYDEBUG(1046, *YYCURSOR); - yyaccept = 12; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'm') { - if (yych <= '1') { - if (yych <= '/') goto yy690; +yy547: + YYDEBUG(547, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'F') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych == 'T') goto yy1031; - goto yy690; + if (yych <= '@') goto yy20; + if (yych <= 'E') goto yy658; + goto yy715; } } else { - if (yych <= 'r') { - if (yych <= 'n') goto yy1028; - if (yych <= 'q') goto yy690; - goto yy1029; - } else { - if (yych <= 's') goto yy1027; - if (yych <= 't') goto yy1030; - goto yy690; + if (yych <= 'e') { + if (yych <= 'Z') goto yy658; + if (yych <= '`') goto yy20; + goto yy658; + } else { + if (yych <= 'f') goto yy715; + if (yych <= 'z') goto yy658; + goto yy20; } } -yy1047: - YYDEBUG(1047, *YYCURSOR); - yyaccept = 21; +yy548: + YYDEBUG(548, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'n') { - if (yych == 'T') goto yy1048; - if (yych <= 'm') goto yy461; - goto yy1028; - } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy461; - goto yy1029; + if (yych <= 'C') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= 's') goto yy1027; - if (yych <= 't') goto yy1030; - goto yy461; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy658; } - } -yy1048: - YYDEBUG(1048, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '1') goto yy1049; - if (yych <= '2') goto yy1050; - if (yych <= '9') goto yy1034; - goto yy55; -yy1049: - YYDEBUG(1049, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy1051; - if (yych <= ':') goto yy1035; - goto yy55; -yy1050: - YYDEBUG(1050, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '4') goto yy1051; - if (yych == ':') goto yy1035; - goto yy55; -yy1051: - YYDEBUG(1051, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != ':') goto yy55; - YYDEBUG(1052, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy1053; - if (yych <= '9') goto yy1037; - goto yy55; -yy1053: - YYDEBUG(1053, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy1054; - if (yych <= ':') goto yy1038; - goto yy55; -yy1054: - YYDEBUG(1054, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != ':') goto yy55; - YYDEBUG(1055, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy1056; - if (yych <= '6') goto yy1057; - if (yych <= '9') goto yy886; - goto yy55; -yy1056: - YYDEBUG(1056, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy887; - if (yych <= '9') goto yy1058; - goto yy887; -yy1057: - YYDEBUG(1057, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '0') goto yy887; -yy1058: - YYDEBUG(1058, *YYCURSOR); - yyaccept = 23; - yych = *(YYMARKER = ++YYCURSOR); - if (yych != '.') goto yy887; - YYDEBUG(1059, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= ':') goto yy55; -yy1060: - YYDEBUG(1060, *YYCURSOR); - yyaccept = 23; - YYMARKER = ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12); - yych = *YYCURSOR; - YYDEBUG(1061, *YYCURSOR); - if (yych <= '-') { - if (yych == '+') goto yy1063; - if (yych <= ',') goto yy887; - goto yy1063; } else { - if (yych <= '9') { - if (yych <= '/') goto yy887; - goto yy1060; + if (yych <= '_') { + if (yych <= 'D') goto yy674; + if (yych <= 'Z') goto yy658; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych != 'G') goto yy887; + if (yych <= 'c') { + if (yych <= '`') goto yy20; + goto yy663; + } else { + if (yych <= 'd') goto yy680; + if (yych <= 'z') goto yy663; + goto yy20; + } } } - YYDEBUG(1062, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'M') goto yy1080; - goto yy55; -yy1063: - YYDEBUG(1063, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '1') goto yy1064; - if (yych <= '2') goto yy1065; - if (yych <= '9') goto yy1066; - goto yy55; -yy1064: - YYDEBUG(1064, *YYCURSOR); - yyaccept = 23; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy887; - if (yych <= '9') goto yy1069; - if (yych <= ':') goto yy1067; - goto yy887; -yy1065: - YYDEBUG(1065, *YYCURSOR); - yyaccept = 23; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '5') { - if (yych <= '/') goto yy887; - if (yych <= '4') goto yy1069; - goto yy1068; - } else { - if (yych <= '9') goto yy886; - if (yych <= ':') goto yy1067; - goto yy887; - } -yy1066: - YYDEBUG(1066, *YYCURSOR); - yyaccept = 23; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy887; - if (yych <= '5') goto yy1068; - if (yych <= '9') goto yy886; - if (yych >= ';') goto yy887; -yy1067: - YYDEBUG(1067, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy1068; - if (yych <= '9') goto yy886; - goto yy55; -yy1068: - YYDEBUG(1068, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy887; - if (yych <= '9') goto yy886; - goto yy887; -yy1069: - YYDEBUG(1069, *YYCURSOR); - yyaccept = 23; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy887; - if (yych <= '5') goto yy1070; - if (yych <= '9') goto yy886; - if (yych <= ':') goto yy1071; - goto yy887; -yy1070: - YYDEBUG(1070, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy887; - if (yych <= '9') goto yy1077; - goto yy887; -yy1071: - YYDEBUG(1071, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy1072; - if (yych <= '9') goto yy886; - goto yy55; -yy1072: - YYDEBUG(1072, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy887; - if (yych >= ':') goto yy887; - YYDEBUG(1073, *YYCURSOR); - yyaccept = 23; - yych = *(YYMARKER = ++YYCURSOR); - if (yych != ':') goto yy887; - YYDEBUG(1074, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy1075; - if (yych <= '6') goto yy1076; - goto yy55; -yy1075: - YYDEBUG(1075, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy886; - goto yy55; -yy1076: - YYDEBUG(1076, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '0') goto yy886; - goto yy55; -yy1077: - YYDEBUG(1077, *YYCURSOR); - yyaccept = 23; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy887; - if (yych <= '5') goto yy1078; - if (yych <= '6') goto yy1079; - goto yy887; -yy1078: - YYDEBUG(1078, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy886; - goto yy55; -yy1079: - YYDEBUG(1079, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '0') goto yy886; - goto yy55; -yy1080: - YYDEBUG(1080, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != 'T') goto yy55; - YYDEBUG(1081, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '+') goto yy1063; - if (yych == '-') goto yy1063; - goto yy55; -yy1082: - YYDEBUG(1082, *YYCURSOR); - yyaccept = 22; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '-') goto yy1043; - if (yych <= '0') goto yy1018; - if (yych <= '9') goto yy987; - goto yy1018; -yy1083: - YYDEBUG(1083, *YYCURSOR); - yyaccept = 22; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '-') goto yy1043; - if (yych <= '/') goto yy1018; - if (yych <= '9') goto yy987; - goto yy1018; -yy1084: - YYDEBUG(1084, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy1085; - if (yych != 'c') goto yy55; -yy1085: - YYDEBUG(1085, *YYCURSOR); - yyaccept = 20; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'D') { - if (yych == '-') goto yy811; - goto yy838; - } else { - if (yych <= 'E') goto yy924; - if (yych == 'e') goto yy924; - goto yy838; - } -yy1086: - YYDEBUG(1086, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'V') goto yy1087; - if (yych != 'v') goto yy55; -yy1087: - YYDEBUG(1087, *YYCURSOR); - yyaccept = 20; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'D') { - if (yych == '-') goto yy811; - goto yy838; - } else { - if (yych <= 'E') goto yy931; - if (yych == 'e') goto yy931; - goto yy838; - } -yy1088: - YYDEBUG(1088, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy1089; - if (yych != 't') goto yy55; -yy1089: - YYDEBUG(1089, *YYCURSOR); - yyaccept = 20; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'N') { - if (yych == '-') goto yy811; - goto yy838; - } else { - if (yych <= 'O') goto yy937; - if (yych == 'o') goto yy937; - goto yy838; - } -yy1090: - YYDEBUG(1090, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'P') goto yy1091; - if (yych != 'p') goto yy55; -yy1091: - YYDEBUG(1091, *YYCURSOR); - yyaccept = 20; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'S') { - if (yych == '-') goto yy811; - goto yy838; - } else { - if (yych <= 'T') goto yy1092; - if (yych != 't') goto yy838; - } -yy1092: - YYDEBUG(1092, *YYCURSOR); - yyaccept = 20; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'D') { - if (yych == '-') goto yy811; - goto yy838; - } else { - if (yych <= 'E') goto yy943; - if (yych == 'e') goto yy943; - goto yy838; - } -yy1093: - YYDEBUG(1093, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'G') goto yy1096; - if (yych == 'g') goto yy1096; - goto yy55; -yy1094: - YYDEBUG(1094, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy1095; - if (yych != 'r') goto yy55; -yy1095: - YYDEBUG(1095, *YYCURSOR); - yyaccept = 20; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'H') { - if (yych == '-') goto yy811; - goto yy838; - } else { - if (yych <= 'I') goto yy950; - if (yych == 'i') goto yy950; - goto yy838; - } -yy1096: - YYDEBUG(1096, *YYCURSOR); - yyaccept = 20; +yy549: + YYDEBUG(549, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'T') { - if (yych == '-') goto yy811; - goto yy838; - } else { - if (yych <= 'U') goto yy952; - if (yych == 'u') goto yy952; - goto yy838; - } -yy1097: - YYDEBUG(1097, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'Y') { - if (yych == 'R') goto yy1098; - if (yych <= 'X') goto yy55; - goto yy1099; - } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy55; + if (yych <= 'R') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == 'y') goto yy1099; - goto yy55; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy658; } - } -yy1098: - YYDEBUG(1098, *YYCURSOR); - yyaccept = 20; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'B') { - if (yych == '-') goto yy811; - goto yy838; - } else { - if (yych <= 'C') goto yy956; - if (yych == 'c') goto yy956; - goto yy838; - } -yy1099: - YYDEBUG(1099, *YYCURSOR); - yyaccept = 20; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '-') goto yy811; - goto yy838; -yy1100: - YYDEBUG(1100, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy1101; - if (yych != 'b') goto yy55; -yy1101: - YYDEBUG(1101, *YYCURSOR); - yyaccept = 20; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'Q') { - if (yych == '-') goto yy811; - goto yy838; - } else { - if (yych <= 'R') goto yy959; - if (yych == 'r') goto yy959; - goto yy838; - } -yy1102: - YYDEBUG(1102, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'N') { - if (yych == 'L') goto yy1106; - if (yych <= 'M') goto yy55; - goto yy1105; } else { - if (yych <= 'l') { - if (yych <= 'k') goto yy55; - goto yy1106; + if (yych <= '_') { + if (yych <= 'S') goto yy712; + if (yych <= 'Z') goto yy658; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych == 'n') goto yy1105; - goto yy55; + if (yych <= 'r') { + if (yych <= '`') goto yy20; + goto yy663; + } else { + if (yych <= 's') goto yy716; + if (yych <= 'z') goto yy663; + goto yy20; + } } } -yy1103: - YYDEBUG(1103, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy1104; - if (yych != 'n') goto yy55; -yy1104: - YYDEBUG(1104, *YYCURSOR); - yyaccept = 20; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'T') { - if (yych == '-') goto yy811; - goto yy838; - } else { - if (yych <= 'U') goto yy966; - if (yych == 'u') goto yy966; - goto yy838; - } -yy1105: - YYDEBUG(1105, *YYCURSOR); - yyaccept = 20; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'D') { - if (yych == '-') goto yy811; - goto yy838; - } else { - if (yych <= 'E') goto yy928; - if (yych == 'e') goto yy928; - goto yy838; - } -yy1106: - YYDEBUG(1106, *YYCURSOR); - yyaccept = 20; +yy550: + YYDEBUG(550, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'X') { - if (yych == '-') goto yy811; - goto yy838; - } else { - if (yych <= 'Y') goto yy928; - if (yych == 'y') goto yy928; - goto yy838; - } -yy1107: - YYDEBUG(1107, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '.') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy611; - goto yy775; + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= ',') goto yy611; - if (yych <= '-') goto yy776; - goto yy775; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy658; } } else { - if (yych <= 'U') { - if (yych <= '/') goto yy774; - if (yych <= 'T') goto yy611; - goto yy90; + if (yych <= '_') { + if (yych <= 'Y') goto yy721; + if (yych <= 'Z') goto yy658; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych == 'u') goto yy90; - goto yy611; + if (yych <= 'x') { + if (yych <= '`') goto yy20; + goto yy663; + } else { + if (yych <= 'y') goto yy725; + if (yych <= 'z') goto yy663; + goto yy20; + } } } -yy1108: - YYDEBUG(1108, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'P') { - if (yych == 'C') goto yy135; - if (yych <= 'O') goto yy55; - goto yy619; +yy551: + YYDEBUG(551, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'Q') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; + } else { + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy658; + } } else { - if (yych <= 'c') { - if (yych <= 'b') goto yy55; - goto yy135; + if (yych <= '_') { + if (yych <= 'R') goto yy723; + if (yych <= 'Z') goto yy658; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych == 'p') goto yy619; - goto yy55; + if (yych <= 'q') { + if (yych <= '`') goto yy20; + goto yy663; + } else { + if (yych <= 'r') goto yy726; + if (yych <= 'z') goto yy663; + goto yy20; + } } } -yy1109: - YYDEBUG(1109, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '9') { - if (yych <= ',') { - if (yych == '\t') goto yy1111; - goto yy1113; +yy552: + YYDEBUG(552, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'C') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= '-') goto yy1110; - if (yych <= '.') goto yy775; - if (yych <= '/') goto yy774; - goto yy785; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy658; } } else { - if (yych <= 'q') { - if (yych == 'n') goto yy503; - goto yy1113; + if (yych <= '_') { + if (yych <= 'D') goto yy724; + if (yych <= 'Z') goto yy658; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 'r') goto yy504; - if (yych <= 's') goto yy498; - if (yych <= 't') goto yy501; - goto yy1113; - } - } -yy1110: - YYDEBUG(1110, *YYCURSOR); - yych = *++YYCURSOR; - switch (yych) { - case '0': goto yy1114; - case '1': goto yy1115; - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy651; - case 'A': - case 'a': goto yy655; - case 'D': - case 'd': goto yy659; - case 'F': - case 'f': goto yy653; - case 'J': - case 'j': goto yy652; - case 'M': - case 'm': goto yy654; - case 'N': - case 'n': goto yy658; - case 'O': - case 'o': goto yy657; - case 'S': - case 's': goto yy656; - default: goto yy611; - } -yy1111: - YYDEBUG(1111, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy1113; - if (yych <= '0') goto yy780; - if (yych <= '1') goto yy781; - if (yych <= '9') goto yy782; - goto yy1113; -yy1112: - YYDEBUG(1112, *YYCURSOR); - ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 13) YYFILL(13); - yych = *YYCURSOR; -yy1113: - YYDEBUG(1113, *YYCURSOR); - if (yych <= 'W') { - if (yych <= 'G') { - if (yych <= '.') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy1112; - goto yy55; - } else { - if (yych <= ' ') goto yy1112; - if (yych <= ',') goto yy55; - goto yy610; - } + if (yych <= 'c') { + if (yych <= '`') goto yy20; + goto yy663; } else { - if (yych <= 'C') { - if (yych == 'A') goto yy607; - goto yy55; - } else { - if (yych <= 'D') goto yy499; - if (yych == 'F') goto yy500; - goto yy55; - } + if (yych <= 'd') goto yy727; + if (yych <= 'z') goto yy663; + goto yy20; } + } + } +yy553: + YYDEBUG(553, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'E') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= 'N') { - if (yych <= 'J') { - if (yych <= 'H') goto yy64; - if (yych <= 'I') goto yy508; - goto yy512; - } else { - if (yych <= 'L') goto yy55; - if (yych <= 'M') goto yy496; - goto yy515; - } - } else { - if (yych <= 'S') { - if (yych <= 'O') goto yy514; - if (yych <= 'R') goto yy55; - goto yy497; - } else { - if (yych <= 'T') goto yy69; - if (yych <= 'U') goto yy62; - if (yych <= 'V') goto yy510; - goto yy68; - } - } + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy658; } } else { - if (yych <= 'l') { - if (yych <= 'd') { - if (yych <= '`') { - if (yych <= 'X') goto yy511; - if (yych <= 'Y') goto yy67; - goto yy55; - } else { - if (yych <= 'a') goto yy607; - if (yych <= 'c') goto yy55; - goto yy499; - } - } else { - if (yych <= 'g') { - if (yych == 'f') goto yy500; - goto yy55; - } else { - if (yych <= 'h') goto yy64; - if (yych == 'j') goto yy512; - goto yy55; - } - } + if (yych <= '_') { + if (yych <= 'F') goto yy715; + if (yych <= 'Z') goto yy658; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 'u') { - if (yych <= 'o') { - if (yych <= 'm') goto yy496; - if (yych <= 'n') goto yy515; - goto yy514; - } else { - if (yych <= 'r') goto yy55; - if (yych <= 's') goto yy497; - if (yych <= 't') goto yy69; - goto yy62; - } + if (yych <= 'e') { + if (yych <= '`') goto yy20; + goto yy663; } else { - if (yych <= 'x') { - if (yych == 'w') goto yy68; - goto yy55; - } else { - if (yych <= 'y') goto yy67; - if (yych == 0xC2) goto yy61; - goto yy55; - } + if (yych <= 'f') goto yy719; + if (yych <= 'z') goto yy663; + goto yy20; } } } -yy1114: - YYDEBUG(1114, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '.') { - if (yych <= ',') goto yy55; - if (yych <= '-') goto yy688; - goto yy635; - } else { - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy1116; - goto yy55; - } -yy1115: - YYDEBUG(1115, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '.') { - if (yych <= ',') goto yy55; - if (yych <= '-') goto yy688; - goto yy635; - } else { - if (yych <= '/') goto yy55; - if (yych >= '3') goto yy55; - } -yy1116: - YYDEBUG(1116, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= ',') goto yy55; - if (yych <= '-') goto yy1117; - if (yych <= '.') goto yy635; - goto yy55; -yy1117: - YYDEBUG(1117, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '2') { - if (yych <= '/') goto yy55; - if (yych >= '1') goto yy1119; - } else { - if (yych <= '3') goto yy1120; - if (yych <= '9') goto yy692; - goto yy55; - } - YYDEBUG(1118, *YYCURSOR); - yyaccept = 12; +yy554: + YYDEBUG(554, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'n') { - if (yych <= '/') goto yy690; - if (yych <= '9') goto yy1121; - if (yych <= 'm') goto yy690; - goto yy694; - } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy690; - goto yy695; + if (yych <= ',') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy142; + goto yy20; } else { - if (yych <= 's') goto yy693; - if (yych <= 't') goto yy696; - goto yy690; + if (yych <= ' ') goto yy142; + if (yych == ')') goto yy115; + goto yy20; } - } -yy1119: - YYDEBUG(1119, *YYCURSOR); - yyaccept = 12; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'n') { - if (yych <= '/') goto yy690; - if (yych <= '9') goto yy1121; - if (yych <= 'm') goto yy690; - goto yy694; } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy690; - goto yy695; + if (yych <= '@') { + if (yych == '/') goto yy20; + if (yych <= '9') goto yy142; + goto yy20; } else { - if (yych <= 's') goto yy693; - if (yych <= 't') goto yy696; - goto yy690; + if (yych <= 'Z') goto yy658; + if (yych <= '`') goto yy20; + if (yych <= 'z') goto yy658; + goto yy20; } } -yy1120: - YYDEBUG(1120, *YYCURSOR); - yyaccept = 12; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'n') { - if (yych <= '1') { - if (yych <= '/') goto yy690; +yy555: + YYDEBUG(555, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'E') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= '9') goto yy637; - if (yych <= 'm') goto yy690; - goto yy694; + if (yych <= '@') goto yy20; + if (yych <= 'D') goto yy658; + goto yy728; } } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy690; - goto yy695; - } else { - if (yych <= 's') goto yy693; - if (yych <= 't') goto yy696; - goto yy690; + if (yych <= 'd') { + if (yych <= 'Z') goto yy658; + if (yych <= '`') goto yy20; + goto yy658; + } else { + if (yych <= 'e') goto yy728; + if (yych <= 'z') goto yy658; + goto yy20; } } -yy1121: - YYDEBUG(1121, *YYCURSOR); - yyaccept = 15; +yy556: + YYDEBUG(556, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'n') { - if (yych <= '/') goto yy808; - if (yych <= '9') goto yy638; - if (yych <= 'm') goto yy808; - goto yy694; + if (yych <= 'D') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; + } else { + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy658; + } } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy808; - goto yy695; + if (yych <= '_') { + if (yych <= 'E') goto yy728; + if (yych <= 'Z') goto yy658; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 's') goto yy693; - if (yych <= 't') goto yy696; - goto yy808; + if (yych <= 'd') { + if (yych <= '`') goto yy20; + goto yy663; + } else { + if (yych <= 'e') goto yy729; + if (yych <= 'z') goto yy663; + goto yy20; + } } } -yy1122: - YYDEBUG(1122, *YYCURSOR); +yy557: + YYDEBUG(557, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '9') { - if (yych <= '-') { - if (yych == '\t') goto yy1111; - if (yych <= ',') goto yy1113; - goto yy1110; - } else { - if (yych <= '.') goto yy1123; - if (yych <= '/') goto yy774; - if (yych <= '5') goto yy1125; - goto yy785; + if (yych <= 'E') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; + } else { + if (yych <= '@') goto yy20; + if (yych <= 'D') goto yy658; + goto yy730; } } else { - if (yych <= 'q') { - if (yych <= ':') goto yy1124; - if (yych == 'n') goto yy503; - goto yy1113; - } else { - if (yych <= 'r') goto yy504; - if (yych <= 's') goto yy498; - if (yych <= 't') goto yy501; - goto yy1113; + if (yych <= 'd') { + if (yych <= 'Z') goto yy658; + if (yych <= '`') goto yy20; + goto yy658; + } else { + if (yych <= 'e') goto yy730; + if (yych <= 'z') goto yy658; + goto yy20; } } -yy1123: - YYDEBUG(1123, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '1') { - if (yych <= '/') goto yy611; - if (yych <= '0') goto yy1147; - goto yy1148; +yy558: + YYDEBUG(558, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'D') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; + } else { + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy658; + } } else { - if (yych <= '5') goto yy1149; - if (yych <= '9') goto yy1150; - goto yy611; + if (yych <= '_') { + if (yych <= 'E') goto yy730; + if (yych <= 'Z') goto yy658; + if (yych <= '^') goto yy20; + goto yy297; + } else { + if (yych <= 'd') { + if (yych <= '`') goto yy20; + goto yy663; + } else { + if (yych <= 'e') goto yy731; + if (yych <= 'z') goto yy663; + goto yy20; + } + } } -yy1124: - YYDEBUG(1124, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy1142; - if (yych <= '9') goto yy1143; - goto yy55; -yy1125: - YYDEBUG(1125, *YYCURSOR); +yy559: + YYDEBUG(559, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0x80) goto yy194; + goto yy59; +yy560: + YYDEBUG(560, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '-') goto yy829; - if (yych <= '/') goto yy59; - if (yych >= ':') goto yy59; - YYDEBUG(1126, *YYCURSOR); - yyaccept = 24; + if (yych <= 0xC1) { + if (yych <= '/') goto yy196; + if (yych <= '9') goto yy594; + goto yy196; + } else { + if (yych <= 0xC2) goto yy97; + if (yych == 0xE2) goto yy98; + goto yy196; + } +yy561: + YYDEBUG(561, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'L') { - if (yych <= '3') { - if (yych <= '-') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy835; + if (yych <= 'V') { + if (yych <= '9') { + if (yych <= ',') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy20; + goto yy196; } else { - if (yych <= ' ') goto yy835; - if (yych >= '-') goto yy832; + if (yych == ' ') goto yy196; + goto yy20; } } else { - if (yych <= '0') { - if (yych <= '.') goto yy836; - if (yych <= '/') goto yy833; - goto yy1128; + if (yych <= '/') { + if (yych <= '-') goto yy732; + goto yy20; } else { - if (yych <= '1') goto yy1129; - if (yych <= '2') goto yy1130; - goto yy1131; + if (yych <= '5') goto yy733; + if (yych <= '6') goto yy734; + goto yy735; } } } else { - if (yych <= 'A') { - if (yych <= '9') { - if (yych <= '5') goto yy1132; - if (yych <= '6') goto yy1133; - goto yy73; + if (yych <= 'G') { + if (yych <= 'D') { + if (yych <= 'C') goto yy20; + goto yy196; } else { - if (yych <= ':') goto yy851; - if (yych >= 'A') goto yy835; + if (yych == 'F') goto yy196; + goto yy20; } } else { - if (yych <= 'E') { - if (yych == 'D') goto yy835; - } else { - if (yych == 'G') goto yy1127; - if (yych <= 'J') goto yy835; + if (yych <= 'M') { + if (yych <= 'H') goto yy196; + if (yych <= 'L') goto yy20; + goto yy196; + } else { + if (yych <= 'R') goto yy20; + if (yych <= 'U') goto yy196; + goto yy20; } } } } else { - if (yych <= 'h') { - if (yych <= '`') { - if (yych <= 'V') { - if (yych <= 'O') goto yy835; - if (yych >= 'S') goto yy835; + if (yych <= 'm') { + if (yych <= 'd') { + if (yych <= 'X') { + if (yych <= 'W') goto yy196; + goto yy20; } else { - if (yych <= 'W') goto yy854; - if (yych <= 'Y') goto yy835; + if (yych <= 'Y') goto yy196; + if (yych <= 'c') goto yy20; + goto yy196; } } else { - if (yych <= 'd') { - if (yych <= 'a') goto yy835; - if (yych >= 'd') goto yy835; + if (yych <= 'g') { + if (yych == 'f') goto yy196; + goto yy20; } else { - if (yych == 'f') goto yy835; - if (yych >= 'h') goto yy835; + if (yych <= 'h') goto yy196; + if (yych <= 'l') goto yy20; + goto yy196; } } } else { - if (yych <= 'u') { - if (yych <= 'l') { - if (yych == 'j') goto yy835; + if (yych <= 'x') { + if (yych <= 'u') { + if (yych <= 'r') goto yy20; + goto yy196; } else { - if (yych <= 'o') goto yy835; - if (yych >= 's') goto yy835; + if (yych == 'w') goto yy196; + goto yy20; } } else { - if (yych <= 'x') { - if (yych == 'w') goto yy835; + if (yych <= 0xC2) { + if (yych <= 'y') goto yy196; + if (yych <= 0xC1) goto yy20; + goto yy97; } else { - if (yych <= 'y') goto yy835; - if (yych == 0xC2) goto yy835; + if (yych == 0xE2) goto yy98; + goto yy20; } } } } -yy1127: - YYDEBUG(1127, *YYCURSOR); -#line 1375 "ext/date/lib/parse_date.re" - { - DEBUG_OUTPUT("gnunocolon"); - TIMELIB_INIT; - switch (s->time->have_time) { - case 0: - s->time->h = timelib_get_nr(&ptr, 2); - s->time->i = timelib_get_nr(&ptr, 2); - s->time->s = 0; - break; - case 1: - s->time->y = timelib_get_nr(&ptr, 4); - break; - default: - TIMELIB_DEINIT; - add_error(s, TIMELIB_ERR_DOUBLE_TIME, "Double time specification"); - return TIMELIB_ERROR; +yy562: + YYDEBUG(562, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '9') { + if (yych == '-') goto yy732; + if (yych <= '/') goto yy196; + goto yy735; + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy196; + goto yy97; + } else { + if (yych == 0xE2) goto yy98; + goto yy196; } - s->time->have_time++; - TIMELIB_DEINIT; - return TIMELIB_GNU_NOCOLON; } -#line 16218 "" -yy1128: - YYDEBUG(1128, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy59; - if (yych <= '0') goto yy1140; - if (yych <= '9') goto yy1141; - goto yy59; -yy1129: - YYDEBUG(1129, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy59; - if (yych <= '2') goto yy1139; - if (yych <= '9') goto yy1138; - goto yy59; -yy1130: - YYDEBUG(1130, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy59; - if (yych <= '9') goto yy1138; - goto yy59; -yy1131: - YYDEBUG(1131, *YYCURSOR); +yy563: + YYDEBUG(563, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy59; - if (yych <= '5') goto yy1136; - if (yych <= '6') goto yy1137; - if (yych <= '9') goto yy1134; - goto yy59; -yy1132: - YYDEBUG(1132, *YYCURSOR); + if (yych <= '/') goto yy20; + if (yych <= '9') goto yy736; + goto yy20; +yy564: + YYDEBUG(564, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '/') goto yy59; - if (yych <= '9') goto yy1134; + if (yych <= '9') goto yy737; goto yy59; -yy1133: - YYDEBUG(1133, *YYCURSOR); +yy565: + YYDEBUG(565, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '/') goto yy59; - if (yych <= '0') goto yy1134; - if (yych <= '9') goto yy74; + if (yych <= '9') goto yy738; goto yy59; -yy1134: - YYDEBUG(1134, *YYCURSOR); - yyaccept = 25; +yy566: + YYDEBUG(566, *YYCURSOR); + yyaccept = 15; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'W') { - if (yych <= 'E') { - if (yych <= ' ') { - if (yych == '\t') goto yy59; - if (yych >= ' ') goto yy59; - } else { - if (yych <= '9') { - if (yych >= '0') goto yy75; - } else { - if (yych == 'D') goto yy59; - } - } - } else { - if (yych <= 'L') { - if (yych == 'G') goto yy1135; - if (yych <= 'H') goto yy59; - } else { - if (yych <= 'R') { - if (yych <= 'M') goto yy59; - } else { - if (yych != 'V') goto yy59; - } - } - } + if (yych <= 'n') { + if (yych <= '/') goto yy567; + if (yych <= '9') goto yy740; + if (yych >= 'n') goto yy741; } else { - if (yych <= 'l') { - if (yych <= 'd') { - if (yych == 'Y') goto yy59; - if (yych >= 'd') goto yy59; - } else { - if (yych <= 'f') { - if (yych >= 'f') goto yy59; - } else { - if (yych == 'h') goto yy59; - } - } + if (yych <= 'r') { + if (yych >= 'r') goto yy741; } else { - if (yych <= 'w') { - if (yych <= 'r') { - if (yych <= 'm') goto yy59; - } else { - if (yych != 'v') goto yy59; - } - } else { - if (yych <= 'y') { - if (yych >= 'y') goto yy59; - } else { - if (yych == 0xC2) goto yy59; - } - } + if (yych <= 's') goto yy742; + if (yych <= 't') goto yy743; } } -yy1135: - YYDEBUG(1135, *YYCURSOR); -#line 1421 "ext/date/lib/parse_date.re" +yy567: + YYDEBUG(567, *YYCURSOR); +#line 1535 "ext/date/lib/parse_date.re" { - int tz_not_found; - DEBUG_OUTPUT("iso8601nocolon"); + int length = 0; + DEBUG_OUTPUT("gnudateshort"); TIMELIB_INIT; - TIMELIB_HAVE_TIME(); - s->time->h = timelib_get_nr(&ptr, 2); - s->time->i = timelib_get_nr(&ptr, 2); - s->time->s = timelib_get_nr(&ptr, 2); - - if (*ptr != '\0') { - s->time->z = timelib_parse_zone(&ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper); - if (tz_not_found) { - add_error(s, TIMELIB_ERR_TZID_NOT_FOUND, "The timezone could not be found in the database"); - } - } + TIMELIB_HAVE_DATE(); + s->time->y = timelib_get_nr_ex(&ptr, 4, &length); + s->time->m = timelib_get_nr(&ptr, 2); + s->time->d = timelib_get_nr(&ptr, 2); + TIMELIB_PROCESS_YEAR(s->time->y, length); TIMELIB_DEINIT; - return TIMELIB_ISO_NOCOLON; + return TIMELIB_ISO_DATE; } -#line 16337 "" -yy1136: - YYDEBUG(1136, *YYCURSOR); - yyaccept = 25; +#line 14118 "" +yy568: + YYDEBUG(568, *YYCURSOR); + yyaccept = 15; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'W') { - if (yych <= 'E') { - if (yych <= ' ') { - if (yych == '\t') goto yy59; - if (yych <= 0x1F) goto yy1135; - goto yy59; - } else { - if (yych <= '9') { - if (yych <= '/') goto yy1135; - goto yy865; - } else { - if (yych == 'D') goto yy59; - goto yy1135; - } - } + if (yych <= 'n') { + if (yych <= '1') { + if (yych <= '/') goto yy567; + goto yy740; } else { - if (yych <= 'L') { - if (yych == 'G') goto yy1135; - if (yych <= 'H') goto yy59; - goto yy1135; - } else { - if (yych <= 'R') { - if (yych <= 'M') goto yy59; - goto yy1135; - } else { - if (yych == 'V') goto yy1135; - goto yy59; - } - } + if (yych <= '9') goto yy737; + if (yych <= 'm') goto yy567; + goto yy741; } } else { - if (yych <= 'l') { - if (yych <= 'd') { - if (yych == 'Y') goto yy59; - if (yych <= 'c') goto yy1135; - goto yy59; - } else { - if (yych <= 'f') { - if (yych <= 'e') goto yy1135; - goto yy59; - } else { - if (yych == 'h') goto yy59; - goto yy1135; - } - } + if (yych <= 'r') { + if (yych <= 'q') goto yy567; + goto yy741; } else { - if (yych <= 'w') { - if (yych <= 'r') { - if (yych <= 'm') goto yy59; - goto yy1135; - } else { - if (yych == 'v') goto yy1135; - goto yy59; - } - } else { - if (yych <= 'y') { - if (yych <= 'x') goto yy1135; - goto yy59; - } else { - if (yych == 0xC2) goto yy59; - goto yy1135; - } - } + if (yych <= 's') goto yy742; + if (yych <= 't') goto yy743; + goto yy567; } } -yy1137: - YYDEBUG(1137, *YYCURSOR); - yyaccept = 25; +yy569: + YYDEBUG(569, *YYCURSOR); + yyaccept = 15; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'W') { - if (yych <= 'D') { - if (yych <= ' ') { - if (yych == '\t') goto yy59; - if (yych <= 0x1F) goto yy1135; - goto yy59; - } else { - if (yych <= '6') { - if (yych <= '/') goto yy1135; - goto yy865; - } else { - if (yych <= '9') goto yy75; - if (yych <= 'C') goto yy1135; - goto yy59; - } - } - } else { - if (yych <= 'L') { - if (yych <= 'F') { - if (yych <= 'E') goto yy1135; - goto yy59; - } else { - if (yych == 'H') goto yy59; - goto yy1135; - } - } else { - if (yych <= 'R') { - if (yych <= 'M') goto yy59; - goto yy1135; - } else { - if (yych == 'V') goto yy1135; - goto yy59; - } - } - } + if (yych <= 'n') { + if (yych <= '/') goto yy567; + if (yych <= '9') goto yy737; + if (yych <= 'm') goto yy567; + goto yy741; } else { - if (yych <= 'l') { - if (yych <= 'd') { - if (yych == 'Y') goto yy59; - if (yych <= 'c') goto yy1135; - goto yy59; - } else { - if (yych <= 'f') { - if (yych <= 'e') goto yy1135; - goto yy59; - } else { - if (yych == 'h') goto yy59; - goto yy1135; - } - } + if (yych <= 'r') { + if (yych <= 'q') goto yy567; + goto yy741; } else { - if (yych <= 'w') { - if (yych <= 'r') { - if (yych <= 'm') goto yy59; - goto yy1135; - } else { - if (yych == 'v') goto yy1135; - goto yy59; - } - } else { - if (yych <= 'y') { - if (yych <= 'x') goto yy1135; - goto yy59; - } else { - if (yych == 0xC2) goto yy59; - goto yy1135; - } - } + if (yych <= 's') goto yy742; + if (yych <= 't') goto yy743; + goto yy567; } } -yy1138: - YYDEBUG(1138, *YYCURSOR); - yyaccept = 25; +yy570: + YYDEBUG(570, *YYCURSOR); + yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'W') { - if (yych <= 'E') { - if (yych <= ' ') { - if (yych == '\t') goto yy59; - if (yych <= 0x1F) goto yy1135; - goto yy59; - } else { - if (yych <= '9') { - if (yych <= '/') goto yy1135; - goto yy865; - } else { - if (yych == 'D') goto yy59; - goto yy1135; - } - } - } else { - if (yych <= 'L') { - if (yych == 'G') goto yy1135; - if (yych <= 'H') goto yy59; - goto yy1135; - } else { - if (yych <= 'R') { - if (yych <= 'M') goto yy59; - goto yy1135; - } else { - if (yych == 'V') goto yy1135; - goto yy59; - } - } - } + if (yych == '.') goto yy744; + if (yych <= '/') goto yy177; + if (yych <= '9') goto yy745; + goto yy177; +yy571: + YYDEBUG(571, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy744; + goto yy177; } else { - if (yych <= 'l') { - if (yych <= 'd') { - if (yych == 'Y') goto yy59; - if (yych <= 'c') goto yy1135; - goto yy59; - } else { - if (yych <= 'f') { - if (yych <= 'e') goto yy1135; - goto yy59; - } else { - if (yych == 'h') goto yy59; - goto yy1135; - } - } - } else { - if (yych <= 'w') { - if (yych <= 'r') { - if (yych <= 'm') goto yy59; - goto yy1135; - } else { - if (yych == 'v') goto yy1135; - goto yy59; - } - } else { - if (yych <= 'y') { - if (yych <= 'x') goto yy1135; - goto yy59; - } else { - if (yych == 0xC2) goto yy59; - goto yy1135; - } - } - } + if (yych <= '0') goto yy745; + if (yych <= '9') goto yy738; + goto yy177; } -yy1139: - YYDEBUG(1139, *YYCURSOR); - yyaccept = 25; +yy572: + YYDEBUG(572, *YYCURSOR); + yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'V') { - if (yych <= 'C') { - if (yych <= '/') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy1135; - goto yy59; - } else { - if (yych == ' ') goto yy59; - goto yy1135; - } - } else { - if (yych <= '2') { - if (yych <= '0') goto yy889; - goto yy890; - } else { - if (yych <= '3') goto yy891; - if (yych <= '9') goto yy865; - goto yy1135; - } - } - } else { - if (yych <= 'H') { - if (yych <= 'E') { - if (yych <= 'D') goto yy59; - goto yy1135; - } else { - if (yych == 'G') goto yy1135; - goto yy59; - } - } else { - if (yych <= 'M') { - if (yych <= 'L') goto yy1135; - goto yy59; - } else { - if (yych <= 'R') goto yy1135; - if (yych <= 'U') goto yy59; - goto yy1135; - } - } - } + if (yych == '.') goto yy744; + if (yych <= '/') goto yy177; + if (yych <= '9') goto yy738; + goto yy177; +yy573: + YYDEBUG(573, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy744; + if (yych <= '/') goto yy177; + if (yych <= '9') goto yy575; + goto yy177; +yy574: + YYDEBUG(574, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy744; + if (yych != '0') goto yy177; +yy575: + YYDEBUG(575, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy744; + goto yy177; +yy576: + YYDEBUG(576, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy224; + if (yych <= '9') goto yy746; + goto yy224; +yy577: + YYDEBUG(577, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '/') goto yy402; + goto yy224; +yy578: + YYDEBUG(578, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '/') goto yy747; + goto yy59; +yy579: + YYDEBUG(579, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'S') { + if (yych == '/') goto yy747; + goto yy59; } else { - if (yych <= 'l') { - if (yych <= 'd') { - if (yych <= 'X') { - if (yych <= 'W') goto yy59; - goto yy1135; - } else { - if (yych <= 'Y') goto yy59; - if (yych <= 'c') goto yy1135; - goto yy59; - } - } else { - if (yych <= 'f') { - if (yych <= 'e') goto yy1135; + if (yych <= 'T') goto yy578; + if (yych == 't') goto yy578; + goto yy59; + } +yy580: + YYDEBUG(580, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= ',') goto yy59; + if (yych <= '-') goto yy748; + if (yych <= '.') goto yy396; + goto yy59; +yy581: + YYDEBUG(581, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '-') goto yy645; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy462; + goto yy59; +yy582: + YYDEBUG(582, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '-') goto yy645; + if (yych <= '/') goto yy59; + if (yych <= '2') goto yy462; + goto yy59; +yy583: + YYDEBUG(583, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12); + yych = *YYCURSOR; +yy584: + YYDEBUG(584, *YYCURSOR); + if (yych <= 'W') { + if (yych <= 'G') { + if (yych <= '.') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy583; goto yy59; } else { - if (yych == 'h') goto yy59; - goto yy1135; - } - } - } else { - if (yych <= 'w') { - if (yych <= 'r') { - if (yych <= 'm') goto yy59; - goto yy1135; - } else { - if (yych == 'v') goto yy1135; - goto yy59; + if (yych <= ' ') goto yy583; + if (yych <= ',') goto yy59; + goto yy749; } } else { - if (yych <= 'y') { - if (yych <= 'x') goto yy1135; + if (yych <= 'C') { + if (yych == 'A') goto yy596; goto yy59; } else { - if (yych == 0xC2) goto yy59; - goto yy1135; - } - } - } - } -yy1140: - YYDEBUG(1140, *YYCURSOR); - yyaccept = 25; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'V') { - if (yych <= 'C') { - if (yych <= '/') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy1135; + if (yych <= 'D') goto yy597; + if (yych == 'F') goto yy598; goto yy59; - } else { - if (yych == ' ') goto yy59; - goto yy1135; - } - } else { - if (yych <= '2') { - if (yych <= '0') goto yy921; - goto yy890; - } else { - if (yych <= '3') goto yy891; - if (yych <= '9') goto yy865; - goto yy1135; } } } else { - if (yych <= 'H') { - if (yych <= 'E') { - if (yych <= 'D') goto yy59; - goto yy1135; - } else { - if (yych == 'G') goto yy1135; - goto yy59; + if (yych <= 'N') { + if (yych <= 'J') { + if (yych <= 'H') goto yy79; + if (yych <= 'I') goto yy599; + goto yy601; + } else { + if (yych <= 'L') goto yy59; + if (yych <= 'M') goto yy602; + goto yy603; } } else { - if (yych <= 'M') { - if (yych <= 'L') goto yy1135; - goto yy59; - } else { - if (yych <= 'R') goto yy1135; - if (yych <= 'U') goto yy59; - goto yy1135; + if (yych <= 'S') { + if (yych <= 'O') goto yy604; + if (yych <= 'R') goto yy59; + goto yy605; + } else { + if (yych <= 'T') goto yy87; + if (yych <= 'U') goto yy88; + if (yych <= 'V') goto yy606; + goto yy90; } } } } else { if (yych <= 'l') { if (yych <= 'd') { - if (yych <= 'X') { - if (yych <= 'W') goto yy59; - goto yy1135; - } else { - if (yych <= 'Y') goto yy59; - if (yych <= 'c') goto yy1135; - goto yy59; - } - } else { - if (yych <= 'f') { - if (yych <= 'e') goto yy1135; + if (yych <= '`') { + if (yych <= 'X') goto yy608; + if (yych <= 'Y') goto yy92; goto yy59; } else { - if (yych == 'h') goto yy59; - goto yy1135; - } - } - } else { - if (yych <= 'w') { - if (yych <= 'r') { - if (yych <= 'm') goto yy59; - goto yy1135; - } else { - if (yych == 'v') goto yy1135; - goto yy59; + if (yych <= 'a') goto yy596; + if (yych <= 'c') goto yy59; + goto yy597; } } else { - if (yych <= 'y') { - if (yych <= 'x') goto yy1135; + if (yych <= 'g') { + if (yych == 'f') goto yy598; goto yy59; } else { - if (yych == 0xC2) goto yy59; - goto yy1135; - } - } - } - } -yy1141: - YYDEBUG(1141, *YYCURSOR); - yyaccept = 25; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'V') { - if (yych <= 'C') { - if (yych <= '/') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy1135; + if (yych <= 'h') goto yy79; + if (yych == 'j') goto yy601; goto yy59; - } else { - if (yych == ' ') goto yy59; - goto yy1135; - } - } else { - if (yych <= '2') { - if (yych <= '0') goto yy889; - goto yy890; - } else { - if (yych <= '3') goto yy891; - if (yych <= '9') goto yy865; - goto yy1135; } } } else { - if (yych <= 'H') { - if (yych <= 'E') { - if (yych <= 'D') goto yy59; - goto yy1135; - } else { - if (yych == 'G') goto yy1135; - goto yy59; - } - } else { - if (yych <= 'M') { - if (yych <= 'L') goto yy1135; - goto yy59; - } else { - if (yych <= 'R') goto yy1135; - if (yych <= 'U') goto yy59; - goto yy1135; - } - } - } - } else { - if (yych <= 'l') { - if (yych <= 'd') { - if (yych <= 'X') { - if (yych <= 'W') goto yy59; - goto yy1135; - } else { - if (yych <= 'Y') goto yy59; - if (yych <= 'c') goto yy1135; - goto yy59; + if (yych <= 'u') { + if (yych <= 'o') { + if (yych <= 'm') goto yy602; + if (yych <= 'n') goto yy603; + goto yy604; + } else { + if (yych <= 'r') goto yy59; + if (yych <= 's') goto yy605; + if (yych <= 't') goto yy87; + goto yy88; } } else { - if (yych <= 'f') { - if (yych <= 'e') goto yy1135; + if (yych <= 'x') { + if (yych == 'w') goto yy90; goto yy59; } else { - if (yych == 'h') goto yy59; - goto yy1135; - } - } - } else { - if (yych <= 'w') { - if (yych <= 'r') { - if (yych <= 'm') goto yy59; - goto yy1135; - } else { - if (yych == 'v') goto yy1135; + if (yych <= 'y') goto yy92; + if (yych == 0xC2) goto yy211; goto yy59; } - } else { - if (yych <= 'y') { - if (yych <= 'x') goto yy1135; - goto yy59; - } else { - if (yych == 0xC2) goto yy59; - goto yy1135; - } } } } -yy1142: - YYDEBUG(1142, *YYCURSOR); - yyaccept = 10; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych == '.') goto yy1144; - goto yy524; - } else { - if (yych <= '9') goto yy1143; - if (yych <= ':') goto yy1144; - goto yy524; - } -yy1143: - YYDEBUG(1143, *YYCURSOR); - yyaccept = 10; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '.') goto yy1144; - if (yych != ':') goto yy524; -yy1144: - YYDEBUG(1144, *YYCURSOR); +yy585: + YYDEBUG(585, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy1145; - if (yych <= '6') goto yy1146; - if (yych <= '9') goto yy529; - goto yy55; -yy1145: - YYDEBUG(1145, *YYCURSOR); - yyaccept = 10; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '.') goto yy530; - if (yych <= '/') goto yy524; - if (yych <= '9') goto yy529; - goto yy524; -yy1146: - YYDEBUG(1146, *YYCURSOR); - yyaccept = 10; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '.') goto yy530; - if (yych == '0') goto yy529; - goto yy524; -yy1147: - YYDEBUG(1147, *YYCURSOR); - yyaccept = 10; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= ',') goto yy524; - if (yych <= '-') goto yy635; - goto yy1151; - } else { - if (yych <= '/') goto yy524; - if (yych <= '9') goto yy1150; - if (yych <= ':') goto yy1144; - goto yy524; - } -yy1148: - YYDEBUG(1148, *YYCURSOR); - yyaccept = 10; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych <= ',') goto yy524; - if (yych <= '-') goto yy635; - if (yych <= '.') goto yy1151; - goto yy524; - } else { - if (yych <= '2') goto yy1150; - if (yych <= '9') goto yy1143; - if (yych <= ':') goto yy1144; - goto yy524; + switch (yych) { + case '0': goto yy751; + case '1': goto yy753; + case '2': goto yy754; + case '3': goto yy755; + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy756; + case 'A': + case 'a': goto yy757; + case 'D': + case 'd': goto yy758; + case 'F': + case 'f': goto yy759; + case 'J': + case 'j': goto yy760; + case 'M': + case 'm': goto yy761; + case 'N': + case 'n': goto yy762; + case 'O': + case 'o': goto yy763; + case 'S': + case 's': goto yy764; + case 'W': goto yy765; + default: goto yy750; } -yy1149: - YYDEBUG(1149, *YYCURSOR); - yyaccept = 10; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= ',') goto yy524; - if (yych <= '-') goto yy635; - goto yy1151; - } else { - if (yych <= '/') goto yy524; - if (yych <= '9') goto yy1143; - if (yych <= ':') goto yy1144; - goto yy524; +yy586: + YYDEBUG(586, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy750; + if (yych <= '0') goto yy766; + if (yych <= '2') goto yy767; + if (yych <= '3') goto yy768; + goto yy750; +yy587: + YYDEBUG(587, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '0') goto yy773; + if (yych <= '1') goto yy774; + if (yych <= '9') goto yy775; + goto yy59; +yy588: + YYDEBUG(588, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 0xC1) { + if (yych <= '/') goto yy196; + if (yych <= '0') goto yy776; + if (yych <= '9') goto yy778; + goto yy196; + } else { + if (yych <= 0xC2) goto yy97; + if (yych == 0xE2) goto yy98; + goto yy196; } -yy1150: - YYDEBUG(1150, *YYCURSOR); - yyaccept = 10; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= ',') goto yy524; - if (yych <= '-') goto yy635; - } else { - if (yych == ':') goto yy1144; - goto yy524; +yy589: + YYDEBUG(589, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 0xC1) { + if (yych <= '/') goto yy196; + if (yych <= '2') goto yy778; + if (yych <= '9') goto yy779; + goto yy196; + } else { + if (yych <= 0xC2) goto yy97; + if (yych == 0xE2) goto yy98; + goto yy196; } -yy1151: - YYDEBUG(1151, *YYCURSOR); +yy590: + YYDEBUG(590, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '5') goto yy1152; - if (yych <= '6') goto yy1153; - if (yych <= '9') goto yy643; - goto yy55; -yy1152: - YYDEBUG(1152, *YYCURSOR); - yyaccept = 10; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '.') goto yy530; - if (yych <= '/') goto yy524; - if (yych <= '9') goto yy1154; - goto yy524; -yy1153: - YYDEBUG(1153, *YYCURSOR); - yyaccept = 10; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych == '.') goto yy530; - goto yy524; - } else { - if (yych <= '0') goto yy1154; - if (yych <= '9') goto yy644; - goto yy524; + if (yych <= 0xC1) { + if (yych <= '/') goto yy196; + if (yych <= '9') goto yy779; + goto yy196; + } else { + if (yych <= 0xC2) goto yy97; + if (yych == 0xE2) goto yy98; + goto yy196; } -yy1154: - YYDEBUG(1154, *YYCURSOR); - yyaccept = 10; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '.') goto yy530; - if (yych <= '/') goto yy524; - if (yych <= '9') goto yy638; - goto yy524; -yy1155: - YYDEBUG(1155, *YYCURSOR); +yy591: + YYDEBUG(591, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '9') { - if (yych <= '-') { - if (yych == '\t') goto yy493; - if (yych <= ',') goto yy495; - goto yy1110; - } else { - if (yych <= '.') goto yy507; - if (yych <= '/') goto yy505; - if (yych <= '5') goto yy1125; - goto yy785; - } - } else { - if (yych <= 'q') { - if (yych <= ':') goto yy516; - if (yych == 'n') goto yy503; - goto yy495; + if (yych <= '/') goto yy196; + if (yych <= '5') goto yy779; + if (yych <= '6') goto yy780; + goto yy781; + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy196; + goto yy97; } else { - if (yych <= 'r') goto yy504; - if (yych <= 's') goto yy498; - if (yych <= 't') goto yy501; - goto yy495; + if (yych == 0xE2) goto yy98; + goto yy196; } } -yy1156: - YYDEBUG(1156, *YYCURSOR); +yy592: + YYDEBUG(592, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '9') { - if (yych <= '-') { - if (yych == '\t') goto yy1111; - if (yych <= ',') goto yy1113; - goto yy1110; - } else { - if (yych <= '.') goto yy1123; - if (yych <= '/') goto yy505; - if (yych <= '5') goto yy1125; - goto yy785; - } - } else { - if (yych <= 'q') { - if (yych <= ':') goto yy1124; - if (yych == 'n') goto yy503; - goto yy1113; - } else { - if (yych <= 'r') goto yy504; - if (yych <= 's') goto yy498; - if (yych <= 't') goto yy501; - goto yy1113; - } + if (yych <= 0xC1) { + if (yych <= '/') goto yy196; + if (yych <= '9') goto yy781; + goto yy196; + } else { + if (yych <= 0xC2) goto yy97; + if (yych == 0xE2) goto yy98; + goto yy196; } -yy1157: - YYDEBUG(1157, *YYCURSOR); +yy593: + YYDEBUG(593, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'E') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'D') goto yy183; - } + if (yych <= 0xC1) { + if (yych <= '/') goto yy196; + if (yych <= '0') goto yy781; + if (yych <= '9') goto yy782; + goto yy196; } else { - if (yych <= 'd') { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - goto yy183; - } else { - if (yych <= 'e') goto yy1158; - if (yych <= 'z') goto yy183; - goto yy3; - } + if (yych <= 0xC2) goto yy97; + if (yych == 0xE2) goto yy98; + goto yy196; } -yy1158: - YYDEBUG(1158, *YYCURSOR); +yy594: + YYDEBUG(594, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'V') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'U') goto yy184; - } + if (yych <= 0xC1) { + if (yych <= '/') goto yy196; + if (yych <= '9') goto yy782; + goto yy196; } else { - if (yych <= 'u') { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy3; - goto yy184; - } else { - if (yych <= 'v') goto yy1159; - if (yych <= 'z') goto yy184; - goto yy3; - } + if (yych <= 0xC2) goto yy97; + if (yych == 0xE2) goto yy98; + goto yy196; } -yy1159: - YYDEBUG(1159, *YYCURSOR); +yy595: + YYDEBUG(595, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'I') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'H') goto yy185; - } - } else { - if (yych <= 'h') { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy3; - goto yy185; - } else { - if (yych <= 'i') goto yy1160; - if (yych <= 'z') goto yy185; - goto yy3; - } - } -yy1160: - YYDEBUG(1160, *YYCURSOR); + if (yych <= '/') goto yy59; + if (yych <= '0') goto yy783; + if (yych <= '1') goto yy784; + goto yy59; +yy596: + YYDEBUG(596, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'N') goto yy186; - } + if (yych <= 'U') { + if (yych == 'P') goto yy785; + if (yych <= 'T') goto yy59; + goto yy786; } else { - if (yych <= 'n') { - if (yych <= 'Z') goto yy186; - if (yych <= '`') goto yy3; - goto yy186; - } else { - if (yych <= 'o') goto yy1161; - if (yych <= 'z') goto yy186; - goto yy3; + if (yych <= 'p') { + if (yych <= 'o') goto yy59; + goto yy785; + } else { + if (yych == 'u') goto yy786; + goto yy59; } } -yy1161: - YYDEBUG(1161, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'T') { - if (yych == ')') goto yy181; - goto yy3; - } else { - if (yych <= 'U') goto yy1162; - if (yych != 'u') goto yy3; - } -yy1162: - YYDEBUG(1162, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy1163; - if (yych != 's') goto yy55; -yy1163: - YYDEBUG(1163, *YYCURSOR); +yy597: + YYDEBUG(597, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\t') goto yy1164; - if (yych != ' ') goto yy55; -yy1164: - YYDEBUG(1164, *YYCURSOR); - ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12); - yych = *YYCURSOR; -yy1165: - YYDEBUG(1165, *YYCURSOR); - if (yych <= 'X') { - if (yych <= 'G') { - if (yych <= ' ') { - if (yych == '\t') goto yy1164; - if (yych <= 0x1F) goto yy55; - goto yy1164; - } else { - if (yych <= 'D') { - if (yych <= 'C') goto yy55; - goto yy1171; - } else { - if (yych == 'F') goto yy1172; - goto yy55; - } - } - } else { - if (yych <= 'S') { - if (yych <= 'L') { - if (yych <= 'H') goto yy1170; - goto yy55; - } else { - if (yych <= 'M') goto yy1166; - if (yych <= 'R') goto yy55; - goto yy1169; - } - } else { - if (yych <= 'U') { - if (yych <= 'T') goto yy1175; - goto yy1168; - } else { - if (yych == 'W') goto yy1174; - goto yy55; - } - } - } + if (yych <= 'E') { + if (yych == 'A') goto yy242; + if (yych <= 'D') goto yy59; + goto yy787; } else { - if (yych <= 'r') { - if (yych <= 'f') { - if (yych <= 'c') { - if (yych <= 'Y') goto yy1173; - goto yy55; - } else { - if (yych <= 'd') goto yy1171; - if (yych <= 'e') goto yy55; - goto yy1172; - } - } else { - if (yych <= 'h') { - if (yych <= 'g') goto yy55; - goto yy1170; - } else { - if (yych != 'm') goto yy55; - } - } + if (yych <= 'a') { + if (yych <= '`') goto yy59; + goto yy242; } else { - if (yych <= 'w') { - if (yych <= 't') { - if (yych <= 's') goto yy1169; - goto yy1175; - } else { - if (yych <= 'u') goto yy1168; - if (yych <= 'v') goto yy55; - goto yy1174; - } - } else { - if (yych <= 'y') { - if (yych <= 'x') goto yy55; - goto yy1173; - } else { - if (yych == 0xC2) goto yy1167; - goto yy55; - } - } + if (yych == 'e') goto yy787; + goto yy59; } } -yy1166: - YYDEBUG(1166, *YYCURSOR); +yy598: + YYDEBUG(598, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'S') { + if (yych <= 'R') { if (yych <= 'N') { - if (yych == 'I') goto yy1256; - goto yy55; + if (yych == 'E') goto yy788; + goto yy59; } else { - if (yych <= 'O') goto yy1255; - if (yych <= 'R') goto yy55; - goto yy1257; + if (yych <= 'O') goto yy245; + if (yych <= 'Q') goto yy59; + goto yy246; } } else { if (yych <= 'n') { - if (yych == 'i') goto yy1256; - goto yy55; + if (yych == 'e') goto yy788; + goto yy59; } else { - if (yych <= 'o') goto yy1255; - if (yych == 's') goto yy1257; - goto yy55; + if (yych <= 'o') goto yy245; + if (yych == 'r') goto yy246; + goto yy59; } } -yy1167: - YYDEBUG(1167, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 0xB5) goto yy1252; - goto yy55; -yy1168: - YYDEBUG(1168, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy1250; - if (yych == 's') goto yy1250; - goto yy55; -yy1169: - YYDEBUG(1169, *YYCURSOR); +yy599: + YYDEBUG(599, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'U') { - if (yych <= 'D') { - if (yych == 'A') goto yy1235; - goto yy55; - } else { - if (yych <= 'E') goto yy1236; - if (yych <= 'T') goto yy55; - goto yy1234; - } + if (yych == 'I') goto yy789; } else { - if (yych <= 'd') { - if (yych == 'a') goto yy1235; - goto yy55; - } else { - if (yych <= 'e') goto yy1236; - if (yych == 'u') goto yy1234; - goto yy55; - } + if (yych == 'W') goto yy600; + if (yych <= 'X') goto yy790; } -yy1170: - YYDEBUG(1170, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy1232; - if (yych == 'o') goto yy1232; - goto yy55; -yy1171: - YYDEBUG(1171, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy1231; - if (yych == 'a') goto yy1231; - goto yy55; -yy1172: - YYDEBUG(1172, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'R') { - if (yych == 'O') goto yy1215; - if (yych <= 'Q') goto yy55; - goto yy1214; - } else { - if (yych <= 'o') { - if (yych <= 'n') goto yy55; - goto yy1215; - } else { - if (yych == 'r') goto yy1214; - goto yy55; - } +yy600: + YYDEBUG(600, *YYCURSOR); +#line 1604 "ext/date/lib/parse_date.re" + { + int length = 0; + DEBUG_OUTPUT("datenodayrev"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->y = timelib_get_nr_ex(&ptr, 4, &length); + s->time->m = timelib_get_month(&ptr); + s->time->d = 1; + TIMELIB_PROCESS_YEAR(s->time->y, length); + TIMELIB_DEINIT; + return TIMELIB_DATE_NO_DAY; } -yy1173: - YYDEBUG(1173, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy1211; - if (yych == 'e') goto yy1211; - goto yy55; -yy1174: - YYDEBUG(1174, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy1196; - if (yych == 'e') goto yy1196; - goto yy55; -yy1175: - YYDEBUG(1175, *YYCURSOR); +#line 14582 "" +yy601: + YYDEBUG(601, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'U') { - if (yych == 'H') goto yy1176; - if (yych <= 'T') goto yy55; - goto yy1177; + if (yych == 'A') goto yy791; + if (yych <= 'T') goto yy59; + goto yy792; } else { - if (yych <= 'h') { - if (yych <= 'g') goto yy55; + if (yych <= 'a') { + if (yych <= '`') goto yy59; + goto yy791; } else { - if (yych == 'u') goto yy1177; - goto yy55; + if (yych == 'u') goto yy792; + goto yy59; } } -yy1176: - YYDEBUG(1176, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'U') goto yy1190; - if (yych == 'u') goto yy1190; - goto yy55; -yy1177: - YYDEBUG(1177, *YYCURSOR); +yy602: + YYDEBUG(602, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy1178; - if (yych != 'e') goto yy55; -yy1178: - YYDEBUG(1178, *YYCURSOR); - yyaccept = 26; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ' ') { - if (yych == '\t') goto yy1180; - if (yych >= ' ') goto yy1180; - } else { - if (yych <= 'S') { - if (yych >= 'S') goto yy1182; - } else { - if (yych == 's') goto yy1182; - } - } -yy1179: - YYDEBUG(1179, *YYCURSOR); -#line 1829 "ext/date/lib/parse_date.re" - { - timelib_sll i; - int behavior = 0; - DEBUG_OUTPUT("relativetext"); - TIMELIB_INIT; - TIMELIB_HAVE_RELATIVE(); - - while(*ptr) { - i = timelib_get_relative_text(&ptr, &behavior); - timelib_eat_spaces(&ptr); - timelib_set_relative(&ptr, i, behavior, s, TIMELIB_TIME_PART_DONT_KEEP); + if (yych <= 'S') { + if (yych <= 'I') { + if (yych == 'A') goto yy793; + if (yych <= 'H') goto yy59; + goto yy257; + } else { + if (yych == 'O') goto yy258; + if (yych <= 'R') goto yy59; + goto yy259; } - TIMELIB_DEINIT; - return TIMELIB_RELATIVE; - } -#line 17329 "" -yy1180: - YYDEBUG(1180, *YYCURSOR); - ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); - yych = *YYCURSOR; - YYDEBUG(1181, *YYCURSOR); - if (yych <= ' ') { - if (yych == '\t') goto yy1180; - if (yych <= 0x1F) goto yy55; - goto yy1180; } else { - if (yych <= 'O') { - if (yych <= 'N') goto yy55; - goto yy1187; + if (yych <= 'i') { + if (yych == 'a') goto yy793; + if (yych <= 'h') goto yy59; + goto yy257; } else { - if (yych == 'o') goto yy1187; - goto yy55; + if (yych <= 'o') { + if (yych <= 'n') goto yy59; + goto yy258; + } else { + if (yych == 's') goto yy259; + goto yy59; + } } } -yy1182: - YYDEBUG(1182, *YYCURSOR); +yy603: + YYDEBUG(603, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy1183; - if (yych != 'd') goto yy55; -yy1183: - YYDEBUG(1183, *YYCURSOR); + if (yych == 'O') goto yy794; + if (yych == 'o') goto yy794; + goto yy59; +yy604: + YYDEBUG(604, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy1184; - if (yych != 'a') goto yy55; -yy1184: - YYDEBUG(1184, *YYCURSOR); + if (yych == 'C') goto yy795; + if (yych == 'c') goto yy795; + goto yy59; +yy605: + YYDEBUG(605, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy1185; - if (yych != 'y') goto yy55; -yy1185: - YYDEBUG(1185, *YYCURSOR); - yyaccept = 26; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ' ') { - if (yych == '\t') goto yy1180; - if (yych <= 0x1F) goto yy1179; - goto yy1180; - } else { - if (yych <= 'S') { - if (yych <= 'R') goto yy1179; + if (yych <= 'U') { + if (yych <= 'D') { + if (yych == 'A') goto yy263; + goto yy59; } else { - if (yych != 's') goto yy1179; + if (yych <= 'E') goto yy796; + if (yych <= 'T') goto yy59; + goto yy265; } - } -yy1186: - YYDEBUG(1186, *YYCURSOR); - yyaccept = 26; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '\t') goto yy1180; - if (yych == ' ') goto yy1180; - goto yy1179; -yy1187: - YYDEBUG(1187, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'F') goto yy1188; - if (yych != 'f') goto yy55; -yy1188: - YYDEBUG(1188, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(1189, *YYCURSOR); -#line 1288 "ext/date/lib/parse_date.re" - { - timelib_sll i; - int behavior = 0; - DEBUG_OUTPUT("weekdayof"); - TIMELIB_INIT; - TIMELIB_HAVE_RELATIVE(); - TIMELIB_HAVE_SPECIAL_RELATIVE(); - - i = timelib_get_relative_text(&ptr, &behavior); - timelib_eat_spaces(&ptr); - if (i > 0) { /* first, second... etc */ - s->time->relative.special.type = TIMELIB_SPECIAL_DAY_OF_WEEK_IN_MONTH; - timelib_set_relative(&ptr, i, 1, s, TIMELIB_TIME_PART_DONT_KEEP); - } else { /* last */ - s->time->relative.special.type = TIMELIB_SPECIAL_LAST_DAY_OF_WEEK_IN_MONTH; - timelib_set_relative(&ptr, i, behavior, s, TIMELIB_TIME_PART_DONT_KEEP); - } - TIMELIB_DEINIT; - return TIMELIB_WEEK_DAY_OF_MONTH; - } -#line 17416 "" -yy1190: - YYDEBUG(1190, *YYCURSOR); - yyaccept = 26; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ' ') { - if (yych == '\t') goto yy1180; - if (yych <= 0x1F) goto yy1179; - goto yy1180; } else { - if (yych <= 'R') { - if (yych <= 'Q') goto yy1179; + if (yych <= 'd') { + if (yych == 'a') goto yy263; + goto yy59; } else { - if (yych != 'r') goto yy1179; + if (yych <= 'e') goto yy796; + if (yych == 'u') goto yy265; + goto yy59; } } - YYDEBUG(1191, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy1192; - if (yych != 's') goto yy55; -yy1192: - YYDEBUG(1192, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy1193; - if (yych != 'd') goto yy55; -yy1193: - YYDEBUG(1193, *YYCURSOR); +yy606: + YYDEBUG(606, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy1194; - if (yych != 'a') goto yy55; -yy1194: - YYDEBUG(1194, *YYCURSOR); + if (yych == 'I') goto yy608; + goto yy600; +yy607: + YYDEBUG(607, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy1195; - if (yych != 'y') goto yy55; -yy1195: - YYDEBUG(1195, *YYCURSOR); - yyaccept = 26; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ' ') { - if (yych == '\t') goto yy1180; - if (yych <= 0x1F) goto yy1179; - goto yy1180; + if (yych <= '5') { + if (yych <= '/') goto yy59; + if (yych <= '0') goto yy797; + if (yych <= '4') goto yy798; + goto yy799; } else { - if (yych <= 'S') { - if (yych <= 'R') goto yy1179; - goto yy1186; + if (yych <= 'E') { + if (yych <= 'D') goto yy59; + goto yy269; } else { - if (yych == 's') goto yy1186; - goto yy1179; + if (yych == 'e') goto yy269; + goto yy59; } } -yy1196: - YYDEBUG(1196, *YYCURSOR); +yy608: + YYDEBUG(608, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'E') { - if (yych <= 'C') goto yy55; - if (yych <= 'D') goto yy1198; - } else { - if (yych <= 'c') goto yy55; - if (yych <= 'd') goto yy1198; - if (yych >= 'f') goto yy55; - } - YYDEBUG(1197, *YYCURSOR); + if (yych == 'I') goto yy789; + goto yy600; +yy609: + YYDEBUG(609, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'K') goto yy1205; - if (yych == 'k') goto yy1205; - goto yy55; -yy1198: - YYDEBUG(1198, *YYCURSOR); - yyaccept = 26; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ' ') { - if (yych == '\t') goto yy1180; - if (yych <= 0x1F) goto yy1179; - goto yy1180; + if (yych <= 0xC1) { + if (yych <= '/') goto yy196; + if (yych <= '0') goto yy800; + if (yych <= '9') goto yy801; + goto yy196; } else { - if (yych <= 'N') { - if (yych <= 'M') goto yy1179; - } else { - if (yych != 'n') goto yy1179; - } + if (yych <= 0xC2) goto yy97; + if (yych == 0xE2) goto yy98; + goto yy196; } - YYDEBUG(1199, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy1200; - if (yych != 'e') goto yy55; -yy1200: - YYDEBUG(1200, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy1201; - if (yych != 's') goto yy55; -yy1201: - YYDEBUG(1201, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy1202; - if (yych != 'd') goto yy55; -yy1202: - YYDEBUG(1202, *YYCURSOR); +yy610: + YYDEBUG(610, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy1203; - if (yych != 'a') goto yy55; -yy1203: - YYDEBUG(1203, *YYCURSOR); + if (yych <= 0xC1) { + if (yych <= '/') goto yy196; + if (yych <= '2') goto yy801; + if (yych <= '9') goto yy802; + goto yy196; + } else { + if (yych <= 0xC2) goto yy97; + if (yych == 0xE2) goto yy98; + goto yy196; + } +yy611: + YYDEBUG(611, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy1204; - if (yych != 'y') goto yy55; -yy1204: - YYDEBUG(1204, *YYCURSOR); - yyaccept = 26; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ' ') { - if (yych == '\t') goto yy1180; - if (yych <= 0x1F) goto yy1179; - goto yy1180; - } else { - if (yych <= 'S') { - if (yych <= 'R') goto yy1179; - goto yy1186; - } else { - if (yych == 's') goto yy1186; - goto yy1179; - } + if (yych <= 0xC1) { + if (yych <= '/') goto yy196; + if (yych <= '9') goto yy802; + goto yy196; + } else { + if (yych <= 0xC2) goto yy97; + if (yych == 0xE2) goto yy98; + goto yy196; } -yy1205: - YYDEBUG(1205, *YYCURSOR); - yyaccept = 27; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'S') { - if (yych == 'D') goto yy1208; - if (yych >= 'S') goto yy1207; - } else { - if (yych <= 'd') { - if (yych >= 'd') goto yy1208; +yy612: + YYDEBUG(612, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '9') { + if (yych <= '/') goto yy196; + if (yych <= '5') goto yy802; + if (yych <= '6') goto yy803; + goto yy782; + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy196; + goto yy97; } else { - if (yych == 's') goto yy1207; - } - } -yy1206: - YYDEBUG(1206, *YYCURSOR); -#line 1805 "ext/date/lib/parse_date.re" - { - timelib_sll i; - int behavior = 0; - DEBUG_OUTPUT("relativetextweek"); - TIMELIB_INIT; - TIMELIB_HAVE_RELATIVE(); - - while(*ptr) { - i = timelib_get_relative_text(&ptr, &behavior); - timelib_eat_spaces(&ptr); - timelib_set_relative(&ptr, i, behavior, s, TIMELIB_TIME_PART_DONT_KEEP); - s->time->relative.weekday_behavior = 2; - - /* to handle the format weekday + last/this/next week */ - if (s->time->relative.have_weekday_relative == 0) { - TIMELIB_HAVE_WEEKDAY_RELATIVE(); - s->time->relative.weekday = 1; - } + if (yych == 0xE2) goto yy98; + goto yy196; } - TIMELIB_DEINIT; - return TIMELIB_RELATIVE; } -#line 17579 "" -yy1207: - YYDEBUG(1207, *YYCURSOR); - yych = *++YYCURSOR; - goto yy1179; -yy1208: - YYDEBUG(1208, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy1209; - if (yych != 'a') goto yy55; -yy1209: - YYDEBUG(1209, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy1210; - if (yych != 'y') goto yy55; -yy1210: - YYDEBUG(1210, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy1207; - if (yych == 's') goto yy1207; - goto yy1179; -yy1211: - YYDEBUG(1211, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy1212; - if (yych != 'a') goto yy55; -yy1212: - YYDEBUG(1212, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy1213; - if (yych != 'r') goto yy55; -yy1213: - YYDEBUG(1213, *YYCURSOR); +yy613: + YYDEBUG(613, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy1207; - if (yych == 's') goto yy1207; - goto yy1179; -yy1214: - YYDEBUG(1214, *YYCURSOR); + if (yych == 'L') goto yy253; + if (yych == 'l') goto yy253; + goto yy59; +yy614: + YYDEBUG(614, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'I') goto yy1227; - if (yych == 'i') goto yy1227; - goto yy55; -yy1215: - YYDEBUG(1215, *YYCURSOR); + if (yych == 'S') goto yy804; + if (yych == 's') goto yy804; + goto yy59; +yy615: + YYDEBUG(615, *YYCURSOR); + ++YYCURSOR; + goto yy260; +yy616: + YYDEBUG(616, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy1216; - if (yych != 'r') goto yy55; -yy1216: - YYDEBUG(1216, *YYCURSOR); + if (yych == 'M') goto yy626; + if (yych == 'm') goto yy626; + goto yy59; +yy617: + YYDEBUG(617, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy1217; - if (yych != 't') goto yy55; -yy1217: - YYDEBUG(1217, *YYCURSOR); + if (yych == 'U') goto yy620; + if (yych == 'u') goto yy620; + goto yy59; +yy618: + YYDEBUG(618, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'N') { - if (yych == 'H') goto yy1219; - if (yych <= 'M') goto yy55; + if (yych == 'H') goto yy805; + if (yych <= 'M') goto yy59; + goto yy806; } else { if (yych <= 'h') { - if (yych <= 'g') goto yy55; - goto yy1219; + if (yych <= 'g') goto yy59; + goto yy805; } else { - if (yych != 'n') goto yy55; + if (yych == 'n') goto yy806; + goto yy59; } } - YYDEBUG(1218, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy1224; - if (yych == 'i') goto yy1224; - goto yy55; -yy1219: - YYDEBUG(1219, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy1220; - if (yych != 'n') goto yy55; -yy1220: - YYDEBUG(1220, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy1221; - if (yych != 'i') goto yy55; -yy1221: - YYDEBUG(1221, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'G') goto yy1222; - if (yych != 'g') goto yy55; -yy1222: - YYDEBUG(1222, *YYCURSOR); +yy619: + YYDEBUG(619, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy1223; - if (yych != 'h') goto yy55; -yy1223: - YYDEBUG(1223, *YYCURSOR); + if (yych <= '/') goto yy251; + if (yych <= '9') goto yy807; + goto yy251; +yy620: + YYDEBUG(620, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy1213; - if (yych == 't') goto yy1213; - goto yy55; -yy1224: - YYDEBUG(1224, *YYCURSOR); + if (yych == 'A') goto yy808; + if (yych == 'a') goto yy808; + goto yy59; +yy621: + YYDEBUG(621, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'G') goto yy1225; - if (yych != 'g') goto yy55; -yy1225: - YYDEBUG(1225, *YYCURSOR); + if (yych == 'H') goto yy253; + if (yych == 'h') goto yy253; + goto yy59; +yy622: + YYDEBUG(622, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'H') goto yy1226; - if (yych != 'h') goto yy55; -yy1226: - YYDEBUG(1226, *YYCURSOR); + if (yych == 'O') goto yy809; + if (yych == 'o') goto yy809; + goto yy59; +yy623: + YYDEBUG(623, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy1213; - if (yych == 't') goto yy1213; - goto yy55; -yy1227: - YYDEBUG(1227, *YYCURSOR); - yyaccept = 26; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ' ') { - if (yych == '\t') goto yy1180; - if (yych <= 0x1F) goto yy1179; - goto yy1180; - } else { - if (yych <= 'D') { - if (yych <= 'C') goto yy1179; - } else { - if (yych != 'd') goto yy1179; - } - } - YYDEBUG(1228, *YYCURSOR); + if (yych == 'I') goto yy809; + if (yych == 'i') goto yy809; + goto yy59; +yy624: + YYDEBUG(624, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy1229; - if (yych != 'a') goto yy55; -yy1229: - YYDEBUG(1229, *YYCURSOR); + if (yych == 'T') goto yy810; + if (yych == 't') goto yy810; + goto yy59; +yy625: + YYDEBUG(625, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy1230; - if (yych != 'y') goto yy55; -yy1230: - YYDEBUG(1230, *YYCURSOR); - yyaccept = 26; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ' ') { - if (yych == '\t') goto yy1180; - if (yych <= 0x1F) goto yy1179; - goto yy1180; - } else { - if (yych <= 'S') { - if (yych <= 'R') goto yy1179; - goto yy1186; - } else { - if (yych == 's') goto yy1186; - goto yy1179; - } - } -yy1231: - YYDEBUG(1231, *YYCURSOR); + if (yych == 'H') goto yy425; + if (yych == 'h') goto yy425; + goto yy59; +yy626: + YYDEBUG(626, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy1213; - if (yych == 'y') goto yy1213; - goto yy55; -yy1232: - YYDEBUG(1232, *YYCURSOR); + if (yych == 'B') goto yy811; + if (yych == 'b') goto yy811; + goto yy59; +yy627: + YYDEBUG(627, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'U') goto yy1233; - if (yych != 'u') goto yy55; -yy1233: - YYDEBUG(1233, *YYCURSOR); + if (yych == 'R') goto yy630; + if (yych == 'r') goto yy630; + goto yy59; +yy628: + YYDEBUG(628, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy1213; - if (yych == 'r') goto yy1213; - goto yy55; -yy1234: - YYDEBUG(1234, *YYCURSOR); + if (yych == 'N') goto yy812; + if (yych == 'n') goto yy812; + goto yy59; +yy629: + YYDEBUG(629, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy1246; - if (yych == 'n') goto yy1246; - goto yy55; -yy1235: - YYDEBUG(1235, *YYCURSOR); + if (yych == 'S') goto yy630; + if (yych != 's') goto yy59; +yy630: + YYDEBUG(630, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy1240; - if (yych == 't') goto yy1240; - goto yy55; -yy1236: - YYDEBUG(1236, *YYCURSOR); + if (yych == 'D') goto yy198; + if (yych == 'd') goto yy198; + goto yy59; +yy631: + YYDEBUG(631, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy1237; - if (yych != 'c') goto yy55; -yy1237: - YYDEBUG(1237, *YYCURSOR); - yyaccept = 26; + if (yych == 'E') goto yy629; + if (yych == 'e') goto yy629; + goto yy59; +yy632: + YYDEBUG(632, *YYCURSOR); + yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'S') { - if (yych == 'O') goto yy1238; - if (yych <= 'R') goto yy1179; - goto yy1207; + if (yych == 'D') goto yy198; + if (yych <= 'R') goto yy260; + goto yy615; } else { - if (yych <= 'o') { - if (yych <= 'n') goto yy1179; - } else { - if (yych == 's') goto yy1207; - goto yy1179; - } - } -yy1238: - YYDEBUG(1238, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy1239; - if (yych != 'n') goto yy55; -yy1239: - YYDEBUG(1239, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy1213; - if (yych == 'd') goto yy1213; - goto yy55; -yy1240: - YYDEBUG(1240, *YYCURSOR); - yyaccept = 26; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ' ') { - if (yych == '\t') goto yy1180; - if (yych <= 0x1F) goto yy1179; - goto yy1180; - } else { - if (yych <= 'U') { - if (yych <= 'T') goto yy1179; + if (yych <= 'd') { + if (yych <= 'c') goto yy260; + goto yy198; } else { - if (yych != 'u') goto yy1179; + if (yych == 's') goto yy615; + goto yy260; } } - YYDEBUG(1241, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy1242; - if (yych != 'r') goto yy55; -yy1242: - YYDEBUG(1242, *YYCURSOR); +yy633: + YYDEBUG(633, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy1243; - if (yych != 'd') goto yy55; -yy1243: - YYDEBUG(1243, *YYCURSOR); + if (yych <= ',') goto yy59; + if (yych <= '.') goto yy396; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy635; + goto yy59; +yy634: + YYDEBUG(634, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy1244; - if (yych != 'a') goto yy55; -yy1244: - YYDEBUG(1244, *YYCURSOR); + if (yych <= ',') goto yy59; + if (yych <= '.') goto yy396; + if (yych <= '/') goto yy59; + if (yych >= '3') goto yy59; +yy635: + YYDEBUG(635, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy1245; - if (yych != 'y') goto yy55; -yy1245: - YYDEBUG(1245, *YYCURSOR); - yyaccept = 26; + if (yych <= ',') goto yy59; + if (yych <= '.') goto yy396; + goto yy59; +yy636: + YYDEBUG(636, *YYCURSOR); + yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ' ') { - if (yych == '\t') goto yy1180; - if (yych <= 0x1F) goto yy1179; - goto yy1180; + if (yych == '.') goto yy744; + if (yych <= '/') goto yy177; + if (yych <= '9') goto yy813; + goto yy177; +yy637: + YYDEBUG(637, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy744; + goto yy177; } else { - if (yych <= 'S') { - if (yych <= 'R') goto yy1179; - goto yy1186; + if (yych <= '0') goto yy813; + if (yych <= '9') goto yy738; + goto yy177; + } +yy638: + YYDEBUG(638, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); + yych = *YYCURSOR; + YYDEBUG(639, *YYCURSOR); + if (yych <= 'A') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy638; + goto yy59; } else { - if (yych == 's') goto yy1186; - goto yy1179; + if (yych <= ' ') goto yy638; + if (yych <= '@') goto yy59; + goto yy106; } - } -yy1246: - YYDEBUG(1246, *YYCURSOR); - yyaccept = 26; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ' ') { - if (yych == '\t') goto yy1180; - if (yych <= 0x1F) goto yy1179; - goto yy1180; } else { - if (yych <= 'D') { - if (yych <= 'C') goto yy1179; + if (yych <= '`') { + if (yych == 'P') goto yy106; + goto yy59; } else { - if (yych != 'd') goto yy1179; + if (yych <= 'a') goto yy106; + if (yych == 'p') goto yy106; + goto yy59; } } - YYDEBUG(1247, *YYCURSOR); +yy640: + YYDEBUG(640, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0xA0) goto yy814; + goto yy59; +yy641: + YYDEBUG(641, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0x80) goto yy815; + goto yy59; +yy642: + YYDEBUG(642, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy744; + if (yych <= '/') goto yy177; + if (yych <= '9') goto yy816; + goto yy177; +yy643: + YYDEBUG(643, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy744; + if (yych == '0') goto yy816; + goto yy177; +yy644: + YYDEBUG(644, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy1248; - if (yych != 'a') goto yy55; -yy1248: - YYDEBUG(1248, *YYCURSOR); + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy817; + if (yych <= '6') goto yy818; + if (yych <= '9') goto yy575; + goto yy59; +yy645: + YYDEBUG(645, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy1249; - if (yych != 'y') goto yy55; -yy1249: - YYDEBUG(1249, *YYCURSOR); - yyaccept = 26; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ' ') { - if (yych == '\t') goto yy1180; - if (yych <= 0x1F) goto yy1179; - goto yy1180; - } else { - if (yych <= 'S') { - if (yych <= 'R') goto yy1179; - goto yy1186; - } else { - if (yych == 's') goto yy1186; - goto yy1179; - } - } -yy1250: - YYDEBUG(1250, *YYCURSOR); + if (yych <= '/') goto yy59; + if (yych <= '2') goto yy819; + if (yych <= '3') goto yy820; + if (yych <= '9') goto yy821; + goto yy59; +yy646: + YYDEBUG(646, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy1251; - if (yych != 'e') goto yy55; -yy1251: - YYDEBUG(1251, *YYCURSOR); + if (yych == '-') goto yy822; + goto yy59; +yy647: + YYDEBUG(647, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy1213; - if (yych == 'c') goto yy1213; - goto yy55; -yy1252: - YYDEBUG(1252, *YYCURSOR); + if (yych == 'R') goto yy823; + if (yych == 'r') goto yy823; + goto yy59; +yy648: + YYDEBUG(648, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy1253; - if (yych != 's') goto yy55; -yy1253: - YYDEBUG(1253, *YYCURSOR); - yyaccept = 26; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'E') goto yy1254; - if (yych != 'e') goto yy1179; -yy1254: - YYDEBUG(1254, *YYCURSOR); + if (yych == 'G') goto yy823; + if (yych == 'g') goto yy823; + goto yy59; +yy649: + YYDEBUG(649, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy1213; - if (yych == 'c') goto yy1213; - goto yy55; -yy1255: - YYDEBUG(1255, *YYCURSOR); + if (yych == 'C') goto yy823; + if (yych == 'c') goto yy823; + goto yy59; +yy650: + YYDEBUG(650, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy1278; - if (yych == 'n') goto yy1278; - goto yy55; -yy1256: - YYDEBUG(1256, *YYCURSOR); + if (yych == 'B') goto yy823; + if (yych == 'b') goto yy823; + goto yy59; +yy651: + YYDEBUG(651, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy823; + if (yych == 'n') goto yy823; + goto yy59; +yy652: + YYDEBUG(652, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'N') { - if (yych <= 'K') { - if (yych == 'C') goto yy1260; - goto yy55; - } else { - if (yych <= 'L') goto yy1259; - if (yych <= 'M') goto yy55; - goto yy1261; - } + if (yych == 'L') goto yy823; + if (yych <= 'M') goto yy59; + goto yy823; } else { - if (yych <= 'k') { - if (yych == 'c') goto yy1260; - goto yy55; + if (yych <= 'l') { + if (yych <= 'k') goto yy59; + goto yy823; } else { - if (yych <= 'l') goto yy1259; - if (yych == 'n') goto yy1261; - goto yy55; + if (yych == 'n') goto yy823; + goto yy59; } } -yy1257: - YYDEBUG(1257, *YYCURSOR); - yyaccept = 26; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'E') goto yy1258; - if (yych != 'e') goto yy1179; -yy1258: - YYDEBUG(1258, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy1213; - if (yych == 'c') goto yy1213; - goto yy55; -yy1259: - YYDEBUG(1259, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy1271; - if (yych == 'l') goto yy1271; - goto yy55; -yy1260: - YYDEBUG(1260, *YYCURSOR); +yy653: + YYDEBUG(653, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy1264; - if (yych == 'r') goto yy1264; - goto yy55; -yy1261: - YYDEBUG(1261, *YYCURSOR); - yyaccept = 26; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'U') { - if (yych == 'S') goto yy1207; - if (yych <= 'T') goto yy1179; + if (yych <= 'Y') { + if (yych == 'R') goto yy823; + if (yych <= 'X') goto yy59; + goto yy823; } else { - if (yych <= 's') { - if (yych <= 'r') goto yy1179; - goto yy1207; + if (yych <= 'r') { + if (yych <= 'q') goto yy59; + goto yy823; } else { - if (yych != 'u') goto yy1179; + if (yych == 'y') goto yy823; + goto yy59; } } - YYDEBUG(1262, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy1263; - if (yych != 't') goto yy55; -yy1263: - YYDEBUG(1263, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy1213; - if (yych == 'e') goto yy1213; - goto yy55; -yy1264: - YYDEBUG(1264, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy1265; - if (yych != 'o') goto yy55; -yy1265: - YYDEBUG(1265, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy1266; - if (yych != 's') goto yy55; -yy1266: - YYDEBUG(1266, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy1267; - if (yych != 'e') goto yy55; -yy1267: - YYDEBUG(1267, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy1268; - if (yych != 'c') goto yy55; -yy1268: - YYDEBUG(1268, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy1269; - if (yych != 'o') goto yy55; -yy1269: - YYDEBUG(1269, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy1270; - if (yych != 'n') goto yy55; -yy1270: - YYDEBUG(1270, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy1213; - if (yych == 'd') goto yy1213; - goto yy55; -yy1271: - YYDEBUG(1271, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy1272; - if (yych != 'i') goto yy55; -yy1272: - YYDEBUG(1272, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy1273; - if (yych != 's') goto yy55; -yy1273: - YYDEBUG(1273, *YYCURSOR); +yy654: + YYDEBUG(654, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy1274; - if (yych != 'e') goto yy55; -yy1274: - YYDEBUG(1274, *YYCURSOR); + if (yych == 'V') goto yy823; + if (yych == 'v') goto yy823; + goto yy59; +yy655: + YYDEBUG(655, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'C') goto yy1275; - if (yych != 'c') goto yy55; -yy1275: - YYDEBUG(1275, *YYCURSOR); + if (yych == 'T') goto yy823; + if (yych == 't') goto yy823; + goto yy59; +yy656: + YYDEBUG(656, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy1276; - if (yych != 'o') goto yy55; -yy1276: - YYDEBUG(1276, *YYCURSOR); + if (yych == 'P') goto yy824; + if (yych == 'p') goto yy824; + goto yy59; +yy657: + YYDEBUG(657, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'N') goto yy1277; - if (yych != 'n') goto yy55; -yy1277: - YYDEBUG(1277, *YYCURSOR); + if (yych <= '/') goto yy290; + if (yych <= '9') goto yy825; + goto yy290; +yy658: + YYDEBUG(658, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy1213; - if (yych == 'd') goto yy1213; - goto yy55; -yy1278: - YYDEBUG(1278, *YYCURSOR); - yyaccept = 26; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'D') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy1180; - goto yy1179; - } else { - if (yych <= ' ') goto yy1180; - if (yych <= 'C') goto yy1179; - } + if (yych <= '@') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= 'c') { - if (yych == 'T') goto yy1280; - goto yy1179; - } else { - if (yych <= 'd') goto yy1279; - if (yych == 't') goto yy1280; - goto yy1179; - } + if (yych <= 'Z') goto yy826; + if (yych <= '`') goto yy20; + if (yych <= 'z') goto yy826; + goto yy20; } -yy1279: - YYDEBUG(1279, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy1281; - if (yych == 'a') goto yy1281; - goto yy55; -yy1280: - YYDEBUG(1280, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy1213; - if (yych == 'h') goto yy1213; - goto yy55; -yy1281: - YYDEBUG(1281, *YYCURSOR); +yy659: + YYDEBUG(659, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy1282; - if (yych != 'y') goto yy55; -yy1282: - YYDEBUG(1282, *YYCURSOR); - yyaccept = 26; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ' ') { - if (yych == '\t') goto yy1180; - if (yych <= 0x1F) goto yy1179; - goto yy1180; - } else { - if (yych <= 'S') { - if (yych <= 'R') goto yy1179; - goto yy1186; - } else { - if (yych == 's') goto yy1186; - goto yy1179; - } - } -yy1283: - YYDEBUG(1283, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'D') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= '9') { + if (yych <= ' ') { + if (yych <= 0x08) { + if (yych <= 0x00) goto yy324; + goto yy59; + } else { + if (yych <= '\t') goto yy326; + if (yych <= 0x1F) goto yy59; + goto yy326; + } } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy183; + if (yych <= '-') { + if (yych == ',') goto yy326; + goto yy59; + } else { + if (yych <= '.') goto yy326; + if (yych <= '/') goto yy59; + goto yy827; + } } } else { - if (yych <= '_') { - if (yych <= 'E') goto yy1158; - if (yych <= 'Z') goto yy183; - if (yych <= '^') goto yy3; - goto yy189; - } else { + if (yych <= 'm') { if (yych <= 'd') { - if (yych <= '`') goto yy3; - goto yy188; + if (yych <= 'c') goto yy59; + goto yy326; } else { - if (yych <= 'e') goto yy1284; - if (yych <= 'z') goto yy188; - goto yy3; + if (yych == 'h') goto yy326; + goto yy59; } - } - } -yy1284: - YYDEBUG(1284, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'U') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy184; - } - } else { - if (yych <= '_') { - if (yych <= 'V') goto yy1159; - if (yych <= 'Z') goto yy184; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 'u') { - if (yych <= '`') goto yy3; - goto yy192; + if (yych <= 'r') { + if (yych <= 'n') goto yy329; + if (yych <= 'q') goto yy59; + goto yy329; } else { - if (yych <= 'v') goto yy1285; - if (yych <= 'z') goto yy192; - goto yy3; + if (yych <= 's') goto yy330; + if (yych <= 't') goto yy331; + goto yy59; } } } -yy1285: - YYDEBUG(1285, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'H') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy185; - } - } else { - if (yych <= '_') { - if (yych <= 'I') goto yy1160; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 'h') { - if (yych <= '`') goto yy3; - goto yy193; +yy660: + YYDEBUG(660, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '1') { + if (yych <= ' ') { + if (yych <= 0x08) { + if (yych <= 0x00) goto yy324; + goto yy59; } else { - if (yych <= 'i') goto yy1286; - if (yych <= 'z') goto yy193; - goto yy3; + if (yych <= '\t') goto yy326; + if (yych <= 0x1F) goto yy59; + goto yy326; } - } - } -yy1286: - YYDEBUG(1286, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'N') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy186; + if (yych <= '-') { + if (yych == ',') goto yy326; + goto yy59; + } else { + if (yych <= '.') goto yy326; + if (yych <= '/') goto yy59; + goto yy827; + } } } else { - if (yych <= '_') { - if (yych <= 'O') goto yy1161; - if (yych <= 'Z') goto yy186; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'm') { + if (yych <= 'd') { + if (yych <= '9') goto yy332; + if (yych <= 'c') goto yy59; + goto yy326; + } else { + if (yych == 'h') goto yy326; + goto yy59; + } } else { - if (yych <= 'n') { - if (yych <= '`') goto yy3; - goto yy194; + if (yych <= 'r') { + if (yych <= 'n') goto yy329; + if (yych <= 'q') goto yy59; + goto yy329; } else { - if (yych <= 'o') goto yy1287; - if (yych <= 'z') goto yy194; - goto yy3; + if (yych <= 's') goto yy330; + if (yych <= 't') goto yy331; + goto yy59; } } } -yy1287: - YYDEBUG(1287, *YYCURSOR); - yyaccept = 1; +yy661: + YYDEBUG(661, *YYCURSOR); + yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'T') { - if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy3; - } else { - if (yych == '.') goto yy3; - if (yych <= '/') goto yy189; - goto yy3; - } - } else { - if (yych <= '`') { - if (yych <= 'U') goto yy1162; - if (yych == '_') goto yy189; - goto yy3; - } else { - if (yych == 'u') goto yy1288; - if (yych <= 'z') goto yy195; - goto yy3; - } - } -yy1288: - YYDEBUG(1288, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy1163; - if (yych != 's') goto yy196; - YYDEBUG(1289, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 8) { - goto yy195; - } if (yych <= ',') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy55; - goto yy1164; - } else { - if (yych == ' ') goto yy1164; - goto yy55; - } - } else { - if (yych <= '/') { - if (yych == '.') goto yy55; - goto yy189; - } else { - if (yych == '_') goto yy189; - goto yy55; - } - } -yy1290: - YYDEBUG(1290, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'G') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'F') goto yy183; - goto yy1304; - } - } else { - if (yych <= 'f') { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - goto yy183; - } else { - if (yych <= 'g') goto yy1304; - if (yych <= 'z') goto yy183; - goto yy3; - } - } -yy1291: - YYDEBUG(1291, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'E') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= 0x1F) { + if (yych == '\t') goto yy142; + goto yy295; } else { - if (yych <= '@') goto yy3; - if (yych <= 'D') goto yy183; + if (yych <= ' ') goto yy142; + if (yych == ')') goto yy115; + goto yy295; } } else { - if (yych <= 'd') { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - goto yy183; - } else { - if (yych <= 'e') goto yy1292; - if (yych <= 'z') goto yy183; - goto yy3; + if (yych <= '@') { + if (yych == '/') goto yy295; + if (yych <= '9') goto yy142; + goto yy295; + } else { + if (yych <= 'Z') goto yy826; + if (yych <= '`') goto yy295; + if (yych <= 'z') goto yy826; + goto yy295; } } -yy1292: - YYDEBUG(1292, *YYCURSOR); +yy662: + YYDEBUG(662, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'V') { + if (yych <= 'T') { if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= '@') goto yy3; - if (yych <= 'U') goto yy184; + if (yych <= '@') goto yy20; + if (yych <= 'S') goto yy826; + goto yy828; } } else { - if (yych <= 'u') { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy3; - goto yy184; - } else { - if (yych <= 'v') goto yy1293; - if (yych <= 'z') goto yy184; - goto yy3; - } - } -yy1293: - YYDEBUG(1293, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'E') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= 's') { + if (yych <= 'Z') goto yy826; + if (yych <= '`') goto yy20; + goto yy826; } else { - if (yych <= '@') goto yy3; - if (yych <= 'D') goto yy185; - } - } else { - if (yych <= 'd') { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy3; - goto yy185; - } else { - if (yych <= 'e') goto yy1294; - if (yych <= 'z') goto yy185; - goto yy3; + if (yych <= 't') goto yy828; + if (yych <= 'z') goto yy826; + goto yy20; } } -yy1294: - YYDEBUG(1294, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'N') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; +yy663: + YYDEBUG(663, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= ',') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= '@') goto yy3; - if (yych <= 'M') goto yy186; + if (yych == '.') goto yy20; + goto yy297; } } else { - if (yych <= 'm') { - if (yych <= 'Z') goto yy186; - if (yych <= '`') goto yy3; - goto yy186; - } else { - if (yych <= 'n') goto yy1295; - if (yych <= 'z') goto yy186; - goto yy3; + if (yych <= '^') { + if (yych <= '@') goto yy20; + if (yych <= 'Z') goto yy826; + goto yy20; + } else { + if (yych <= '_') goto yy297; + if (yych <= '`') goto yy20; + if (yych <= 'z') goto yy829; + goto yy20; } } -yy1295: - YYDEBUG(1295, *YYCURSOR); - yyaccept = 1; +yy664: + YYDEBUG(664, *YYCURSOR); + yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'S') { - if (yych == ')') goto yy181; - goto yy3; - } else { - if (yych <= 'T') goto yy1296; - if (yych != 't') goto yy3; - } -yy1296: - YYDEBUG(1296, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy1297; - if (yych != 'h') goto yy55; -yy1297: - YYDEBUG(1297, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\t') goto yy1298; - if (yych != ' ') goto yy55; -yy1298: - YYDEBUG(1298, *YYCURSOR); - ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12); - yych = *YYCURSOR; -yy1299: - YYDEBUG(1299, *YYCURSOR); - if (yych <= 'X') { - if (yych <= 'G') { - if (yych <= ' ') { - if (yych == '\t') goto yy1298; - if (yych <= 0x1F) goto yy55; - goto yy1298; - } else { - if (yych <= 'D') { - if (yych <= 'C') goto yy55; - goto yy1171; - } else { - if (yych == 'F') goto yy1172; - goto yy55; - } - } + if (yych <= '.') { + if (yych <= ' ') { + if (yych == '\t') goto yy142; + if (yych <= 0x1F) goto yy295; + goto yy142; } else { - if (yych <= 'S') { - if (yych <= 'L') { - if (yych <= 'H') goto yy1170; - goto yy55; - } else { - if (yych <= 'M') goto yy1166; - if (yych <= 'R') goto yy55; - goto yy1169; - } + if (yych <= ')') { + if (yych <= '(') goto yy295; + goto yy115; } else { - if (yych <= 'U') { - if (yych <= 'T') goto yy1175; - goto yy1168; - } else { - if (yych != 'W') goto yy55; - } + if (yych <= ',') goto yy295; + if (yych <= '-') goto yy700; + goto yy142; } } } else { - if (yych <= 'r') { - if (yych <= 'f') { - if (yych <= 'c') { - if (yych <= 'Y') goto yy1173; - goto yy55; - } else { - if (yych <= 'd') goto yy1171; - if (yych <= 'e') goto yy55; - goto yy1172; - } - } else { - if (yych <= 'h') { - if (yych <= 'g') goto yy55; - goto yy1170; - } else { - if (yych == 'm') goto yy1166; - goto yy55; - } - } + if (yych <= 'Z') { + if (yych <= '/') goto yy297; + if (yych <= '9') goto yy142; + if (yych <= '@') goto yy295; + goto yy826; } else { - if (yych <= 'w') { - if (yych <= 't') { - if (yych <= 's') goto yy1169; - goto yy1175; - } else { - if (yych <= 'u') goto yy1168; - if (yych <= 'v') goto yy55; - } + if (yych <= '_') { + if (yych <= '^') goto yy295; + goto yy297; } else { - if (yych <= 'y') { - if (yych <= 'x') goto yy55; - goto yy1173; - } else { - if (yych == 0xC2) goto yy1167; - goto yy55; - } + if (yych <= '`') goto yy295; + if (yych <= 'z') goto yy829; + goto yy295; } } } - YYDEBUG(1300, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy1301; - if (yych != 'e') goto yy55; -yy1301: - YYDEBUG(1301, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'E') { - if (yych <= 'C') goto yy55; - if (yych <= 'D') goto yy1198; - } else { - if (yych <= 'c') goto yy55; - if (yych <= 'd') goto yy1198; - if (yych >= 'f') goto yy55; - } - YYDEBUG(1302, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'K') goto yy1303; - if (yych != 'k') goto yy55; -yy1303: - YYDEBUG(1303, *YYCURSOR); - yych = *++YYCURSOR; +yy665: + YYDEBUG(665, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'S') { - if (yych == 'D') goto yy1208; - if (yych <= 'R') goto yy55; - goto yy1207; - } else { - if (yych <= 'd') { - if (yych <= 'c') goto yy55; - goto yy1208; - } else { - if (yych == 's') goto yy1207; - goto yy55; - } - } -yy1304: - YYDEBUG(1304, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'H') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= '@') goto yy3; - if (yych <= 'G') goto yy184; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy826; } } else { - if (yych <= 'g') { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy3; - goto yy184; - } else { - if (yych <= 'h') goto yy1305; - if (yych <= 'z') goto yy184; - goto yy3; + if (yych <= '_') { + if (yych <= 'T') goto yy828; + if (yych <= 'Z') goto yy826; + if (yych <= '^') goto yy20; + goto yy297; + } else { + if (yych <= 's') { + if (yych <= '`') goto yy20; + goto yy829; + } else { + if (yych <= 't') goto yy830; + if (yych <= 'z') goto yy829; + goto yy20; + } } } -yy1305: - YYDEBUG(1305, *YYCURSOR); +yy666: + YYDEBUG(666, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'T') { + if (yych == 'O') goto yy831; + if (yych == 'o') goto yy831; + goto yy59; +yy667: + YYDEBUG(667, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'B') { if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= '@') goto yy3; - if (yych <= 'S') goto yy185; + if (yych <= '@') goto yy20; + if (yych <= 'A') goto yy826; + goto yy832; } } else { - if (yych <= 's') { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy3; - goto yy185; - } else { - if (yych <= 't') goto yy1306; - if (yych <= 'z') goto yy185; - goto yy3; - } - } -yy1306: - YYDEBUG(1306, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '@') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy1298; - goto yy3; + if (yych <= 'a') { + if (yych <= 'Z') goto yy826; + if (yych <= '`') goto yy20; + goto yy826; } else { - if (yych <= ' ') goto yy1298; - if (yych == ')') goto yy181; - goto yy3; - } - } else { - if (yych <= '`') { - if (yych == 'H') goto yy1307; - if (yych <= 'Z') goto yy186; - goto yy3; - } else { - if (yych == 'h') goto yy1307; - if (yych <= 'z') goto yy186; - goto yy3; + if (yych <= 'b') goto yy832; + if (yych <= 'z') goto yy826; + goto yy20; } } -yy1307: - YYDEBUG(1307, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 0x1F) { - if (yych == '\t') goto yy1298; - goto yy3; - } else { - if (yych <= ' ') goto yy1298; - if (yych == ')') goto yy181; - goto yy3; - } -yy1308: - YYDEBUG(1308, *YYCURSOR); - yyaccept = 1; +yy668: + YYDEBUG(668, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'F') { + if (yych <= 'A') { if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy183; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy826; } } else { if (yych <= '_') { - if (yych <= 'G') goto yy1304; - if (yych <= 'Z') goto yy183; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'B') goto yy832; + if (yych <= 'Z') goto yy826; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 'f') { - if (yych <= '`') goto yy3; - goto yy188; + if (yych <= 'a') { + if (yych <= '`') goto yy20; + goto yy829; } else { - if (yych <= 'g') goto yy1316; - if (yych <= 'z') goto yy188; - goto yy3; + if (yych <= 'b') goto yy833; + if (yych <= 'z') goto yy829; + goto yy20; } } } -yy1309: - YYDEBUG(1309, *YYCURSOR); - yyaccept = 1; +yy669: + YYDEBUG(669, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'D') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= 'H') { + if (yych <= ' ') { + if (yych == '\t') goto yy834; + if (yych <= 0x1F) goto yy20; + goto yy834; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy183; + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; + } else { + if (yych <= '@') goto yy20; + if (yych <= 'G') goto yy826; + goto yy836; + } } } else { - if (yych <= '_') { - if (yych <= 'E') goto yy1292; - if (yych <= 'Z') goto yy183; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'z') { + if (yych <= '`') { + if (yych <= 'Z') goto yy826; + goto yy20; + } else { + if (yych == 'h') goto yy836; + goto yy826; + } } else { - if (yych <= 'd') { - if (yych <= '`') goto yy3; - goto yy188; + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy20; + goto yy837; } else { - if (yych <= 'e') goto yy1310; - if (yych <= 'z') goto yy188; - goto yy3; + if (yych == 0xE2) goto yy838; + goto yy20; } } } -yy1310: - YYDEBUG(1310, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'U') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; +yy670: + YYDEBUG(670, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'N') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy184; + if (yych <= '@') goto yy20; + if (yych <= 'M') goto yy826; + goto yy839; } } else { - if (yych <= '_') { - if (yych <= 'V') goto yy1293; - if (yych <= 'Z') goto yy184; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'm') { + if (yych <= 'Z') goto yy826; + if (yych <= '`') goto yy20; + goto yy826; } else { - if (yych <= 'u') { - if (yych <= '`') goto yy3; - goto yy192; - } else { - if (yych <= 'v') goto yy1311; - if (yych <= 'z') goto yy192; - goto yy3; - } + if (yych <= 'n') goto yy839; + if (yych <= 'z') goto yy826; + goto yy20; } } -yy1311: - YYDEBUG(1311, *YYCURSOR); - yyaccept = 1; +yy671: + YYDEBUG(671, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'D') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= 'G') { + if (yych <= ')') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy834; + goto yy20; + } else { + if (yych <= ' ') goto yy834; + if (yych <= '(') goto yy20; + goto yy115; + } } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy185; + if (yych <= '.') { + if (yych == '-') goto yy297; + goto yy20; + } else { + if (yych <= '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy826; + } } } else { - if (yych <= '_') { - if (yych <= 'E') goto yy1294; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 'd') { - if (yych <= '`') goto yy3; - goto yy193; - } else { - if (yych <= 'e') goto yy1312; - if (yych <= 'z') goto yy193; - goto yy3; + if (yych <= 'g') { + if (yych <= '^') { + if (yych <= 'H') goto yy836; + if (yych <= 'Z') goto yy826; + goto yy20; + } else { + if (yych <= '_') goto yy297; + if (yych <= '`') goto yy20; + goto yy829; + } + } else { + if (yych <= 0xC1) { + if (yych <= 'h') goto yy840; + if (yych <= 'z') goto yy829; + goto yy20; + } else { + if (yych <= 0xC2) goto yy837; + if (yych == 0xE2) goto yy838; + goto yy20; } } } -yy1312: - YYDEBUG(1312, *YYCURSOR); - yyaccept = 1; +yy672: + YYDEBUG(672, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'M') { if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy186; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy826; } } else { if (yych <= '_') { - if (yych <= 'N') goto yy1295; - if (yych <= 'Z') goto yy186; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'N') goto yy839; + if (yych <= 'Z') goto yy826; + if (yych <= '^') goto yy20; + goto yy297; } else { if (yych <= 'm') { - if (yych <= '`') goto yy3; - goto yy194; + if (yych <= '`') goto yy20; + goto yy829; } else { - if (yych <= 'n') goto yy1313; - if (yych <= 'z') goto yy194; - goto yy3; + if (yych <= 'n') goto yy841; + if (yych <= 'z') goto yy829; + goto yy20; } } } -yy1313: - YYDEBUG(1313, *YYCURSOR); - yyaccept = 1; +yy673: + YYDEBUG(673, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'A') { + if (yych == ')') goto yy115; + if (yych <= '@') goto yy20; + goto yy842; + } else { + if (yych <= '`') { + if (yych <= 'Z') goto yy826; + goto yy20; + } else { + if (yych <= 'a') goto yy842; + if (yych <= 'z') goto yy826; + goto yy20; + } + } +yy674: + YYDEBUG(674, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'S') { - if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy3; + if (yych <= '@') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy834; + goto yy20; } else { - if (yych == '.') goto yy3; - if (yych <= '/') goto yy189; - goto yy3; + if (yych <= ' ') goto yy834; + if (yych == ')') goto yy115; + goto yy20; + } + } else { + if (yych <= 0xC1) { + if (yych <= 'Z') goto yy826; + if (yych <= '`') goto yy20; + if (yych <= 'z') goto yy826; + goto yy20; + } else { + if (yych <= 0xC2) goto yy837; + if (yych == 0xE2) goto yy838; + goto yy20; } - } else { - if (yych <= '`') { - if (yych <= 'T') goto yy1296; - if (yych == '_') goto yy189; - goto yy3; - } else { - if (yych == 't') goto yy1314; - if (yych <= 'z') goto yy195; - goto yy3; + } +yy675: + YYDEBUG(675, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '@') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy834; + goto yy20; + } else { + if (yych <= ' ') goto yy843; + if (yych == ')') goto yy115; + goto yy20; + } + } else { + if (yych <= 0xC1) { + if (yych <= 'Z') goto yy826; + if (yych <= '`') goto yy20; + if (yych <= 'z') goto yy826; + goto yy20; + } else { + if (yych <= 0xC2) goto yy837; + if (yych == 0xE2) goto yy838; + goto yy20; } } -yy1314: - YYDEBUG(1314, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy1297; - if (yych != 'h') goto yy196; -yy1315: - YYDEBUG(1315, *YYCURSOR); +yy676: + YYDEBUG(676, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 8) { - goto yy195; - } - if (yych <= ',') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy55; - goto yy1298; + if (yych <= 'H') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych == ' ') goto yy1298; - goto yy55; + if (yych <= '@') goto yy20; + if (yych <= 'G') goto yy826; + goto yy836; } } else { - if (yych <= '/') { - if (yych == '.') goto yy55; - goto yy189; + if (yych <= 'g') { + if (yych <= 'Z') goto yy826; + if (yych <= '`') goto yy20; + goto yy826; } else { - if (yych == '_') goto yy189; - goto yy55; + if (yych <= 'h') goto yy836; + if (yych <= 'z') goto yy826; + goto yy20; } } -yy1316: - YYDEBUG(1316, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'G') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; +yy677: + YYDEBUG(677, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'Y') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy184; + if (yych <= '@') goto yy20; + if (yych <= 'X') goto yy826; + goto yy844; } } else { - if (yych <= '_') { - if (yych <= 'H') goto yy1305; - if (yych <= 'Z') goto yy184; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'x') { + if (yych <= 'Z') goto yy826; + if (yych <= '`') goto yy20; + goto yy826; } else { - if (yych <= 'g') { - if (yych <= '`') goto yy3; - goto yy192; - } else { - if (yych <= 'h') goto yy1317; - if (yych <= 'z') goto yy192; - goto yy3; - } + if (yych <= 'y') goto yy844; + if (yych <= 'z') goto yy826; + goto yy20; } } -yy1317: - YYDEBUG(1317, *YYCURSOR); - yyaccept = 1; +yy678: + YYDEBUG(678, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'S') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= ')') { + if (yych == ' ') goto yy666; + if (yych <= '(') goto yy20; + goto yy115; + } else { + if (yych <= 'Z') { + if (yych <= '@') goto yy20; + goto yy826; + } else { + if (yych <= '`') goto yy20; + if (yych <= 'z') goto yy826; + goto yy20; + } + } +yy679: + YYDEBUG(679, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '@') { + if (yych <= ',') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy185; + if (yych == '.') goto yy20; + if (yych <= '/') goto yy297; + goto yy20; } } else { if (yych <= '_') { - if (yych <= 'T') goto yy1306; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'A') goto yy842; + if (yych <= 'Z') goto yy826; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 's') { - if (yych <= '`') goto yy3; - goto yy193; - } else { - if (yych <= 't') goto yy1318; - if (yych <= 'z') goto yy193; - goto yy3; - } + if (yych <= '`') goto yy20; + if (yych <= 'a') goto yy845; + if (yych <= 'z') goto yy829; + goto yy20; } } -yy1318: - YYDEBUG(1318, *YYCURSOR); - yyaccept = 1; +yy680: + YYDEBUG(680, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= '(') { if (yych <= '\t') { - if (yych <= 0x08) goto yy3; - goto yy1298; + if (yych <= 0x08) goto yy20; + goto yy834; } else { - if (yych == ' ') goto yy1298; - goto yy3; + if (yych == ' ') goto yy834; + goto yy20; } } else { if (yych <= ',') { - if (yych <= ')') goto yy181; - goto yy3; + if (yych <= ')') goto yy115; + goto yy20; } else { - if (yych == '.') goto yy3; - goto yy189; + if (yych == '.') goto yy20; + goto yy297; } } } else { - if (yych <= '^') { - if (yych <= 'G') { - if (yych <= '@') goto yy3; - goto yy186; + if (yych <= '`') { + if (yych <= 'Z') { + if (yych <= '@') goto yy20; + goto yy826; } else { - if (yych <= 'H') goto yy1307; - if (yych <= 'Z') goto yy186; - goto yy3; + if (yych == '_') goto yy297; + goto yy20; } } else { - if (yych <= 'g') { - if (yych <= '_') goto yy189; - if (yych <= '`') goto yy3; - goto yy194; - } else { - if (yych <= 'h') goto yy1319; - if (yych <= 'z') goto yy194; - goto yy3; + if (yych <= 0xC2) { + if (yych <= 'z') goto yy829; + if (yych <= 0xC1) goto yy20; + goto yy837; + } else { + if (yych == 0xE2) goto yy838; + goto yy20; } } } -yy1319: - YYDEBUG(1319, *YYCURSOR); - yyaccept = 1; +yy681: + YYDEBUG(681, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 8) { - goto yy195; - } - if (yych <= ')') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy1298; - goto yy3; - } else { - if (yych <= ' ') goto yy1298; - if (yych <= '(') goto yy3; - goto yy181; - } - } else { - if (yych <= '.') { - if (yych == '-') goto yy189; - goto yy3; - } else { - if (yych <= '/') goto yy189; - if (yych == '_') goto yy189; - goto yy3; - } - } -yy1320: - YYDEBUG(1320, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'V') { - if (yych <= 'B') { - if (yych == ')') goto yy181; - if (yych <= '@') goto yy3; - goto yy183; + if (yych <= '/') { + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy20; + goto yy834; + } else { + if (yych == ' ') goto yy843; + goto yy20; + } } else { - if (yych <= 'O') { - if (yych <= 'C') goto yy1337; - goto yy183; + if (yych <= ',') { + if (yych <= ')') goto yy115; + goto yy20; } else { - if (yych <= 'P') goto yy1339; - if (yych <= 'U') goto yy183; - goto yy1338; + if (yych == '.') goto yy20; + goto yy297; } } } else { - if (yych <= 'o') { - if (yych <= '`') { - if (yych <= 'Z') goto yy183; - goto yy3; + if (yych <= '`') { + if (yych <= 'Z') { + if (yych <= '@') goto yy20; + goto yy826; } else { - if (yych == 'c') goto yy1337; - goto yy183; + if (yych == '_') goto yy297; + goto yy20; } } else { - if (yych <= 'u') { - if (yych <= 'p') goto yy1339; - goto yy183; + if (yych <= 0xC2) { + if (yych <= 'z') goto yy829; + if (yych <= 0xC1) goto yy20; + goto yy837; } else { - if (yych <= 'v') goto yy1338; - if (yych <= 'z') goto yy183; - goto yy3; + if (yych == 0xE2) goto yy838; + goto yy20; } } } -yy1321: - YYDEBUG(1321, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; +yy682: + YYDEBUG(682, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'G') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= '@') goto yy3; - if (yych <= 'S') goto yy183; - goto yy1331; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy826; } } else { - if (yych <= 's') { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - goto yy183; + if (yych <= '_') { + if (yych <= 'H') goto yy836; + if (yych <= 'Z') goto yy826; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 't') goto yy1331; - if (yych <= 'z') goto yy183; - goto yy3; + if (yych <= 'g') { + if (yych <= '`') goto yy20; + goto yy829; + } else { + if (yych <= 'h') goto yy840; + if (yych <= 'z') goto yy829; + goto yy20; + } } } -yy1322: - YYDEBUG(1322, *YYCURSOR); - yych = *++YYCURSOR; +yy683: + YYDEBUG(683, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'X') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= '@') goto yy3; - if (yych <= 'W') goto yy183; - goto yy1328; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy826; } } else { - if (yych <= 'w') { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - goto yy183; - } else { - if (yych <= 'x') goto yy1328; - if (yych <= 'z') goto yy183; - goto yy3; + if (yych <= '_') { + if (yych <= 'Y') goto yy844; + if (yych <= 'Z') goto yy826; + if (yych <= '^') goto yy20; + goto yy297; + } else { + if (yych <= 'x') { + if (yych <= '`') goto yy20; + goto yy829; + } else { + if (yych <= 'y') goto yy846; + if (yych <= 'z') goto yy829; + goto yy20; + } } } -yy1323: - YYDEBUG(1323, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'N') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; +yy684: + YYDEBUG(684, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { + if (yych <= '(') { + if (yych == ' ') goto yy666; + goto yy20; } else { - if (yych <= '@') goto yy3; - if (yych <= 'M') goto yy183; + if (yych <= ')') goto yy115; + if (yych == '-') goto yy297; + goto yy20; } } else { - if (yych <= 'm') { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - goto yy183; - } else { - if (yych <= 'n') goto yy1324; - if (yych <= 'z') goto yy183; - goto yy3; + if (yych <= '^') { + if (yych <= '/') goto yy297; + if (yych <= '@') goto yy20; + if (yych <= 'Z') goto yy826; + goto yy20; + } else { + if (yych <= '_') goto yy297; + if (yych <= '`') goto yy20; + if (yych <= 'z') goto yy829; + goto yy20; } } -yy1324: - YYDEBUG(1324, *YYCURSOR); +yy685: + YYDEBUG(685, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') goto yy20; + if (yych <= '9') goto yy847; + if (yych <= ':') goto yy203; + goto yy20; +yy686: + YYDEBUG(686, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '5') { + if (yych <= '/') goto yy20; + if (yych <= '4') goto yy847; + goto yy394; + } else { + if (yych <= '9') goto yy115; + if (yych <= ':') goto yy203; + goto yy20; + } +yy687: + YYDEBUG(687, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') goto yy20; + if (yych <= '5') goto yy394; + if (yych <= '9') goto yy115; + if (yych <= ':') goto yy203; + goto yy20; +yy688: + YYDEBUG(688, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'D') { - if (yych <= ')') { - if (yych <= '(') goto yy219; - goto yy181; - } else { - if (yych <= '@') goto yy219; - if (yych <= 'C') goto yy184; - } + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy848; + if (yych <= '9') goto yy850; + goto yy59; +yy689: + YYDEBUG(689, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '.') goto yy688; + if (yych == ':') goto yy688; + goto yy59; +yy690: + YYDEBUG(690, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy851; + if (yych <= '9') goto yy852; + goto yy59; +yy691: + YYDEBUG(691, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') { + if (yych == '.') goto yy688; + goto yy59; } else { - if (yych <= 'c') { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy219; - goto yy184; - } else { - if (yych <= 'd') goto yy1325; - if (yych <= 'z') goto yy184; - goto yy219; - } + if (yych <= '9') goto yy689; + if (yych <= ':') goto yy688; + goto yy59; } -yy1325: - YYDEBUG(1325, *YYCURSOR); +yy692: + YYDEBUG(692, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'A') { - if (yych == ')') goto yy181; - if (yych <= '@') goto yy3; + if (yych <= '/') { + if (yych == '.') goto yy688; + goto yy59; } else { - if (yych <= '`') { - if (yych <= 'Z') goto yy185; - goto yy3; - } else { - if (yych <= 'a') goto yy1326; - if (yych <= 'z') goto yy185; - goto yy3; - } + if (yych <= '4') goto yy689; + if (yych == ':') goto yy688; + goto yy59; } -yy1326: - YYDEBUG(1326, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'Y') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'X') goto yy186; - } +yy693: + YYDEBUG(693, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy688; + goto yy325; } else { - if (yych <= 'x') { - if (yych <= 'Z') goto yy186; - if (yych <= '`') goto yy3; - goto yy186; - } else { - if (yych <= 'y') goto yy1327; - if (yych <= 'z') goto yy186; - goto yy3; - } + if (yych <= '9') goto yy853; + if (yych <= ':') goto yy688; + goto yy325; } -yy1327: - YYDEBUG(1327, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'R') { - if (yych == ')') goto yy181; - goto yy219; +yy694: + YYDEBUG(694, *YYCURSOR); + yyaccept = 10; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy690; + goto yy325; } else { - if (yych <= 'S') goto yy225; - if (yych == 's') goto yy225; - goto yy219; + if (yych <= '9') goto yy853; + if (yych <= ':') goto yy690; + goto yy325; } -yy1328: - YYDEBUG(1328, *YYCURSOR); +yy695: + YYDEBUG(695, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'S') goto yy184; - } - } else { - if (yych <= 's') { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy3; - goto yy184; - } else { - if (yych <= 't') goto yy1329; - if (yych <= 'z') goto yy184; - goto yy3; - } + if (yych <= '/') goto yy325; + if (yych <= '9') goto yy853; + goto yy325; +yy696: + YYDEBUG(696, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(697, *YYCURSOR); +#line 1590 "ext/date/lib/parse_date.re" + { + int length = 0; + DEBUG_OUTPUT("datenoday"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->m = timelib_get_month(&ptr); + s->time->y = timelib_get_nr_ex(&ptr, 4, &length); + s->time->d = 1; + TIMELIB_PROCESS_YEAR(s->time->y, length); + TIMELIB_DEINIT; + return TIMELIB_DATE_NO_DAY; } -yy1329: - YYDEBUG(1329, *YYCURSOR); +#line 15970 "" +yy698: + YYDEBUG(698, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'H') { + if (yych <= 'R') { if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= '@') goto yy3; - if (yych <= 'G') goto yy185; + if (yych <= '@') goto yy20; + if (yych <= 'Q') goto yy826; + goto yy854; } } else { - if (yych <= 'g') { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy3; - goto yy185; - } else { - if (yych <= 'h') goto yy1330; - if (yych <= 'z') goto yy185; - goto yy3; + if (yych <= 'q') { + if (yych <= 'Z') goto yy826; + if (yych <= '`') goto yy20; + goto yy826; + } else { + if (yych <= 'r') goto yy854; + if (yych <= 'z') goto yy826; + goto yy20; } } -yy1330: - YYDEBUG(1330, *YYCURSOR); - yyaccept = 1; +yy699: + YYDEBUG(699, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '(') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy3; - goto yy1298; + if (yych <= 'Q') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == ' ') goto yy1298; - goto yy3; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy826; } } else { - if (yych <= 'Z') { - if (yych <= ')') goto yy181; - if (yych <= '@') goto yy3; - goto yy186; - } else { - if (yych <= '`') goto yy3; - if (yych <= 'z') goto yy186; - goto yy3; - } - } -yy1331: - YYDEBUG(1331, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych <= ')') { - if (yych <= '(') goto yy219; - goto yy181; + if (yych <= '_') { + if (yych <= 'R') goto yy854; + if (yych <= 'Z') goto yy826; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= '@') goto yy219; - if (yych <= 'T') goto yy184; - } - } else { - if (yych <= 't') { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy219; - goto yy184; - } else { - if (yych <= 'u') goto yy1332; - if (yych <= 'z') goto yy184; - goto yy219; + if (yych <= 'q') { + if (yych <= '`') goto yy20; + goto yy829; + } else { + if (yych <= 'r') goto yy855; + if (yych <= 'z') goto yy829; + goto yy20; + } } } -yy1332: - YYDEBUG(1332, *YYCURSOR); +yy700: + YYDEBUG(700, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'R') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yybm[0+yych] & 64) { + goto yy476; + } + goto yy142; +yy701: + YYDEBUG(701, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12); + yych = *YYCURSOR; +yy702: + YYDEBUG(702, *YYCURSOR); + if (yych <= 'X') { + if (yych <= 'G') { + if (yych <= ' ') { + if (yych == '\t') goto yy701; + if (yych <= 0x1F) goto yy59; + goto yy701; + } else { + if (yych <= 'D') { + if (yych <= 'C') goto yy59; + goto yy856; + } else { + if (yych == 'F') goto yy857; + goto yy59; + } + } } else { - if (yych <= '@') goto yy3; - if (yych <= 'Q') goto yy185; + if (yych <= 'S') { + if (yych <= 'L') { + if (yych <= 'H') goto yy858; + goto yy59; + } else { + if (yych <= 'M') goto yy859; + if (yych <= 'R') goto yy59; + goto yy860; + } + } else { + if (yych <= 'U') { + if (yych <= 'T') goto yy861; + goto yy862; + } else { + if (yych == 'W') goto yy863; + goto yy59; + } + } } } else { - if (yych <= 'q') { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy3; - goto yy185; - } else { - if (yych <= 'r') goto yy1333; - if (yych <= 'z') goto yy185; - goto yy3; + if (yych <= 'r') { + if (yych <= 'f') { + if (yych <= 'c') { + if (yych <= 'Y') goto yy864; + goto yy59; + } else { + if (yych <= 'd') goto yy856; + if (yych <= 'e') goto yy59; + goto yy857; + } + } else { + if (yych <= 'h') { + if (yych <= 'g') goto yy59; + goto yy858; + } else { + if (yych == 'm') goto yy859; + goto yy59; + } + } + } else { + if (yych <= 'w') { + if (yych <= 't') { + if (yych <= 's') goto yy860; + goto yy861; + } else { + if (yych <= 'u') goto yy862; + if (yych <= 'v') goto yy59; + goto yy863; + } + } else { + if (yych <= 'y') { + if (yych <= 'x') goto yy59; + goto yy864; + } else { + if (yych == 0xC2) goto yy865; + goto yy59; + } + } } } -yy1333: - YYDEBUG(1333, *YYCURSOR); +yy703: + YYDEBUG(703, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'D') { + if (yych == 'D') goto yy866; + if (yych == 'd') goto yy866; + goto yy702; +yy704: + YYDEBUG(704, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 0xA0) goto yy867; + goto yy59; +yy705: + YYDEBUG(705, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0x80) goto yy868; + goto yy59; +yy706: + YYDEBUG(706, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'G') { if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= '@') goto yy3; - if (yych <= 'C') goto yy186; + if (yych <= '@') goto yy20; + if (yych <= 'F') goto yy826; + goto yy869; } } else { - if (yych <= 'c') { - if (yych <= 'Z') goto yy186; - if (yych <= '`') goto yy3; - goto yy186; - } else { - if (yych <= 'd') goto yy1334; - if (yych <= 'z') goto yy186; - goto yy3; + if (yych <= 'f') { + if (yych <= 'Z') goto yy826; + if (yych <= '`') goto yy20; + goto yy826; + } else { + if (yych <= 'g') goto yy869; + if (yych <= 'z') goto yy826; + goto yy20; } } -yy1334: - YYDEBUG(1334, *YYCURSOR); - yyaccept = 1; +yy707: + YYDEBUG(707, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '@') { - if (yych == ')') goto yy181; - goto yy3; - } else { - if (yych <= 'A') goto yy1335; - if (yych != 'a') goto yy3; - } -yy1335: - YYDEBUG(1335, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy1336; - if (yych != 'y') goto yy55; -yy1336: - YYDEBUG(1336, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy225; - if (yych == 's') goto yy225; - goto yy219; -yy1337: - YYDEBUG(1337, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= 'F') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= '@') goto yy3; - if (yych <= 'N') goto yy184; - goto yy1348; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy826; } } else { - if (yych <= 'n') { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy3; - goto yy184; - } else { - if (yych <= 'o') goto yy1348; - if (yych <= 'z') goto yy184; - goto yy3; + if (yych <= '_') { + if (yych <= 'G') goto yy869; + if (yych <= 'Z') goto yy826; + if (yych <= '^') goto yy20; + goto yy297; + } else { + if (yych <= 'f') { + if (yych <= '`') goto yy20; + goto yy829; + } else { + if (yych <= 'g') goto yy870; + if (yych <= 'z') goto yy829; + goto yy20; + } } } -yy1338: - YYDEBUG(1338, *YYCURSOR); +yy708: + YYDEBUG(708, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'E') { if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= '@') goto yy3; - if (yych <= 'D') goto yy184; - goto yy1345; + if (yych <= '@') goto yy20; + if (yych <= 'D') goto yy826; + goto yy871; } } else { if (yych <= 'd') { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy3; - goto yy184; - } else { - if (yych <= 'e') goto yy1345; - if (yych <= 'z') goto yy184; - goto yy3; - } - } -yy1339: - YYDEBUG(1339, *YYCURSOR); - yyaccept = 5; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych <= '(') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy248; - goto yy250; - } else { - if (yych == ' ') goto yy250; - goto yy248; - } - } else { - if (yych <= ',') { - if (yych <= ')') goto yy181; - goto yy248; - } else { - if (yych <= '-') goto yy251; - if (yych <= '.') goto yy250; - goto yy248; - } - } - } else { - if (yych <= 'Z') { - if (yych <= '@') { - if (yych <= '9') goto yy250; - goto yy248; - } else { - if (yych != 'T') goto yy184; - } + if (yych <= 'Z') goto yy826; + if (yych <= '`') goto yy20; + goto yy826; } else { - if (yych <= 's') { - if (yych <= '`') goto yy248; - goto yy184; - } else { - if (yych <= 't') goto yy1340; - if (yych <= 'z') goto yy184; - goto yy248; - } + if (yych <= 'e') goto yy871; + if (yych <= 'z') goto yy826; + goto yy20; } } -yy1340: - YYDEBUG(1340, *YYCURSOR); - yyaccept = 5; +yy709: + YYDEBUG(709, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych <= '(') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy248; - goto yy250; - } else { - if (yych == ' ') goto yy250; - goto yy248; - } + if (yych <= 'D') { + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= ',') { - if (yych <= ')') goto yy181; - goto yy248; - } else { - if (yych <= '-') goto yy251; - if (yych <= '.') goto yy250; - goto yy248; - } + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy826; } } else { - if (yych <= 'Z') { - if (yych <= '@') { - if (yych <= '9') goto yy250; - goto yy248; - } else { - if (yych != 'E') goto yy185; - } + if (yych <= '_') { + if (yych <= 'E') goto yy871; + if (yych <= 'Z') goto yy826; + if (yych <= '^') goto yy20; + goto yy297; } else { if (yych <= 'd') { - if (yych <= '`') goto yy248; - goto yy185; + if (yych <= '`') goto yy20; + goto yy829; } else { - if (yych <= 'e') goto yy1341; - if (yych <= 'z') goto yy185; - goto yy248; + if (yych <= 'e') goto yy872; + if (yych <= 'z') goto yy829; + goto yy20; } } } -yy1341: - YYDEBUG(1341, *YYCURSOR); +yy710: + YYDEBUG(710, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'M') { + if (yych <= 'O') { if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= '@') goto yy3; - if (yych <= 'L') goto yy186; + if (yych <= '@') goto yy20; + if (yych <= 'N') goto yy826; + goto yy873; } } else { - if (yych <= 'l') { - if (yych <= 'Z') goto yy186; - if (yych <= '`') goto yy3; - goto yy186; - } else { - if (yych <= 'm') goto yy1342; - if (yych <= 'z') goto yy186; - goto yy3; + if (yych <= 'n') { + if (yych <= 'Z') goto yy826; + if (yych <= '`') goto yy20; + goto yy826; + } else { + if (yych <= 'o') goto yy873; + if (yych <= 'z') goto yy826; + goto yy20; } } -yy1342: - YYDEBUG(1342, *YYCURSOR); - yyaccept = 1; +yy711: + YYDEBUG(711, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'A') { - if (yych == ')') goto yy181; - goto yy3; - } else { - if (yych <= 'B') goto yy1343; - if (yych != 'b') goto yy3; - } -yy1343: - YYDEBUG(1343, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy1344; - if (yych != 'e') goto yy55; -yy1344: - YYDEBUG(1344, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy259; - if (yych == 'r') goto yy259; - goto yy55; -yy1345: - YYDEBUG(1345, *YYCURSOR); - yych = *++YYCURSOR; if (yych <= 'N') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= '-') { + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= '@') goto yy3; - if (yych <= 'M') goto yy185; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy826; } } else { - if (yych <= 'm') { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy3; - goto yy185; - } else { - if (yych <= 'n') goto yy1346; - if (yych <= 'z') goto yy185; - goto yy3; + if (yych <= '_') { + if (yych <= 'O') goto yy873; + if (yych <= 'Z') goto yy826; + if (yych <= '^') goto yy20; + goto yy297; + } else { + if (yych <= 'n') { + if (yych <= '`') goto yy20; + goto yy829; + } else { + if (yych <= 'o') goto yy874; + if (yych <= 'z') goto yy829; + goto yy20; + } } } -yy1346: - YYDEBUG(1346, *YYCURSOR); +yy712: + YYDEBUG(712, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'T') { + if (yych <= 'D') { if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= '@') goto yy3; - if (yych <= 'S') goto yy186; + if (yych <= '@') goto yy20; + if (yych <= 'C') goto yy826; + goto yy875; } } else { - if (yych <= 's') { - if (yych <= 'Z') goto yy186; - if (yych <= '`') goto yy3; - goto yy186; - } else { - if (yych <= 't') goto yy1347; - if (yych <= 'z') goto yy186; - goto yy3; + if (yych <= 'c') { + if (yych <= 'Z') goto yy826; + if (yych <= '`') goto yy20; + goto yy826; + } else { + if (yych <= 'd') goto yy875; + if (yych <= 'z') goto yy826; + goto yy20; } } -yy1347: - YYDEBUG(1347, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'G') { - if (yych == ')') goto yy181; - goto yy3; - } else { - if (yych <= 'H') goto yy1297; - if (yych == 'h') goto yy1297; - goto yy3; - } -yy1348: - YYDEBUG(1348, *YYCURSOR); +yy713: + YYDEBUG(713, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'N') { + if (yych <= 'D') { if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= '@') goto yy3; - if (yych <= 'M') goto yy185; + if (yych <= '@') goto yy20; + if (yych <= 'C') goto yy826; + goto yy836; } } else { - if (yych <= 'm') { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy3; - goto yy185; - } else { - if (yych <= 'n') goto yy1349; - if (yych <= 'z') goto yy185; - goto yy3; + if (yych <= 'c') { + if (yych <= 'Z') goto yy826; + if (yych <= '`') goto yy20; + goto yy826; + } else { + if (yych <= 'd') goto yy836; + if (yych <= 'z') goto yy826; + goto yy20; } } -yy1349: - YYDEBUG(1349, *YYCURSOR); +yy714: + YYDEBUG(714, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'D') { + if (yych <= 'M') { if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= '@') goto yy3; - if (yych <= 'C') goto yy186; - goto yy1307; + if (yych <= '@') goto yy20; + if (yych <= 'L') goto yy826; + goto yy876; } } else { - if (yych <= 'c') { - if (yych <= 'Z') goto yy186; - if (yych <= '`') goto yy3; - goto yy186; + if (yych <= 'l') { + if (yych <= 'Z') goto yy826; + if (yych <= '`') goto yy20; + goto yy826; } else { - if (yych <= 'd') goto yy1307; - if (yych <= 'z') goto yy186; - goto yy3; + if (yych <= 'm') goto yy876; + if (yych <= 'z') goto yy826; + goto yy20; } } -yy1350: - YYDEBUG(1350, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'U') { - if (yych <= '/') { - if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy3; - } else { - if (yych == '.') goto yy3; - goto yy189; - } +yy715: + YYDEBUG(715, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'T') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych <= 'C') { - if (yych <= '@') goto yy3; - if (yych <= 'B') goto yy183; - goto yy1337; - } else { - if (yych == 'P') goto yy1339; - goto yy183; - } + if (yych <= '@') goto yy20; + if (yych <= 'S') goto yy826; + goto yy877; } } else { - if (yych <= 'b') { - if (yych <= '^') { - if (yych <= 'V') goto yy1338; - if (yych <= 'Z') goto yy183; - goto yy3; - } else { - if (yych <= '_') goto yy189; - if (yych <= '`') goto yy3; - goto yy188; - } + if (yych <= 's') { + if (yych <= 'Z') goto yy826; + if (yych <= '`') goto yy20; + goto yy826; } else { - if (yych <= 'p') { - if (yych <= 'c') goto yy1367; - if (yych <= 'o') goto yy188; - goto yy1369; - } else { - if (yych == 'v') goto yy1368; - if (yych <= 'z') goto yy188; - goto yy3; - } + if (yych <= 't') goto yy877; + if (yych <= 'z') goto yy826; + goto yy20; } } -yy1351: - YYDEBUG(1351, *YYCURSOR); - yyaccept = 1; +yy716: + YYDEBUG(716, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'S') { + if (yych <= 'C') { if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy183; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy826; } } else { if (yych <= '_') { - if (yych <= 'T') goto yy1331; - if (yych <= 'Z') goto yy183; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'D') goto yy875; + if (yych <= 'Z') goto yy826; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 's') { - if (yych <= '`') goto yy3; - goto yy188; + if (yych <= 'c') { + if (yych <= '`') goto yy20; + goto yy829; } else { - if (yych <= 't') goto yy1361; - if (yych <= 'z') goto yy188; - goto yy3; + if (yych <= 'd') goto yy878; + if (yych <= 'z') goto yy829; + goto yy20; } } } -yy1352: - YYDEBUG(1352, *YYCURSOR); - yyaccept = 1; +yy717: + YYDEBUG(717, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'W') { + if (yych <= 'C') { if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy183; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy826; } } else { if (yych <= '_') { - if (yych <= 'X') goto yy1328; - if (yych <= 'Z') goto yy183; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'D') goto yy836; + if (yych <= 'Z') goto yy826; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 'w') { - if (yych <= '`') goto yy3; - goto yy188; + if (yych <= 'c') { + if (yych <= '`') goto yy20; + goto yy829; } else { - if (yych <= 'x') goto yy1358; - if (yych <= 'z') goto yy188; - goto yy3; + if (yych <= 'd') goto yy840; + if (yych <= 'z') goto yy829; + goto yy20; } } } -yy1353: - YYDEBUG(1353, *YYCURSOR); - yyaccept = 1; +yy718: + YYDEBUG(718, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'M') { + if (yych <= 'L') { if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy183; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy826; } } else { if (yych <= '_') { - if (yych <= 'N') goto yy1324; - if (yych <= 'Z') goto yy183; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'M') goto yy876; + if (yych <= 'Z') goto yy826; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 'm') { - if (yych <= '`') goto yy3; - goto yy188; + if (yych <= 'l') { + if (yych <= '`') goto yy20; + goto yy829; } else { - if (yych <= 'n') goto yy1354; - if (yych <= 'z') goto yy188; - goto yy3; + if (yych <= 'm') goto yy879; + if (yych <= 'z') goto yy829; + goto yy20; } } } -yy1354: - YYDEBUG(1354, *YYCURSOR); - yyaccept = 4; +yy719: + YYDEBUG(719, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'C') { + if (yych <= 'S') { if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy219; - goto yy189; + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy219; - goto yy184; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy826; } } else { if (yych <= '_') { - if (yych <= 'D') goto yy1325; - if (yych <= 'Z') goto yy184; - if (yych <= '^') goto yy219; - goto yy189; + if (yych <= 'T') goto yy877; + if (yych <= 'Z') goto yy826; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 'c') { - if (yych <= '`') goto yy219; - goto yy192; + if (yych <= 's') { + if (yych <= '`') goto yy20; + goto yy829; } else { - if (yych <= 'd') goto yy1355; - if (yych <= 'z') goto yy192; - goto yy219; + if (yych <= 't') goto yy880; + if (yych <= 'z') goto yy829; + goto yy20; } } } -yy1355: - YYDEBUG(1355, *YYCURSOR); - yyaccept = 1; +yy720: + YYDEBUG(720, *YYCURSOR); + yyaccept = 12; yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') goto yy420; + if (yych <= '5') goto yy881; + if (yych <= '6') goto yy882; + goto yy420; +yy721: + YYDEBUG(721, *YYCURSOR); + yych = *++YYCURSOR; if (yych <= '@') { - if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy3; + if (yych == ')') goto yy115; + } else { + if (yych <= 'Z') goto yy826; + if (yych <= '`') goto yy722; + if (yych <= 'z') goto yy826; + } +yy722: + YYDEBUG(722, *YYCURSOR); +#line 1185 "ext/date/lib/parse_date.re" + { + DEBUG_OUTPUT("midnight | today"); + TIMELIB_INIT; + TIMELIB_UNHAVE_TIME(); + + TIMELIB_DEINIT; + return TIMELIB_RELATIVE; + } +#line 16540 "" +yy723: + YYDEBUG(723, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'R') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych == '.') goto yy3; - if (yych <= '/') goto yy189; - goto yy3; + if (yych <= '@') goto yy20; + if (yych <= 'Q') goto yy826; + goto yy883; } } else { - if (yych <= '_') { - if (yych <= 'A') goto yy1326; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'q') { + if (yych <= 'Z') goto yy826; + if (yych <= '`') goto yy20; + goto yy826; } else { - if (yych <= '`') goto yy3; - if (yych <= 'a') goto yy1356; - if (yych <= 'z') goto yy193; - goto yy3; + if (yych <= 'r') goto yy883; + if (yych <= 'z') goto yy826; + goto yy20; } } -yy1356: - YYDEBUG(1356, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'X') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy186; - } +yy724: + YYDEBUG(724, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'A') { + if (yych == ')') goto yy115; + if (yych <= '@') goto yy20; + goto yy884; } else { - if (yych <= '_') { - if (yych <= 'Y') goto yy1327; - if (yych <= 'Z') goto yy186; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= '`') { + if (yych <= 'Z') goto yy826; + goto yy20; } else { - if (yych <= 'x') { - if (yych <= '`') goto yy3; - goto yy194; - } else { - if (yych <= 'y') goto yy1357; - if (yych <= 'z') goto yy194; - goto yy3; - } + if (yych <= 'a') goto yy884; + if (yych <= 'z') goto yy826; + goto yy20; } } -yy1357: - YYDEBUG(1357, *YYCURSOR); - yyaccept = 4; +yy725: + YYDEBUG(725, *YYCURSOR); + yyaccept = 16; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'R') { + if (yych <= '/') { if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy219; + if (yych == ')') goto yy115; + goto yy722; } else { - if (yych == '.') goto yy219; - if (yych <= '/') goto yy189; - goto yy219; + if (yych == '.') goto yy722; + goto yy297; } } else { - if (yych <= '`') { - if (yych <= 'S') goto yy225; - if (yych == '_') goto yy189; - goto yy219; - } else { - if (yych == 's') goto yy239; - if (yych <= 'z') goto yy195; - goto yy219; + if (yych <= '^') { + if (yych <= '@') goto yy722; + if (yych <= 'Z') goto yy826; + goto yy722; + } else { + if (yych <= '_') goto yy297; + if (yych <= '`') goto yy722; + if (yych <= 'z') goto yy829; + goto yy722; } } -yy1358: - YYDEBUG(1358, *YYCURSOR); - yyaccept = 1; +yy726: + YYDEBUG(726, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'S') { + if (yych <= 'Q') { if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy184; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy826; } } else { if (yych <= '_') { - if (yych <= 'T') goto yy1329; - if (yych <= 'Z') goto yy184; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'R') goto yy883; + if (yych <= 'Z') goto yy826; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 's') { - if (yych <= '`') goto yy3; - goto yy192; + if (yych <= 'q') { + if (yych <= '`') goto yy20; + goto yy829; } else { - if (yych <= 't') goto yy1359; - if (yych <= 'z') goto yy192; - goto yy3; + if (yych <= 'r') goto yy885; + if (yych <= 'z') goto yy829; + goto yy20; } } } -yy1359: - YYDEBUG(1359, *YYCURSOR); - yyaccept = 1; +yy727: + YYDEBUG(727, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'G') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= '@') { + if (yych <= ',') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy185; + if (yych == '.') goto yy20; + if (yych <= '/') goto yy297; + goto yy20; } } else { if (yych <= '_') { - if (yych <= 'H') goto yy1330; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'A') goto yy884; + if (yych <= 'Z') goto yy826; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 'g') { - if (yych <= '`') goto yy3; - goto yy193; - } else { - if (yych <= 'h') goto yy1360; - if (yych <= 'z') goto yy193; - goto yy3; - } + if (yych <= '`') goto yy20; + if (yych <= 'a') goto yy886; + if (yych <= 'z') goto yy829; + goto yy20; } } -yy1360: - YYDEBUG(1360, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '-') { - if (yych <= ' ') { - if (yych == '\t') goto yy1298; - if (yych <= 0x1F) goto yy3; - goto yy1298; +yy728: + YYDEBUG(728, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'S') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; } else { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= '@') goto yy20; + if (yych <= 'R') goto yy826; + goto yy887; } } else { - if (yych <= 'Z') { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy186; + if (yych <= 'r') { + if (yych <= 'Z') goto yy826; + if (yych <= '`') goto yy20; + goto yy826; } else { - if (yych <= '_') { - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= '`') goto yy3; - if (yych <= 'z') goto yy194; - goto yy3; - } + if (yych <= 's') goto yy887; + if (yych <= 'z') goto yy826; + goto yy20; } } -yy1361: - YYDEBUG(1361, *YYCURSOR); - yyaccept = 4; +yy729: + YYDEBUG(729, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'T') { + if (yych <= 'R') { if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy219; - goto yy189; + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy219; - goto yy184; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy826; } } else { if (yych <= '_') { - if (yych <= 'U') goto yy1332; - if (yych <= 'Z') goto yy184; - if (yych <= '^') goto yy219; - goto yy189; + if (yych <= 'S') goto yy887; + if (yych <= 'Z') goto yy826; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 't') { - if (yych <= '`') goto yy219; - goto yy192; + if (yych <= 'r') { + if (yych <= '`') goto yy20; + goto yy829; } else { - if (yych <= 'u') goto yy1362; - if (yych <= 'z') goto yy192; - goto yy219; + if (yych <= 's') goto yy888; + if (yych <= 'z') goto yy829; + goto yy20; } } } -yy1362: - YYDEBUG(1362, *YYCURSOR); - yyaccept = 1; +yy730: + YYDEBUG(730, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'R') { + if (yych <= ')') { + if (yych <= '(') goto yy20; + goto yy115; + } else { + if (yych <= '@') goto yy20; + if (yych <= 'Q') goto yy826; + goto yy889; + } + } else { + if (yych <= 'q') { + if (yych <= 'Z') goto yy826; + if (yych <= '`') goto yy20; + goto yy826; + } else { + if (yych <= 'r') goto yy889; + if (yych <= 'z') goto yy826; + goto yy20; + } + } +yy731: + YYDEBUG(731, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'Q') { if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy185; + if (yych == '/') goto yy297; + if (yych <= '@') goto yy20; + goto yy826; } } else { if (yych <= '_') { - if (yych <= 'R') goto yy1333; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'R') goto yy889; + if (yych <= 'Z') goto yy826; + if (yych <= '^') goto yy20; + goto yy297; } else { if (yych <= 'q') { - if (yych <= '`') goto yy3; - goto yy193; + if (yych <= '`') goto yy20; + goto yy829; } else { - if (yych <= 'r') goto yy1363; - if (yych <= 'z') goto yy193; - goto yy3; + if (yych <= 'r') goto yy890; + if (yych <= 'z') goto yy829; + goto yy20; } } } -yy1363: - YYDEBUG(1363, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'C') { +yy732: + YYDEBUG(732, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '0') goto yy891; + if (yych <= '1') goto yy892; + goto yy59; +yy733: + YYDEBUG(733, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '9') { + if (yych == '-') goto yy893; + if (yych <= '/') goto yy196; + goto yy894; + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy196; + goto yy97; + } else { + if (yych == 0xE2) goto yy98; + goto yy196; + } + } +yy734: + YYDEBUG(734, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '9') { if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= ',') goto yy196; + goto yy893; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy186; + if (yych <= '/') goto yy196; + if (yych <= '0') goto yy894; + goto yy895; } } else { - if (yych <= '_') { - if (yych <= 'D') goto yy1334; - if (yych <= 'Z') goto yy186; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy196; + goto yy97; } else { - if (yych <= 'c') { - if (yych <= '`') goto yy3; - goto yy194; - } else { - if (yych <= 'd') goto yy1364; - if (yych <= 'z') goto yy194; - goto yy3; - } + if (yych == 0xE2) goto yy98; + goto yy196; } } -yy1364: - YYDEBUG(1364, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '@') { - if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy3; +yy735: + YYDEBUG(735, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '9') { + if (yych == '-') goto yy893; + if (yych <= '/') goto yy196; + goto yy895; + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy196; + goto yy97; } else { - if (yych == '.') goto yy3; - if (yych <= '/') goto yy189; - goto yy3; + if (yych == 0xE2) goto yy98; + goto yy196; } + } +yy736: + YYDEBUG(736, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == ':') goto yy896; + goto yy20; +yy737: + YYDEBUG(737, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy897; + goto yy59; +yy738: + YYDEBUG(738, *YYCURSOR); + yyaccept = 17; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') goto yy739; + if (yych <= '9') goto yy897; +yy739: + YYDEBUG(739, *YYCURSOR); +#line 1576 "ext/date/lib/parse_date.re" + { + int length = 0; + DEBUG_OUTPUT("pointed date YY"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->d = timelib_get_nr(&ptr, 2); + s->time->m = timelib_get_nr(&ptr, 2); + s->time->y = timelib_get_nr_ex(&ptr, 2, &length); + TIMELIB_PROCESS_YEAR(s->time->y, length); + TIMELIB_DEINIT; + return TIMELIB_DATE_FULL_POINTED; + } +#line 16863 "" +yy740: + YYDEBUG(740, *YYCURSOR); + yyaccept = 15; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych <= '/') goto yy567; + if (yych <= '9') goto yy897; + if (yych <= 'm') goto yy567; } else { - if (yych <= '_') { - if (yych <= 'A') goto yy1335; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'r') { + if (yych <= 'q') goto yy567; } else { - if (yych <= '`') goto yy3; - if (yych <= 'a') goto yy1365; - if (yych <= 'z') goto yy195; - goto yy3; + if (yych <= 's') goto yy742; + if (yych <= 't') goto yy743; + goto yy567; } } -yy1365: - YYDEBUG(1365, *YYCURSOR); +yy741: + YYDEBUG(741, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy1336; - if (yych != 'y') goto yy196; - YYDEBUG(1366, *YYCURSOR); + if (yych == 'd') goto yy898; + goto yy59; +yy742: + YYDEBUG(742, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 't') goto yy898; + goto yy59; +yy743: + YYDEBUG(743, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'h') goto yy898; + goto yy59; +yy744: + YYDEBUG(744, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy899; + goto yy59; +yy745: + YYDEBUG(745, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'S') { - if (yych <= '.') { - if (yych == '-') goto yy189; - goto yy219; - } else { - if (yych <= '/') goto yy189; - if (yych <= 'R') goto yy219; - goto yy225; - } + if (yych == '.') goto yy744; + if (yych <= '/') goto yy177; + if (yych <= '9') goto yy897; + goto yy177; +yy746: + YYDEBUG(746, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy224; + if (yych <= '9') goto yy901; + goto yy224; +yy747: + YYDEBUG(747, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy902; + goto yy59; +yy748: + YYDEBUG(748, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '2') goto yy903; + if (yych <= '3') goto yy904; + if (yych <= '9') goto yy569; + goto yy59; +yy749: + YYDEBUG(749, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 9) YYFILL(9); + yych = *YYCURSOR; +yy750: + YYDEBUG(750, *YYCURSOR); + switch (yych) { + case '\t': + case ' ': + case '-': + case '.': goto yy749; + case 'A': + case 'a': goto yy596; + case 'D': + case 'd': goto yy769; + case 'F': + case 'f': goto yy770; + case 'I': goto yy599; + case 'J': + case 'j': goto yy601; + case 'M': + case 'm': goto yy771; + case 'N': + case 'n': goto yy603; + case 'O': + case 'o': goto yy604; + case 'S': + case 's': goto yy772; + case 'V': goto yy606; + case 'X': goto yy608; + default: goto yy59; + } +yy751: + YYDEBUG(751, *YYCURSOR); + yyaccept = 18; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '-') goto yy905; } else { - if (yych <= '`') { - if (yych == '_') goto yy189; - goto yy219; - } else { - if (yych == 's') goto yy239; - if (yych <= 'z') goto yy195; - goto yy219; - } + if (yych <= '0') goto yy906; + if (yych <= '9') goto yy907; } -yy1367: - YYDEBUG(1367, *YYCURSOR); - yyaccept = 1; +yy752: + YYDEBUG(752, *YYCURSOR); +#line 1521 "ext/date/lib/parse_date.re" + { + int length = 0; + DEBUG_OUTPUT("gnudateshorter"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->y = timelib_get_nr_ex(&ptr, 4, &length); + s->time->m = timelib_get_nr(&ptr, 2); + s->time->d = 1; + TIMELIB_PROCESS_YEAR(s->time->y, length); + TIMELIB_DEINIT; + return TIMELIB_ISO_DATE; + } +#line 16988 "" +yy753: + YYDEBUG(753, *YYCURSOR); + yyaccept = 18; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'N') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy184; - } + if (yych <= '/') { + if (yych == '-') goto yy905; + goto yy752; } else { - if (yych <= '_') { - if (yych <= 'O') goto yy1348; - if (yych <= 'Z') goto yy184; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 'n') { - if (yych <= '`') goto yy3; - goto yy192; - } else { - if (yych <= 'o') goto yy1378; - if (yych <= 'z') goto yy192; - goto yy3; - } - } + if (yych <= '2') goto yy907; + if (yych <= '9') goto yy908; + goto yy752; } -yy1368: - YYDEBUG(1368, *YYCURSOR); - yyaccept = 1; +yy754: + YYDEBUG(754, *YYCURSOR); + yyaccept = 18; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'D') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych == '-') goto yy905; + if (yych <= '/') goto yy752; + if (yych <= '9') goto yy908; + goto yy752; +yy755: + YYDEBUG(755, *YYCURSOR); + yyaccept = 18; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '-') goto yy905; + goto yy752; + } else { + if (yych <= '5') goto yy908; + if (yych <= '6') goto yy909; + goto yy752; + } +yy756: + YYDEBUG(756, *YYCURSOR); + yyaccept = 18; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '-') goto yy905; + goto yy752; +yy757: + YYDEBUG(757, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych == 'P') goto yy910; + if (yych <= 'T') goto yy59; + goto yy911; + } else { + if (yych <= 'p') { + if (yych <= 'o') goto yy59; + goto yy910; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy184; + if (yych == 'u') goto yy911; + goto yy59; } + } +yy758: + YYDEBUG(758, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy912; + if (yych == 'e') goto yy912; + goto yy59; +yy759: + YYDEBUG(759, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy913; + if (yych == 'e') goto yy913; + goto yy59; +yy760: + YYDEBUG(760, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych == 'A') goto yy914; + if (yych <= 'T') goto yy59; + goto yy915; } else { - if (yych <= '_') { - if (yych <= 'E') goto yy1345; - if (yych <= 'Z') goto yy184; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'a') { + if (yych <= '`') goto yy59; + goto yy914; } else { - if (yych <= 'd') { - if (yych <= '`') goto yy3; - goto yy192; - } else { - if (yych <= 'e') goto yy1375; - if (yych <= 'z') goto yy192; - goto yy3; - } + if (yych == 'u') goto yy915; + goto yy59; } } -yy1369: - YYDEBUG(1369, *YYCURSOR); - yyaccept = 5; +yy761: + YYDEBUG(761, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy916; + if (yych == 'a') goto yy916; + goto yy59; +yy762: + YYDEBUG(762, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy917; + if (yych == 'o') goto yy917; + goto yy59; +yy763: + YYDEBUG(763, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy918; + if (yych == 'c') goto yy918; + goto yy59; +yy764: + YYDEBUG(764, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy919; + if (yych == 'e') goto yy919; + goto yy59; +yy765: + YYDEBUG(765, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '0') goto yy797; + if (yych <= '4') goto yy798; + if (yych <= '5') goto yy799; + goto yy59; +yy766: + YYDEBUG(766, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '0') goto yy920; + if (yych <= '9') goto yy908; + goto yy59; +yy767: + YYDEBUG(767, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy908; + goto yy59; +yy768: + YYDEBUG(768, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy908; + if (yych <= '6') goto yy909; + goto yy59; +yy769: + YYDEBUG(769, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy787; + if (yych == 'e') goto yy787; + goto yy59; +yy770: + YYDEBUG(770, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy788; + if (yych == 'e') goto yy788; + goto yy59; +yy771: + YYDEBUG(771, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy793; + if (yych == 'a') goto yy793; + goto yy59; +yy772: + YYDEBUG(772, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy921; + if (yych == 'e') goto yy921; + goto yy59; +yy773: + YYDEBUG(773, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '.') goto yy59; + if (yych <= '/') goto yy922; + if (yych <= '9') goto yy923; + goto yy59; +yy774: + YYDEBUG(774, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '.') goto yy59; + if (yych <= '/') goto yy922; + if (yych <= '2') goto yy923; + goto yy59; +yy775: + YYDEBUG(775, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '/') goto yy922; + goto yy59; +yy776: + YYDEBUG(776, *YYCURSOR); + yyaccept = 19; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '9') { - if (yych <= '(') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy248; - goto yy250; + if (yych <= 'W') { + if (yych <= 'C') { + if (yych <= '/') { + if (yych <= '\t') { + if (yych >= '\t') goto yy196; + } else { + if (yych == ' ') goto yy196; + } } else { - if (yych == ' ') goto yy250; - goto yy248; + if (yych <= '2') { + if (yych <= '0') goto yy924; + goto yy925; + } else { + if (yych <= '3') goto yy927; + if (yych <= '9') goto yy928; + } } } else { - if (yych <= '-') { - if (yych <= ')') goto yy181; - if (yych <= ',') goto yy248; - goto yy377; + if (yych <= 'H') { + if (yych <= 'E') { + if (yych <= 'D') goto yy196; + } else { + if (yych != 'G') goto yy196; + } } else { - if (yych == '/') goto yy189; - goto yy250; + if (yych <= 'R') { + if (yych == 'M') goto yy196; + } else { + if (yych != 'V') goto yy196; + } } } } else { - if (yych <= '^') { - if (yych <= 'S') { - if (yych <= '@') goto yy248; - goto yy184; + if (yych <= 'm') { + if (yych <= 'e') { + if (yych <= 'Y') { + if (yych >= 'Y') goto yy196; + } else { + if (yych == 'd') goto yy196; + } } else { - if (yych <= 'T') goto yy1340; - if (yych <= 'Z') goto yy184; - goto yy248; + if (yych <= 'g') { + if (yych <= 'f') goto yy196; + } else { + if (yych <= 'h') goto yy196; + if (yych >= 'm') goto yy196; + } } } else { - if (yych <= 's') { - if (yych <= '_') goto yy189; - if (yych <= '`') goto yy248; - goto yy192; - } else { - if (yych <= 't') goto yy1370; - if (yych <= 'z') goto yy192; - goto yy248; + if (yych <= 'x') { + if (yych <= 'u') { + if (yych >= 's') goto yy196; + } else { + if (yych == 'w') goto yy196; + } + } else { + if (yych <= 0xC2) { + if (yych <= 'y') goto yy196; + if (yych >= 0xC2) goto yy97; + } else { + if (yych == 0xE2) goto yy98; + } } } } -yy1370: - YYDEBUG(1370, *YYCURSOR); - yyaccept = 5; +yy777: + YYDEBUG(777, *YYCURSOR); +#line 1447 "ext/date/lib/parse_date.re" + { + int tz_not_found; + DEBUG_OUTPUT("iso8601nocolon"); + TIMELIB_INIT; + TIMELIB_HAVE_TIME(); + s->time->h = timelib_get_nr(&ptr, 2); + s->time->i = timelib_get_nr(&ptr, 2); + s->time->s = timelib_get_nr(&ptr, 2); + + if (*ptr != '\0') { + s->time->z = timelib_parse_zone(&ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper); + if (tz_not_found) { + add_error(s, TIMELIB_ERR_TZID_NOT_FOUND, "The timezone could not be found in the database"); + } + } + TIMELIB_DEINIT; + return TIMELIB_ISO_NOCOLON; + } +#line 17256 "" +yy778: + YYDEBUG(778, *YYCURSOR); + yyaccept = 19; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '9') { - if (yych <= '(') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy248; - goto yy250; + if (yych <= 'W') { + if (yych <= 'D') { + if (yych <= '/') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy777; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy777; + } } else { - if (yych == ' ') goto yy250; - goto yy248; + if (yych <= '3') { + if (yych <= '2') goto yy925; + goto yy927; + } else { + if (yych <= '9') goto yy928; + if (yych <= 'C') goto yy777; + goto yy196; + } } } else { - if (yych <= '-') { - if (yych <= ')') goto yy181; - if (yych <= ',') goto yy248; - goto yy377; + if (yych <= 'L') { + if (yych <= 'F') { + if (yych <= 'E') goto yy777; + goto yy196; + } else { + if (yych == 'H') goto yy196; + goto yy777; + } } else { - if (yych == '/') goto yy189; - goto yy250; + if (yych <= 'R') { + if (yych <= 'M') goto yy196; + goto yy777; + } else { + if (yych == 'V') goto yy777; + goto yy196; + } } } } else { - if (yych <= '^') { - if (yych <= 'D') { - if (yych <= '@') goto yy248; - goto yy185; + if (yych <= 'm') { + if (yych <= 'e') { + if (yych <= 'Y') { + if (yych <= 'X') goto yy777; + goto yy196; + } else { + if (yych == 'd') goto yy196; + goto yy777; + } } else { - if (yych <= 'E') goto yy1341; - if (yych <= 'Z') goto yy185; - goto yy248; + if (yych <= 'g') { + if (yych <= 'f') goto yy196; + goto yy777; + } else { + if (yych <= 'h') goto yy196; + if (yych <= 'l') goto yy777; + goto yy196; + } } } else { - if (yych <= 'd') { - if (yych <= '_') goto yy189; - if (yych <= '`') goto yy248; - goto yy193; - } else { - if (yych <= 'e') goto yy1371; - if (yych <= 'z') goto yy193; - goto yy248; + if (yych <= 'x') { + if (yych <= 'u') { + if (yych <= 'r') goto yy777; + goto yy196; + } else { + if (yych == 'w') goto yy196; + goto yy777; + } + } else { + if (yych <= 0xC2) { + if (yych <= 'y') goto yy196; + if (yych <= 0xC1) goto yy777; + goto yy97; + } else { + if (yych == 0xE2) goto yy98; + goto yy777; + } } } } -yy1371: - YYDEBUG(1371, *YYCURSOR); - yyaccept = 1; +yy779: + YYDEBUG(779, *YYCURSOR); + yyaccept = 19; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'L') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy186; - } - } else { - if (yych <= '_') { - if (yych <= 'M') goto yy1342; - if (yych <= 'Z') goto yy186; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 'l') { - if (yych <= '`') goto yy3; - goto yy194; + if (yych <= 'X') { + if (yych <= 'E') { + if (yych <= ' ') { + if (yych == '\t') goto yy196; + if (yych <= 0x1F) goto yy777; + goto yy196; } else { - if (yych <= 'm') goto yy1372; - if (yych <= 'z') goto yy194; - goto yy3; + if (yych <= '9') { + if (yych <= '/') goto yy777; + goto yy928; + } else { + if (yych == 'D') goto yy196; + goto yy777; + } } - } - } -yy1372: - YYDEBUG(1372, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'A') { - if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy3; } else { - if (yych == '.') goto yy3; - if (yych <= '/') goto yy189; - goto yy3; - } - } else { - if (yych <= '`') { - if (yych <= 'B') goto yy1343; - if (yych == '_') goto yy189; - goto yy3; - } else { - if (yych == 'b') goto yy1373; - if (yych <= 'z') goto yy195; - goto yy3; - } - } -yy1373: - YYDEBUG(1373, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy1344; - if (yych != 'e') goto yy196; - YYDEBUG(1374, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy259; - if (yych == 'r') goto yy382; - goto yy196; -yy1375: - YYDEBUG(1375, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'M') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy185; - } - } else { - if (yych <= '_') { - if (yych <= 'N') goto yy1346; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 'm') { - if (yych <= '`') goto yy3; - goto yy193; + if (yych <= 'M') { + if (yych <= 'G') { + if (yych <= 'F') goto yy196; + goto yy777; + } else { + if (yych <= 'H') goto yy196; + if (yych <= 'L') goto yy777; + goto yy196; + } } else { - if (yych <= 'n') goto yy1376; - if (yych <= 'z') goto yy193; - goto yy3; + if (yych <= 'U') { + if (yych <= 'R') goto yy777; + goto yy196; + } else { + if (yych == 'W') goto yy196; + goto yy777; + } } } - } -yy1376: - YYDEBUG(1376, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'S') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy186; - } } else { - if (yych <= '_') { - if (yych <= 'T') goto yy1347; - if (yych <= 'Z') goto yy186; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 's') { - if (yych <= '`') goto yy3; - goto yy194; + if (yych <= 'r') { + if (yych <= 'f') { + if (yych <= 'c') { + if (yych <= 'Y') goto yy196; + goto yy777; + } else { + if (yych == 'e') goto yy777; + goto yy196; + } } else { - if (yych <= 't') goto yy1377; - if (yych <= 'z') goto yy194; - goto yy3; + if (yych <= 'h') { + if (yych <= 'g') goto yy777; + goto yy196; + } else { + if (yych == 'm') goto yy196; + goto yy777; + } } - } - } -yy1377: - YYDEBUG(1377, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'G') { - if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy3; } else { - if (yych == '.') goto yy3; - if (yych <= '/') goto yy189; - goto yy3; - } - } else { - if (yych <= '`') { - if (yych <= 'H') goto yy1297; - if (yych == '_') goto yy189; - goto yy3; - } else { - if (yych == 'h') goto yy1315; - if (yych <= 'z') goto yy195; - goto yy3; + if (yych <= 'y') { + if (yych <= 'v') { + if (yych <= 'u') goto yy196; + goto yy777; + } else { + if (yych == 'x') goto yy777; + goto yy196; + } + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy777; + goto yy97; + } else { + if (yych == 0xE2) goto yy98; + goto yy777; + } + } } } -yy1378: - YYDEBUG(1378, *YYCURSOR); - yyaccept = 1; +yy780: + YYDEBUG(780, *YYCURSOR); + yyaccept = 19; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'M') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= 'X') { + if (yych <= 'E') { + if (yych <= '/') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy777; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy777; + } + } else { + if (yych <= '9') { + if (yych <= '6') goto yy928; + goto yy929; + } else { + if (yych == 'D') goto yy196; + goto yy777; + } + } } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy185; + if (yych <= 'M') { + if (yych <= 'G') { + if (yych <= 'F') goto yy196; + goto yy777; + } else { + if (yych <= 'H') goto yy196; + if (yych <= 'L') goto yy777; + goto yy196; + } + } else { + if (yych <= 'U') { + if (yych <= 'R') goto yy777; + goto yy196; + } else { + if (yych == 'W') goto yy196; + goto yy777; + } + } } } else { - if (yych <= '_') { - if (yych <= 'N') goto yy1349; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'r') { + if (yych <= 'f') { + if (yych <= 'c') { + if (yych <= 'Y') goto yy196; + goto yy777; + } else { + if (yych == 'e') goto yy777; + goto yy196; + } + } else { + if (yych <= 'h') { + if (yych <= 'g') goto yy777; + goto yy196; + } else { + if (yych == 'm') goto yy196; + goto yy777; + } + } } else { - if (yych <= 'm') { - if (yych <= '`') goto yy3; - goto yy193; + if (yych <= 'y') { + if (yych <= 'v') { + if (yych <= 'u') goto yy196; + goto yy777; + } else { + if (yych == 'x') goto yy777; + goto yy196; + } } else { - if (yych <= 'n') goto yy1379; - if (yych <= 'z') goto yy193; - goto yy3; + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy777; + goto yy97; + } else { + if (yych == 0xE2) goto yy98; + goto yy777; + } } } } -yy1379: - YYDEBUG(1379, *YYCURSOR); - yyaccept = 1; +yy781: + YYDEBUG(781, *YYCURSOR); + yyaccept = 19; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'C') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= 'X') { + if (yych <= 'E') { + if (yych <= ' ') { + if (yych == '\t') goto yy196; + if (yych <= 0x1F) goto yy777; + goto yy196; + } else { + if (yych <= '9') { + if (yych <= '/') goto yy777; + goto yy929; + } else { + if (yych == 'D') goto yy196; + goto yy777; + } + } } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy186; + if (yych <= 'M') { + if (yych <= 'G') { + if (yych <= 'F') goto yy196; + goto yy777; + } else { + if (yych <= 'H') goto yy196; + if (yych <= 'L') goto yy777; + goto yy196; + } + } else { + if (yych <= 'U') { + if (yych <= 'R') goto yy777; + goto yy196; + } else { + if (yych == 'W') goto yy196; + goto yy777; + } + } } } else { - if (yych <= '_') { - if (yych <= 'D') goto yy1307; - if (yych <= 'Z') goto yy186; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'r') { + if (yych <= 'f') { + if (yych <= 'c') { + if (yych <= 'Y') goto yy196; + goto yy777; + } else { + if (yych == 'e') goto yy777; + goto yy196; + } + } else { + if (yych <= 'h') { + if (yych <= 'g') goto yy777; + goto yy196; + } else { + if (yych == 'm') goto yy196; + goto yy777; + } + } } else { - if (yych <= 'c') { - if (yych <= '`') goto yy3; - goto yy194; + if (yych <= 'y') { + if (yych <= 'v') { + if (yych <= 'u') goto yy196; + goto yy777; + } else { + if (yych == 'x') goto yy777; + goto yy196; + } } else { - if (yych <= 'd') goto yy1319; - if (yych <= 'z') goto yy194; - goto yy3; + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy777; + goto yy97; + } else { + if (yych == 0xE2) goto yy98; + goto yy777; + } } } } -yy1380: - YYDEBUG(1380, *YYCURSOR); +yy782: + YYDEBUG(782, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'C') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'B') goto yy183; - } - } else { - if (yych <= 'b') { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - goto yy183; - } else { - if (yych <= 'c') goto yy1381; - if (yych <= 'z') goto yy183; - goto yy3; - } + if (yych <= 0xC1) { + if (yych <= '/') goto yy196; + if (yych <= '9') goto yy929; + goto yy196; + } else { + if (yych <= 0xC2) goto yy97; + if (yych == 0xE2) goto yy98; + goto yy196; } -yy1381: - YYDEBUG(1381, *YYCURSOR); +yy783: + YYDEBUG(783, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'K') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy930; + goto yy59; +yy784: + YYDEBUG(784, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '2') goto yy930; + goto yy59; +yy785: + YYDEBUG(785, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy931; + if (yych == 'r') goto yy931; + goto yy59; +yy786: + YYDEBUG(786, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'G') goto yy932; + if (yych == 'g') goto yy932; + goto yy59; +yy787: + YYDEBUG(787, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy933; + if (yych == 'c') goto yy933; + goto yy59; +yy788: + YYDEBUG(788, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy934; + if (yych == 'b') goto yy934; + goto yy59; +yy789: + YYDEBUG(789, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != 'I') goto yy600; +yy790: + YYDEBUG(790, *YYCURSOR); + ++YYCURSOR; + goto yy600; +yy791: + YYDEBUG(791, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy935; + if (yych == 'n') goto yy935; + goto yy59; +yy792: + YYDEBUG(792, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'N') { + if (yych == 'L') goto yy936; + if (yych <= 'M') goto yy59; + goto yy937; + } else { + if (yych <= 'l') { + if (yych <= 'k') goto yy59; + goto yy936; } else { - if (yych <= '@') goto yy3; - if (yych <= 'J') goto yy184; + if (yych == 'n') goto yy937; + goto yy59; } + } +yy793: + YYDEBUG(793, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'Y') { + if (yych == 'R') goto yy938; + if (yych <= 'X') goto yy59; + goto yy790; } else { - if (yych <= 'j') { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy3; - goto yy184; - } else { - if (yych <= 'k') goto yy1382; - if (yych <= 'z') goto yy184; - goto yy3; + if (yych <= 'r') { + if (yych <= 'q') goto yy59; + goto yy938; + } else { + if (yych == 'y') goto yy790; + goto yy59; } } -yy1382: - YYDEBUG(1382, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ')') { - if (yych == ' ') goto yy1383; - if (yych <= '(') goto yy3; - goto yy181; +yy794: + YYDEBUG(794, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'V') goto yy933; + if (yych == 'v') goto yy933; + goto yy59; +yy795: + YYDEBUG(795, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy939; + if (yych == 't') goto yy939; + goto yy59; +yy796: + YYDEBUG(796, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'P') { + if (yych == 'C') goto yy443; + if (yych <= 'O') goto yy59; + goto yy940; } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy3; - goto yy185; + if (yych <= 'c') { + if (yych <= 'b') goto yy59; + goto yy443; } else { - if (yych <= '`') goto yy3; - if (yych <= 'z') goto yy185; - goto yy3; + if (yych == 'p') goto yy940; + goto yy59; } } -yy1383: - YYDEBUG(1383, *YYCURSOR); +yy797: + YYDEBUG(797, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'O') goto yy1384; - if (yych != 'o') goto yy55; -yy1384: - YYDEBUG(1384, *YYCURSOR); + if (yych <= '0') goto yy59; + if (yych <= '9') goto yy941; + goto yy59; +yy798: + YYDEBUG(798, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'F') goto yy1385; - if (yych != 'f') goto yy55; -yy1385: - YYDEBUG(1385, *YYCURSOR); + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy941; + goto yy59; +yy799: + YYDEBUG(799, *YYCURSOR); yych = *++YYCURSOR; - if (yych != ' ') goto yy55; - YYDEBUG(1386, *YYCURSOR); + if (yych <= '/') goto yy59; + if (yych <= '3') goto yy941; + goto yy59; +yy800: + YYDEBUG(800, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '1') goto yy1387; - if (yych <= '2') goto yy1389; - if (yych <= '9') goto yy1390; - goto yy55; -yy1387: - YYDEBUG(1387, *YYCURSOR); - yyaccept = 28; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '@') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy1391; + if (yych <= '9') { + if (yych <= '0') { + if (yych <= '/') goto yy196; + goto yy924; } else { - if (yych <= ' ') goto yy1391; - if (yych <= '/') goto yy1388; - if (yych <= '9') goto yy1390; + if (yych <= '2') goto yy925; + if (yych <= '3') goto yy927; + goto yy928; } } else { - if (yych <= '`') { - if (yych <= 'A') goto yy1393; - if (yych == 'P') goto yy1393; + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy196; + goto yy97; } else { - if (yych <= 'a') goto yy1393; - if (yych == 'p') goto yy1393; + if (yych == 0xE2) goto yy98; + goto yy196; } } -yy1388: - YYDEBUG(1388, *YYCURSOR); -#line 1265 "ext/date/lib/parse_date.re" - { - DEBUG_OUTPUT("backof | frontof"); - TIMELIB_INIT; - TIMELIB_UNHAVE_TIME(); - TIMELIB_HAVE_TIME(); - - if (*ptr == 'b') { - s->time->h = timelib_get_nr(&ptr, 2); - s->time->i = 15; +yy801: + YYDEBUG(801, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '9') { + if (yych <= '/') goto yy196; + if (yych <= '2') goto yy925; + if (yych <= '3') goto yy927; + goto yy928; + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy196; + goto yy97; } else { - s->time->h = timelib_get_nr(&ptr, 2) - 1; - s->time->i = 45; + if (yych == 0xE2) goto yy98; + goto yy196; } - if (*ptr != '\0' ) { - timelib_eat_spaces(&ptr); - s->time->h += timelib_meridian(&ptr, s->time->h); - } - - TIMELIB_DEINIT; - return TIMELIB_LF_DAY_OF_MONTH; } -#line 20550 "" -yy1389: - YYDEBUG(1389, *YYCURSOR); - yyaccept = 28; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '@') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy1391; - goto yy1388; - } else { - if (yych <= ' ') goto yy1391; - if (yych <= '/') goto yy1388; - if (yych >= '5') goto yy1388; - } - } else { - if (yych <= '`') { - if (yych <= 'A') goto yy1393; - if (yych == 'P') goto yy1393; - goto yy1388; - } else { - if (yych <= 'a') goto yy1393; - if (yych == 'p') goto yy1393; - goto yy1388; - } +yy802: + YYDEBUG(802, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 0xC1) { + if (yych <= '/') goto yy196; + if (yych <= '9') goto yy928; + goto yy196; + } else { + if (yych <= 0xC2) goto yy97; + if (yych == 0xE2) goto yy98; + goto yy196; } -yy1390: - YYDEBUG(1390, *YYCURSOR); - yyaccept = 28; +yy803: + YYDEBUG(803, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 0xC1) { + if (yych <= '/') goto yy196; + if (yych <= '6') goto yy928; + if (yych <= '9') goto yy929; + goto yy196; + } else { + if (yych <= 0xC2) goto yy97; + if (yych == 0xE2) goto yy98; + goto yy196; + } +yy804: + YYDEBUG(804, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy253; + if (yych == 't') goto yy253; + goto yy59; +yy805: + YYDEBUG(805, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy806; + if (yych != 'n') goto yy59; +yy806: + YYDEBUG(806, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy943; + if (yych == 'i') goto yy943; + goto yy59; +yy807: + YYDEBUG(807, *YYCURSOR); + ++YYCURSOR; + goto yy251; +yy808: + YYDEBUG(808, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy944; + if (yych == 'r') goto yy944; + goto yy59; +yy809: + YYDEBUG(809, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy945; + if (yych == 's') goto yy945; + goto yy59; +yy810: + YYDEBUG(810, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy425; + if (yych == 'e') goto yy425; + goto yy59; +yy811: + YYDEBUG(811, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy946; + if (yych == 'e') goto yy946; + goto yy59; +yy812: + YYDEBUG(812, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy425; + if (yych == 'd') goto yy425; + goto yy59; +yy813: + YYDEBUG(813, *YYCURSOR); + yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'A') { - if (yych <= 0x1F) { - if (yych != '\t') goto yy1388; + if (yych <= '-') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy177; + goto yy638; + } else { + if (yych == ' ') goto yy638; + goto yy177; + } } else { - if (yych <= ' ') goto yy1391; - if (yych <= '@') goto yy1388; - goto yy1393; + if (yych <= '/') { + if (yych <= '.') goto yy744; + goto yy177; + } else { + if (yych <= '9') goto yy897; + if (yych <= '@') goto yy177; + goto yy106; + } } } else { - if (yych <= '`') { - if (yych == 'P') goto yy1393; - goto yy1388; + if (yych <= 'o') { + if (yych <= 'P') { + if (yych <= 'O') goto yy177; + goto yy106; + } else { + if (yych == 'a') goto yy106; + goto yy177; + } } else { - if (yych <= 'a') goto yy1393; - if (yych == 'p') goto yy1393; - goto yy1388; + if (yych <= 0xC2) { + if (yych <= 'p') goto yy106; + if (yych <= 0xC1) goto yy177; + goto yy640; + } else { + if (yych == 0xE2) goto yy641; + goto yy177; + } } } -yy1391: - YYDEBUG(1391, *YYCURSOR); +yy814: + YYDEBUG(814, *YYCURSOR); ++YYCURSOR; if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); yych = *YYCURSOR; - YYDEBUG(1392, *YYCURSOR); - if (yych <= 'A') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy1391; - goto yy55; + if (yych <= '`') { + if (yych <= 'A') { + if (yych <= '@') goto yy59; + goto yy106; } else { - if (yych <= ' ') goto yy1391; - if (yych <= '@') goto yy55; + if (yych == 'P') goto yy106; + goto yy59; } } else { - if (yych <= '`') { - if (yych != 'P') goto yy55; + if (yych <= 'p') { + if (yych <= 'a') goto yy106; + if (yych <= 'o') goto yy59; + goto yy106; } else { - if (yych <= 'a') goto yy1393; - if (yych != 'p') goto yy55; + if (yych == 0xC2) goto yy640; + goto yy59; } } -yy1393: - YYDEBUG(1393, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'L') { - if (yych != '.') goto yy55; - } else { - if (yych <= 'M') goto yy1395; - if (yych == 'm') goto yy1395; - goto yy55; - } - YYDEBUG(1394, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'M') goto yy1395; - if (yych != 'm') goto yy55; -yy1395: - YYDEBUG(1395, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 0x1F) { - if (yych <= 0x00) goto yy1397; - if (yych == '\t') goto yy1397; - goto yy55; - } else { - if (yych <= ' ') goto yy1397; - if (yych != '.') goto yy55; - } - YYDEBUG(1396, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '\t') { - if (yych <= 0x00) goto yy1397; - if (yych <= 0x08) goto yy55; - } else { - if (yych != ' ') goto yy55; - } -yy1397: - YYDEBUG(1397, *YYCURSOR); - yych = *++YYCURSOR; - goto yy1388; -yy1398: - YYDEBUG(1398, *YYCURSOR); - yyaccept = 1; +yy815: + YYDEBUG(815, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0xAF) goto yy947; + goto yy59; +yy816: + YYDEBUG(816, *YYCURSOR); + yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'B') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy183; - } - } else { - if (yych <= '_') { - if (yych <= 'C') goto yy1381; - if (yych <= 'Z') goto yy183; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'O') { + if (yych <= ' ') { + if (yych == '\t') goto yy638; + if (yych <= 0x1F) goto yy177; + goto yy638; } else { - if (yych <= 'b') { - if (yych <= '`') goto yy3; - goto yy188; + if (yych <= '.') { + if (yych <= '-') goto yy177; + goto yy744; } else { - if (yych <= 'c') goto yy1399; - if (yych <= 'z') goto yy188; - goto yy3; + if (yych == 'A') goto yy106; + goto yy177; } } - } -yy1399: - YYDEBUG(1399, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'J') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy184; - } } else { - if (yych <= '_') { - if (yych <= 'K') goto yy1382; - if (yych <= 'Z') goto yy184; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'p') { + if (yych <= '`') { + if (yych <= 'P') goto yy106; + goto yy177; + } else { + if (yych <= 'a') goto yy106; + if (yych <= 'o') goto yy177; + goto yy106; + } } else { - if (yych <= 'j') { - if (yych <= '`') goto yy3; - goto yy192; + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy177; + goto yy640; } else { - if (yych <= 'k') goto yy1400; - if (yych <= 'z') goto yy192; - goto yy3; + if (yych == 0xE2) goto yy641; + goto yy177; } } } -yy1400: - YYDEBUG(1400, *YYCURSOR); - yyaccept = 1; +yy817: + YYDEBUG(817, *YYCURSOR); + yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= '(') { - if (yych == ' ') goto yy1383; - goto yy3; - } else { - if (yych <= ')') goto yy181; - if (yych == '-') goto yy189; - goto yy3; - } + if (yych == '.') goto yy744; + if (yych <= '/') goto yy177; + if (yych <= '9') goto yy948; + goto yy177; +yy818: + YYDEBUG(818, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy744; + if (yych == '0') goto yy948; + goto yy177; +yy819: + YYDEBUG(819, *YYCURSOR); + yyaccept = 15; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych <= '/') goto yy567; + if (yych <= '9') goto yy821; + if (yych <= 'm') goto yy567; + goto yy741; } else { - if (yych <= '^') { - if (yych <= '/') goto yy189; - if (yych <= '@') goto yy3; - if (yych <= 'Z') goto yy185; - goto yy3; - } else { - if (yych <= '_') goto yy189; - if (yych <= '`') goto yy3; - if (yych <= 'z') goto yy193; - goto yy3; - } - } -yy1401: - YYDEBUG(1401, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'S') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= 'r') { + if (yych <= 'q') goto yy567; + goto yy741; } else { - if (yych <= '@') goto yy3; - if (yych <= 'R') goto yy183; + if (yych <= 's') goto yy742; + if (yych <= 't') goto yy743; + goto yy567; } + } +yy820: + YYDEBUG(820, *YYCURSOR); + yyaccept = 15; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych <= '/') goto yy567; + if (yych <= '1') goto yy821; + if (yych <= 'm') goto yy567; + goto yy741; } else { if (yych <= 'r') { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - goto yy183; - } else { - if (yych <= 's') goto yy1402; - if (yych <= 'z') goto yy183; - goto yy3; - } - } -yy1402: - YYDEBUG(1402, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= 'q') goto yy567; + goto yy741; } else { - if (yych <= '@') goto yy3; - if (yych <= 'S') goto yy184; - } - } else { - if (yych <= 's') { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy3; - goto yy184; - } else { - if (yych <= 't') goto yy1403; - if (yych <= 'z') goto yy184; - goto yy3; + if (yych <= 's') goto yy742; + if (yych <= 't') goto yy743; + goto yy567; } } -yy1403: - YYDEBUG(1403, *YYCURSOR); - yyaccept = 1; +yy821: + YYDEBUG(821, *YYCURSOR); + yyaccept = 15; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '(') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy3; - goto yy1164; - } else { - if (yych != ' ') goto yy3; - } + if (yych <= 'q') { + if (yych == 'n') goto yy741; + goto yy567; } else { - if (yych <= 'Z') { - if (yych <= ')') goto yy181; - if (yych <= '@') goto yy3; - goto yy185; - } else { - if (yych <= '`') goto yy3; - if (yych <= 'z') goto yy185; - goto yy3; - } + if (yych <= 'r') goto yy741; + if (yych <= 's') goto yy742; + if (yych <= 't') goto yy743; + goto yy567; } -yy1404: - YYDEBUG(1404, *YYCURSOR); +yy822: + YYDEBUG(822, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'D') goto yy1405; - if (yych != 'd') goto yy1165; -yy1405: - YYDEBUG(1405, *YYCURSOR); + if (yych <= '/') goto yy59; + if (yych <= '2') goto yy949; + if (yych <= '3') goto yy950; + if (yych <= '9') goto yy821; + goto yy59; +yy823: + YYDEBUG(823, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy1406; - if (yych != 'a') goto yy55; -yy1406: - YYDEBUG(1406, *YYCURSOR); + if (yych == '-') goto yy951; + goto yy59; +yy824: + YYDEBUG(824, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy1407; - if (yych != 'y') goto yy55; -yy1407: - YYDEBUG(1407, *YYCURSOR); - yyaccept = 26; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'R') { - if (yych != ' ') goto yy1179; + if (yych <= 'S') { + if (yych == '-') goto yy951; + goto yy59; } else { - if (yych <= 'S') goto yy1207; - if (yych == 's') goto yy1207; - goto yy1179; - } - YYDEBUG(1408, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy1409; - if (yych != 'o') goto yy55; -yy1409: - YYDEBUG(1409, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'F') goto yy1410; - if (yych != 'f') goto yy55; -yy1410: - YYDEBUG(1410, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(1411, *YYCURSOR); -#line 1248 "ext/date/lib/parse_date.re" - { - DEBUG_OUTPUT("firstdayof | lastdayof"); - TIMELIB_INIT; - TIMELIB_HAVE_RELATIVE(); - - /* skip "last day of" or "first day of" */ - if (*ptr == 'l' || *ptr == 'L') { - s->time->relative.first_last_day_of = TIMELIB_SPECIAL_LAST_DAY_OF_MONTH; - } else { - s->time->relative.first_last_day_of = TIMELIB_SPECIAL_FIRST_DAY_OF_MONTH; - } - - TIMELIB_DEINIT; - return TIMELIB_LF_DAY_OF_MONTH; + if (yych <= 'T') goto yy823; + if (yych == 't') goto yy823; + goto yy59; } -#line 20865 "" -yy1412: - YYDEBUG(1412, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'R') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; +yy825: + YYDEBUG(825, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy290; + if (yych <= '9') goto yy952; + goto yy290; +yy826: + YYDEBUG(826, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == ')') goto yy115; + goto yy20; +yy827: + YYDEBUG(827, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '9') { + if (yych <= ' ') { + if (yych <= 0x08) { + if (yych <= 0x00) goto yy324; + goto yy59; + } else { + if (yych <= '\t') goto yy326; + if (yych <= 0x1F) goto yy59; + goto yy326; + } } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy183; + if (yych <= '-') { + if (yych <= '+') goto yy59; + if (yych <= ',') goto yy326; + goto yy953; + } else { + if (yych <= '.') goto yy326; + if (yych <= '/') goto yy59; + goto yy512; + } } } else { - if (yych <= '_') { - if (yych <= 'S') goto yy1402; - if (yych <= 'Z') goto yy183; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'm') { + if (yych <= 'd') { + if (yych <= 'c') goto yy59; + goto yy326; + } else { + if (yych == 'h') goto yy326; + goto yy59; + } } else { if (yych <= 'r') { - if (yych <= '`') goto yy3; - goto yy188; + if (yych <= 'n') goto yy329; + if (yych <= 'q') goto yy59; + goto yy329; } else { - if (yych <= 's') goto yy1413; - if (yych <= 'z') goto yy188; - goto yy3; + if (yych <= 's') goto yy330; + if (yych <= 't') goto yy331; + goto yy59; } } } -yy1413: - YYDEBUG(1413, *YYCURSOR); - yyaccept = 1; +yy828: + YYDEBUG(828, *YYCURSOR); + yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'S') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy295; + goto yy142; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy184; + if (yych == ' ') goto yy142; + goto yy295; } } else { - if (yych <= '_') { - if (yych <= 'T') goto yy1403; - if (yych <= 'Z') goto yy184; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 's') { - if (yych <= '`') goto yy3; - goto yy192; - } else { - if (yych <= 't') goto yy1414; - if (yych <= 'z') goto yy192; - goto yy3; - } + if (yych <= '.') { + if (yych <= ')') goto yy115; + if (yych <= ',') goto yy295; + goto yy142; + } else { + if (yych <= '/') goto yy295; + if (yych <= '9') goto yy142; + goto yy295; } } -yy1414: - YYDEBUG(1414, *YYCURSOR); - yyaccept = 1; +yy829: + YYDEBUG(829, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy954; + } if (yych <= '-') { - if (yych <= ' ') { - if (yych == '\t') goto yy1164; - if (yych <= 0x1F) goto yy3; - goto yy1404; - } else { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } else { - if (yych <= 'Z') { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy185; + if (yych <= '/') { + if (yych <= '.') goto yy20; + goto yy297; } else { - if (yych <= '_') { - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= '`') goto yy3; - if (yych <= 'z') goto yy193; - goto yy3; - } + if (yych == '_') goto yy297; + goto yy20; } } -yy1415: - YYDEBUG(1415, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'B') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'A') goto yy183; - goto yy1453; - } - } else { - if (yych <= 'a') { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - goto yy183; - } else { - if (yych <= 'b') goto yy1453; - if (yych <= 'z') goto yy183; - goto yy3; - } +yy830: + YYDEBUG(830, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy954; } -yy1416: - YYDEBUG(1416, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'R') { - if (yych <= '@') { - if (yych == ')') goto yy181; - goto yy3; + if (yych <= ',') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy142; + goto yy295; } else { - if (yych == 'F') goto yy1443; - if (yych <= 'Q') goto yy183; - goto yy1442; + if (yych <= ' ') goto yy142; + if (yych == ')') goto yy115; + goto yy295; } } else { - if (yych <= 'f') { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - if (yych <= 'e') goto yy183; - goto yy1443; - } else { - if (yych == 'r') goto yy1442; - if (yych <= 'z') goto yy183; - goto yy3; + if (yych <= '/') { + if (yych <= '-') goto yy700; + if (yych <= '.') goto yy142; + goto yy297; + } else { + if (yych <= '9') goto yy142; + if (yych == '_') goto yy297; + goto yy295; } } -yy1417: - YYDEBUG(1417, *YYCURSOR); +yy831: + YYDEBUG(831, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'T') goto yy183; - goto yy1439; - } + if (yych == 'F') goto yy956; + if (yych == 'f') goto yy956; + goto yy59; +yy832: + YYDEBUG(832, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'D') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= 't') { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - goto yy183; - } else { - if (yych <= 'u') goto yy1439; - if (yych <= 'z') goto yy183; - goto yy3; - } + if (yych <= 'E') goto yy957; + if (yych == 'e') goto yy957; + goto yy20; } -yy1418: - YYDEBUG(1418, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych <= '@') { - if (yych == ')') goto yy181; - goto yy3; +yy833: + YYDEBUG(833, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'D') { + if (yych <= ',') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych == 'I') goto yy1420; - if (yych <= 'N') goto yy183; + if (yych == '.') goto yy20; + if (yych <= '/') goto yy297; + goto yy20; } } else { - if (yych <= 'i') { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - if (yych <= 'h') goto yy183; - goto yy1420; - } else { - if (yych == 'o') goto yy1419; - if (yych <= 'z') goto yy183; - goto yy3; + if (yych <= '`') { + if (yych <= 'E') goto yy957; + if (yych == '_') goto yy297; + goto yy20; + } else { + if (yych == 'e') goto yy958; + if (yych <= 'z') goto yy954; + goto yy20; } } -yy1419: - YYDEBUG(1419, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'N') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; +yy834: + YYDEBUG(834, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12); + yych = *YYCURSOR; +yy835: + YYDEBUG(835, *YYCURSOR); + if (yych <= 'X') { + if (yych <= 'G') { + if (yych <= ' ') { + if (yych == '\t') goto yy834; + if (yych <= 0x1F) goto yy59; + goto yy834; + } else { + if (yych <= 'D') { + if (yych <= 'C') goto yy59; + goto yy856; + } else { + if (yych == 'F') goto yy857; + goto yy59; + } + } } else { - if (yych <= '@') goto yy3; - if (yych <= 'M') goto yy184; - goto yy1424; + if (yych <= 'S') { + if (yych <= 'L') { + if (yych <= 'H') goto yy858; + goto yy59; + } else { + if (yych <= 'M') goto yy859; + if (yych <= 'R') goto yy59; + goto yy860; + } + } else { + if (yych <= 'U') { + if (yych <= 'T') goto yy861; + goto yy862; + } else { + if (yych == 'W') goto yy959; + goto yy59; + } + } } } else { - if (yych <= 'm') { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy3; - goto yy184; + if (yych <= 'r') { + if (yych <= 'f') { + if (yych <= 'c') { + if (yych <= 'Y') goto yy864; + goto yy59; + } else { + if (yych <= 'd') goto yy856; + if (yych <= 'e') goto yy59; + goto yy857; + } + } else { + if (yych <= 'h') { + if (yych <= 'g') goto yy59; + goto yy858; + } else { + if (yych == 'm') goto yy859; + goto yy59; + } + } } else { - if (yych <= 'n') goto yy1424; - if (yych <= 'z') goto yy184; - goto yy3; + if (yych <= 'w') { + if (yych <= 't') { + if (yych <= 's') goto yy860; + goto yy861; + } else { + if (yych <= 'u') goto yy862; + if (yych <= 'v') goto yy59; + goto yy959; + } + } else { + if (yych <= 'y') { + if (yych <= 'x') goto yy59; + goto yy864; + } else { + if (yych == 0xC2) goto yy865; + goto yy59; + } + } } } -yy1420: - YYDEBUG(1420, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'D') { - if (yych <= ')') { - if (yych <= '(') goto yy219; - goto yy181; +yy836: + YYDEBUG(836, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '(') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy20; + goto yy834; } else { - if (yych <= '@') goto yy219; - if (yych <= 'C') goto yy184; + if (yych == ' ') goto yy834; + goto yy20; } } else { - if (yych <= 'c') { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy219; - goto yy184; + if (yych <= 0xC2) { + if (yych <= ')') goto yy115; + if (yych <= 0xC1) goto yy20; } else { - if (yych <= 'd') goto yy1421; - if (yych <= 'z') goto yy184; - goto yy219; + if (yych == 0xE2) goto yy838; + goto yy20; } } -yy1421: - YYDEBUG(1421, *YYCURSOR); +yy837: + YYDEBUG(837, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'A') { - if (yych == ')') goto yy181; - if (yych <= '@') goto yy3; + if (yych == 0xA0) goto yy960; + goto yy59; +yy838: + YYDEBUG(838, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0x80) goto yy961; + goto yy59; +yy839: + YYDEBUG(839, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= '`') { - if (yych <= 'Z') goto yy185; - goto yy3; - } else { - if (yych <= 'a') goto yy1422; - if (yych <= 'z') goto yy185; - goto yy3; - } + if (yych <= 'T') goto yy962; + if (yych == 't') goto yy962; + goto yy20; } -yy1422: - YYDEBUG(1422, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'Y') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; +yy840: + YYDEBUG(840, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy954; + } + if (yych <= '-') { + if (yych <= ' ') { + if (yych == '\t') goto yy834; + if (yych <= 0x1F) goto yy20; + goto yy834; } else { - if (yych <= '@') goto yy3; - if (yych <= 'X') goto yy186; + if (yych == ')') goto yy115; + if (yych <= ',') goto yy20; + goto yy297; } } else { - if (yych <= 'x') { - if (yych <= 'Z') goto yy186; - if (yych <= '`') goto yy3; - goto yy186; + if (yych <= '_') { + if (yych == '/') goto yy297; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= 'y') goto yy1423; - if (yych <= 'z') goto yy186; - goto yy3; + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy20; + goto yy837; + } else { + if (yych == 0xE2) goto yy838; + goto yy20; + } } } -yy1423: - YYDEBUG(1423, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'R') { - if (yych == ')') goto yy181; - goto yy219; - } else { - if (yych <= 'S') goto yy225; - if (yych == 's') goto yy225; - goto yy219; - } -yy1424: - YYDEBUG(1424, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; +yy841: + YYDEBUG(841, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych <= ',') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= '@') goto yy3; - if (yych <= 'S') goto yy185; + if (yych == '.') goto yy20; + if (yych <= '/') goto yy297; + goto yy20; } } else { - if (yych <= 's') { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy3; - goto yy185; - } else { - if (yych <= 't') goto yy1425; - if (yych <= 'z') goto yy185; - goto yy3; + if (yych <= '`') { + if (yych <= 'T') goto yy962; + if (yych == '_') goto yy297; + goto yy20; + } else { + if (yych == 't') goto yy963; + if (yych <= 'z') goto yy954; + goto yy20; } } -yy1425: - YYDEBUG(1425, *YYCURSOR); - yyaccept = 1; +yy842: + YYDEBUG(842, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ')') { - if (yych == ' ') goto yy1426; - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= 'Q') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= 'Z') { - if (yych <= '@') goto yy3; - goto yy186; - } else { - if (yych <= '`') goto yy3; - if (yych <= 'z') goto yy186; - goto yy3; - } - } -yy1426: - YYDEBUG(1426, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy1427; - if (yych != 'o') goto yy55; -yy1427: - YYDEBUG(1427, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'F') goto yy1428; - if (yych != 'f') goto yy55; -yy1428: - YYDEBUG(1428, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != ' ') goto yy55; - YYDEBUG(1429, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '1') goto yy1430; - if (yych <= '2') goto yy1431; - if (yych <= '9') goto yy1432; - goto yy55; -yy1430: - YYDEBUG(1430, *YYCURSOR); - yyaccept = 28; + if (yych <= 'R') goto yy964; + if (yych == 'r') goto yy964; + goto yy20; + } +yy843: + YYDEBUG(843, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy866; + if (yych == 'd') goto yy866; + goto yy835; +yy844: + YYDEBUG(844, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'R') { + if (yych == ')') goto yy115; + goto yy315; + } else { + if (yych <= 'S') goto yy965; + if (yych == 's') goto yy965; + goto yy315; + } +yy845: + YYDEBUG(845, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '@') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy1433; - goto yy1388; + if (yych <= 'Q') { + if (yych <= ',') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= ' ') goto yy1433; - if (yych <= '/') goto yy1388; - if (yych <= '9') goto yy1432; - goto yy1388; + if (yych == '.') goto yy20; + if (yych <= '/') goto yy297; + goto yy20; } } else { if (yych <= '`') { - if (yych <= 'A') goto yy1435; - if (yych == 'P') goto yy1435; - goto yy1388; - } else { - if (yych <= 'a') goto yy1435; - if (yych == 'p') goto yy1435; - goto yy1388; + if (yych <= 'R') goto yy964; + if (yych == '_') goto yy297; + goto yy20; + } else { + if (yych == 'r') goto yy966; + if (yych <= 'z') goto yy954; + goto yy20; } } -yy1431: - YYDEBUG(1431, *YYCURSOR); - yyaccept = 28; +yy846: + YYDEBUG(846, *YYCURSOR); + yyaccept = 9; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '@') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy1433; - goto yy1388; + if (yych <= 'R') { + if (yych <= ',') { + if (yych == ')') goto yy115; + goto yy315; } else { - if (yych <= ' ') goto yy1433; - if (yych <= '/') goto yy1388; - if (yych >= '5') goto yy1388; + if (yych == '.') goto yy315; + if (yych <= '/') goto yy297; + goto yy315; } } else { if (yych <= '`') { - if (yych <= 'A') goto yy1435; - if (yych == 'P') goto yy1435; - goto yy1388; - } else { - if (yych <= 'a') goto yy1435; - if (yych == 'p') goto yy1435; - goto yy1388; + if (yych <= 'S') goto yy965; + if (yych == '_') goto yy297; + goto yy315; + } else { + if (yych == 's') goto yy967; + if (yych <= 'z') goto yy954; + goto yy315; } } -yy1432: - YYDEBUG(1432, *YYCURSOR); - yyaccept = 28; +yy847: + YYDEBUG(847, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'A') { - if (yych <= 0x1F) { - if (yych != '\t') goto yy1388; - } else { - if (yych <= ' ') goto yy1433; - if (yych <= '@') goto yy1388; - goto yy1435; - } + if (yych <= '/') goto yy20; + if (yych <= '5') goto yy968; + if (yych <= '9') goto yy115; + if (yych <= ':') goto yy393; + goto yy20; +yy848: + YYDEBUG(848, *YYCURSOR); + yyaccept = 20; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy969; } else { - if (yych <= '`') { - if (yych == 'P') goto yy1435; - goto yy1388; - } else { - if (yych <= 'a') goto yy1435; - if (yych == 'p') goto yy1435; - goto yy1388; - } + if (yych <= '9') goto yy850; + if (yych <= ':') goto yy969; } -yy1433: - YYDEBUG(1433, *YYCURSOR); - ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); - yych = *YYCURSOR; - YYDEBUG(1434, *YYCURSOR); - if (yych <= 'A') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy1433; - goto yy55; - } else { - if (yych <= ' ') goto yy1433; - if (yych <= '@') goto yy55; +yy849: + YYDEBUG(849, *YYCURSOR); +#line 1924 "ext/date/lib/parse_date.re" + { + int tz_not_found; + DEBUG_OUTPUT("dateshortwithtimeshort | dateshortwithtimelong | dateshortwithtimelongtz"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->m = timelib_get_month(&ptr); + s->time->d = timelib_get_nr(&ptr, 2); + + TIMELIB_HAVE_TIME(); + s->time->h = timelib_get_nr(&ptr, 2); + s->time->i = timelib_get_nr(&ptr, 2); + if (*ptr == ':') { + s->time->s = timelib_get_nr(&ptr, 2); + + if (*ptr == '.') { + s->time->us = timelib_get_frac_nr(&ptr); + } } - } else { - if (yych <= '`') { - if (yych != 'P') goto yy55; - } else { - if (yych <= 'a') goto yy1435; - if (yych != 'p') goto yy55; + + if (*ptr != '\0') { + s->time->z = timelib_parse_zone(&ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper); + if (tz_not_found) { + add_error(s, TIMELIB_ERR_TZID_NOT_FOUND, "The timezone could not be found in the database"); + } } + TIMELIB_DEINIT; + return TIMELIB_SHORTDATE_WITH_TIME; } -yy1435: - YYDEBUG(1435, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'L') { - if (yych != '.') goto yy55; - } else { - if (yych <= 'M') goto yy1437; - if (yych == 'm') goto yy1437; - goto yy55; - } - YYDEBUG(1436, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'M') goto yy1437; - if (yych != 'm') goto yy55; -yy1437: - YYDEBUG(1437, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 0x1F) { - if (yych <= 0x00) goto yy1397; - if (yych == '\t') goto yy1397; - goto yy55; +#line 18513 "" +yy850: + YYDEBUG(850, *YYCURSOR); + yyaccept = 20; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy969; + if (yych == ':') goto yy969; + goto yy849; +yy851: + YYDEBUG(851, *YYCURSOR); + yyaccept = 20; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych == '.') goto yy970; + goto yy849; } else { - if (yych <= ' ') goto yy1397; - if (yych != '.') goto yy55; + if (yych <= '9') goto yy971; + if (yych <= ':') goto yy970; + goto yy849; } - YYDEBUG(1438, *YYCURSOR); +yy852: + YYDEBUG(852, *YYCURSOR); + yyaccept = 20; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy970; + if (yych == ':') goto yy970; + goto yy849; +yy853: + YYDEBUG(853, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '\t') { - if (yych <= 0x00) goto yy1397; - if (yych <= 0x08) goto yy55; - goto yy1397; - } else { - if (yych == ' ') goto yy1397; - goto yy55; - } -yy1439: - YYDEBUG(1439, *YYCURSOR); + if (yych <= '/') goto yy325; + if (yych <= '9') goto yy972; + goto yy325; +yy854: + YYDEBUG(854, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'R') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'Q') goto yy184; - } + if (yych <= 'X') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= 'q') { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy3; - goto yy184; - } else { - if (yych <= 'r') goto yy1440; - if (yych <= 'z') goto yy184; - goto yy3; - } + if (yych <= 'Y') goto yy973; + if (yych == 'y') goto yy973; + goto yy20; } -yy1440: - YYDEBUG(1440, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; +yy855: + YYDEBUG(855, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'X') { + if (yych <= ',') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= '@') goto yy3; - if (yych <= 'S') goto yy185; + if (yych == '.') goto yy20; + if (yych <= '/') goto yy297; + goto yy20; } } else { - if (yych <= 's') { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy3; - goto yy185; - } else { - if (yych <= 't') goto yy1441; - if (yych <= 'z') goto yy185; - goto yy3; + if (yych <= '`') { + if (yych <= 'Y') goto yy973; + if (yych == '_') goto yy297; + goto yy20; + } else { + if (yych == 'y') goto yy974; + if (yych <= 'z') goto yy954; + goto yy20; } } -yy1441: - YYDEBUG(1441, *YYCURSOR); +yy856: + YYDEBUG(856, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'H') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'G') goto yy186; - goto yy1307; - } + if (yych == 'A') goto yy975; + if (yych == 'a') goto yy975; + goto yy59; +yy857: + YYDEBUG(857, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'R') { + if (yych == 'O') goto yy976; + if (yych <= 'Q') goto yy59; + goto yy977; } else { - if (yych <= 'g') { - if (yych <= 'Z') goto yy186; - if (yych <= '`') goto yy3; - goto yy186; + if (yych <= 'o') { + if (yych <= 'n') goto yy59; + goto yy976; } else { - if (yych <= 'h') goto yy1307; - if (yych <= 'z') goto yy186; - goto yy3; + if (yych == 'r') goto yy977; + goto yy59; } } -yy1442: - YYDEBUG(1442, *YYCURSOR); +yy858: + YYDEBUG(858, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy978; + if (yych == 'o') goto yy978; + goto yy59; +yy859: + YYDEBUG(859, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'S') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= 'N') { + if (yych == 'I') goto yy979; + goto yy59; } else { - if (yych <= '@') goto yy3; - if (yych <= 'R') goto yy184; - goto yy1445; + if (yych <= 'O') goto yy980; + if (yych <= 'R') goto yy59; + goto yy981; } } else { - if (yych <= 'r') { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy3; - goto yy184; + if (yych <= 'n') { + if (yych == 'i') goto yy979; + goto yy59; } else { - if (yych <= 's') goto yy1445; - if (yych <= 'z') goto yy184; - goto yy3; + if (yych <= 'o') goto yy980; + if (yych == 's') goto yy981; + goto yy59; } } -yy1443: - YYDEBUG(1443, *YYCURSOR); +yy860: + YYDEBUG(860, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= 'U') { + if (yych <= 'D') { + if (yych == 'A') goto yy983; + goto yy59; } else { - if (yych <= '@') goto yy3; - if (yych <= 'S') goto yy184; + if (yych <= 'E') goto yy984; + if (yych <= 'T') goto yy59; + goto yy985; } } else { - if (yych <= 's') { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy3; - goto yy184; + if (yych <= 'd') { + if (yych == 'a') goto yy983; + goto yy59; } else { - if (yych <= 't') goto yy1444; - if (yych <= 'z') goto yy184; - goto yy3; + if (yych <= 'e') goto yy984; + if (yych == 'u') goto yy985; + goto yy59; } } -yy1444: - YYDEBUG(1444, *YYCURSOR); +yy861: + YYDEBUG(861, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'H') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'G') goto yy185; - goto yy1330; - } + if (yych <= 'U') { + if (yych == 'H') goto yy986; + if (yych <= 'T') goto yy59; + goto yy987; } else { - if (yych <= 'g') { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy3; - goto yy185; + if (yych <= 'h') { + if (yych <= 'g') goto yy59; + goto yy986; } else { - if (yych <= 'h') goto yy1330; - if (yych <= 'z') goto yy185; - goto yy3; + if (yych == 'u') goto yy987; + goto yy59; } } -yy1445: - YYDEBUG(1445, *YYCURSOR); +yy862: + YYDEBUG(862, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'S') goto yy185; - } - } else { - if (yych <= 's') { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy3; - goto yy185; - } else { - if (yych <= 't') goto yy1446; - if (yych <= 'z') goto yy185; - goto yy3; - } - } -yy1446: - YYDEBUG(1446, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '(') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy3; - goto yy1298; - } else { - if (yych != ' ') goto yy3; - } - } else { - if (yych <= 'Z') { - if (yych <= ')') goto yy181; - if (yych <= '@') goto yy3; - goto yy186; - } else { - if (yych <= '`') goto yy3; - if (yych <= 'z') goto yy186; - goto yy3; - } - } -yy1447: - YYDEBUG(1447, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy1448; - if (yych != 'd') goto yy1299; -yy1448: - YYDEBUG(1448, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy1449; - if (yych != 'a') goto yy55; -yy1449: - YYDEBUG(1449, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy1450; - if (yych != 'y') goto yy55; -yy1450: - YYDEBUG(1450, *YYCURSOR); - yyaccept = 26; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'R') { - if (yych != ' ') goto yy1179; - } else { - if (yych <= 'S') goto yy1207; - if (yych == 's') goto yy1207; - goto yy1179; - } - YYDEBUG(1451, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy1452; - if (yych != 'o') goto yy55; -yy1452: - YYDEBUG(1452, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'F') goto yy1410; - if (yych == 'f') goto yy1410; - goto yy55; -yy1453: - YYDEBUG(1453, *YYCURSOR); - yyaccept = 5; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych <= '(') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy248; - goto yy250; - } else { - if (yych == ' ') goto yy250; - goto yy248; - } - } else { - if (yych <= ',') { - if (yych <= ')') goto yy181; - goto yy248; + if (yych == 'S') goto yy988; + if (yych == 's') goto yy988; + goto yy59; +yy863: + YYDEBUG(863, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy989; + if (yych == 'e') goto yy989; + goto yy59; +yy864: + YYDEBUG(864, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy990; + if (yych == 'e') goto yy990; + goto yy59; +yy865: + YYDEBUG(865, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 0xB5) goto yy991; + goto yy59; +yy866: + YYDEBUG(866, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy992; + if (yych == 'a') goto yy992; + goto yy59; +yy867: + YYDEBUG(867, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12); + yych = *YYCURSOR; + if (yych <= 'c') { + if (yych <= 'M') { + if (yych <= 'F') { + if (yych == 'D') goto yy856; + if (yych <= 'E') goto yy59; + goto yy857; + } else { + if (yych == 'H') goto yy858; + if (yych <= 'L') goto yy59; + goto yy859; + } + } else { + if (yych <= 'U') { + if (yych <= 'R') goto yy59; + if (yych <= 'S') goto yy860; + if (yych <= 'T') goto yy861; + goto yy862; } else { - if (yych <= '-') goto yy251; - if (yych <= '.') goto yy250; - goto yy248; + if (yych <= 'W') { + if (yych <= 'V') goto yy59; + goto yy863; + } else { + if (yych == 'Y') goto yy864; + goto yy59; + } } } } else { - if (yych <= 'Z') { - if (yych <= '@') { - if (yych <= '9') goto yy250; - goto yy248; + if (yych <= 's') { + if (yych <= 'g') { + if (yych <= 'd') goto yy856; + if (yych == 'f') goto yy857; + goto yy59; } else { - if (yych != 'R') goto yy184; + if (yych <= 'l') { + if (yych <= 'h') goto yy858; + goto yy59; + } else { + if (yych <= 'm') goto yy859; + if (yych <= 'r') goto yy59; + goto yy860; + } } } else { - if (yych <= 'q') { - if (yych <= '`') goto yy248; - goto yy184; + if (yych <= 'w') { + if (yych <= 't') goto yy861; + if (yych <= 'u') goto yy862; + if (yych <= 'v') goto yy59; + goto yy863; } else { - if (yych <= 'r') goto yy1454; - if (yych <= 'z') goto yy184; - goto yy248; + if (yych <= 'y') { + if (yych <= 'x') goto yy59; + goto yy864; + } else { + if (yych == 0xC2) goto yy993; + goto yy59; + } } } } -yy1454: - YYDEBUG(1454, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'T') goto yy185; - } +yy868: + YYDEBUG(868, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0xAF) goto yy994; + goto yy59; +yy869: + YYDEBUG(869, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'G') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= 't') { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy3; - goto yy185; + if (yych <= 'H') goto yy995; + if (yych == 'h') goto yy995; + goto yy20; + } +yy870: + YYDEBUG(870, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'G') { + if (yych <= ',') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= 'u') goto yy1455; - if (yych <= 'z') goto yy185; - goto yy3; + if (yych == '.') goto yy20; + if (yych <= '/') goto yy297; + goto yy20; } - } -yy1455: - YYDEBUG(1455, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'A') { - if (yych == ')') goto yy181; - if (yych <= '@') goto yy3; } else { if (yych <= '`') { - if (yych <= 'Z') goto yy186; - goto yy3; + if (yych <= 'H') goto yy995; + if (yych == '_') goto yy297; + goto yy20; } else { - if (yych <= 'a') goto yy1456; - if (yych <= 'z') goto yy186; - goto yy3; + if (yych == 'h') goto yy996; + if (yych <= 'z') goto yy954; + goto yy20; } } -yy1456: - YYDEBUG(1456, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'Q') { - if (yych == ')') goto yy181; - goto yy3; - } else { - if (yych <= 'R') goto yy1457; - if (yych != 'r') goto yy3; - } -yy1457: - YYDEBUG(1457, *YYCURSOR); +yy871: + YYDEBUG(871, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy259; - if (yych == 'y') goto yy259; - goto yy55; -yy1458: - YYDEBUG(1458, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'A') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy183; - } + if (yych <= 'Q') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= '_') { - if (yych <= 'B') goto yy1453; - if (yych <= 'Z') goto yy183; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy3; - goto yy188; - } else { - if (yych <= 'b') goto yy1477; - if (yych <= 'z') goto yy188; - goto yy3; - } - } + if (yych <= 'R') goto yy973; + if (yych == 'r') goto yy973; + goto yy20; } -yy1459: - YYDEBUG(1459, *YYCURSOR); - yyaccept = 1; +yy872: + YYDEBUG(872, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'Q') { - if (yych <= '.') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych == '-') goto yy189; - goto yy3; - } + if (yych <= ',') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= '@') { - if (yych <= '/') goto yy189; - goto yy3; - } else { - if (yych == 'F') goto yy1443; - goto yy183; - } + if (yych == '.') goto yy20; + if (yych <= '/') goto yy297; + goto yy20; } } else { if (yych <= '`') { - if (yych <= 'Z') { - if (yych <= 'R') goto yy1442; - goto yy183; - } else { - if (yych == '_') goto yy189; - goto yy3; - } - } else { - if (yych <= 'q') { - if (yych == 'f') goto yy1473; - goto yy188; - } else { - if (yych <= 'r') goto yy1472; - if (yych <= 'z') goto yy188; - goto yy3; - } + if (yych <= 'R') goto yy973; + if (yych == '_') goto yy297; + goto yy20; + } else { + if (yych == 'r') goto yy974; + if (yych <= 'z') goto yy954; + goto yy20; } } -yy1460: - YYDEBUG(1460, *YYCURSOR); - yyaccept = 1; +yy873: + YYDEBUG(873, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'T') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy183; - } - } else { - if (yych <= '_') { - if (yych <= 'U') goto yy1439; - if (yych <= 'Z') goto yy183; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 't') { - if (yych <= '`') goto yy3; - goto yy188; - } else { - if (yych <= 'u') goto yy1469; - if (yych <= 'z') goto yy188; - goto yy3; - } - } - } -yy1461: - YYDEBUG(1461, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'N') { - if (yych <= '.') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych == '-') goto yy189; - goto yy3; - } - } else { - if (yych <= '@') { - if (yych <= '/') goto yy189; - goto yy3; - } else { - if (yych == 'I') goto yy1420; - goto yy183; - } - } + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= '`') { - if (yych <= 'Z') { - if (yych <= 'O') goto yy1419; - goto yy183; - } else { - if (yych == '_') goto yy189; - goto yy3; - } - } else { - if (yych <= 'n') { - if (yych == 'i') goto yy1463; - goto yy188; - } else { - if (yych <= 'o') goto yy1462; - if (yych <= 'z') goto yy188; - goto yy3; - } - } + if (yych <= 'U') goto yy997; + if (yych == 'u') goto yy997; + goto yy20; } -yy1462: - YYDEBUG(1462, *YYCURSOR); - yyaccept = 1; +yy874: + YYDEBUG(874, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'M') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= 'T') { + if (yych <= ',') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy184; + if (yych == '.') goto yy20; + if (yych <= '/') goto yy297; + goto yy20; } } else { - if (yych <= '_') { - if (yych <= 'N') goto yy1424; - if (yych <= 'Z') goto yy184; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 'm') { - if (yych <= '`') goto yy3; - goto yy192; - } else { - if (yych <= 'n') goto yy1467; - if (yych <= 'z') goto yy192; - goto yy3; - } + if (yych <= '`') { + if (yych <= 'U') goto yy997; + if (yych == '_') goto yy297; + goto yy20; + } else { + if (yych == 'u') goto yy998; + if (yych <= 'z') goto yy954; + goto yy20; } } -yy1463: - YYDEBUG(1463, *YYCURSOR); - yyaccept = 4; +yy875: + YYDEBUG(875, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'C') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy219; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy219; - goto yy184; - } + if (yych <= '@') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= '_') { - if (yych <= 'D') goto yy1421; - if (yych <= 'Z') goto yy184; - if (yych <= '^') goto yy219; - goto yy189; - } else { - if (yych <= 'c') { - if (yych <= '`') goto yy219; - goto yy192; - } else { - if (yych <= 'd') goto yy1464; - if (yych <= 'z') goto yy192; - goto yy219; - } - } + if (yych <= 'A') goto yy999; + if (yych == 'a') goto yy999; + goto yy20; } -yy1464: - YYDEBUG(1464, *YYCURSOR); - yyaccept = 1; +yy876: + YYDEBUG(876, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'A') { + if (yych == ')') goto yy115; + goto yy20; + } else { + if (yych <= 'B') goto yy1000; + if (yych == 'b') goto yy1000; + goto yy20; + } +yy877: + YYDEBUG(877, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'G') { + if (yych == ')') goto yy115; + goto yy20; + } else { + if (yych <= 'H') goto yy1001; + if (yych == 'h') goto yy1001; + goto yy20; + } +yy878: + YYDEBUG(878, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '@') { if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy3; + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych == '.') goto yy3; - if (yych <= '/') goto yy189; - goto yy3; + if (yych == '.') goto yy20; + if (yych <= '/') goto yy297; + goto yy20; } } else { if (yych <= '_') { - if (yych <= 'A') goto yy1422; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'A') goto yy999; + if (yych <= '^') goto yy20; + goto yy297; } else { - if (yych <= '`') goto yy3; - if (yych <= 'a') goto yy1465; - if (yych <= 'z') goto yy193; - goto yy3; + if (yych <= '`') goto yy20; + if (yych <= 'a') goto yy1002; + if (yych <= 'z') goto yy954; + goto yy20; } } -yy1465: - YYDEBUG(1465, *YYCURSOR); - yyaccept = 1; +yy879: + YYDEBUG(879, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'X') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= 'A') { + if (yych <= ',') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy186; + if (yych == '.') goto yy20; + if (yych <= '/') goto yy297; + goto yy20; } } else { - if (yych <= '_') { - if (yych <= 'Y') goto yy1423; - if (yych <= 'Z') goto yy186; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= '`') { + if (yych <= 'B') goto yy1000; + if (yych == '_') goto yy297; + goto yy20; } else { - if (yych <= 'x') { - if (yych <= '`') goto yy3; - goto yy194; - } else { - if (yych <= 'y') goto yy1466; - if (yych <= 'z') goto yy194; - goto yy3; - } + if (yych == 'b') goto yy1003; + if (yych <= 'z') goto yy954; + goto yy20; } } -yy1466: - YYDEBUG(1466, *YYCURSOR); - yyaccept = 4; +yy880: + YYDEBUG(880, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'R') { + if (yych <= 'G') { if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy219; + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych == '.') goto yy219; - if (yych <= '/') goto yy189; - goto yy219; + if (yych == '.') goto yy20; + if (yych <= '/') goto yy297; + goto yy20; } } else { if (yych <= '`') { - if (yych <= 'S') goto yy225; - if (yych == '_') goto yy189; - goto yy219; + if (yych <= 'H') goto yy1001; + if (yych == '_') goto yy297; + goto yy20; } else { - if (yych == 's') goto yy239; - if (yych <= 'z') goto yy195; - goto yy219; + if (yych == 'h') goto yy1004; + if (yych <= 'z') goto yy954; + goto yy20; } } -yy1467: - YYDEBUG(1467, *YYCURSOR); - yyaccept = 1; +yy881: + YYDEBUG(881, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1005; + goto yy59; +yy882: + YYDEBUG(882, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '0') goto yy1005; + goto yy59; +yy883: + YYDEBUG(883, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'S') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy185; - } + if (yych <= 'N') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= '_') { - if (yych <= 'T') goto yy1425; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 's') { - if (yych <= '`') goto yy3; - goto yy193; - } else { - if (yych <= 't') goto yy1468; - if (yych <= 'z') goto yy193; - goto yy3; - } - } + if (yych <= 'O') goto yy1006; + if (yych == 'o') goto yy1006; + goto yy20; } -yy1468: - YYDEBUG(1468, *YYCURSOR); - yyaccept = 1; +yy884: + YYDEBUG(884, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'X') { + if (yych == ')') goto yy115; + goto yy20; + } else { + if (yych <= 'Y') goto yy1007; + if (yych == 'y') goto yy1007; + goto yy20; + } +yy885: + YYDEBUG(885, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= '(') { - if (yych == ' ') goto yy1426; - goto yy3; + if (yych <= 'N') { + if (yych <= ',') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= ')') goto yy181; - if (yych == '-') goto yy189; - goto yy3; + if (yych == '.') goto yy20; + if (yych <= '/') goto yy297; + goto yy20; } } else { - if (yych <= '^') { - if (yych <= '/') goto yy189; - if (yych <= '@') goto yy3; - if (yych <= 'Z') goto yy186; - goto yy3; - } else { - if (yych <= '_') goto yy189; - if (yych <= '`') goto yy3; - if (yych <= 'z') goto yy194; - goto yy3; + if (yych <= '`') { + if (yych <= 'O') goto yy1006; + if (yych == '_') goto yy297; + goto yy20; + } else { + if (yych == 'o') goto yy1008; + if (yych <= 'z') goto yy954; + goto yy20; } } -yy1469: - YYDEBUG(1469, *YYCURSOR); - yyaccept = 1; +yy886: + YYDEBUG(886, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'Q') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= 'X') { + if (yych <= ',') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy184; + if (yych == '.') goto yy20; + if (yych <= '/') goto yy297; + goto yy20; } } else { - if (yych <= '_') { - if (yych <= 'R') goto yy1440; - if (yych <= 'Z') goto yy184; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 'q') { - if (yych <= '`') goto yy3; - goto yy192; - } else { - if (yych <= 'r') goto yy1470; - if (yych <= 'z') goto yy192; - goto yy3; - } + if (yych <= '`') { + if (yych <= 'Y') goto yy1007; + if (yych == '_') goto yy297; + goto yy20; + } else { + if (yych == 'y') goto yy1009; + if (yych <= 'z') goto yy954; + goto yy20; } } -yy1470: - YYDEBUG(1470, *YYCURSOR); - yyaccept = 1; +yy887: + YYDEBUG(887, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'S') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy185; - } + if (yych <= 'C') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych <= '_') { - if (yych <= 'T') goto yy1441; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 's') { - if (yych <= '`') goto yy3; - goto yy193; - } else { - if (yych <= 't') goto yy1471; - if (yych <= 'z') goto yy193; - goto yy3; - } - } + if (yych <= 'D') goto yy1010; + if (yych == 'd') goto yy1010; + goto yy20; } -yy1471: - YYDEBUG(1471, *YYCURSOR); - yyaccept = 1; +yy888: + YYDEBUG(888, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'G') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= 'C') { + if (yych <= ',') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy186; + if (yych == '.') goto yy20; + if (yych <= '/') goto yy297; + goto yy20; } } else { - if (yych <= '_') { - if (yych <= 'H') goto yy1307; - if (yych <= 'Z') goto yy186; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 'g') { - if (yych <= '`') goto yy3; - goto yy194; - } else { - if (yych <= 'h') goto yy1319; - if (yych <= 'z') goto yy194; - goto yy3; - } + if (yych <= '`') { + if (yych <= 'D') goto yy1010; + if (yych == '_') goto yy297; + goto yy20; + } else { + if (yych == 'd') goto yy1011; + if (yych <= 'z') goto yy954; + goto yy20; } } -yy1472: - YYDEBUG(1472, *YYCURSOR); - yyaccept = 1; +yy889: + YYDEBUG(889, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'R') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= 'C') { + if (yych == ')') goto yy115; + goto yy20; + } else { + if (yych <= 'D') goto yy1012; + if (yych == 'd') goto yy1012; + goto yy20; + } +yy890: + YYDEBUG(890, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'C') { + if (yych <= ',') { + if (yych == ')') goto yy115; + goto yy20; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy184; + if (yych == '.') goto yy20; + if (yych <= '/') goto yy297; + goto yy20; } } else { - if (yych <= '_') { - if (yych <= 'S') goto yy1445; - if (yych <= 'Z') goto yy184; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 'r') { - if (yych <= '`') goto yy3; - goto yy192; - } else { - if (yych <= 's') goto yy1475; - if (yych <= 'z') goto yy192; - goto yy3; - } + if (yych <= '`') { + if (yych <= 'D') goto yy1012; + if (yych == '_') goto yy297; + goto yy20; + } else { + if (yych == 'd') goto yy1013; + if (yych <= 'z') goto yy954; + goto yy20; } } -yy1473: - YYDEBUG(1473, *YYCURSOR); - yyaccept = 1; +yy891: + YYDEBUG(891, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1014; + goto yy59; +yy892: + YYDEBUG(892, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '2') goto yy1014; + goto yy59; +yy893: + YYDEBUG(893, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '0') goto yy1015; + if (yych <= '1') goto yy1016; + goto yy59; +yy894: + YYDEBUG(894, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'S') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= 'W') { + if (yych <= 'D') { + if (yych <= ',') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy20; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy20; + } + } else { + if (yych <= '/') { + if (yych <= '-') goto yy893; + goto yy20; + } else { + if (yych <= '9') goto yy1017; + if (yych <= 'C') goto yy20; + goto yy196; + } + } } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy184; + if (yych <= 'L') { + if (yych <= 'F') { + if (yych <= 'E') goto yy20; + goto yy196; + } else { + if (yych == 'H') goto yy196; + goto yy20; + } + } else { + if (yych <= 'R') { + if (yych <= 'M') goto yy196; + goto yy20; + } else { + if (yych == 'V') goto yy20; + goto yy196; + } + } } } else { - if (yych <= '_') { - if (yych <= 'T') goto yy1444; - if (yych <= 'Z') goto yy184; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'm') { + if (yych <= 'e') { + if (yych <= 'Y') { + if (yych <= 'X') goto yy20; + goto yy196; + } else { + if (yych == 'd') goto yy196; + goto yy20; + } + } else { + if (yych <= 'g') { + if (yych <= 'f') goto yy196; + goto yy20; + } else { + if (yych <= 'h') goto yy196; + if (yych <= 'l') goto yy20; + goto yy196; + } + } } else { - if (yych <= 's') { - if (yych <= '`') goto yy3; - goto yy192; + if (yych <= 'x') { + if (yych <= 'u') { + if (yych <= 'r') goto yy20; + goto yy196; + } else { + if (yych == 'w') goto yy196; + goto yy20; + } } else { - if (yych <= 't') goto yy1474; - if (yych <= 'z') goto yy192; - goto yy3; + if (yych <= 0xC2) { + if (yych <= 'y') goto yy196; + if (yych <= 0xC1) goto yy20; + goto yy97; + } else { + if (yych == 0xE2) goto yy98; + goto yy20; + } } } } -yy1474: - YYDEBUG(1474, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'G') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; +yy895: + YYDEBUG(895, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '9') { + if (yych == '-') goto yy893; + if (yych <= '/') goto yy196; + goto yy1017; + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy196; + goto yy97; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy185; + if (yych == 0xE2) goto yy98; + goto yy196; } + } +yy896: + YYDEBUG(896, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy1018; + if (yych <= '6') goto yy1019; + goto yy59; +yy897: + YYDEBUG(897, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1020; + goto yy59; +yy898: + YYDEBUG(898, *YYCURSOR); + ++YYCURSOR; + goto yy567; +yy899: + YYDEBUG(899, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(900, *YYCURSOR); + if (yych <= '/') goto yy177; + if (yych <= '9') goto yy899; + goto yy177; +yy901: + YYDEBUG(901, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy224; + if (yych <= '9') goto yy1022; + goto yy224; +yy902: + YYDEBUG(902, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1023; + goto yy59; +yy903: + YYDEBUG(903, *YYCURSOR); + yyaccept = 15; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych <= '/') goto yy567; + if (yych <= '9') goto yy1024; + if (yych <= 'm') goto yy567; + goto yy741; } else { - if (yych <= '_') { - if (yych <= 'H') goto yy1330; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'r') { + if (yych <= 'q') goto yy567; + goto yy741; } else { - if (yych <= 'g') { - if (yych <= '`') goto yy3; - goto yy193; - } else { - if (yych <= 'h') goto yy1360; - if (yych <= 'z') goto yy193; - goto yy3; - } + if (yych <= 's') goto yy742; + if (yych <= 't') goto yy743; + goto yy567; } } -yy1475: - YYDEBUG(1475, *YYCURSOR); - yyaccept = 1; +yy904: + YYDEBUG(904, *YYCURSOR); + yyaccept = 15; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'S') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= 'n') { + if (yych <= '1') { + if (yych <= '/') goto yy567; + goto yy1024; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy185; + if (yych <= '9') goto yy737; + if (yych <= 'm') goto yy567; + goto yy741; } } else { - if (yych <= '_') { - if (yych <= 'T') goto yy1446; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'r') { + if (yych <= 'q') goto yy567; + goto yy741; } else { - if (yych <= 's') { - if (yych <= '`') goto yy3; - goto yy193; - } else { - if (yych <= 't') goto yy1476; - if (yych <= 'z') goto yy193; - goto yy3; - } + if (yych <= 's') goto yy742; + if (yych <= 't') goto yy743; + goto yy567; } } -yy1476: - YYDEBUG(1476, *YYCURSOR); - yyaccept = 1; +yy905: + YYDEBUG(905, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '2') goto yy1026; + if (yych <= '3') goto yy1027; + if (yych <= '9') goto yy1028; + goto yy59; +yy906: + YYDEBUG(906, *YYCURSOR); + yyaccept = 18; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '-') { - if (yych <= ' ') { - if (yych == '\t') goto yy1298; - if (yych <= 0x1F) goto yy3; - goto yy1447; + if (yych == '-') goto yy1029; + if (yych <= '0') goto yy752; + if (yych <= '9') goto yy1030; + goto yy752; +yy907: + YYDEBUG(907, *YYCURSOR); + yyaccept = 18; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '-') goto yy1029; + if (yych <= '/') goto yy752; + if (yych <= '9') goto yy1030; + goto yy752; +yy908: + YYDEBUG(908, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1030; + goto yy59; +yy909: + YYDEBUG(909, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '6') goto yy1030; + goto yy59; +yy910: + YYDEBUG(910, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy1031; + if (yych == 'r') goto yy1031; + goto yy59; +yy911: + YYDEBUG(911, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'G') goto yy1032; + if (yych == 'g') goto yy1032; + goto yy59; +yy912: + YYDEBUG(912, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy1033; + if (yych == 'c') goto yy1033; + goto yy59; +yy913: + YYDEBUG(913, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy1034; + if (yych == 'b') goto yy1034; + goto yy59; +yy914: + YYDEBUG(914, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy1035; + if (yych == 'n') goto yy1035; + goto yy59; +yy915: + YYDEBUG(915, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'N') { + if (yych == 'L') goto yy1036; + if (yych <= 'M') goto yy59; + goto yy1037; + } else { + if (yych <= 'l') { + if (yych <= 'k') goto yy59; + goto yy1036; } else { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych == 'n') goto yy1037; + goto yy59; } + } +yy916: + YYDEBUG(916, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'Y') { + if (yych == 'R') goto yy1038; + if (yych <= 'X') goto yy59; + goto yy1039; } else { - if (yych <= 'Z') { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy186; + if (yych <= 'r') { + if (yych <= 'q') goto yy59; + goto yy1038; } else { - if (yych <= '_') { - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= '`') goto yy3; - if (yych <= 'z') goto yy194; - goto yy3; - } + if (yych == 'y') goto yy1039; + goto yy59; } } -yy1477: - YYDEBUG(1477, *YYCURSOR); - yyaccept = 5; +yy917: + YYDEBUG(917, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'V') goto yy1033; + if (yych == 'v') goto yy1033; + goto yy59; +yy918: + YYDEBUG(918, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy1040; + if (yych == 't') goto yy1040; + goto yy59; +yy919: + YYDEBUG(919, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'P') goto yy1041; + if (yych == 'p') goto yy1041; + goto yy59; +yy920: + YYDEBUG(920, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '0') goto yy59; + if (yych <= '9') goto yy1030; + goto yy59; +yy921: + YYDEBUG(921, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'P') goto yy940; + if (yych == 'p') goto yy940; + goto yy59; +yy922: + YYDEBUG(922, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '2') goto yy1042; + if (yych <= '3') goto yy1044; + if (yych <= '9') goto yy1045; + goto yy59; +yy923: + YYDEBUG(923, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '/') goto yy1046; + goto yy59; +yy924: + YYDEBUG(924, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 0xC1) { + if (yych <= '/') goto yy196; + if (yych <= '9') goto yy1047; + goto yy196; + } else { + if (yych <= 0xC2) goto yy97; + if (yych == 0xE2) goto yy98; + goto yy196; + } +yy925: + YYDEBUG(925, *YYCURSOR); + yyaccept = 21; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '9') { - if (yych <= '(') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy248; - goto yy250; + if (yych <= 'X') { + if (yych <= 'E') { + if (yych <= ' ') { + if (yych == '\t') goto yy196; + if (yych >= ' ') goto yy196; } else { - if (yych == ' ') goto yy250; - goto yy248; + if (yych <= '9') { + if (yych >= '0') goto yy1047; + } else { + if (yych == 'D') goto yy196; + } } } else { - if (yych <= '-') { - if (yych <= ')') goto yy181; - if (yych <= ',') goto yy248; - goto yy377; + if (yych <= 'M') { + if (yych <= 'G') { + if (yych <= 'F') goto yy196; + } else { + if (yych <= 'H') goto yy196; + if (yych >= 'M') goto yy196; + } } else { - if (yych == '/') goto yy189; - goto yy250; + if (yych <= 'U') { + if (yych >= 'S') goto yy196; + } else { + if (yych == 'W') goto yy196; + } } } } else { - if (yych <= '^') { - if (yych <= 'Q') { - if (yych <= '@') goto yy248; - goto yy184; + if (yych <= 'r') { + if (yych <= 'f') { + if (yych <= 'c') { + if (yych <= 'Y') goto yy196; + } else { + if (yych != 'e') goto yy196; + } } else { - if (yych <= 'R') goto yy1454; - if (yych <= 'Z') goto yy184; - goto yy248; + if (yych <= 'h') { + if (yych >= 'h') goto yy196; + } else { + if (yych == 'm') goto yy196; + } } } else { - if (yych <= 'q') { - if (yych <= '_') goto yy189; - if (yych <= '`') goto yy248; - goto yy192; + if (yych <= 'y') { + if (yych <= 'v') { + if (yych <= 'u') goto yy196; + } else { + if (yych != 'x') goto yy196; + } } else { - if (yych <= 'r') goto yy1478; - if (yych <= 'z') goto yy192; - goto yy248; + if (yych <= 0xC2) { + if (yych >= 0xC2) goto yy97; + } else { + if (yych == 0xE2) goto yy98; + } } } } -yy1478: - YYDEBUG(1478, *YYCURSOR); - yyaccept = 1; +yy926: + YYDEBUG(926, *YYCURSOR); +#line 1682 "ext/date/lib/parse_date.re" + { + int length = 0; + DEBUG_OUTPUT("pgydotd"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->y = timelib_get_nr_ex(&ptr, 4, &length); + s->time->d = timelib_get_nr(&ptr, 3); + s->time->m = 1; + TIMELIB_PROCESS_YEAR(s->time->y, length); + TIMELIB_DEINIT; + return TIMELIB_PG_YEARDAY; + } +#line 19570 "" +yy927: + YYDEBUG(927, *YYCURSOR); + yyaccept = 21; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'T') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= 'X') { + if (yych <= 'E') { + if (yych <= '/') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy926; + goto yy196; + } else { + if (yych == ' ') goto yy196; + goto yy926; + } + } else { + if (yych <= '9') { + if (yych <= '1') goto yy1047; + goto yy1049; + } else { + if (yych == 'D') goto yy196; + goto yy926; + } + } } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy185; + if (yych <= 'M') { + if (yych <= 'G') { + if (yych <= 'F') goto yy196; + goto yy926; + } else { + if (yych <= 'H') goto yy196; + if (yych <= 'L') goto yy926; + goto yy196; + } + } else { + if (yych <= 'U') { + if (yych <= 'R') goto yy926; + goto yy196; + } else { + if (yych == 'W') goto yy196; + goto yy926; + } + } } } else { - if (yych <= '_') { - if (yych <= 'U') goto yy1455; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'r') { + if (yych <= 'f') { + if (yych <= 'c') { + if (yych <= 'Y') goto yy196; + goto yy926; + } else { + if (yych == 'e') goto yy926; + goto yy196; + } + } else { + if (yych <= 'h') { + if (yych <= 'g') goto yy926; + goto yy196; + } else { + if (yych == 'm') goto yy196; + goto yy926; + } + } } else { - if (yych <= 't') { - if (yych <= '`') goto yy3; - goto yy193; + if (yych <= 'y') { + if (yych <= 'v') { + if (yych <= 'u') goto yy196; + goto yy926; + } else { + if (yych == 'x') goto yy926; + goto yy196; + } } else { - if (yych <= 'u') goto yy1479; - if (yych <= 'z') goto yy193; - goto yy3; + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy926; + goto yy97; + } else { + if (yych == 0xE2) goto yy98; + goto yy926; + } } } } -yy1479: - YYDEBUG(1479, *YYCURSOR); - yyaccept = 1; +yy928: + YYDEBUG(928, *YYCURSOR); + yyaccept = 21; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '@') { - if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy3; + if (yych <= 'X') { + if (yych <= 'E') { + if (yych <= ' ') { + if (yych == '\t') goto yy196; + if (yych <= 0x1F) goto yy926; + goto yy196; + } else { + if (yych <= '9') { + if (yych <= '/') goto yy926; + goto yy1049; + } else { + if (yych == 'D') goto yy196; + goto yy926; + } + } } else { - if (yych == '.') goto yy3; - if (yych <= '/') goto yy189; - goto yy3; + if (yych <= 'M') { + if (yych <= 'G') { + if (yych <= 'F') goto yy196; + goto yy926; + } else { + if (yych <= 'H') goto yy196; + if (yych <= 'L') goto yy926; + goto yy196; + } + } else { + if (yych <= 'U') { + if (yych <= 'R') goto yy926; + goto yy196; + } else { + if (yych == 'W') goto yy196; + goto yy926; + } + } } } else { - if (yych <= '_') { - if (yych <= 'A') goto yy1456; - if (yych <= 'Z') goto yy186; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'r') { + if (yych <= 'f') { + if (yych <= 'c') { + if (yych <= 'Y') goto yy196; + goto yy926; + } else { + if (yych == 'e') goto yy926; + goto yy196; + } + } else { + if (yych <= 'h') { + if (yych <= 'g') goto yy926; + goto yy196; + } else { + if (yych == 'm') goto yy196; + goto yy926; + } + } } else { - if (yych <= '`') goto yy3; - if (yych <= 'a') goto yy1480; - if (yych <= 'z') goto yy194; - goto yy3; + if (yych <= 'y') { + if (yych <= 'v') { + if (yych <= 'u') goto yy196; + goto yy926; + } else { + if (yych == 'x') goto yy926; + goto yy196; + } + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy926; + goto yy97; + } else { + if (yych == 0xE2) goto yy98; + goto yy926; + } + } } } -yy1480: - YYDEBUG(1480, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'Q') { - if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy3; - } else { - if (yych == '.') goto yy3; - if (yych <= '/') goto yy189; - goto yy3; - } - } else { - if (yych <= '`') { - if (yych <= 'R') goto yy1457; - if (yych == '_') goto yy189; - goto yy3; - } else { - if (yych == 'r') goto yy1481; - if (yych <= 'z') goto yy195; - goto yy3; - } +yy929: + YYDEBUG(929, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 0xC1) { + if (yych <= '/') goto yy196; + if (yych <= '9') goto yy1049; + goto yy196; + } else { + if (yych <= 0xC2) goto yy97; + if (yych == 0xE2) goto yy98; + goto yy196; } -yy1481: - YYDEBUG(1481, *YYCURSOR); +yy930: + YYDEBUG(930, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy259; - if (yych == 'y') goto yy382; - goto yy196; -yy1482: - YYDEBUG(1482, *YYCURSOR); + if (yych == ':') goto yy1050; + goto yy59; +yy931: + YYDEBUG(931, *YYCURSOR); + yyaccept = 22; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'I') goto yy1051; + if (yych == 'i') goto yy1051; + goto yy600; +yy932: + YYDEBUG(932, *YYCURSOR); + yyaccept = 22; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'U') goto yy1052; + if (yych == 'u') goto yy1052; + goto yy600; +yy933: + YYDEBUG(933, *YYCURSOR); + yyaccept = 22; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'E') goto yy1053; + if (yych == 'e') goto yy1053; + goto yy600; +yy934: + YYDEBUG(934, *YYCURSOR); + yyaccept = 22; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'R') goto yy1054; + if (yych == 'r') goto yy1054; + goto yy600; +yy935: + YYDEBUG(935, *YYCURSOR); + yyaccept = 22; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'U') goto yy1055; + if (yych == 'u') goto yy1055; + goto yy600; +yy936: + YYDEBUG(936, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= ':') goto yy55; -yy1483: - YYDEBUG(1483, *YYCURSOR); - ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 7) YYFILL(7); - yych = *YYCURSOR; - YYDEBUG(1484, *YYCURSOR); - if (yych == '.') goto yy1486; - if (yych <= '/') goto yy1485; - if (yych <= '9') goto yy1483; -yy1485: - YYDEBUG(1485, *YYCURSOR); -#line 1182 "ext/date/lib/parse_date.re" - { - timelib_ull i; - - TIMELIB_INIT; - TIMELIB_HAVE_RELATIVE(); - TIMELIB_UNHAVE_DATE(); - TIMELIB_UNHAVE_TIME(); - TIMELIB_HAVE_TZ(); - - i = timelib_get_signed_nr(s, &ptr, 24); - s->time->y = 1970; - s->time->m = 1; - s->time->d = 1; - s->time->h = s->time->i = s->time->s = 0; - s->time->us = 0; - s->time->relative.s += i; - s->time->is_localtime = 1; - s->time->zone_type = TIMELIB_ZONETYPE_OFFSET; - s->time->z = 0; - s->time->dst = 0; - - TIMELIB_DEINIT; - return TIMELIB_RELATIVE; - } -#line 22412 "" -yy1486: - YYDEBUG(1486, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '/') goto yy1487; - if (yych <= '9') goto yy1488; -yy1487: - YYDEBUG(1487, *YYCURSOR); -#line 1208 "ext/date/lib/parse_date.re" + if (yych == 'Y') goto yy790; + if (yych == 'y') goto yy790; + goto yy600; +yy937: + YYDEBUG(937, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy790; + if (yych == 'e') goto yy790; + goto yy600; +yy938: + YYDEBUG(938, *YYCURSOR); + yyaccept = 22; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'C') goto yy1056; + if (yych == 'c') goto yy1056; + goto yy600; +yy939: + YYDEBUG(939, *YYCURSOR); + yyaccept = 22; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'O') goto yy1057; + if (yych == 'o') goto yy1057; + goto yy600; +yy940: + YYDEBUG(940, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy933; + if (yych == 't') goto yy933; + goto yy600; +yy941: + YYDEBUG(941, *YYCURSOR); + yyaccept = 23; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '-') goto yy1058; + if (yych <= '/') goto yy942; + if (yych <= '7') goto yy1059; +yy942: + YYDEBUG(942, *YYCURSOR); +#line 1715 "ext/date/lib/parse_date.re" { - timelib_sll i; - timelib_ull us; - const char *ptr_before; - bool is_negative; - + timelib_sll w, d; + DEBUG_OUTPUT("isoweek"); TIMELIB_INIT; + TIMELIB_HAVE_DATE(); TIMELIB_HAVE_RELATIVE(); - TIMELIB_UNHAVE_DATE(); - TIMELIB_UNHAVE_TIME(); - TIMELIB_HAVE_TZ(); - - is_negative = *(ptr + 1) == '-'; - - i = timelib_get_signed_nr(s, &ptr, 24); - ptr_before = ptr; - us = timelib_get_signed_nr(s, &ptr, 6); - us = us * pow(10, 7 - (ptr - ptr_before)); - if (is_negative) { - us *= -1; - } - - s->time->y = 1970; + s->time->y = timelib_get_nr(&ptr, 4); + w = timelib_get_nr(&ptr, 2); + d = 1; s->time->m = 1; s->time->d = 1; - s->time->h = s->time->i = s->time->s = 0; - s->time->us = 0; - s->time->relative.s += i; - s->time->relative.us = us; - s->time->is_localtime = 1; - s->time->zone_type = TIMELIB_ZONETYPE_OFFSET; - s->time->z = 0; - s->time->dst = 0; + s->time->relative.d = timelib_daynr_from_weeknr(s->time->y, w, d); TIMELIB_DEINIT; - return TIMELIB_RELATIVE; + return TIMELIB_ISO_WEEK; } -#line 22459 "" -yy1488: - YYDEBUG(1488, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy1487; - if (yych >= ':') goto yy1487; - YYDEBUG(1489, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy1487; - if (yych >= ':') goto yy1487; - YYDEBUG(1490, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy1487; - if (yych >= ':') goto yy1487; - YYDEBUG(1491, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy1487; - if (yych >= ':') goto yy1487; - YYDEBUG(1492, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy1487; - if (yych >= ':') goto yy1487; - YYDEBUG(1493, *YYCURSOR); - yych = *++YYCURSOR; - goto yy1487; -yy1494: - YYDEBUG(1494, *YYCURSOR); +#line 19842 "" +yy943: + YYDEBUG(943, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'N') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych == 'G') goto yy1061; + if (yych == 'g') goto yy1061; + goto yy59; +yy944: + YYDEBUG(944, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy253; + if (yych == 'y') goto yy253; + goto yy59; +yy945: + YYDEBUG(945, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy1062; + if (yych == 'e') goto yy1062; + goto yy59; +yy946: + YYDEBUG(946, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy253; + if (yych == 'r') goto yy253; + goto yy59; +yy947: + YYDEBUG(947, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); + yych = *YYCURSOR; + if (yych <= '`') { + if (yych <= 'A') { + if (yych <= '@') goto yy59; + goto yy106; } else { - if (yych <= '@') goto yy3; - if (yych <= 'M') goto yy183; - goto yy1537; + if (yych == 'P') goto yy106; + goto yy59; } } else { - if (yych <= 'm') { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - goto yy183; + if (yych <= 'p') { + if (yych <= 'a') goto yy106; + if (yych <= 'o') goto yy59; + goto yy106; } else { - if (yych <= 'n') goto yy1537; - if (yych <= 'z') goto yy183; - goto yy3; + if (yych == 0xE2) goto yy641; + goto yy59; } } -yy1495: - YYDEBUG(1495, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych <= '@') { - if (yych == ')') goto yy181; - goto yy3; +yy948: + YYDEBUG(948, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'A') { + if (yych <= '-') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy177; + goto yy638; + } else { + if (yych == ' ') goto yy638; + goto yy177; + } } else { - if (yych == 'I') goto yy1528; - if (yych <= 'T') goto yy183; - goto yy1529; + if (yych <= '9') { + if (yych <= '.') goto yy1063; + goto yy177; + } else { + if (yych <= ':') goto yy1064; + if (yych <= '@') goto yy177; + goto yy106; + } } } else { - if (yych <= 'i') { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - if (yych <= 'h') goto yy183; - goto yy1528; - } else { - if (yych == 'u') goto yy1529; - if (yych <= 'z') goto yy183; - goto yy3; + if (yych <= 'o') { + if (yych <= 'P') { + if (yych <= 'O') goto yy177; + goto yy106; + } else { + if (yych == 'a') goto yy106; + goto yy177; + } + } else { + if (yych <= 0xC2) { + if (yych <= 'p') goto yy106; + if (yych <= 0xC1) goto yy177; + goto yy640; + } else { + if (yych == 0xE2) goto yy641; + goto yy177; + } } } -yy1496: - YYDEBUG(1496, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'M') { - if (yych <= '@') { - if (yych == ')') goto yy181; - goto yy3; +yy949: + YYDEBUG(949, *YYCURSOR); + yyaccept = 15; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych <= '/') goto yy567; + if (yych <= '9') goto yy1065; + if (yych <= 'm') goto yy567; + goto yy741; + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy567; + goto yy741; } else { - if (yych == 'D') goto yy1517; - if (yych <= 'L') goto yy183; - goto yy1518; + if (yych <= 's') goto yy742; + if (yych <= 't') goto yy743; + goto yy567; } + } +yy950: + YYDEBUG(950, *YYCURSOR); + yyaccept = 15; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych <= '/') goto yy567; + if (yych <= '1') goto yy1065; + if (yych <= 'm') goto yy567; + goto yy741; } else { - if (yych <= 'd') { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - if (yych <= 'c') goto yy183; - goto yy1517; - } else { - if (yych == 'm') goto yy1518; - if (yych <= 'z') goto yy183; - goto yy3; + if (yych <= 'r') { + if (yych <= 'q') goto yy567; + goto yy741; + } else { + if (yych <= 's') goto yy742; + if (yych <= 't') goto yy743; + goto yy567; } } -yy1497: - YYDEBUG(1497, *YYCURSOR); +yy951: + YYDEBUG(951, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'E') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'D') goto yy183; - goto yy1512; - } + if (yych <= '/') goto yy59; + if (yych <= '2') goto yy1066; + if (yych <= '3') goto yy1067; + goto yy59; +yy952: + YYDEBUG(952, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy290; + if (yych <= '9') goto yy1068; + goto yy290; +yy953: + YYDEBUG(953, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1069; + goto yy59; +yy954: + YYDEBUG(954, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; +yy955: + YYDEBUG(955, *YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy954; + } + if (yych <= '.') { + if (yych == '-') goto yy297; + goto yy59; } else { - if (yych <= 'd') { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - goto yy183; - } else { - if (yych <= 'e') goto yy1512; - if (yych <= 'z') goto yy183; - goto yy3; - } + if (yych <= '/') goto yy297; + if (yych == '_') goto yy297; + goto yy59; } -yy1498: - YYDEBUG(1498, *YYCURSOR); +yy956: + YYDEBUG(956, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'E') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'D') goto yy183; - goto yy1508; + if (yych == ' ') goto yy1071; + goto yy59; +yy957: + YYDEBUG(957, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy973; + if (yych == 'r') goto yy973; + goto yy59; +yy958: + YYDEBUG(958, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy973; + if (yych == 'r') goto yy974; + goto yy955; +yy959: + YYDEBUG(959, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy1072; + if (yych == 'e') goto yy1072; + goto yy59; +yy960: + YYDEBUG(960, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12); + yych = *YYCURSOR; + if (yych <= 'c') { + if (yych <= 'M') { + if (yych <= 'F') { + if (yych == 'D') goto yy856; + if (yych <= 'E') goto yy59; + goto yy857; + } else { + if (yych == 'H') goto yy858; + if (yych <= 'L') goto yy59; + goto yy859; + } + } else { + if (yych <= 'U') { + if (yych <= 'R') goto yy59; + if (yych <= 'S') goto yy860; + if (yych <= 'T') goto yy861; + goto yy862; + } else { + if (yych <= 'W') { + if (yych <= 'V') goto yy59; + goto yy959; + } else { + if (yych == 'Y') goto yy864; + goto yy59; + } + } } } else { - if (yych <= 'd') { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - goto yy183; + if (yych <= 's') { + if (yych <= 'g') { + if (yych <= 'd') goto yy856; + if (yych == 'f') goto yy857; + goto yy59; + } else { + if (yych <= 'l') { + if (yych <= 'h') goto yy858; + goto yy59; + } else { + if (yych <= 'm') goto yy859; + if (yych <= 'r') goto yy59; + goto yy860; + } + } } else { - if (yych <= 'e') goto yy1508; - if (yych <= 'z') goto yy183; - goto yy3; + if (yych <= 'w') { + if (yych <= 't') goto yy861; + if (yych <= 'u') goto yy862; + if (yych <= 'v') goto yy59; + goto yy959; + } else { + if (yych <= 'y') { + if (yych <= 'x') goto yy59; + goto yy864; + } else { + if (yych == 0xC2) goto yy1073; + goto yy59; + } + } } } -yy1499: - YYDEBUG(1499, *YYCURSOR); - yyaccept = 10; +yy961: + YYDEBUG(961, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0xAF) goto yy1074; + goto yy59; +yy962: + YYDEBUG(962, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy1001; + if (yych == 'h') goto yy1001; + goto yy59; +yy963: + YYDEBUG(963, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy1001; + if (yych == 'h') goto yy1004; + goto yy955; +yy964: + YYDEBUG(964, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy973; + if (yych == 'y') goto yy973; + goto yy59; +yy965: + YYDEBUG(965, *YYCURSOR); + ++YYCURSOR; + goto yy315; +yy966: + YYDEBUG(966, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy973; + if (yych == 'y') goto yy974; + goto yy955; +yy967: + YYDEBUG(967, *YYCURSOR); + yyaccept = 9; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych == '.') goto yy1124; - goto yy524; - } else { - if (yych <= '9') goto yy1502; - if (yych <= ':') goto yy1124; - goto yy524; + if (yybm[0+yych] & 128) { + goto yy954; } -yy1500: - YYDEBUG(1500, *YYCURSOR); - yyaccept = 10; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych == '.') goto yy1124; - goto yy524; + if (yych <= '.') { + if (yych == '-') goto yy297; + goto yy315; } else { - if (yych <= '4') goto yy1502; - if (yych == ':') goto yy1124; - goto yy524; + if (yych <= '/') goto yy297; + if (yych == '_') goto yy297; + goto yy315; } -yy1501: - YYDEBUG(1501, *YYCURSOR); - yyaccept = 10; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '.') goto yy1124; - if (yych == ':') goto yy1124; - goto yy524; -yy1502: - YYDEBUG(1502, *YYCURSOR); - yyaccept = 10; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych == '.') goto yy1124; - goto yy524; - } else { - if (yych <= '5') goto yy1503; - if (yych == ':') goto yy1124; - goto yy524; - } -yy1503: - YYDEBUG(1503, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych >= ':') goto yy55; - YYDEBUG(1504, *YYCURSOR); - yyaccept = 24; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy1127; - if (yych <= '5') goto yy1505; - if (yych <= '6') goto yy1506; - goto yy1127; -yy1505: - YYDEBUG(1505, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '/') goto yy55; - if (yych <= '9') goto yy1507; - goto yy55; -yy1506: - YYDEBUG(1506, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '0') goto yy55; -yy1507: - YYDEBUG(1507, *YYCURSOR); - yych = *++YYCURSOR; - goto yy1135; -yy1508: - YYDEBUG(1508, *YYCURSOR); +yy968: + YYDEBUG(968, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'L') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'K') goto yy184; - } - } else { - if (yych <= 'k') { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy3; - goto yy184; - } else { - if (yych <= 'l') goto yy1509; - if (yych <= 'z') goto yy184; - goto yy3; - } - } -yy1509: - YYDEBUG(1509, *YYCURSOR); + if (yych <= '/') goto yy20; + if (yych <= '9') goto yy1075; + goto yy20; +yy969: + YYDEBUG(969, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'F') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy1076; + if (yych <= '6') goto yy1077; + if (yych <= '9') goto yy1078; + goto yy59; +yy970: + YYDEBUG(970, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy1079; + if (yych <= '6') goto yy1080; + if (yych <= '9') goto yy1078; + goto yy59; +yy971: + YYDEBUG(971, *YYCURSOR); + yyaccept = 20; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'A') { + if (yych <= '-') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy849; + goto yy1081; + } else { + if (yych == ' ') goto yy1081; + goto yy849; + } } else { - if (yych <= '@') goto yy3; - if (yych <= 'E') goto yy185; + if (yych <= '9') { + if (yych <= '.') goto yy970; + goto yy849; + } else { + if (yych <= ':') goto yy970; + if (yych <= '@') goto yy849; + goto yy1083; + } } } else { - if (yych <= 'e') { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy3; - goto yy185; + if (yych <= 'o') { + if (yych <= 'P') { + if (yych <= 'O') goto yy849; + goto yy1083; + } else { + if (yych == 'a') goto yy1083; + goto yy849; + } } else { - if (yych <= 'f') goto yy1510; - if (yych <= 'z') goto yy185; - goto yy3; + if (yych <= 0xC2) { + if (yych <= 'p') goto yy1083; + if (yych <= 0xC1) goto yy849; + goto yy1084; + } else { + if (yych == 0xE2) goto yy1085; + goto yy849; + } } } -yy1510: - YYDEBUG(1510, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'S') goto yy186; - } +yy972: + YYDEBUG(972, *YYCURSOR); + ++YYCURSOR; + goto yy325; +yy973: + YYDEBUG(973, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ' ') { + if (yych == '\t') goto yy142; + if (yych <= 0x1F) goto yy295; + goto yy142; } else { - if (yych <= 's') { - if (yych <= 'Z') goto yy186; - if (yych <= '`') goto yy3; - goto yy186; + if (yych <= '.') { + if (yych <= ',') goto yy295; + goto yy142; } else { - if (yych <= 't') goto yy1511; - if (yych <= 'z') goto yy186; - goto yy3; + if (yych <= '/') goto yy295; + if (yych <= '9') goto yy142; + goto yy295; } } -yy1511: - YYDEBUG(1511, *YYCURSOR); - yyaccept = 1; +yy974: + YYDEBUG(974, *YYCURSOR); + yyaccept = 7; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'G') { - if (yych == ')') goto yy181; - goto yy3; - } else { - if (yych <= 'H') goto yy1297; - if (yych == 'h') goto yy1297; - goto yy3; + if (yybm[0+yych] & 128) { + goto yy954; } -yy1512: - YYDEBUG(1512, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'S') { - if (yych <= ')') { - if (yych <= '(') goto yy219; - goto yy181; + if (yych <= '-') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy142; + goto yy295; } else { - if (yych <= '@') goto yy219; - if (yych <= 'R') goto yy184; + if (yych <= ' ') goto yy142; + if (yych <= ',') goto yy295; + goto yy700; } } else { - if (yych <= 'r') { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy219; - goto yy184; + if (yych <= '9') { + if (yych == '/') goto yy297; + goto yy142; } else { - if (yych <= 's') goto yy1513; - if (yych <= 'z') goto yy184; - goto yy219; + if (yych == '_') goto yy297; + goto yy295; } } -yy1513: - YYDEBUG(1513, *YYCURSOR); +yy975: + YYDEBUG(975, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'D') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych == 'Y') goto yy1086; + if (yych == 'y') goto yy1086; + goto yy59; +yy976: + YYDEBUG(976, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy1087; + if (yych == 'r') goto yy1087; + goto yy59; +yy977: + YYDEBUG(977, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy1088; + if (yych == 'i') goto yy1088; + goto yy59; +yy978: + YYDEBUG(978, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'U') goto yy1089; + if (yych == 'u') goto yy1089; + goto yy59; +yy979: + YYDEBUG(979, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'N') { + if (yych <= 'K') { + if (yych == 'C') goto yy1090; + goto yy59; } else { - if (yych <= '@') goto yy3; - if (yych <= 'C') goto yy185; + if (yych <= 'L') goto yy1091; + if (yych <= 'M') goto yy59; + goto yy1092; } } else { - if (yych <= 'c') { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy3; - goto yy185; + if (yych <= 'k') { + if (yych == 'c') goto yy1090; + goto yy59; } else { - if (yych <= 'd') goto yy1514; - if (yych <= 'z') goto yy185; - goto yy3; + if (yych <= 'l') goto yy1091; + if (yych == 'n') goto yy1092; + goto yy59; } } -yy1514: - YYDEBUG(1514, *YYCURSOR); +yy980: + YYDEBUG(980, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'A') { - if (yych == ')') goto yy181; - if (yych <= '@') goto yy3; - } else { - if (yych <= '`') { - if (yych <= 'Z') goto yy186; - goto yy3; - } else { - if (yych <= 'a') goto yy1515; - if (yych <= 'z') goto yy186; - goto yy3; + if (yych == 'N') goto yy1093; + if (yych == 'n') goto yy1093; + goto yy59; +yy981: + YYDEBUG(981, *YYCURSOR); + yyaccept = 24; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'E') goto yy1094; + if (yych == 'e') goto yy1094; +yy982: + YYDEBUG(982, *YYCURSOR); +#line 1858 "ext/date/lib/parse_date.re" + { + timelib_sll i; + int behavior = 0; + DEBUG_OUTPUT("relativetext"); + TIMELIB_INIT; + TIMELIB_HAVE_RELATIVE(); + + while(*ptr) { + i = timelib_get_relative_text(&ptr, &behavior); + timelib_eat_spaces(&ptr); + timelib_set_relative(&ptr, i, behavior, s, TIMELIB_TIME_PART_DONT_KEEP); } + TIMELIB_DEINIT; + return TIMELIB_RELATIVE; } -yy1515: - YYDEBUG(1515, *YYCURSOR); +#line 20334 "" +yy983: + YYDEBUG(983, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'X') { - if (yych == ')') goto yy181; - goto yy3; - } else { - if (yych <= 'Y') goto yy1516; - if (yych != 'y') goto yy3; - } -yy1516: - YYDEBUG(1516, *YYCURSOR); + if (yych == 'T') goto yy1095; + if (yych == 't') goto yy1095; + goto yy59; +yy984: + YYDEBUG(984, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy225; - if (yych == 's') goto yy225; - goto yy219; -yy1517: - YYDEBUG(1517, *YYCURSOR); + if (yych == 'C') goto yy1096; + if (yych == 'c') goto yy1096; + goto yy59; +yy985: + YYDEBUG(985, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'A') { - if (yych == ')') goto yy181; - if (yych <= '@') goto yy3; - goto yy1525; - } else { - if (yych <= '`') { - if (yych <= 'Z') goto yy184; - goto yy3; - } else { - if (yych <= 'a') goto yy1525; - if (yych <= 'z') goto yy184; - goto yy3; - } + if (yych == 'N') goto yy1088; + if (yych == 'n') goto yy1088; + goto yy59; +yy986: + YYDEBUG(986, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'U') goto yy1097; + if (yych == 'u') goto yy1097; + goto yy59; +yy987: + YYDEBUG(987, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy1098; + if (yych == 'e') goto yy1098; + goto yy59; +yy988: + YYDEBUG(988, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy1094; + if (yych == 'e') goto yy1094; + goto yy59; +yy989: + YYDEBUG(989, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'E') { + if (yych <= 'C') goto yy59; + if (yych <= 'D') goto yy1099; + goto yy1100; + } else { + if (yych <= 'c') goto yy59; + if (yych <= 'd') goto yy1099; + if (yych <= 'e') goto yy1100; + goto yy59; } -yy1518: - YYDEBUG(1518, *YYCURSOR); +yy990: + YYDEBUG(990, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych == 'A') goto yy1089; + if (yych == 'a') goto yy1089; + goto yy59; +yy991: + YYDEBUG(991, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy981; + if (yych == 's') goto yy981; + goto yy59; +yy992: + YYDEBUG(992, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy1101; + if (yych == 'y') goto yy1101; + goto yy59; +yy993: + YYDEBUG(993, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); + yych = *YYCURSOR; + if (yych == 0xA0) goto yy867; + if (yych == 0xB5) goto yy991; + goto yy59; +yy994: + YYDEBUG(994, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12); + yych = *YYCURSOR; + if (yych <= 'd') { + if (yych <= 'R') { + if (yych <= 'F') { + if (yych == 'D') goto yy856; + if (yych <= 'E') goto yy59; + goto yy857; + } else { + if (yych <= 'H') { + if (yych <= 'G') goto yy59; + goto yy858; + } else { + if (yych == 'M') goto yy859; + goto yy59; + } + } } else { - if (yych <= '@') goto yy3; - if (yych <= 'N') goto yy184; + if (yych <= 'V') { + if (yych <= 'S') goto yy860; + if (yych <= 'T') goto yy861; + if (yych <= 'U') goto yy862; + goto yy59; + } else { + if (yych <= 'X') { + if (yych <= 'W') goto yy863; + goto yy59; + } else { + if (yych <= 'Y') goto yy864; + if (yych <= 'c') goto yy59; + goto yy856; + } + } } } else { - if (yych <= 'n') { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy3; - goto yy184; + if (yych <= 't') { + if (yych <= 'h') { + if (yych == 'f') goto yy857; + if (yych <= 'g') goto yy59; + goto yy858; + } else { + if (yych <= 'm') { + if (yych <= 'l') goto yy59; + goto yy859; + } else { + if (yych <= 'r') goto yy59; + if (yych <= 's') goto yy860; + goto yy861; + } + } } else { - if (yych <= 'o') goto yy1519; - if (yych <= 'z') goto yy184; - goto yy3; + if (yych <= 'y') { + if (yych <= 'v') { + if (yych <= 'u') goto yy862; + goto yy59; + } else { + if (yych <= 'w') goto yy863; + if (yych <= 'x') goto yy59; + goto yy864; + } + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy59; + goto yy865; + } else { + if (yych == 0xE2) goto yy705; + goto yy59; + } + } } } -yy1519: - YYDEBUG(1519, *YYCURSOR); +yy995: + YYDEBUG(995, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'R') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych == 'T') goto yy1102; + if (yych == 't') goto yy1102; + goto yy59; +yy996: + YYDEBUG(996, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy1102; + if (yych == 't') goto yy1103; + goto yy955; +yy997: + YYDEBUG(997, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy1104; + if (yych == 's') goto yy1104; + goto yy59; +yy998: + YYDEBUG(998, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy1104; + if (yych == 's') goto yy1105; + goto yy955; +yy999: + YYDEBUG(999, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy1007; + if (yych == 'y') goto yy1007; + goto yy59; +yy1000: + YYDEBUG(1000, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy957; + if (yych == 'e') goto yy957; + goto yy59; +yy1001: + YYDEBUG(1001, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= ' ') { + if (yych == '\t') goto yy834; + if (yych <= 0x1F) goto yy59; + goto yy834; + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy59; + goto yy837; } else { - if (yych <= '@') goto yy3; - if (yych <= 'Q') goto yy185; + if (yych == 0xE2) goto yy838; + goto yy59; } - } else { - if (yych <= 'q') { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy3; - goto yy185; + } +yy1002: + YYDEBUG(1002, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy1007; + if (yych == 'y') goto yy1009; + goto yy955; +yy1003: + YYDEBUG(1003, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy957; + if (yych == 'e') goto yy958; + goto yy955; +yy1004: + YYDEBUG(1004, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= ' ') { + if (yych == '\t') goto yy834; + if (yych <= 0x1F) goto yy955; + goto yy834; + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy955; + goto yy837; } else { - if (yych <= 'r') goto yy1520; - if (yych <= 'z') goto yy185; - goto yy3; + if (yych == 0xE2) goto yy838; + goto yy955; } } -yy1520: - YYDEBUG(1520, *YYCURSOR); +yy1005: + YYDEBUG(1005, *YYCURSOR); + ++YYCURSOR; + goto yy777; +yy1006: + YYDEBUG(1006, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'R') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych == 'W') goto yy1106; + if (yych == 'w') goto yy1106; + goto yy59; +yy1007: + YYDEBUG(1007, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy965; + if (yych == 's') goto yy965; + goto yy315; +yy1008: + YYDEBUG(1008, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'W') goto yy1106; + if (yych == 'w') goto yy1108; + goto yy955; +yy1009: + YYDEBUG(1009, *YYCURSOR); + yyaccept = 9; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych <= '.') { + if (yych == '-') goto yy297; + goto yy315; } else { - if (yych <= '@') goto yy3; - if (yych <= 'Q') goto yy186; + if (yych <= '/') goto yy297; + if (yych <= 'R') goto yy315; + goto yy965; } } else { - if (yych <= 'q') { - if (yych <= 'Z') goto yy186; - if (yych <= '`') goto yy3; - goto yy186; + if (yych <= '`') { + if (yych == '_') goto yy297; + goto yy315; } else { - if (yych <= 'r') goto yy1521; - if (yych <= 'z') goto yy186; - goto yy3; + if (yych == 's') goto yy967; + if (yych <= 'z') goto yy954; + goto yy315; } } -yy1521: - YYDEBUG(1521, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'N') { - if (yych == ')') goto yy181; - goto yy3; - } else { - if (yych <= 'O') goto yy1522; - if (yych != 'o') goto yy3; +yy1010: + YYDEBUG(1010, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy999; + if (yych == 'a') goto yy999; + goto yy59; +yy1011: + YYDEBUG(1011, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy999; + if (yych == 'a') goto yy1002; + goto yy955; +yy1012: + YYDEBUG(1012, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy1109; + if (yych == 'a') goto yy1109; + goto yy59; +yy1013: + YYDEBUG(1013, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy1109; + if (yych == 'a') goto yy1110; + goto yy955; +yy1014: + YYDEBUG(1014, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '-') goto yy1111; + goto yy59; +yy1015: + YYDEBUG(1015, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1112; + goto yy59; +yy1016: + YYDEBUG(1016, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '2') goto yy1112; + goto yy59; +yy1017: + YYDEBUG(1017, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '9') { + if (yych == '-') goto yy893; + if (yych <= '/') goto yy196; + goto yy1113; + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy196; + goto yy97; + } else { + if (yych == 0xE2) goto yy98; + goto yy196; + } } -yy1522: - YYDEBUG(1522, *YYCURSOR); +yy1018: + YYDEBUG(1018, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'W') goto yy1523; - if (yych != 'w') goto yy55; -yy1523: - YYDEBUG(1523, *YYCURSOR); - ++YYCURSOR; -yy1524: - YYDEBUG(1524, *YYCURSOR); -#line 1170 "ext/date/lib/parse_date.re" + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy115; + goto yy59; +yy1019: + YYDEBUG(1019, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '0') goto yy115; + goto yy59; +yy1020: + YYDEBUG(1020, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(1021, *YYCURSOR); +#line 1564 "ext/date/lib/parse_date.re" { - DEBUG_OUTPUT("tomorrow"); + DEBUG_OUTPUT("pointed date YYYY"); TIMELIB_INIT; - TIMELIB_HAVE_RELATIVE(); - TIMELIB_UNHAVE_TIME(); - - s->time->relative.d = 1; + TIMELIB_HAVE_DATE(); + s->time->d = timelib_get_nr(&ptr, 2); + s->time->m = timelib_get_nr(&ptr, 2); + s->time->y = timelib_get_nr(&ptr, 4); TIMELIB_DEINIT; - return TIMELIB_RELATIVE; + return TIMELIB_DATE_FULL_POINTED; } -#line 22939 "" -yy1525: - YYDEBUG(1525, *YYCURSOR); +#line 20692 "" +yy1022: + YYDEBUG(1022, *YYCURSOR); + ++YYCURSOR; + goto yy224; +yy1023: + YYDEBUG(1023, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'Y') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'X') goto yy185; - } + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1114; + goto yy59; +yy1024: + YYDEBUG(1024, *YYCURSOR); + yyaccept = 25; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych <= '/') goto yy1025; + if (yych <= '9') goto yy897; + if (yych >= 'n') goto yy741; } else { - if (yych <= 'x') { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy3; - goto yy185; + if (yych <= 'r') { + if (yych >= 'r') goto yy741; } else { - if (yych <= 'y') goto yy1526; - if (yych <= 'z') goto yy185; - goto yy3; + if (yych <= 's') goto yy742; + if (yych <= 't') goto yy743; } } -yy1526: - YYDEBUG(1526, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '@') { - if (yych == ')') goto yy181; - } else { - if (yych <= 'Z') goto yy186; - if (yych <= '`') goto yy1527; - if (yych <= 'z') goto yy186; - } -yy1527: - YYDEBUG(1527, *YYCURSOR); -#line 1160 "ext/date/lib/parse_date.re" +yy1025: + YYDEBUG(1025, *YYCURSOR); +#line 1495 "ext/date/lib/parse_date.re" { - DEBUG_OUTPUT("midnight | today"); + int length = 0; + DEBUG_OUTPUT("iso8601date2"); TIMELIB_INIT; - TIMELIB_UNHAVE_TIME(); - + TIMELIB_HAVE_DATE(); + s->time->y = timelib_get_nr_ex(&ptr, 4, &length); + s->time->m = timelib_get_nr(&ptr, 2); + s->time->d = timelib_get_nr(&ptr, 2); + TIMELIB_PROCESS_YEAR(s->time->y, length); TIMELIB_DEINIT; - return TIMELIB_RELATIVE; + return TIMELIB_ISO_DATE; } -#line 22983 "" -yy1528: - YYDEBUG(1528, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'S') { - if (yych <= '@') { - if (yych == ')') goto yy181; - goto yy3; +#line 20734 "" +yy1026: + YYDEBUG(1026, *YYCURSOR); + yyaccept = 15; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'm') { + if (yych <= '9') { + if (yych <= '/') goto yy567; + goto yy1028; } else { - if (yych <= 'Q') goto yy184; - if (yych <= 'R') goto yy1535; - goto yy1536; + if (yych == 'T') goto yy1115; + goto yy567; } } else { - if (yych <= 'q') { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy3; - goto yy184; - } else { - if (yych <= 'r') goto yy1535; - if (yych <= 's') goto yy1536; - if (yych <= 'z') goto yy184; - goto yy3; + if (yych <= 'r') { + if (yych <= 'n') goto yy1116; + if (yych <= 'q') goto yy567; + goto yy1116; + } else { + if (yych <= 's') goto yy1117; + if (yych <= 't') goto yy1118; + goto yy567; } } -yy1529: - YYDEBUG(1529, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'R') { - if (yych <= ')') { - if (yych <= '(') goto yy219; - goto yy181; +yy1027: + YYDEBUG(1027, *YYCURSOR); + yyaccept = 15; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'm') { + if (yych <= '1') { + if (yych <= '/') goto yy567; } else { - if (yych <= '@') goto yy219; - if (yych <= 'Q') goto yy184; + if (yych == 'T') goto yy1115; + goto yy567; } } else { - if (yych <= 'q') { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy219; - goto yy184; + if (yych <= 'r') { + if (yych <= 'n') goto yy1116; + if (yych <= 'q') goto yy567; + goto yy1116; } else { - if (yych <= 'r') goto yy1530; - if (yych <= 'z') goto yy184; - goto yy219; + if (yych <= 's') goto yy1117; + if (yych <= 't') goto yy1118; + goto yy567; } } -yy1530: - YYDEBUG(1530, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'S') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'R') goto yy185; - } +yy1028: + YYDEBUG(1028, *YYCURSOR); + yyaccept = 15; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych == 'T') goto yy1115; + if (yych <= 'm') goto yy567; + goto yy1116; } else { if (yych <= 'r') { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy3; - goto yy185; + if (yych <= 'q') goto yy567; + goto yy1116; } else { - if (yych <= 's') goto yy1531; - if (yych <= 'z') goto yy185; - goto yy3; + if (yych <= 's') goto yy1117; + if (yych <= 't') goto yy1118; + goto yy567; } } -yy1531: - YYDEBUG(1531, *YYCURSOR); +yy1029: + YYDEBUG(1029, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'D') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'C') goto yy186; - } + if (yych <= '/') goto yy59; + if (yych <= '2') goto yy1119; + if (yych <= '3') goto yy1120; + if (yych <= '9') goto yy1028; + goto yy59; +yy1030: + YYDEBUG(1030, *YYCURSOR); + ++YYCURSOR; + goto yy926; +yy1031: + YYDEBUG(1031, *YYCURSOR); + yyaccept = 22; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'H') { + if (yych == '-') goto yy951; + goto yy600; } else { - if (yych <= 'c') { - if (yych <= 'Z') goto yy186; - if (yych <= '`') goto yy3; - goto yy186; - } else { - if (yych <= 'd') goto yy1532; - if (yych <= 'z') goto yy186; - goto yy3; - } + if (yych <= 'I') goto yy1051; + if (yych == 'i') goto yy1051; + goto yy600; } -yy1532: - YYDEBUG(1532, *YYCURSOR); - yyaccept = 1; +yy1032: + YYDEBUG(1032, *YYCURSOR); + yyaccept = 22; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '@') { - if (yych == ')') goto yy181; - goto yy3; + if (yych <= 'T') { + if (yych == '-') goto yy951; + goto yy600; } else { - if (yych <= 'A') goto yy1533; - if (yych != 'a') goto yy3; + if (yych <= 'U') goto yy1052; + if (yych == 'u') goto yy1052; + goto yy600; } -yy1533: - YYDEBUG(1533, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy1534; - if (yych != 'y') goto yy55; -yy1534: - YYDEBUG(1534, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy225; - if (yych == 's') goto yy225; - goto yy219; -yy1535: - YYDEBUG(1535, *YYCURSOR); - yych = *++YYCURSOR; +yy1033: + YYDEBUG(1033, *YYCURSOR); + yyaccept = 22; + yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'D') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'C') goto yy185; - goto yy1330; - } + if (yych == '-') goto yy951; + goto yy600; } else { - if (yych <= 'c') { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy3; - goto yy185; - } else { - if (yych <= 'd') goto yy1330; - if (yych <= 'z') goto yy185; - goto yy3; - } + if (yych <= 'E') goto yy1053; + if (yych == 'e') goto yy1053; + goto yy600; } -yy1536: - YYDEBUG(1536, *YYCURSOR); - yyaccept = 1; +yy1034: + YYDEBUG(1034, *YYCURSOR); + yyaccept = 22; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '(') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy3; - goto yy1164; - } else { - if (yych == ' ') goto yy1164; - goto yy3; - } + if (yych <= 'Q') { + if (yych == '-') goto yy951; + goto yy600; } else { - if (yych <= 'Z') { - if (yych <= ')') goto yy181; - if (yych <= '@') goto yy3; - goto yy185; - } else { - if (yych <= '`') goto yy3; - if (yych <= 'z') goto yy185; - goto yy3; - } + if (yych <= 'R') goto yy1054; + if (yych == 'r') goto yy1054; + goto yy600; } -yy1537: - YYDEBUG(1537, *YYCURSOR); - yych = *++YYCURSOR; +yy1035: + YYDEBUG(1035, *YYCURSOR); + yyaccept = 22; + yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'T') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'S') goto yy184; - } + if (yych == '-') goto yy951; + goto yy600; } else { - if (yych <= 's') { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy3; - goto yy184; - } else { - if (yych <= 't') goto yy1538; - if (yych <= 'z') goto yy184; - goto yy3; - } + if (yych <= 'U') goto yy1055; + if (yych == 'u') goto yy1055; + goto yy600; } -yy1538: - YYDEBUG(1538, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'H') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'G') goto yy185; - goto yy1330; - } +yy1036: + YYDEBUG(1036, *YYCURSOR); + yyaccept = 22; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'X') { + if (yych == '-') goto yy951; + goto yy600; } else { - if (yych <= 'g') { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy3; - goto yy185; - } else { - if (yych <= 'h') goto yy1330; - if (yych <= 'z') goto yy185; - goto yy3; - } + if (yych <= 'Y') goto yy790; + if (yych == 'y') goto yy790; + goto yy600; } -yy1539: - YYDEBUG(1539, *YYCURSOR); - yyaccept = 1; +yy1037: + YYDEBUG(1037, *YYCURSOR); + yyaccept = 22; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'M') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= 'D') { + if (yych == '-') goto yy951; + goto yy600; + } else { + if (yych <= 'E') goto yy790; + if (yych == 'e') goto yy790; + goto yy600; + } +yy1038: + YYDEBUG(1038, *YYCURSOR); + yyaccept = 22; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'B') { + if (yych == '-') goto yy951; + goto yy600; + } else { + if (yych <= 'C') goto yy1056; + if (yych == 'c') goto yy1056; + goto yy600; + } +yy1039: + YYDEBUG(1039, *YYCURSOR); + yyaccept = 22; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '-') goto yy951; + goto yy600; +yy1040: + YYDEBUG(1040, *YYCURSOR); + yyaccept = 22; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'N') { + if (yych == '-') goto yy951; + goto yy600; + } else { + if (yych <= 'O') goto yy1057; + if (yych == 'o') goto yy1057; + goto yy600; + } +yy1041: + YYDEBUG(1041, *YYCURSOR); + yyaccept = 22; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych == '-') goto yy951; + goto yy600; + } else { + if (yych <= 'T') goto yy1033; + if (yych == 't') goto yy1033; + goto yy600; + } +yy1042: + YYDEBUG(1042, *YYCURSOR); + yyaccept = 26; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych <= '/') goto yy1043; + if (yych <= '9') goto yy1045; + if (yych >= 'n') goto yy1121; + } else { + if (yych <= 'r') { + if (yych >= 'r') goto yy1121; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy183; + if (yych <= 's') goto yy1122; + if (yych <= 't') goto yy1123; } + } +yy1043: + YYDEBUG(1043, *YYCURSOR); +#line 1483 "ext/date/lib/parse_date.re" + { + DEBUG_OUTPUT("iso8601date4 | iso8601date2 | iso8601dateslash | dateslash"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->y = timelib_get_signed_nr(s, &ptr, 4); + s->time->m = timelib_get_nr(&ptr, 2); + s->time->d = timelib_get_nr(&ptr, 2); + TIMELIB_DEINIT; + return TIMELIB_ISO_DATE; + } +#line 20965 "" +yy1044: + YYDEBUG(1044, *YYCURSOR); + yyaccept = 26; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych <= '/') goto yy1043; + if (yych <= '1') goto yy1045; + if (yych <= 'm') goto yy1043; + goto yy1121; } else { - if (yych <= '_') { - if (yych <= 'N') goto yy1537; - if (yych <= 'Z') goto yy183; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'r') { + if (yych <= 'q') goto yy1043; + goto yy1121; } else { - if (yych <= 'm') { - if (yych <= '`') goto yy3; - goto yy188; - } else { - if (yych <= 'n') goto yy1571; - if (yych <= 'z') goto yy188; - goto yy3; - } + if (yych <= 's') goto yy1122; + if (yych <= 't') goto yy1123; + goto yy1043; } } -yy1540: - YYDEBUG(1540, *YYCURSOR); - yyaccept = 1; +yy1045: + YYDEBUG(1045, *YYCURSOR); + yyaccept = 26; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'T') { - if (yych <= '.') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= 'q') { + if (yych == 'n') goto yy1121; + goto yy1043; + } else { + if (yych <= 'r') goto yy1121; + if (yych <= 's') goto yy1122; + if (yych <= 't') goto yy1123; + goto yy1043; + } +yy1046: + YYDEBUG(1046, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '2') goto yy1124; + if (yych <= '3') goto yy1125; + if (yych <= '9') goto yy1045; + goto yy59; +yy1047: + YYDEBUG(1047, *YYCURSOR); + yyaccept = 27; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'X') { + if (yych <= 'F') { + if (yych <= '/') { + if (yych <= '\t') { + if (yych >= '\t') goto yy195; + } else { + if (yych == ' ') goto yy195; + } } else { - if (yych == '-') goto yy189; - goto yy3; + if (yych <= 'C') { + if (yych <= '9') goto yy1126; + } else { + if (yych <= 'D') goto yy198; + if (yych >= 'F') goto yy199; + } } } else { - if (yych <= '@') { - if (yych <= '/') goto yy189; - goto yy3; + if (yych <= 'R') { + if (yych <= 'H') { + if (yych >= 'H') goto yy79; + } else { + if (yych == 'M') goto yy200; + } } else { - if (yych == 'I') goto yy1528; - goto yy183; + if (yych <= 'U') { + if (yych <= 'S') goto yy201; + if (yych <= 'T') goto yy1127; + goto yy88; + } else { + if (yych == 'W') goto yy90; + } } } } else { - if (yych <= '`') { - if (yych <= 'Z') { - if (yych <= 'U') goto yy1529; - goto yy183; + if (yych <= 's') { + if (yych <= 'f') { + if (yych <= 'c') { + if (yych <= 'Y') goto yy92; + } else { + if (yych <= 'd') goto yy198; + if (yych >= 'f') goto yy199; + } } else { - if (yych == '_') goto yy189; - goto yy3; + if (yych <= 'l') { + if (yych == 'h') goto yy79; + } else { + if (yych <= 'm') goto yy200; + if (yych >= 's') goto yy201; + } } } else { - if (yych <= 't') { - if (yych == 'i') goto yy1562; - goto yy188; + if (yych <= 'x') { + if (yych <= 'u') { + if (yych <= 't') goto yy1128; + goto yy88; + } else { + if (yych == 'w') goto yy90; + } } else { - if (yych <= 'u') goto yy1563; - if (yych <= 'z') goto yy188; - goto yy3; + if (yych <= 0xC2) { + if (yych <= 'y') goto yy92; + if (yych >= 0xC2) goto yy97; + } else { + if (yych == 0xE2) goto yy98; + } } } } -yy1541: - YYDEBUG(1541, *YYCURSOR); - yyaccept = 1; +yy1048: + YYDEBUG(1048, *YYCURSOR); +#line 1644 "ext/date/lib/parse_date.re" + { + DEBUG_OUTPUT("datenocolon"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->y = timelib_get_nr(&ptr, 4); + s->time->m = timelib_get_nr(&ptr, 2); + s->time->d = timelib_get_nr(&ptr, 2); + TIMELIB_DEINIT; + return TIMELIB_DATE_NOCOLON; + } +#line 21091 "" +yy1049: + YYDEBUG(1049, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 0xC1) { + if (yych <= '/') goto yy196; + if (yych <= '9') goto yy1126; + goto yy196; + } else { + if (yych <= 0xC2) goto yy97; + if (yych == 0xE2) goto yy98; + goto yy196; + } +yy1050: + YYDEBUG(1050, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '2') goto yy1129; + if (yych <= '3') goto yy1130; + goto yy59; +yy1051: + YYDEBUG(1051, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy790; + if (yych == 'l') goto yy790; + goto yy59; +yy1052: + YYDEBUG(1052, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy1131; + if (yych == 's') goto yy1131; + goto yy59; +yy1053: + YYDEBUG(1053, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy1057; + if (yych == 'm') goto yy1057; + goto yy59; +yy1054: + YYDEBUG(1054, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'U') goto yy1055; + if (yych != 'u') goto yy59; +yy1055: + YYDEBUG(1055, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy1132; + if (yych == 'a') goto yy1132; + goto yy59; +yy1056: + YYDEBUG(1056, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy790; + if (yych == 'h') goto yy790; + goto yy59; +yy1057: + YYDEBUG(1057, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'B') goto yy1133; + if (yych == 'b') goto yy1133; + goto yy59; +yy1058: + YYDEBUG(1058, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych >= '8') goto yy59; +yy1059: + YYDEBUG(1059, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(1060, *YYCURSOR); +#line 1696 "ext/date/lib/parse_date.re" + { + timelib_sll w, d; + DEBUG_OUTPUT("isoweekday"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + TIMELIB_HAVE_RELATIVE(); + + s->time->y = timelib_get_nr(&ptr, 4); + w = timelib_get_nr(&ptr, 2); + d = timelib_get_nr(&ptr, 1); + s->time->m = 1; + s->time->d = 1; + s->time->relative.d = timelib_daynr_from_weeknr(s->time->y, w, d); + + TIMELIB_DEINIT; + return TIMELIB_ISO_WEEK; + } +#line 21179 "" +yy1061: + YYDEBUG(1061, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy1134; + if (yych == 'h') goto yy1134; + goto yy59; +yy1062: + YYDEBUG(1062, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy1135; + if (yych == 'c') goto yy1135; + goto yy59; +yy1063: + YYDEBUG(1063, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1136; + goto yy59; +yy1064: + YYDEBUG(1064, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1138; + goto yy59; +yy1065: + YYDEBUG(1065, *YYCURSOR); + yyaccept = 25; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'L') { - if (yych <= '.') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= 'q') { + if (yych == 'n') goto yy741; + goto yy1025; + } else { + if (yych <= 'r') goto yy741; + if (yych <= 's') goto yy742; + if (yych <= 't') goto yy743; + goto yy1025; + } +yy1066: + YYDEBUG(1066, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1140; + goto yy59; +yy1067: + YYDEBUG(1067, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '1') goto yy1140; + goto yy59; +yy1068: + YYDEBUG(1068, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy290; + if (yych <= '9') goto yy1142; + goto yy290; +yy1069: + YYDEBUG(1069, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy1070; + if (yych <= '9') goto yy1143; +yy1070: + YYDEBUG(1070, *YYCURSOR); +#line 1734 "ext/date/lib/parse_date.re" + { + int length = 0; + DEBUG_OUTPUT("pgtextshort"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->m = timelib_get_month(&ptr); + s->time->d = timelib_get_nr(&ptr, 2); + s->time->y = timelib_get_nr_ex(&ptr, 4, &length); + TIMELIB_PROCESS_YEAR(s->time->y, length); + TIMELIB_DEINIT; + return TIMELIB_PG_TEXT; + } +#line 21255 "" +yy1071: + YYDEBUG(1071, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '1') goto yy1144; + if (yych <= '2') goto yy1146; + if (yych <= '9') goto yy1147; + goto yy59; +yy1072: + YYDEBUG(1072, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'E') { + if (yych <= 'C') goto yy59; + if (yych <= 'D') goto yy1099; + goto yy1148; + } else { + if (yych <= 'c') goto yy59; + if (yych <= 'd') goto yy1099; + if (yych <= 'e') goto yy1148; + goto yy59; + } +yy1073: + YYDEBUG(1073, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); + yych = *YYCURSOR; + if (yych == 0xA0) goto yy960; + if (yych == 0xB5) goto yy991; + goto yy59; +yy1074: + YYDEBUG(1074, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12); + yych = *YYCURSOR; + if (yych <= 'd') { + if (yych <= 'R') { + if (yych <= 'F') { + if (yych == 'D') goto yy856; + if (yych <= 'E') goto yy59; + goto yy857; } else { - if (yych == '-') goto yy189; - goto yy3; + if (yych <= 'H') { + if (yych <= 'G') goto yy59; + goto yy858; + } else { + if (yych == 'M') goto yy859; + goto yy59; + } } } else { - if (yych <= '@') { - if (yych <= '/') goto yy189; - goto yy3; + if (yych <= 'V') { + if (yych <= 'S') goto yy860; + if (yych <= 'T') goto yy861; + if (yych <= 'U') goto yy862; + goto yy59; } else { - if (yych == 'D') goto yy1517; - goto yy183; + if (yych <= 'X') { + if (yych <= 'W') goto yy959; + goto yy59; + } else { + if (yych <= 'Y') goto yy864; + if (yych <= 'c') goto yy59; + goto yy856; + } } } } else { - if (yych <= '`') { - if (yych <= 'Z') { - if (yych <= 'M') goto yy1518; - goto yy183; + if (yych <= 't') { + if (yych <= 'h') { + if (yych == 'f') goto yy857; + if (yych <= 'g') goto yy59; + goto yy858; } else { - if (yych == '_') goto yy189; - goto yy3; + if (yych <= 'm') { + if (yych <= 'l') goto yy59; + goto yy859; + } else { + if (yych <= 'r') goto yy59; + if (yych <= 's') goto yy860; + goto yy861; + } } } else { - if (yych <= 'l') { - if (yych == 'd') goto yy1553; - goto yy188; + if (yych <= 'y') { + if (yych <= 'v') { + if (yych <= 'u') goto yy862; + goto yy59; + } else { + if (yych <= 'w') goto yy959; + if (yych <= 'x') goto yy59; + goto yy864; + } } else { - if (yych <= 'm') goto yy1554; - if (yych <= 'z') goto yy188; - goto yy3; + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy59; + goto yy865; + } else { + if (yych == 0xE2) goto yy838; + goto yy59; + } } } } -yy1542: - YYDEBUG(1542, *YYCURSOR); - yyaccept = 1; +yy1075: + YYDEBUG(1075, *YYCURSOR); + yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'D') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= '/') goto yy20; + if (yych <= '5') goto yy1018; + if (yych <= '6') goto yy1019; + goto yy20; +yy1076: + YYDEBUG(1076, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy849; + if (yych <= '9') goto yy1149; + goto yy849; +yy1077: + YYDEBUG(1077, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '0') goto yy1149; + goto yy849; +yy1078: + YYDEBUG(1078, *YYCURSOR); + ++YYCURSOR; + goto yy849; +yy1079: + YYDEBUG(1079, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy849; + if (yych <= '9') goto yy1150; + goto yy849; +yy1080: + YYDEBUG(1080, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '0') goto yy1150; + goto yy849; +yy1081: + YYDEBUG(1081, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); + yych = *YYCURSOR; + YYDEBUG(1082, *YYCURSOR); + if (yych <= 'A') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy1081; + goto yy59; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy183; + if (yych <= ' ') goto yy1081; + if (yych <= '@') goto yy59; } } else { - if (yych <= '_') { - if (yych <= 'E') goto yy1512; - if (yych <= 'Z') goto yy183; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= '`') { + if (yych != 'P') goto yy59; } else { - if (yych <= 'd') { - if (yych <= '`') goto yy3; - goto yy188; - } else { - if (yych <= 'e') goto yy1548; - if (yych <= 'z') goto yy188; - goto yy3; - } + if (yych <= 'a') goto yy1083; + if (yych != 'p') goto yy59; } } -yy1543: - YYDEBUG(1543, *YYCURSOR); - yyaccept = 1; +yy1083: + YYDEBUG(1083, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'L') { + if (yych == '.') goto yy1151; + goto yy59; + } else { + if (yych <= 'M') goto yy1152; + if (yych == 'm') goto yy1152; + goto yy59; + } +yy1084: + YYDEBUG(1084, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0xA0) goto yy1153; + goto yy59; +yy1085: + YYDEBUG(1085, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0x80) goto yy1154; + goto yy59; +yy1086: + YYDEBUG(1086, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy1155; + if (yych == 's') goto yy1155; + goto yy982; +yy1087: + YYDEBUG(1087, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy1156; + if (yych == 't') goto yy1156; + goto yy59; +yy1088: + YYDEBUG(1088, *YYCURSOR); + yyaccept = 24; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'D') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= 0x1F) { + if (yych == '\t') goto yy1157; + goto yy982; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy183; + if (yych <= ' ') goto yy1157; + if (yych <= 'C') goto yy982; + goto yy1159; } } else { - if (yych <= '_') { - if (yych <= 'E') goto yy1508; - if (yych <= 'Z') goto yy183; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 0xC1) { + if (yych == 'd') goto yy1159; + goto yy982; } else { - if (yych <= 'd') { - if (yych <= '`') goto yy3; - goto yy188; - } else { - if (yych <= 'e') goto yy1544; - if (yych <= 'z') goto yy188; - goto yy3; - } + if (yych <= 0xC2) goto yy1160; + if (yych == 0xE2) goto yy1161; + goto yy982; } } -yy1544: - YYDEBUG(1544, *YYCURSOR); - yyaccept = 1; +yy1089: + YYDEBUG(1089, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy1086; + if (yych == 'r') goto yy1086; + goto yy59; +yy1090: + YYDEBUG(1090, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy1162; + if (yych == 'r') goto yy1162; + goto yy59; +yy1091: + YYDEBUG(1091, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy1163; + if (yych == 'l') goto yy1163; + goto yy59; +yy1092: + YYDEBUG(1092, *YYCURSOR); + yyaccept = 24; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'K') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy184; - } + if (yych <= 'U') { + if (yych == 'S') goto yy1155; + if (yych <= 'T') goto yy982; + goto yy1164; } else { - if (yych <= '_') { - if (yych <= 'L') goto yy1509; - if (yych <= 'Z') goto yy184; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 's') { + if (yych <= 'r') goto yy982; + goto yy1155; } else { - if (yych <= 'k') { - if (yych <= '`') goto yy3; - goto yy192; - } else { - if (yych <= 'l') goto yy1545; - if (yych <= 'z') goto yy192; - goto yy3; - } + if (yych == 'u') goto yy1164; + goto yy982; } } -yy1545: - YYDEBUG(1545, *YYCURSOR); - yyaccept = 1; +yy1093: + YYDEBUG(1093, *YYCURSOR); + yyaccept = 24; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'E') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= 'T') { + if (yych <= ' ') { + if (yych == '\t') goto yy1157; + if (yych <= 0x1F) goto yy982; + goto yy1157; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy185; + if (yych == 'D') goto yy1159; + if (yych <= 'S') goto yy982; + goto yy1165; } } else { - if (yych <= '_') { - if (yych <= 'F') goto yy1510; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 'e') { - if (yych <= '`') goto yy3; - goto yy193; + if (yych <= 't') { + if (yych == 'd') goto yy1159; + if (yych <= 's') goto yy982; + goto yy1165; + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy982; + goto yy1160; } else { - if (yych <= 'f') goto yy1546; - if (yych <= 'z') goto yy193; - goto yy3; + if (yych == 0xE2) goto yy1161; + goto yy982; } } } -yy1546: - YYDEBUG(1546, *YYCURSOR); - yyaccept = 1; +yy1094: + YYDEBUG(1094, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy1086; + if (yych == 'c') goto yy1086; + goto yy59; +yy1095: + YYDEBUG(1095, *YYCURSOR); + yyaccept = 24; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'S') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= 'U') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy1157; + goto yy982; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy186; + if (yych <= ' ') goto yy1157; + if (yych <= 'T') goto yy982; + goto yy1166; } } else { - if (yych <= '_') { - if (yych <= 'T') goto yy1511; - if (yych <= 'Z') goto yy186; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 0xC1) { + if (yych == 'u') goto yy1166; + goto yy982; } else { - if (yych <= 's') { - if (yych <= '`') goto yy3; - goto yy194; - } else { - if (yych <= 't') goto yy1547; - if (yych <= 'z') goto yy194; - goto yy3; - } + if (yych <= 0xC2) goto yy1160; + if (yych == 0xE2) goto yy1161; + goto yy982; } } -yy1547: - YYDEBUG(1547, *YYCURSOR); - yyaccept = 1; +yy1096: + YYDEBUG(1096, *YYCURSOR); + yyaccept = 24; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'G') { - if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy3; - } else { - if (yych == '.') goto yy3; - if (yych <= '/') goto yy189; - goto yy3; - } + if (yych <= 'S') { + if (yych == 'O') goto yy1167; + if (yych <= 'R') goto yy982; + goto yy1155; } else { - if (yych <= '`') { - if (yych <= 'H') goto yy1297; - if (yych == '_') goto yy189; - goto yy3; + if (yych <= 'o') { + if (yych <= 'n') goto yy982; + goto yy1167; } else { - if (yych == 'h') goto yy1315; - if (yych <= 'z') goto yy195; - goto yy3; + if (yych == 's') goto yy1155; + goto yy982; } } -yy1548: - YYDEBUG(1548, *YYCURSOR); - yyaccept = 4; +yy1097: + YYDEBUG(1097, *YYCURSOR); + yyaccept = 24; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'R') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy219; - goto yy189; + if (yych <= 0x1F) { + if (yych == '\t') goto yy1157; + goto yy982; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy219; - goto yy184; + if (yych <= ' ') goto yy1157; + if (yych <= 'Q') goto yy982; + goto yy1168; } } else { - if (yych <= '_') { - if (yych <= 'S') goto yy1513; - if (yych <= 'Z') goto yy184; - if (yych <= '^') goto yy219; - goto yy189; + if (yych <= 0xC1) { + if (yych == 'r') goto yy1168; + goto yy982; } else { - if (yych <= 'r') { - if (yych <= '`') goto yy219; - goto yy192; - } else { - if (yych <= 's') goto yy1549; - if (yych <= 'z') goto yy192; - goto yy219; - } + if (yych <= 0xC2) goto yy1160; + if (yych == 0xE2) goto yy1161; + goto yy982; } } -yy1549: - YYDEBUG(1549, *YYCURSOR); - yyaccept = 1; +yy1098: + YYDEBUG(1098, *YYCURSOR); + yyaccept = 24; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'C') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= 'S') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy1157; + goto yy982; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy185; + if (yych <= ' ') goto yy1157; + if (yych <= 'R') goto yy982; + goto yy1169; } } else { - if (yych <= '_') { - if (yych <= 'D') goto yy1514; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 0xC1) { + if (yych == 's') goto yy1169; + goto yy982; } else { - if (yych <= 'c') { - if (yych <= '`') goto yy3; - goto yy193; - } else { - if (yych <= 'd') goto yy1550; - if (yych <= 'z') goto yy193; - goto yy3; - } + if (yych <= 0xC2) goto yy1160; + if (yych == 0xE2) goto yy1161; + goto yy982; } } -yy1550: - YYDEBUG(1550, *YYCURSOR); - yyaccept = 1; +yy1099: + YYDEBUG(1099, *YYCURSOR); + yyaccept = 24; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '@') { - if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy3; + if (yych <= 'N') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy1157; + goto yy982; } else { - if (yych == '.') goto yy3; - if (yych <= '/') goto yy189; - goto yy3; + if (yych <= ' ') goto yy1157; + if (yych <= 'M') goto yy982; + goto yy1170; } } else { - if (yych <= '_') { - if (yych <= 'A') goto yy1515; - if (yych <= 'Z') goto yy186; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 0xC1) { + if (yych == 'n') goto yy1170; + goto yy982; } else { - if (yych <= '`') goto yy3; - if (yych <= 'a') goto yy1551; - if (yych <= 'z') goto yy194; - goto yy3; + if (yych <= 0xC2) goto yy1160; + if (yych == 0xE2) goto yy1161; + goto yy982; } } -yy1551: - YYDEBUG(1551, *YYCURSOR); - yyaccept = 1; +yy1100: + YYDEBUG(1100, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'K') goto yy1171; + if (yych == 'k') goto yy1171; + goto yy59; +yy1101: + YYDEBUG(1101, *YYCURSOR); + yyaccept = 24; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'X') { - if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy3; - } else { - if (yych == '.') goto yy3; - if (yych <= '/') goto yy189; - goto yy3; - } + if (yych <= 'R') { + if (yych == ' ') goto yy1173; + goto yy982; } else { - if (yych <= '`') { - if (yych <= 'Y') goto yy1516; - if (yych == '_') goto yy189; - goto yy3; - } else { - if (yych == 'y') goto yy1552; - if (yych <= 'z') goto yy195; - goto yy3; - } + if (yych <= 'S') goto yy1155; + if (yych == 's') goto yy1155; + goto yy982; } -yy1552: - YYDEBUG(1552, *YYCURSOR); - yyaccept = 4; +yy1102: + YYDEBUG(1102, *YYCURSOR); + ++YYCURSOR; + goto yy722; +yy1103: + YYDEBUG(1103, *YYCURSOR); + yyaccept = 16; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'S') { - if (yych <= '.') { - if (yych == '-') goto yy189; - goto yy219; - } else { - if (yych <= '/') goto yy189; - if (yych <= 'R') goto yy219; - goto yy225; - } + if (yybm[0+yych] & 128) { + goto yy954; + } + if (yych <= '.') { + if (yych == '-') goto yy297; + goto yy722; } else { - if (yych <= '`') { - if (yych == '_') goto yy189; - goto yy219; - } else { - if (yych == 's') goto yy239; - if (yych <= 'z') goto yy195; - goto yy219; - } + if (yych <= '/') goto yy297; + if (yych == '_') goto yy297; + goto yy722; } -yy1553: - YYDEBUG(1553, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '@') { - if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy3; +yy1104: + YYDEBUG(1104, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= ' ') { + if (yych == '\t') goto yy701; + if (yych <= 0x1F) goto yy59; + goto yy701; + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy59; + goto yy704; } else { - if (yych == '.') goto yy3; - if (yych <= '/') goto yy189; - goto yy3; + if (yych == 0xE2) goto yy705; + goto yy59; } - } else { - if (yych <= '_') { - if (yych <= 'A') goto yy1525; - if (yych <= 'Z') goto yy184; - if (yych <= '^') goto yy3; - goto yy189; + } +yy1105: + YYDEBUG(1105, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= ' ') { + if (yych == '\t') goto yy701; + if (yych <= 0x1F) goto yy955; + goto yy701; + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy955; + goto yy704; } else { - if (yych <= '`') goto yy3; - if (yych <= 'a') goto yy1560; - if (yych <= 'z') goto yy192; - goto yy3; + if (yych == 0xE2) goto yy705; + goto yy955; } } -yy1554: - YYDEBUG(1554, *YYCURSOR); - yyaccept = 1; +yy1106: + YYDEBUG(1106, *YYCURSOR); + ++YYCURSOR; +yy1107: + YYDEBUG(1107, *YYCURSOR); +#line 1195 "ext/date/lib/parse_date.re" + { + DEBUG_OUTPUT("tomorrow"); + TIMELIB_INIT; + TIMELIB_HAVE_RELATIVE(); + TIMELIB_UNHAVE_TIME(); + + s->time->relative.d = 1; + TIMELIB_DEINIT; + return TIMELIB_RELATIVE; + } +#line 21739 "" +yy1108: + YYDEBUG(1108, *YYCURSOR); + yyaccept = 28; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'N') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy184; - } + if (yybm[0+yych] & 128) { + goto yy954; + } + if (yych <= '.') { + if (yych == '-') goto yy297; + goto yy1107; } else { - if (yych <= '_') { - if (yych <= 'O') goto yy1519; - if (yych <= 'Z') goto yy184; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 'n') { - if (yych <= '`') goto yy3; - goto yy192; - } else { - if (yych <= 'o') goto yy1555; - if (yych <= 'z') goto yy192; - goto yy3; - } - } + if (yych <= '/') goto yy297; + if (yych == '_') goto yy297; + goto yy1107; } -yy1555: - YYDEBUG(1555, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'Q') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy185; - } +yy1109: + YYDEBUG(1109, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy1174; + if (yych == 'y') goto yy1174; + goto yy59; +yy1110: + YYDEBUG(1110, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy1174; + if (yych == 'y') goto yy1176; + goto yy955; +yy1111: + YYDEBUG(1111, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '2') goto yy1177; + if (yych <= '3') goto yy1178; + goto yy59; +yy1112: + YYDEBUG(1112, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '-') goto yy1179; + goto yy59; +yy1113: + YYDEBUG(1113, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '9') { + if (yych == '-') goto yy893; + if (yych <= '/') goto yy196; + goto yy1180; } else { - if (yych <= '_') { - if (yych <= 'R') goto yy1520; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy196; + goto yy97; } else { - if (yych <= 'q') { - if (yych <= '`') goto yy3; - goto yy193; - } else { - if (yych <= 'r') goto yy1556; - if (yych <= 'z') goto yy193; - goto yy3; - } + if (yych == 0xE2) goto yy98; + goto yy196; } } -yy1556: - YYDEBUG(1556, *YYCURSOR); - yyaccept = 1; +yy1114: + YYDEBUG(1114, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1181; + goto yy59; +yy1115: + YYDEBUG(1115, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '1') goto yy1182; + if (yych <= '2') goto yy1183; + if (yych <= '9') goto yy1184; + goto yy59; +yy1116: + YYDEBUG(1116, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'd') goto yy1185; + goto yy59; +yy1117: + YYDEBUG(1117, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 't') goto yy1185; + goto yy59; +yy1118: + YYDEBUG(1118, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'h') goto yy1185; + goto yy59; +yy1119: + YYDEBUG(1119, *YYCURSOR); + yyaccept = 15; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'Q') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= 'm') { + if (yych <= '9') { + if (yych <= '/') goto yy567; + goto yy1186; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy186; + if (yych == 'T') goto yy1115; + goto yy567; } } else { - if (yych <= '_') { - if (yych <= 'R') goto yy1521; - if (yych <= 'Z') goto yy186; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'r') { + if (yych <= 'n') goto yy1116; + if (yych <= 'q') goto yy567; + goto yy1116; } else { - if (yych <= 'q') { - if (yych <= '`') goto yy3; - goto yy194; - } else { - if (yych <= 'r') goto yy1557; - if (yych <= 'z') goto yy194; - goto yy3; - } + if (yych <= 's') goto yy1117; + if (yych <= 't') goto yy1118; + goto yy567; } } -yy1557: - YYDEBUG(1557, *YYCURSOR); - yyaccept = 1; +yy1120: + YYDEBUG(1120, *YYCURSOR); + yyaccept = 15; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'N') { - if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy3; + if (yych <= 'm') { + if (yych <= '1') { + if (yych <= '/') goto yy567; + goto yy1186; } else { - if (yych == '.') goto yy3; - if (yych <= '/') goto yy189; - goto yy3; + if (yych == 'T') goto yy1115; + goto yy567; } } else { - if (yych <= '`') { - if (yych <= 'O') goto yy1522; - if (yych == '_') goto yy189; - goto yy3; + if (yych <= 'r') { + if (yych <= 'n') goto yy1116; + if (yych <= 'q') goto yy567; + goto yy1116; } else { - if (yych == 'o') goto yy1558; - if (yych <= 'z') goto yy195; - goto yy3; + if (yych <= 's') goto yy1117; + if (yych <= 't') goto yy1118; + goto yy567; } } -yy1558: - YYDEBUG(1558, *YYCURSOR); +yy1121: + YYDEBUG(1121, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'W') goto yy1523; - if (yych != 'w') goto yy196; - YYDEBUG(1559, *YYCURSOR); - yyaccept = 29; + if (yych == 'd') goto yy1187; + goto yy59; +yy1122: + YYDEBUG(1122, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 't') goto yy1187; + goto yy59; +yy1123: + YYDEBUG(1123, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'h') goto yy1187; + goto yy59; +yy1124: + YYDEBUG(1124, *YYCURSOR); + yyaccept = 26; yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 8) { - goto yy195; - } - if (yych <= '.') { - if (yych == '-') goto yy189; - goto yy1524; + if (yych <= 'n') { + if (yych <= '/') goto yy1043; + if (yych <= '9') goto yy1188; + if (yych <= 'm') goto yy1043; + goto yy1121; } else { - if (yych <= '/') goto yy189; - if (yych == '_') goto yy189; - goto yy1524; - } -yy1560: - YYDEBUG(1560, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'X') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= 'r') { + if (yych <= 'q') goto yy1043; + goto yy1121; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy185; + if (yych <= 's') goto yy1122; + if (yych <= 't') goto yy1123; + goto yy1043; } + } +yy1125: + YYDEBUG(1125, *YYCURSOR); + yyaccept = 26; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych <= '/') goto yy1043; + if (yych <= '1') goto yy1188; + if (yych <= 'm') goto yy1043; + goto yy1121; } else { - if (yych <= '_') { - if (yych <= 'Y') goto yy1526; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'r') { + if (yych <= 'q') goto yy1043; + goto yy1121; } else { - if (yych <= 'x') { - if (yych <= '`') goto yy3; - goto yy193; - } else { - if (yych <= 'y') goto yy1561; - if (yych <= 'z') goto yy193; - goto yy3; - } + if (yych <= 's') goto yy1122; + if (yych <= 't') goto yy1123; + goto yy1043; } } -yy1561: - YYDEBUG(1561, *YYCURSOR); - yyaccept = 30; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy1527; - } else { - if (yych == '.') goto yy1527; - goto yy189; +yy1126: + YYDEBUG(1126, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 0xC1) { + if (yych <= '/') goto yy196; + if (yych <= '9') goto yy1189; + goto yy196; + } else { + if (yych <= 0xC2) goto yy97; + if (yych == 0xE2) goto yy98; + goto yy196; + } +yy1127: + YYDEBUG(1127, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'H') { + if (yych <= '2') { + if (yych <= '/') goto yy59; + if (yych <= '1') goto yy1190; + goto yy1191; + } else { + if (yych <= '9') goto yy1192; + if (yych <= 'G') goto yy59; + goto yy266; } } else { - if (yych <= '^') { - if (yych <= '@') goto yy1527; - if (yych <= 'Z') goto yy186; - goto yy1527; - } else { - if (yych <= '_') goto yy189; - if (yych <= '`') goto yy1527; - if (yych <= 'z') goto yy194; - goto yy1527; + if (yych <= 'g') { + if (yych == 'U') goto yy267; + goto yy59; + } else { + if (yych <= 'h') goto yy266; + if (yych == 'u') goto yy267; + goto yy59; } } -yy1562: - YYDEBUG(1562, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'R') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych <= '/') { - if (yych <= '.') goto yy3; - goto yy189; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'Q') goto yy184; - goto yy1535; - } +yy1128: + YYDEBUG(1128, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'H') { + if (yych <= '2') { + if (yych <= '/') goto yy59; + if (yych <= '1') goto yy1193; + goto yy1194; + } else { + if (yych <= '9') goto yy1195; + if (yych <= 'G') goto yy59; + goto yy266; } } else { - if (yych <= '`') { - if (yych <= 'Z') { - if (yych <= 'S') goto yy1536; - goto yy184; - } else { - if (yych == '_') goto yy189; - goto yy3; - } + if (yych <= 'g') { + if (yych == 'U') goto yy267; + goto yy59; } else { - if (yych <= 'r') { - if (yych <= 'q') goto yy192; - goto yy1569; - } else { - if (yych <= 's') goto yy1570; - if (yych <= 'z') goto yy192; - goto yy3; - } + if (yych <= 'h') goto yy266; + if (yych == 'u') goto yy267; + goto yy59; } } -yy1563: - YYDEBUG(1563, *YYCURSOR); +yy1129: + YYDEBUG(1129, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1196; + goto yy59; +yy1130: + YYDEBUG(1130, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '1') goto yy1196; + goto yy59; +yy1131: + YYDEBUG(1131, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy790; + if (yych == 't') goto yy790; + goto yy59; +yy1132: + YYDEBUG(1132, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy1197; + if (yych == 'r') goto yy1197; + goto yy59; +yy1133: + YYDEBUG(1133, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy1198; + if (yych == 'e') goto yy1198; + goto yy59; +yy1134: + YYDEBUG(1134, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy425; + if (yych == 't') goto yy425; + goto yy59; +yy1135: + YYDEBUG(1135, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy628; + if (yych == 'o') goto yy628; + goto yy59; +yy1136: + YYDEBUG(1136, *YYCURSOR); yyaccept = 4; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'Q') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy219; - goto yy189; + YYMARKER = ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); + yych = *YYCURSOR; + YYDEBUG(1137, *YYCURSOR); + if (yych <= 'O') { + if (yych <= '9') { + if (yych <= '/') goto yy177; + goto yy1136; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy219; - goto yy184; + if (yych == 'A') goto yy1199; + goto yy177; } } else { - if (yych <= '_') { - if (yych <= 'R') goto yy1530; - if (yych <= 'Z') goto yy184; - if (yych <= '^') goto yy219; - goto yy189; + if (yych <= 'a') { + if (yych <= 'P') goto yy1199; + if (yych <= '`') goto yy177; + goto yy1199; } else { - if (yych <= 'q') { - if (yych <= '`') goto yy219; - goto yy192; - } else { - if (yych <= 'r') goto yy1564; - if (yych <= 'z') goto yy192; - goto yy219; - } + if (yych == 'p') goto yy1199; + goto yy177; } } -yy1564: - YYDEBUG(1564, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'R') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; +yy1138: + YYDEBUG(1138, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); + yych = *YYCURSOR; + YYDEBUG(1139, *YYCURSOR); + if (yych <= 'O') { + if (yych <= '9') { + if (yych <= '/') goto yy59; + goto yy1138; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy185; + if (yych == 'A') goto yy1199; + goto yy59; } } else { - if (yych <= '_') { - if (yych <= 'S') goto yy1531; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'a') { + if (yych <= 'P') goto yy1199; + if (yych <= '`') goto yy59; + goto yy1199; } else { - if (yych <= 'r') { - if (yych <= '`') goto yy3; - goto yy193; - } else { - if (yych <= 's') goto yy1565; - if (yych <= 'z') goto yy193; - goto yy3; - } + if (yych == 'p') goto yy1199; + goto yy59; } } -yy1565: - YYDEBUG(1565, *YYCURSOR); - yyaccept = 1; +yy1140: + YYDEBUG(1140, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(1141, *YYCURSOR); +#line 1748 "ext/date/lib/parse_date.re" + { + int length = 0; + DEBUG_OUTPUT("pgtextreverse"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->y = timelib_get_nr_ex(&ptr, 4, &length); + s->time->m = timelib_get_month(&ptr); + s->time->d = timelib_get_nr(&ptr, 2); + TIMELIB_PROCESS_YEAR(s->time->y, length); + TIMELIB_DEINIT; + return TIMELIB_PG_TEXT; + } +#line 22089 "" +yy1142: + YYDEBUG(1142, *YYCURSOR); + ++YYCURSOR; + goto yy290; +yy1143: + YYDEBUG(1143, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy1070; + if (yych <= '9') goto yy1200; + goto yy1070; +yy1144: + YYDEBUG(1144, *YYCURSOR); + yyaccept = 29; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'C') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy186; - } - } else { - if (yych <= '_') { - if (yych <= 'D') goto yy1532; - if (yych <= 'Z') goto yy186; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'O') { + if (yych <= ' ') { + if (yych == '\t') goto yy1201; + if (yych >= ' ') goto yy1201; } else { - if (yych <= 'c') { - if (yych <= '`') goto yy3; - goto yy194; + if (yych <= '9') { + if (yych >= '0') goto yy1147; } else { - if (yych <= 'd') goto yy1566; - if (yych <= 'z') goto yy194; - goto yy3; + if (yych == 'A') goto yy1203; } } - } -yy1566: - YYDEBUG(1566, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '@') { - if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy3; - } else { - if (yych == '.') goto yy3; - if (yych <= '/') goto yy189; - goto yy3; - } } else { - if (yych <= '_') { - if (yych <= 'A') goto yy1533; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'p') { + if (yych <= '`') { + if (yych <= 'P') goto yy1203; + } else { + if (yych <= 'a') goto yy1203; + if (yych >= 'p') goto yy1203; + } } else { - if (yych <= '`') goto yy3; - if (yych <= 'a') goto yy1567; - if (yych <= 'z') goto yy195; - goto yy3; + if (yych <= 0xC2) { + if (yych >= 0xC2) goto yy1204; + } else { + if (yych == 0xE2) goto yy1205; + } } } -yy1567: - YYDEBUG(1567, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy1534; - if (yych != 'y') goto yy196; - YYDEBUG(1568, *YYCURSOR); - yyaccept = 4; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'S') { - if (yych <= '.') { - if (yych == '-') goto yy189; - goto yy219; +yy1145: + YYDEBUG(1145, *YYCURSOR); +#line 1290 "ext/date/lib/parse_date.re" + { + DEBUG_OUTPUT("backof | frontof"); + TIMELIB_INIT; + TIMELIB_UNHAVE_TIME(); + TIMELIB_HAVE_TIME(); + + if (*ptr == 'b') { + s->time->h = timelib_get_nr(&ptr, 2); + s->time->i = 15; } else { - if (yych <= '/') goto yy189; - if (yych <= 'R') goto yy219; - goto yy225; + s->time->h = timelib_get_nr(&ptr, 2) - 1; + s->time->i = 45; } - } else { - if (yych <= '`') { - if (yych == '_') goto yy189; - goto yy219; - } else { - if (yych == 's') goto yy239; - if (yych <= 'z') goto yy195; - goto yy219; + if (*ptr != '\0' ) { + timelib_eat_spaces(&ptr); + s->time->h += timelib_meridian(&ptr, s->time->h); } + + TIMELIB_DEINIT; + return TIMELIB_LF_DAY_OF_MONTH; } -yy1569: - YYDEBUG(1569, *YYCURSOR); - yyaccept = 1; +#line 22155 "" +yy1146: + YYDEBUG(1146, *YYCURSOR); + yyaccept = 29; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'C') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= 'O') { + if (yych <= ' ') { + if (yych == '\t') goto yy1201; + if (yych <= 0x1F) goto yy1145; + goto yy1201; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy185; + if (yych <= '4') { + if (yych <= '/') goto yy1145; + } else { + if (yych == 'A') goto yy1203; + goto yy1145; + } } } else { - if (yych <= '_') { - if (yych <= 'D') goto yy1330; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'p') { + if (yych <= '`') { + if (yych <= 'P') goto yy1203; + goto yy1145; + } else { + if (yych <= 'a') goto yy1203; + if (yych <= 'o') goto yy1145; + goto yy1203; + } } else { - if (yych <= 'c') { - if (yych <= '`') goto yy3; - goto yy193; + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy1145; + goto yy1204; } else { - if (yych <= 'd') goto yy1360; - if (yych <= 'z') goto yy193; - goto yy3; + if (yych == 0xE2) goto yy1205; + goto yy1145; } } } -yy1570: - YYDEBUG(1570, *YYCURSOR); - yyaccept = 1; +yy1147: + YYDEBUG(1147, *YYCURSOR); + yyaccept = 29; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '-') { + if (yych <= 'P') { if (yych <= ' ') { - if (yych == '\t') goto yy1164; - if (yych <= 0x1F) goto yy3; - goto yy1164; - } else { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych == '\t') goto yy1201; + if (yych <= 0x1F) goto yy1145; + goto yy1201; + } else { + if (yych == 'A') goto yy1203; + if (yych <= 'O') goto yy1145; + goto yy1203; } } else { - if (yych <= 'Z') { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy185; - } else { - if (yych <= '_') { - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'p') { + if (yych == 'a') goto yy1203; + if (yych <= 'o') goto yy1145; + goto yy1203; + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy1145; + goto yy1204; } else { - if (yych <= '`') goto yy3; - if (yych <= 'z') goto yy193; - goto yy3; + if (yych == 0xE2) goto yy1205; + goto yy1145; } } } -yy1571: - YYDEBUG(1571, *YYCURSOR); - yyaccept = 1; +yy1148: + YYDEBUG(1148, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'K') goto yy1206; + if (yych == 'k') goto yy1206; + goto yy59; +yy1149: + YYDEBUG(1149, *YYCURSOR); + yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'S') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= ',') { + if (yych <= ' ') { + if (yych == '\t') goto yy1208; + if (yych <= 0x1F) goto yy849; + goto yy1208; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy184; + if (yych <= '(') { + if (yych <= '\'') goto yy849; + goto yy1208; + } else { + if (yych == '+') goto yy1208; + goto yy849; + } } } else { - if (yych <= '_') { - if (yych <= 'T') goto yy1538; - if (yych <= 'Z') goto yy184; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'z') { + if (yych <= '@') { + if (yych <= '-') goto yy1208; + goto yy849; + } else { + if (yych <= 'Z') goto yy1208; + if (yych <= '`') goto yy849; + goto yy1208; + } } else { - if (yych <= 's') { - if (yych <= '`') goto yy3; - goto yy192; + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy849; + goto yy1214; } else { - if (yych <= 't') goto yy1572; - if (yych <= 'z') goto yy192; - goto yy3; + if (yych == 0xE2) goto yy1215; + goto yy849; } } } -yy1572: - YYDEBUG(1572, *YYCURSOR); - yyaccept = 1; +yy1150: + YYDEBUG(1150, *YYCURSOR); + yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'G') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= ',') { + if (yych <= ' ') { + if (yych == '\t') goto yy1217; + if (yych <= 0x1F) goto yy849; + goto yy1217; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy185; + if (yych <= '(') { + if (yych <= '\'') goto yy849; + goto yy1217; + } else { + if (yych == '+') goto yy1217; + goto yy849; + } } } else { - if (yych <= '_') { - if (yych <= 'H') goto yy1330; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'z') { + if (yych <= '@') { + if (yych <= '-') goto yy1217; + goto yy849; + } else { + if (yych <= 'Z') goto yy1217; + if (yych <= '`') goto yy849; + goto yy1217; + } } else { - if (yych <= 'g') { - if (yych <= '`') goto yy3; - goto yy193; + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy849; + goto yy1220; } else { - if (yych <= 'h') goto yy1360; - if (yych <= 'z') goto yy193; - goto yy3; + if (yych == 0xE2) goto yy1221; + goto yy849; } } } -yy1573: - YYDEBUG(1573, *YYCURSOR); +yy1151: + YYDEBUG(1151, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'Y') { - if (yych <= '@') { - if (yych == ')') goto yy181; - goto yy3; - } else { - if (yych == 'R') goto yy1586; - if (yych <= 'X') goto yy183; - goto yy1587; - } + if (yych == 'M') goto yy1152; + if (yych != 'm') goto yy59; +yy1152: + YYDEBUG(1152, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 0x1F) { + if (yych <= 0x00) goto yy1222; + if (yych == '\t') goto yy1222; + goto yy59; } else { - if (yych <= 'r') { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - if (yych <= 'q') goto yy183; - goto yy1586; - } else { - if (yych == 'y') goto yy1587; - if (yych <= 'z') goto yy183; - goto yy3; - } + if (yych <= ' ') goto yy1222; + if (yych == '.') goto yy1224; + goto yy59; } -yy1574: - YYDEBUG(1574, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'D') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; +yy1153: + YYDEBUG(1153, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); + yych = *YYCURSOR; + if (yych <= '`') { + if (yych <= 'A') { + if (yych <= '@') goto yy59; + goto yy1083; } else { - if (yych <= '@') goto yy3; - if (yych <= 'C') goto yy183; - goto yy1580; + if (yych == 'P') goto yy1083; + goto yy59; } } else { - if (yych <= 'c') { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - goto yy183; + if (yych <= 'p') { + if (yych <= 'a') goto yy1083; + if (yych <= 'o') goto yy59; + goto yy1083; } else { - if (yych <= 'd') goto yy1580; - if (yych <= 'z') goto yy183; - goto yy3; + if (yych == 0xC2) goto yy1084; + goto yy59; } } -yy1575: - YYDEBUG(1575, *YYCURSOR); +yy1154: + YYDEBUG(1154, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0xAF) goto yy1225; + goto yy59; +yy1155: + YYDEBUG(1155, *YYCURSOR); + ++YYCURSOR; + goto yy982; +yy1156: + YYDEBUG(1156, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'N') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych == 'H') goto yy1226; + if (yych <= 'M') goto yy59; + goto yy1227; + } else { + if (yych <= 'h') { + if (yych <= 'g') goto yy59; + goto yy1226; } else { - if (yych <= '@') goto yy3; - if (yych <= 'M') goto yy183; + if (yych == 'n') goto yy1227; + goto yy59; } + } +yy1157: + YYDEBUG(1157, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; + YYDEBUG(1158, *YYCURSOR); + if (yych <= ' ') { + if (yych == '\t') goto yy1157; + if (yych <= 0x1F) goto yy59; + goto yy1157; } else { - if (yych <= 'm') { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - goto yy183; + if (yych <= 'O') { + if (yych <= 'N') goto yy59; + goto yy1228; } else { - if (yych <= 'n') goto yy1576; - if (yych <= 'z') goto yy183; - goto yy3; + if (yych == 'o') goto yy1228; + goto yy59; } } -yy1576: - YYDEBUG(1576, *YYCURSOR); +yy1159: + YYDEBUG(1159, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'D') { - if (yych <= ')') { - if (yych <= '(') goto yy219; - goto yy181; - } else { - if (yych <= '@') goto yy219; - if (yych <= 'C') goto yy184; - } + if (yych == 'A') goto yy1229; + if (yych == 'a') goto yy1229; + goto yy59; +yy1160: + YYDEBUG(1160, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0xA0) goto yy1230; + goto yy59; +yy1161: + YYDEBUG(1161, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0x80) goto yy1231; + goto yy59; +yy1162: + YYDEBUG(1162, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy1232; + if (yych == 'o') goto yy1232; + goto yy59; +yy1163: + YYDEBUG(1163, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy1232; + if (yych == 'i') goto yy1232; + goto yy59; +yy1164: + YYDEBUG(1164, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy1233; + if (yych == 't') goto yy1233; + goto yy59; +yy1165: + YYDEBUG(1165, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy1086; + if (yych == 'h') goto yy1086; + goto yy59; +yy1166: + YYDEBUG(1166, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy1169; + if (yych == 'r') goto yy1169; + goto yy59; +yy1167: + YYDEBUG(1167, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy1234; + if (yych == 'n') goto yy1234; + goto yy59; +yy1168: + YYDEBUG(1168, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy1169; + if (yych != 's') goto yy59; +yy1169: + YYDEBUG(1169, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy1159; + if (yych == 'd') goto yy1159; + goto yy59; +yy1170: + YYDEBUG(1170, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy1168; + if (yych == 'e') goto yy1168; + goto yy59; +yy1171: + YYDEBUG(1171, *YYCURSOR); + yyaccept = 30; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych == 'D') goto yy856; + if (yych >= 'S') goto yy1155; } else { - if (yych <= 'c') { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy219; - goto yy184; + if (yych <= 'd') { + if (yych >= 'd') goto yy856; } else { - if (yych <= 'd') goto yy1577; - if (yych <= 'z') goto yy184; - goto yy219; + if (yych == 's') goto yy1155; + } + } +yy1172: + YYDEBUG(1172, *YYCURSOR); +#line 1834 "ext/date/lib/parse_date.re" + { + timelib_sll i; + int behavior = 0; + DEBUG_OUTPUT("relativetextweek"); + TIMELIB_INIT; + TIMELIB_HAVE_RELATIVE(); + + while(*ptr) { + i = timelib_get_relative_text(&ptr, &behavior); + timelib_eat_spaces(&ptr); + timelib_set_relative(&ptr, i, behavior, s, TIMELIB_TIME_PART_DONT_KEEP); + s->time->relative.weekday_behavior = 2; + + /* to handle the format weekday + last/this/next week */ + if (s->time->relative.have_weekday_relative == 0) { + TIMELIB_HAVE_WEEKDAY_RELATIVE(); + s->time->relative.weekday = 1; + } } + TIMELIB_DEINIT; + return TIMELIB_RELATIVE; } -yy1577: - YYDEBUG(1577, *YYCURSOR); +#line 22502 "" +yy1173: + YYDEBUG(1173, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'A') { - if (yych == ')') goto yy181; - if (yych <= '@') goto yy3; + if (yych == 'O') goto yy1235; + if (yych == 'o') goto yy1235; + goto yy59; +yy1174: + YYDEBUG(1174, *YYCURSOR); + ++YYCURSOR; +yy1175: + YYDEBUG(1175, *YYCURSOR); +#line 1152 "ext/date/lib/parse_date.re" + { + DEBUG_OUTPUT("yesterday"); + TIMELIB_INIT; + TIMELIB_HAVE_RELATIVE(); + TIMELIB_UNHAVE_TIME(); + + s->time->relative.d = -1; + TIMELIB_DEINIT; + return TIMELIB_RELATIVE; + } +#line 22525 "" +yy1176: + YYDEBUG(1176, *YYCURSOR); + yyaccept = 31; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy954; + } + if (yych <= '.') { + if (yych == '-') goto yy297; + goto yy1175; } else { - if (yych <= '`') { - if (yych <= 'Z') goto yy185; - goto yy3; + if (yych <= '/') goto yy297; + if (yych == '_') goto yy297; + goto yy1175; + } +yy1177: + YYDEBUG(1177, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1187; + goto yy59; +yy1178: + YYDEBUG(1178, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '1') goto yy1187; + goto yy59; +yy1179: + YYDEBUG(1179, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '2') goto yy1236; + if (yych <= '3') goto yy1237; + goto yy59; +yy1180: + YYDEBUG(1180, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '9') { + if (yych == '-') goto yy893; + if (yych <= '/') goto yy196; + goto yy1238; + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy196; + goto yy97; } else { - if (yych <= 'a') goto yy1578; - if (yych <= 'z') goto yy185; - goto yy3; + if (yych == 0xE2) goto yy98; + goto yy196; } } -yy1578: - YYDEBUG(1578, *YYCURSOR); +yy1181: + YYDEBUG(1181, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'Y') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych == ':') goto yy1239; + goto yy59; +yy1182: + YYDEBUG(1182, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1184; + if (yych <= ':') goto yy1240; + goto yy59; +yy1183: + YYDEBUG(1183, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '4') goto yy1184; + if (yych == ':') goto yy1240; + goto yy59; +yy1184: + YYDEBUG(1184, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == ':') goto yy1240; + goto yy59; +yy1185: + YYDEBUG(1185, *YYCURSOR); + yyaccept = 15; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'T') goto yy1115; + goto yy567; +yy1186: + YYDEBUG(1186, *YYCURSOR); + yyaccept = 26; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych == 'T') goto yy1241; + if (yych <= 'm') goto yy1043; + goto yy1116; + } else { + if (yych <= 'r') { + if (yych <= 'q') goto yy1043; + goto yy1116; } else { - if (yych <= '@') goto yy3; - if (yych <= 'X') goto yy186; + if (yych <= 's') goto yy1117; + if (yych <= 't') goto yy1118; + goto yy1043; } + } +yy1187: + YYDEBUG(1187, *YYCURSOR); + ++YYCURSOR; + goto yy1043; +yy1188: + YYDEBUG(1188, *YYCURSOR); + yyaccept = 26; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'n') { + if (yych == '/') goto yy1187; + if (yych <= 'm') goto yy1043; + goto yy1121; } else { - if (yych <= 'x') { - if (yych <= 'Z') goto yy186; - if (yych <= '`') goto yy3; - goto yy186; + if (yych <= 'r') { + if (yych <= 'q') goto yy1043; + goto yy1121; } else { - if (yych <= 'y') goto yy1579; - if (yych <= 'z') goto yy186; - goto yy3; + if (yych <= 's') goto yy1122; + if (yych <= 't') goto yy1123; + goto yy1043; } } -yy1579: - YYDEBUG(1579, *YYCURSOR); +yy1189: + YYDEBUG(1189, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'R') { - if (yych == ')') goto yy181; - goto yy219; - } else { - if (yych <= 'S') goto yy225; - if (yych == 's') goto yy225; - goto yy219; + if (yych <= 0xC1) { + if (yych <= '/') goto yy196; + if (yych <= '9') goto yy1242; + goto yy196; + } else { + if (yych <= 0xC2) goto yy97; + if (yych == 0xE2) goto yy98; + goto yy196; } -yy1580: - YYDEBUG(1580, *YYCURSOR); +yy1190: + YYDEBUG(1190, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'N') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'M') goto yy184; - } + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy1243; + if (yych <= '9') goto yy1192; + if (yych <= ':') goto yy1244; + goto yy59; +yy1191: + YYDEBUG(1191, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '5') { + if (yych <= '/') goto yy59; + if (yych <= '4') goto yy1243; + goto yy1245; } else { - if (yych <= 'm') { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy3; - goto yy184; - } else { - if (yych <= 'n') goto yy1581; - if (yych <= 'z') goto yy184; - goto yy3; - } + if (yych == ':') goto yy1244; + goto yy59; } -yy1581: - YYDEBUG(1581, *YYCURSOR); +yy1192: + YYDEBUG(1192, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'I') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'H') goto yy185; - } + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy1245; + if (yych == ':') goto yy1244; + goto yy59; +yy1193: + YYDEBUG(1193, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy1246; + if (yych <= '9') goto yy1195; + goto yy59; +yy1194: + YYDEBUG(1194, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '4') goto yy1246; + if (yych <= '5') goto yy1245; + goto yy59; +yy1195: + YYDEBUG(1195, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy1245; + goto yy59; +yy1196: + YYDEBUG(1196, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == ' ') goto yy1247; + goto yy59; +yy1197: + YYDEBUG(1197, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy790; + if (yych == 'y') goto yy790; + goto yy59; +yy1198: + YYDEBUG(1198, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy790; + if (yych == 'r') goto yy790; + goto yy59; +yy1199: + YYDEBUG(1199, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'L') { + if (yych == '.') goto yy1248; + goto yy59; } else { - if (yych <= 'h') { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy3; - goto yy185; - } else { - if (yych <= 'i') goto yy1582; - if (yych <= 'z') goto yy185; - goto yy3; - } + if (yych <= 'M') goto yy1249; + if (yych == 'm') goto yy1249; + goto yy59; } -yy1582: - YYDEBUG(1582, *YYCURSOR); +yy1200: + YYDEBUG(1200, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'G') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= '/') goto yy1070; + if (yych <= '9') goto yy1250; + goto yy1070; +yy1201: + YYDEBUG(1201, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); + yych = *YYCURSOR; + YYDEBUG(1202, *YYCURSOR); + if (yych <= 'A') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy1201; + goto yy59; } else { - if (yych <= '@') goto yy3; - if (yych <= 'F') goto yy186; + if (yych <= ' ') goto yy1201; + if (yych <= '@') goto yy59; } } else { - if (yych <= 'f') { - if (yych <= 'Z') goto yy186; - if (yych <= '`') goto yy3; - goto yy186; + if (yych <= '`') { + if (yych != 'P') goto yy59; } else { - if (yych <= 'g') goto yy1583; - if (yych <= 'z') goto yy186; - goto yy3; + if (yych <= 'a') goto yy1203; + if (yych != 'p') goto yy59; } } -yy1583: - YYDEBUG(1583, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'G') { - if (yych == ')') goto yy181; - goto yy3; +yy1203: + YYDEBUG(1203, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'L') { + if (yych == '.') goto yy1251; + goto yy59; } else { - if (yych <= 'H') goto yy1584; - if (yych != 'h') goto yy3; + if (yych <= 'M') goto yy1252; + if (yych == 'm') goto yy1252; + goto yy59; } -yy1584: - YYDEBUG(1584, *YYCURSOR); +yy1204: + YYDEBUG(1204, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0xA0) goto yy1253; + goto yy59; +yy1205: + YYDEBUG(1205, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0x80) goto yy1254; + goto yy59; +yy1206: + YYDEBUG(1206, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'T') goto yy1585; - if (yych != 't') goto yy55; -yy1585: - YYDEBUG(1585, *YYCURSOR); - yych = *++YYCURSOR; - goto yy1527; -yy1586: - YYDEBUG(1586, *YYCURSOR); - yyaccept = 5; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych <= '(') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy248; - goto yy250; - } else { - if (yych == ' ') goto yy250; - goto yy248; - } - } else { - if (yych <= ',') { - if (yych <= ')') goto yy181; - goto yy248; - } else { - if (yych <= '-') goto yy251; - if (yych <= '.') goto yy250; - goto yy248; - } - } + if (yych <= 'S') { + if (yych == 'D') goto yy856; + if (yych <= 'R') goto yy59; + goto yy1155; } else { - if (yych <= 'Z') { - if (yych <= '@') { - if (yych <= '9') goto yy250; - goto yy248; - } else { - if (yych == 'C') goto yy1588; - goto yy184; - } + if (yych <= 'd') { + if (yych <= 'c') goto yy59; + goto yy856; } else { - if (yych <= 'b') { - if (yych <= '`') goto yy248; - goto yy184; - } else { - if (yych <= 'c') goto yy1588; - if (yych <= 'z') goto yy184; - goto yy248; - } + if (yych == 's') goto yy1155; + goto yy59; } } -yy1587: - YYDEBUG(1587, *YYCURSOR); - yyaccept = 5; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '-') { +yy1207: + YYDEBUG(1207, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12); + yych = *YYCURSOR; +yy1208: + YYDEBUG(1208, *YYCURSOR); + if (yych <= '+') { if (yych <= ' ') { - if (yych == '\t') goto yy250; - if (yych <= 0x1F) goto yy248; - goto yy250; + if (yych == '\t') goto yy1207; + if (yych <= 0x1F) goto yy59; + goto yy1207; } else { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy248; - goto yy251; + if (yych == '(') goto yy1209; + if (yych <= '*') goto yy59; + goto yy1210; } } else { - if (yych <= '@') { - if (yych == '/') goto yy248; - if (yych <= '9') goto yy250; - goto yy248; + if (yych <= 'F') { + if (yych == '-') goto yy1210; + if (yych <= '@') goto yy59; + goto yy1211; } else { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy248; - if (yych <= 'z') goto yy184; - goto yy248; + if (yych <= 'Z') { + if (yych <= 'G') goto yy1212; + goto yy1211; + } else { + if (yych <= '`') goto yy59; + if (yych <= 'z') goto yy1213; + goto yy59; + } } } -yy1588: - YYDEBUG(1588, *YYCURSOR); +yy1209: + YYDEBUG(1209, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'H') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'G') goto yy185; - goto yy401; - } + if (yych <= '@') goto yy59; + if (yych <= 'Z') goto yy1213; + if (yych <= '`') goto yy59; + if (yych <= 'z') goto yy1213; + goto yy59; +yy1210: + YYDEBUG(1210, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '1') goto yy1255; + if (yych <= '2') goto yy1256; + if (yych <= '9') goto yy1257; + goto yy59; +yy1211: + YYDEBUG(1211, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '@') { + if (yych == ')') goto yy1078; + goto yy849; } else { - if (yych <= 'g') { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy3; - goto yy185; + if (yych <= 'Z') goto yy1258; + if (yych <= '`') goto yy849; + if (yych <= 'z') goto yy1259; + goto yy849; + } +yy1212: + YYDEBUG(1212, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'L') { + if (yych == ')') goto yy1078; + if (yych <= '@') goto yy849; + goto yy1258; + } else { + if (yych <= 'Z') { + if (yych <= 'M') goto yy1260; + goto yy1258; } else { - if (yych <= 'h') goto yy401; - if (yych <= 'z') goto yy185; - goto yy3; + if (yych <= '`') goto yy849; + if (yych <= 'z') goto yy1259; + goto yy849; } } -yy1589: - YYDEBUG(1589, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'X') { - if (yych <= '.') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; +yy1213: + YYDEBUG(1213, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '@') { + if (yych == ')') goto yy1078; + goto yy849; + } else { + if (yych <= 'Z') goto yy1258; + if (yych <= '`') goto yy849; + if (yych <= 'z') goto yy1258; + goto yy849; + } +yy1214: + YYDEBUG(1214, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0xA0) goto yy1261; + goto yy59; +yy1215: + YYDEBUG(1215, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0x80) goto yy1262; + goto yy59; +yy1216: + YYDEBUG(1216, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12); + yych = *YYCURSOR; +yy1217: + YYDEBUG(1217, *YYCURSOR); + if (yych <= '@') { + if (yych <= '\'') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy59; + goto yy1216; } else { - if (yych == '-') goto yy189; - goto yy3; + if (yych == ' ') goto yy1216; + goto yy59; } } else { - if (yych <= '@') { - if (yych <= '/') goto yy189; - goto yy3; + if (yych <= '+') { + if (yych <= '(') goto yy1209; + if (yych <= '*') goto yy59; + goto yy1210; } else { - if (yych == 'R') goto yy1586; - goto yy183; + if (yych == '-') goto yy1210; + goto yy59; } } } else { - if (yych <= '`') { - if (yych <= 'Z') { - if (yych <= 'Y') goto yy1587; - goto yy183; + if (yych <= 'Z') { + if (yych <= 'G') { + if (yych <= 'A') goto yy1218; + if (yych <= 'F') goto yy1211; + goto yy1212; } else { - if (yych == '_') goto yy189; - goto yy3; + if (yych != 'P') goto yy1211; } } else { - if (yych <= 'x') { - if (yych == 'r') goto yy1602; - goto yy188; + if (yych <= 'o') { + if (yych <= '`') goto yy59; + if (yych <= 'a') goto yy1219; + goto yy1213; } else { - if (yych <= 'y') goto yy1603; - if (yych <= 'z') goto yy188; - goto yy3; + if (yych <= 'p') goto yy1219; + if (yych <= 'z') goto yy1213; + goto yy59; } } } -yy1590: - YYDEBUG(1590, *YYCURSOR); - yyaccept = 1; +yy1218: + YYDEBUG(1218, *YYCURSOR); + yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'C') { + if (yych <= 'L') { if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych == ')') goto yy1078; + goto yy849; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy183; + if (yych <= '.') goto yy1151; + if (yych <= '@') goto yy849; + goto yy1258; } } else { - if (yych <= '_') { - if (yych <= 'D') goto yy1580; - if (yych <= 'Z') goto yy183; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 'c') { - if (yych <= '`') goto yy3; - goto yy188; - } else { - if (yych <= 'd') goto yy1596; - if (yych <= 'z') goto yy188; - goto yy3; - } + if (yych <= '`') { + if (yych <= 'M') goto yy1263; + if (yych <= 'Z') goto yy1258; + goto yy849; + } else { + if (yych == 'm') goto yy1264; + if (yych <= 'z') goto yy1259; + goto yy849; } } -yy1591: - YYDEBUG(1591, *YYCURSOR); - yyaccept = 1; +yy1219: + YYDEBUG(1219, *YYCURSOR); + yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'M') { + if (yych <= 'L') { if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych == ')') goto yy1078; + goto yy849; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy183; + if (yych <= '.') goto yy1151; + if (yych <= '@') goto yy849; + goto yy1258; } } else { - if (yych <= '_') { - if (yych <= 'N') goto yy1576; - if (yych <= 'Z') goto yy183; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 'm') { - if (yych <= '`') goto yy3; - goto yy188; - } else { - if (yych <= 'n') goto yy1592; - if (yych <= 'z') goto yy188; - goto yy3; - } + if (yych <= '`') { + if (yych <= 'M') goto yy1263; + if (yych <= 'Z') goto yy1258; + goto yy849; + } else { + if (yych == 'm') goto yy1263; + if (yych <= 'z') goto yy1258; + goto yy849; } } -yy1592: - YYDEBUG(1592, *YYCURSOR); - yyaccept = 4; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'C') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy219; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy219; - goto yy184; - } - } else { - if (yych <= '_') { - if (yych <= 'D') goto yy1577; - if (yych <= 'Z') goto yy184; - if (yych <= '^') goto yy219; - goto yy189; - } else { - if (yych <= 'c') { - if (yych <= '`') goto yy219; - goto yy192; - } else { - if (yych <= 'd') goto yy1593; - if (yych <= 'z') goto yy192; - goto yy219; +yy1220: + YYDEBUG(1220, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0xA0) goto yy1265; + goto yy59; +yy1221: + YYDEBUG(1221, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0x80) goto yy1266; + goto yy59; +yy1222: + YYDEBUG(1222, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(1223, *YYCURSOR); +#line 1900 "ext/date/lib/parse_date.re" + { + DEBUG_OUTPUT("dateshortwithtimeshort12 | dateshortwithtimelong12"); + TIMELIB_INIT; + TIMELIB_HAVE_DATE(); + s->time->m = timelib_get_month(&ptr); + s->time->d = timelib_get_nr(&ptr, 2); + + TIMELIB_HAVE_TIME(); + s->time->h = timelib_get_nr(&ptr, 2); + s->time->i = timelib_get_nr(&ptr, 2); + if (*ptr == ':' || *ptr == '.') { + s->time->s = timelib_get_nr(&ptr, 2); + + if (*ptr == '.') { + s->time->us = timelib_get_frac_nr(&ptr); } } + + s->time->h += timelib_meridian(&ptr, s->time->h); + TIMELIB_DEINIT; + return TIMELIB_SHORTDATE_WITH_TIME; } -yy1593: - YYDEBUG(1593, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '@') { - if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy3; +#line 23041 "" +yy1224: + YYDEBUG(1224, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '\t') { + if (yych <= 0x00) goto yy1222; + if (yych <= 0x08) goto yy59; + goto yy1222; + } else { + if (yych == ' ') goto yy1222; + goto yy59; + } +yy1225: + YYDEBUG(1225, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); + yych = *YYCURSOR; + if (yych <= '`') { + if (yych <= 'A') { + if (yych <= '@') goto yy59; + goto yy1083; } else { - if (yych == '.') goto yy3; - if (yych <= '/') goto yy189; - goto yy3; + if (yych == 'P') goto yy1083; + goto yy59; } } else { - if (yych <= '_') { - if (yych <= 'A') goto yy1578; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'p') { + if (yych <= 'a') goto yy1083; + if (yych <= 'o') goto yy59; + goto yy1083; } else { - if (yych <= '`') goto yy3; - if (yych <= 'a') goto yy1594; - if (yych <= 'z') goto yy193; - goto yy3; + if (yych == 0xE2) goto yy1085; + goto yy59; } } -yy1594: - YYDEBUG(1594, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'X') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy186; - } +yy1226: + YYDEBUG(1226, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'N') goto yy1227; + if (yych != 'n') goto yy59; +yy1227: + YYDEBUG(1227, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'I') goto yy1267; + if (yych == 'i') goto yy1267; + goto yy59; +yy1228: + YYDEBUG(1228, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'F') goto yy1268; + if (yych == 'f') goto yy1268; + goto yy59; +yy1229: + YYDEBUG(1229, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'Y') goto yy1270; + if (yych == 'y') goto yy1270; + goto yy59; +yy1230: + YYDEBUG(1230, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; + if (yych <= 'n') { + if (yych == 'O') goto yy1228; + goto yy59; } else { - if (yych <= '_') { - if (yych <= 'Y') goto yy1579; - if (yych <= 'Z') goto yy186; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'o') goto yy1228; + if (yych == 0xC2) goto yy1160; + goto yy59; + } +yy1231: + YYDEBUG(1231, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0xAF) goto yy1271; + goto yy59; +yy1232: + YYDEBUG(1232, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy1272; + if (yych == 's') goto yy1272; + goto yy59; +yy1233: + YYDEBUG(1233, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy1086; + if (yych == 'e') goto yy1086; + goto yy59; +yy1234: + YYDEBUG(1234, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'D') goto yy1086; + if (yych == 'd') goto yy1086; + goto yy59; +yy1235: + YYDEBUG(1235, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'F') goto yy1273; + if (yych == 'f') goto yy1273; + goto yy59; +yy1236: + YYDEBUG(1236, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1275; + goto yy59; +yy1237: + YYDEBUG(1237, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '1') goto yy1275; + goto yy59; +yy1238: + YYDEBUG(1238, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '9') { + if (yych == '-') goto yy893; + if (yych <= '/') goto yy196; + goto yy1277; + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy196; + goto yy97; } else { - if (yych <= 'x') { - if (yych <= '`') goto yy3; - goto yy194; - } else { - if (yych <= 'y') goto yy1595; - if (yych <= 'z') goto yy194; - goto yy3; - } + if (yych == 0xE2) goto yy98; + goto yy196; } } -yy1595: - YYDEBUG(1595, *YYCURSOR); - yyaccept = 4; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'R') { - if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy219; +yy1239: + YYDEBUG(1239, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '1') goto yy1278; + if (yych <= '2') goto yy1279; + goto yy59; +yy1240: + YYDEBUG(1240, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy1280; + if (yych <= '9') goto yy1281; + goto yy59; +yy1241: + YYDEBUG(1241, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '1') goto yy1282; + if (yych <= '2') goto yy1283; + if (yych <= '9') goto yy1184; + goto yy59; +yy1242: + YYDEBUG(1242, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 0xC1) { + if (yych <= '/') goto yy196; + if (yych <= '9') goto yy1284; + goto yy196; + } else { + if (yych <= 0xC2) goto yy97; + if (yych == 0xE2) goto yy98; + goto yy196; + } +yy1243: + YYDEBUG(1243, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy1285; + if (yych <= '9') goto yy1286; + if (yych >= ';') goto yy59; +yy1244: + YYDEBUG(1244, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy1287; + goto yy59; +yy1245: + YYDEBUG(1245, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1286; + goto yy59; +yy1246: + YYDEBUG(1246, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy1285; + if (yych <= '9') goto yy1286; + goto yy59; +yy1247: + YYDEBUG(1247, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '1') goto yy1288; + if (yych <= '2') goto yy1289; + goto yy59; +yy1248: + YYDEBUG(1248, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy1249; + if (yych != 'm') goto yy59; +yy1249: + YYDEBUG(1249, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 0x1F) { + if (yych <= 0x00) goto yy1290; + if (yych == '\t') goto yy1290; + goto yy59; + } else { + if (yych <= ' ') goto yy1290; + if (yych == '.') goto yy1292; + goto yy59; + } +yy1250: + YYDEBUG(1250, *YYCURSOR); + ++YYCURSOR; + goto yy1070; +yy1251: + YYDEBUG(1251, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy1252; + if (yych != 'm') goto yy59; +yy1252: + YYDEBUG(1252, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 0x1F) { + if (yych <= 0x00) goto yy1293; + if (yych == '\t') goto yy1293; + goto yy59; + } else { + if (yych <= ' ') goto yy1293; + if (yych == '.') goto yy1294; + goto yy59; + } +yy1253: + YYDEBUG(1253, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); + yych = *YYCURSOR; + if (yych <= '`') { + if (yych <= 'A') { + if (yych <= '@') goto yy59; + goto yy1203; } else { - if (yych == '.') goto yy219; - if (yych <= '/') goto yy189; - goto yy219; + if (yych == 'P') goto yy1203; + goto yy59; } } else { - if (yych <= '`') { - if (yych <= 'S') goto yy225; - if (yych == '_') goto yy189; - goto yy219; + if (yych <= 'p') { + if (yych <= 'a') goto yy1203; + if (yych <= 'o') goto yy59; + goto yy1203; } else { - if (yych == 's') goto yy239; - if (yych <= 'z') goto yy195; - goto yy219; + if (yych == 0xC2) goto yy1204; + goto yy59; } } -yy1596: - YYDEBUG(1596, *YYCURSOR); - yyaccept = 1; +yy1254: + YYDEBUG(1254, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0xAF) goto yy1295; + goto yy59; +yy1255: + YYDEBUG(1255, *YYCURSOR); + yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'M') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy184; - } + if (yych <= '/') goto yy849; + if (yych <= '9') goto yy1296; + if (yych <= ':') goto yy1297; + goto yy849; +yy1256: + YYDEBUG(1256, *YYCURSOR); + yyaccept = 20; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '5') { + if (yych <= '/') goto yy849; + if (yych <= '4') goto yy1296; + goto yy1298; + } else { + if (yych <= '9') goto yy1078; + if (yych <= ':') goto yy1297; + goto yy849; + } +yy1257: + YYDEBUG(1257, *YYCURSOR); + yyaccept = 20; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') goto yy849; + if (yych <= '5') goto yy1298; + if (yych <= '9') goto yy1078; + if (yych <= ':') goto yy1297; + goto yy849; +yy1258: + YYDEBUG(1258, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '@') { + if (yych == ')') goto yy1078; + goto yy849; } else { - if (yych <= '_') { - if (yych <= 'N') goto yy1581; - if (yych <= 'Z') goto yy184; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 'm') { - if (yych <= '`') goto yy3; - goto yy192; - } else { - if (yych <= 'n') goto yy1597; - if (yych <= 'z') goto yy192; - goto yy3; - } - } + if (yych <= 'Z') goto yy1299; + if (yych <= '`') goto yy849; + if (yych <= 'z') goto yy1299; + goto yy849; } -yy1597: - YYDEBUG(1597, *YYCURSOR); - yyaccept = 1; +yy1259: + YYDEBUG(1259, *YYCURSOR); + yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'H') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= '/') { + if (yych <= ',') { + if (yych == ')') goto yy1078; + goto yy849; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy185; + if (yych == '.') goto yy849; + goto yy1300; } } else { - if (yych <= '_') { - if (yych <= 'I') goto yy1582; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 'h') { - if (yych <= '`') goto yy3; - goto yy193; - } else { - if (yych <= 'i') goto yy1598; - if (yych <= 'z') goto yy193; - goto yy3; - } + if (yych <= '^') { + if (yych <= '@') goto yy849; + if (yych <= 'Z') goto yy1299; + goto yy849; + } else { + if (yych <= '_') goto yy1300; + if (yych <= '`') goto yy849; + if (yych <= 'z') goto yy1301; + goto yy849; } } -yy1598: - YYDEBUG(1598, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'F') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy186; - } +yy1260: + YYDEBUG(1260, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'S') { + if (yych == ')') goto yy1078; + if (yych <= '@') goto yy849; + goto yy1299; } else { - if (yych <= '_') { - if (yych <= 'G') goto yy1583; - if (yych <= 'Z') goto yy186; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'Z') { + if (yych <= 'T') goto yy1302; + goto yy1299; } else { - if (yych <= 'f') { - if (yych <= '`') goto yy3; - goto yy194; - } else { - if (yych <= 'g') goto yy1599; - if (yych <= 'z') goto yy194; - goto yy3; - } + if (yych <= '`') goto yy849; + if (yych <= 'z') goto yy1299; + goto yy849; } } -yy1599: - YYDEBUG(1599, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'G') { - if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy3; - } else { - if (yych == '.') goto yy3; - if (yych <= '/') goto yy189; - goto yy3; +yy1261: + YYDEBUG(1261, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12); + yych = *YYCURSOR; + if (yych <= '@') { + if (yych <= '*') { + if (yych == '(') goto yy1209; + goto yy59; + } else { + if (yych == ',') goto yy59; + if (yych <= '-') goto yy1210; + goto yy59; } } else { if (yych <= '`') { - if (yych <= 'H') goto yy1584; - if (yych == '_') goto yy189; - goto yy3; + if (yych == 'G') goto yy1212; + if (yych <= 'Z') goto yy1211; + goto yy59; } else { - if (yych == 'h') goto yy1600; - if (yych <= 'z') goto yy195; - goto yy3; + if (yych <= 'z') goto yy1213; + if (yych == 0xC2) goto yy1214; + goto yy59; } } -yy1600: - YYDEBUG(1600, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy1585; - if (yych != 't') goto yy196; - YYDEBUG(1601, *YYCURSOR); - yyaccept = 30; - yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 8) { - goto yy195; - } - if (yych <= '.') { - if (yych == '-') goto yy189; - goto yy1527; - } else { - if (yych <= '/') goto yy189; - if (yych == '_') goto yy189; - goto yy1527; - } -yy1602: - YYDEBUG(1602, *YYCURSOR); - yyaccept = 5; +yy1262: + YYDEBUG(1262, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0xAF) goto yy1303; + goto yy59; +yy1263: + YYDEBUG(1263, *YYCURSOR); + yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '9') { - if (yych <= '(') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy248; - goto yy250; - } else { - if (yych == ' ') goto yy250; - goto yy248; - } - } else { - if (yych <= '-') { - if (yych <= ')') goto yy181; - if (yych <= ',') goto yy248; - goto yy377; - } else { - if (yych == '/') goto yy189; - goto yy250; - } + if (yych <= ')') { + if (yych <= '\t') { + if (yych <= 0x00) goto yy1222; + if (yych <= 0x08) goto yy849; + goto yy1222; + } else { + if (yych == ' ') goto yy1222; + if (yych <= '(') goto yy849; + goto yy1078; } } else { - if (yych <= '^') { - if (yych <= 'B') { - if (yych <= '@') goto yy248; - goto yy184; - } else { - if (yych <= 'C') goto yy1588; - if (yych <= 'Z') goto yy184; - goto yy248; - } + if (yych <= '@') { + if (yych == '.') goto yy1224; + goto yy849; } else { - if (yych <= 'b') { - if (yych <= '_') goto yy189; - if (yych <= '`') goto yy248; - goto yy192; - } else { - if (yych <= 'c') goto yy1604; - if (yych <= 'z') goto yy192; - goto yy248; - } + if (yych <= 'Z') goto yy1299; + if (yych <= '`') goto yy849; + if (yych <= 'z') goto yy1299; + goto yy849; } } -yy1603: - YYDEBUG(1603, *YYCURSOR); - yyaccept = 5; +yy1264: + YYDEBUG(1264, *YYCURSOR); + yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '.') { - if (yych <= ' ') { - if (yych == '\t') goto yy250; - if (yych <= 0x1F) goto yy248; - goto yy250; + if (yych <= '-') { + if (yych <= 0x1F) { + if (yych <= 0x00) goto yy1222; + if (yych == '\t') goto yy1222; + goto yy849; } else { - if (yych <= ')') { - if (yych <= '(') goto yy248; - goto yy181; + if (yych <= '(') { + if (yych <= ' ') goto yy1222; + goto yy849; } else { - if (yych <= ',') goto yy248; - if (yych <= '-') goto yy377; - goto yy250; + if (yych <= ')') goto yy1078; + if (yych <= ',') goto yy849; + goto yy1300; } } } else { if (yych <= 'Z') { - if (yych <= '/') goto yy189; - if (yych <= '9') goto yy250; - if (yych <= '@') goto yy248; - goto yy184; + if (yych <= '.') goto yy1224; + if (yych <= '/') goto yy1300; + if (yych <= '@') goto yy849; + goto yy1299; } else { if (yych <= '_') { - if (yych <= '^') goto yy248; - goto yy189; + if (yych <= '^') goto yy849; + goto yy1300; } else { - if (yych <= '`') goto yy248; - if (yych <= 'z') goto yy192; - goto yy248; + if (yych <= '`') goto yy849; + if (yych <= 'z') goto yy1301; + goto yy849; } } } -yy1604: - YYDEBUG(1604, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); +yy1265: + YYDEBUG(1265, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12); + yych = *YYCURSOR; if (yych <= 'G') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy185; - } - } else { - if (yych <= '_') { - if (yych <= 'H') goto yy401; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 'g') { - if (yych <= '`') goto yy3; - goto yy193; + if (yych <= ',') { + if (yych <= '(') { + if (yych <= '\'') goto yy59; + goto yy1209; } else { - if (yych <= 'h') goto yy412; - if (yych <= 'z') goto yy193; - goto yy3; + if (yych == '+') goto yy1210; + goto yy59; } - } - } -yy1605: - YYDEBUG(1605, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'W') { - if (yych <= 'N') { - if (yych == ')') goto yy181; - if (yych <= '@') goto yy3; - goto yy183; - } else { - if (yych <= 'O') goto yy1613; - if (yych <= 'U') goto yy183; - if (yych <= 'V') goto yy1614; - goto yy1611; - } - } else { - if (yych <= 'o') { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - if (yych <= 'n') goto yy183; - goto yy1613; } else { - if (yych <= 'v') { - if (yych <= 'u') goto yy183; - goto yy1614; + if (yych <= '@') { + if (yych <= '-') goto yy1210; + goto yy59; } else { - if (yych <= 'w') goto yy1611; - if (yych <= 'z') goto yy183; - goto yy3; + if (yych <= 'A') goto yy1218; + if (yych <= 'F') goto yy1211; + goto yy1212; } } - } -yy1606: - YYDEBUG(1606, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'X') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'W') goto yy183; - goto yy1610; - } } else { - if (yych <= 'w') { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - goto yy183; + if (yych <= 'a') { + if (yych <= 'P') { + if (yych <= 'O') goto yy1211; + goto yy1218; + } else { + if (yych <= 'Z') goto yy1211; + if (yych <= '`') goto yy59; + goto yy1219; + } } else { - if (yych <= 'x') goto yy1610; - if (yych <= 'z') goto yy183; - goto yy3; + if (yych <= 'z') { + if (yych == 'p') goto yy1219; + goto yy1213; + } else { + if (yych == 0xC2) goto yy1220; + goto yy59; + } } } -yy1607: - YYDEBUG(1607, *YYCURSOR); +yy1266: + YYDEBUG(1266, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0xAF) goto yy1304; + goto yy59; +yy1267: + YYDEBUG(1267, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'N') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'M') goto yy183; - } - } else { - if (yych <= 'm') { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - goto yy183; - } else { - if (yych <= 'n') goto yy1608; - if (yych <= 'z') goto yy183; - goto yy3; + if (yych == 'G') goto yy1305; + if (yych == 'g') goto yy1305; + goto yy59; +yy1268: + YYDEBUG(1268, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(1269, *YYCURSOR); +#line 1313 "ext/date/lib/parse_date.re" + { + timelib_sll i; + int behavior = 0; + DEBUG_OUTPUT("weekdayof"); + TIMELIB_INIT; + TIMELIB_HAVE_RELATIVE(); + TIMELIB_HAVE_SPECIAL_RELATIVE(); + + i = timelib_get_relative_text(&ptr, &behavior); + timelib_eat_spaces(&ptr); + if (i > 0) { /* first, second... etc */ + s->time->relative.special.type = TIMELIB_SPECIAL_DAY_OF_WEEK_IN_MONTH; + timelib_set_relative(&ptr, i, 1, s, TIMELIB_TIME_PART_DONT_KEEP); + } else { /* last */ + s->time->relative.special.type = TIMELIB_SPECIAL_LAST_DAY_OF_WEEK_IN_MONTH; + timelib_set_relative(&ptr, i, behavior, s, TIMELIB_TIME_PART_DONT_KEEP); } + TIMELIB_DEINIT; + return TIMELIB_WEEK_DAY_OF_MONTH; } -yy1608: - YYDEBUG(1608, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; +#line 23564 "" +yy1270: + YYDEBUG(1270, *YYCURSOR); + yyaccept = 24; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'S') { + if (yych <= 0x1F) { + if (yych == '\t') goto yy1157; + goto yy982; } else { - if (yych <= '@') goto yy3; - if (yych <= 'S') goto yy184; + if (yych <= ' ') goto yy1157; + if (yych <= 'R') goto yy982; + goto yy1306; } } else { - if (yych <= 's') { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy3; - goto yy184; + if (yych <= 0xC1) { + if (yych == 's') goto yy1306; + goto yy982; } else { - if (yych <= 't') goto yy1609; - if (yych <= 'z') goto yy184; - goto yy3; + if (yych <= 0xC2) goto yy1160; + if (yych == 0xE2) goto yy1161; + goto yy982; } } -yy1609: - YYDEBUG(1609, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'H') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'G') goto yy185; - goto yy1330; - } +yy1271: + YYDEBUG(1271, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; + if (yych <= 'n') { + if (yych == 'O') goto yy1228; + goto yy59; } else { - if (yych <= 'g') { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy3; - goto yy185; - } else { - if (yych <= 'h') goto yy1330; - if (yych <= 'z') goto yy185; - goto yy3; - } + if (yych <= 'o') goto yy1228; + if (yych == 0xE2) goto yy1161; + goto yy59; } -yy1610: - YYDEBUG(1610, *YYCURSOR); +yy1272: + YYDEBUG(1272, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'S') goto yy184; - goto yy1536; - } - } else { - if (yych <= 's') { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy3; - goto yy184; + if (yych == 'E') goto yy1307; + if (yych == 'e') goto yy1307; + goto yy59; +yy1273: + YYDEBUG(1273, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(1274, *YYCURSOR); +#line 1273 "ext/date/lib/parse_date.re" + { + DEBUG_OUTPUT("firstdayof | lastdayof"); + TIMELIB_INIT; + TIMELIB_HAVE_RELATIVE(); + + /* skip "last day of" or "first day of" */ + if (*ptr == 'l' || *ptr == 'L') { + s->time->relative.first_last_day_of = TIMELIB_SPECIAL_LAST_DAY_OF_MONTH; } else { - if (yych <= 't') goto yy1536; - if (yych <= 'z') goto yy184; - goto yy3; + s->time->relative.first_last_day_of = TIMELIB_SPECIAL_FIRST_DAY_OF_MONTH; } + + TIMELIB_DEINIT; + return TIMELIB_LF_DAY_OF_MONTH; } -yy1611: - YYDEBUG(1611, *YYCURSOR); +#line 23627 "" +yy1275: + YYDEBUG(1275, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) <= '@') { - if (yych == ')') goto yy181; - } else { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy1612; - if (yych <= 'z') goto yy184; - } -yy1612: - YYDEBUG(1612, *YYCURSOR); -#line 1139 "ext/date/lib/parse_date.re" + YYDEBUG(1276, *YYCURSOR); +#line 1509 "ext/date/lib/parse_date.re" { - DEBUG_OUTPUT("now"); + DEBUG_OUTPUT("iso8601datex"); TIMELIB_INIT; - + TIMELIB_HAVE_DATE(); + s->time->y = timelib_get_signed_nr(s, &ptr, 19); + s->time->m = timelib_get_nr(&ptr, 2); + s->time->d = timelib_get_nr(&ptr, 2); TIMELIB_DEINIT; - return TIMELIB_RELATIVE; + return TIMELIB_ISO_DATE; } -#line 25086 "" -yy1613: - YYDEBUG(1613, *YYCURSOR); +#line 23643 "" +yy1277: + YYDEBUG(1277, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'N') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'M') goto yy184; - goto yy1619; - } - } else { - if (yych <= 'm') { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy3; - goto yy184; - } else { - if (yych <= 'n') goto yy1619; - if (yych <= 'z') goto yy184; - goto yy3; - } - } -yy1614: - YYDEBUG(1614, *YYCURSOR); - yyaccept = 5; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych <= '(') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy248; - goto yy250; - } else { - if (yych == ' ') goto yy250; - goto yy248; - } - } else { - if (yych <= ',') { - if (yych <= ')') goto yy181; - goto yy248; - } else { - if (yych <= '-') goto yy251; - if (yych <= '.') goto yy250; - goto yy248; - } - } - } else { - if (yych <= 'Z') { - if (yych <= '@') { - if (yych <= '9') goto yy250; - goto yy248; - } else { - if (yych != 'E') goto yy184; - } + if (yych <= '9') { + if (yych == '-') goto yy893; + if (yych <= '/') goto yy196; + goto yy1308; + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy196; + goto yy97; } else { - if (yych <= 'd') { - if (yych <= '`') goto yy248; - goto yy184; - } else { - if (yych <= 'e') goto yy1615; - if (yych <= 'z') goto yy184; - goto yy248; - } + if (yych == 0xE2) goto yy98; + goto yy196; } } -yy1615: - YYDEBUG(1615, *YYCURSOR); +yy1278: + YYDEBUG(1278, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'M') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'L') goto yy185; - } - } else { - if (yych <= 'l') { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy3; - goto yy185; - } else { - if (yych <= 'm') goto yy1616; - if (yych <= 'z') goto yy185; - goto yy3; - } - } -yy1616: - YYDEBUG(1616, *YYCURSOR); + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1309; + goto yy59; +yy1279: + YYDEBUG(1279, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'B') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych <= '@') goto yy3; - if (yych <= 'A') goto yy186; - } - } else { - if (yych <= 'a') { - if (yych <= 'Z') goto yy186; - if (yych <= '`') goto yy3; - goto yy186; - } else { - if (yych <= 'b') goto yy1617; - if (yych <= 'z') goto yy186; - goto yy3; - } - } -yy1617: - YYDEBUG(1617, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'D') { - if (yych == ')') goto yy181; - goto yy3; - } else { - if (yych <= 'E') goto yy1618; - if (yych != 'e') goto yy3; + if (yych <= '/') goto yy59; + if (yych <= '4') goto yy1309; + goto yy59; +yy1280: + YYDEBUG(1280, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1281; + if (yych <= ':') goto yy1310; + goto yy59; +yy1281: + YYDEBUG(1281, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == ':') goto yy1310; + goto yy59; +yy1282: + YYDEBUG(1282, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1311; + if (yych <= ':') goto yy1240; + goto yy59; +yy1283: + YYDEBUG(1283, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '4') goto yy1311; + if (yych == ':') goto yy1240; + goto yy59; +yy1284: + YYDEBUG(1284, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 0xC1) { + if (yych <= '/') goto yy196; + if (yych <= '9') goto yy1312; + goto yy196; + } else { + if (yych <= 0xC2) goto yy97; + if (yych == 0xE2) goto yy98; + goto yy196; } -yy1618: - YYDEBUG(1618, *YYCURSOR); +yy1285: + YYDEBUG(1285, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy1310; + if (yych <= '6') goto yy1313; + if (yych >= ':') goto yy59; +yy1286: + YYDEBUG(1286, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy1314; + if (yych <= '6') goto yy1315; + goto yy59; +yy1287: + YYDEBUG(1287, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1316; + goto yy59; +yy1288: + YYDEBUG(1288, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1317; + goto yy59; +yy1289: + YYDEBUG(1289, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy259; - if (yych == 'r') goto yy259; - goto yy55; -yy1619: - YYDEBUG(1619, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) <= '@') { - if (yych == ')') goto yy181; - } else { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy1620; - if (yych <= 'z') goto yy185; - } -yy1620: - YYDEBUG(1620, *YYCURSOR); -#line 1148 "ext/date/lib/parse_date.re" + if (yych <= '/') goto yy59; + if (yych <= '4') goto yy1317; + goto yy59; +yy1290: + YYDEBUG(1290, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(1291, *YYCURSOR); +#line 1353 "ext/date/lib/parse_date.re" { - DEBUG_OUTPUT("noon"); + DEBUG_OUTPUT("mssqltime"); TIMELIB_INIT; - TIMELIB_UNHAVE_TIME(); TIMELIB_HAVE_TIME(); - s->time->h = 12; + s->time->h = timelib_get_nr(&ptr, 2); + s->time->i = timelib_get_nr(&ptr, 2); + if (*ptr == ':' || *ptr == '.') { + s->time->s = timelib_get_nr(&ptr, 2); - TIMELIB_DEINIT; - return TIMELIB_RELATIVE; - } -#line 25236 "" -yy1621: - YYDEBUG(1621, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'V') { - if (yych <= '.') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; - } else { - if (yych == '-') goto yy189; - goto yy3; - } - } else { - if (yych <= 'N') { - if (yych <= '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy183; - } else { - if (yych <= 'O') goto yy1613; - if (yych <= 'U') goto yy183; - goto yy1614; - } - } - } else { - if (yych <= 'n') { - if (yych <= '^') { - if (yych <= 'W') goto yy1611; - if (yych <= 'Z') goto yy183; - goto yy3; - } else { - if (yych <= '_') goto yy189; - if (yych <= '`') goto yy3; - goto yy188; - } - } else { - if (yych <= 'v') { - if (yych <= 'o') goto yy1628; - if (yych <= 'u') goto yy188; - goto yy1629; - } else { - if (yych <= 'w') goto yy1627; - if (yych <= 'z') goto yy188; - goto yy3; + if (*ptr == ':' || *ptr == '.') { + s->time->us = timelib_get_frac_nr(&ptr); } } + timelib_eat_spaces(&ptr); + s->time->h += timelib_meridian(&ptr, s->time->h); + TIMELIB_DEINIT; + return TIMELIB_TIME24_WITH_ZONE; } -yy1622: - YYDEBUG(1622, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'W') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy183; - } +#line 23765 "" +yy1292: + YYDEBUG(1292, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '\t') { + if (yych <= 0x00) goto yy1290; + if (yych <= 0x08) goto yy59; + goto yy1290; } else { - if (yych <= '_') { - if (yych <= 'X') goto yy1610; - if (yych <= 'Z') goto yy183; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 'w') { - if (yych <= '`') goto yy3; - goto yy188; - } else { - if (yych <= 'x') goto yy1626; - if (yych <= 'z') goto yy188; - goto yy3; - } - } + if (yych == ' ') goto yy1290; + goto yy59; } -yy1623: - YYDEBUG(1623, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'M') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy183; - } +yy1293: + YYDEBUG(1293, *YYCURSOR); + ++YYCURSOR; + goto yy1145; +yy1294: + YYDEBUG(1294, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '\t') { + if (yych <= 0x00) goto yy1293; + if (yych <= 0x08) goto yy59; + goto yy1293; } else { - if (yych <= '_') { - if (yych <= 'N') goto yy1608; - if (yych <= 'Z') goto yy183; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 'm') { - if (yych <= '`') goto yy3; - goto yy188; - } else { - if (yych <= 'n') goto yy1624; - if (yych <= 'z') goto yy188; - goto yy3; - } - } + if (yych == ' ') goto yy1293; + goto yy59; } -yy1624: - YYDEBUG(1624, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'S') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; +yy1295: + YYDEBUG(1295, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5); + yych = *YYCURSOR; + if (yych <= '`') { + if (yych <= 'A') { + if (yych <= '@') goto yy59; + goto yy1203; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy184; + if (yych == 'P') goto yy1203; + goto yy59; } } else { - if (yych <= '_') { - if (yych <= 'T') goto yy1609; - if (yych <= 'Z') goto yy184; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'p') { + if (yych <= 'a') goto yy1203; + if (yych <= 'o') goto yy59; + goto yy1203; } else { - if (yych <= 's') { - if (yych <= '`') goto yy3; - goto yy192; - } else { - if (yych <= 't') goto yy1625; - if (yych <= 'z') goto yy192; - goto yy3; - } + if (yych == 0xE2) goto yy1205; + goto yy59; } } -yy1625: - YYDEBUG(1625, *YYCURSOR); - yyaccept = 1; +yy1296: + YYDEBUG(1296, *YYCURSOR); + yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'G') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy185; - } + if (yych <= '/') goto yy849; + if (yych <= '5') goto yy1318; + if (yych <= '9') goto yy1078; + if (yych <= ':') goto yy1319; + goto yy849; +yy1297: + YYDEBUG(1297, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy1298; + if (yych <= '9') goto yy1078; + goto yy59; +yy1298: + YYDEBUG(1298, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy849; + if (yych <= '9') goto yy1078; + goto yy849; +yy1299: + YYDEBUG(1299, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '@') { + if (yych == ')') goto yy1078; + goto yy849; } else { - if (yych <= '_') { - if (yych <= 'H') goto yy1330; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 'g') { - if (yych <= '`') goto yy3; - goto yy193; - } else { - if (yych <= 'h') goto yy1360; - if (yych <= 'z') goto yy193; - goto yy3; - } - } + if (yych <= 'Z') goto yy1320; + if (yych <= '`') goto yy849; + if (yych <= 'z') goto yy1320; + goto yy849; } -yy1626: - YYDEBUG(1626, *YYCURSOR); - yyaccept = 1; +yy1300: + YYDEBUG(1300, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych <= '@') goto yy59; + if (yych <= 'Z') goto yy1321; + if (yych <= '`') goto yy59; + if (yych <= 'z') goto yy1321; + goto yy59; +yy1301: + YYDEBUG(1301, *YYCURSOR); + yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'S') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= '/') { + if (yych <= ',') { + if (yych == ')') goto yy1078; + goto yy849; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy184; + if (yych == '.') goto yy849; + goto yy1300; } } else { - if (yych <= '_') { - if (yych <= 'T') goto yy1536; - if (yych <= 'Z') goto yy184; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= '^') { + if (yych <= '@') goto yy849; + if (yych <= 'Z') goto yy1320; + goto yy849; } else { - if (yych <= 's') { - if (yych <= '`') goto yy3; - goto yy192; - } else { - if (yych <= 't') goto yy1570; - if (yych <= 'z') goto yy192; - goto yy3; - } + if (yych <= '_') goto yy1300; + if (yych <= '`') goto yy849; + if (yych <= 'z') goto yy1323; + goto yy849; } } -yy1627: - YYDEBUG(1627, *YYCURSOR); - yyaccept = 31; +yy1302: + YYDEBUG(1302, *YYCURSOR); + yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy1612; + if (yych <= ',') { + if (yych <= ')') { + if (yych <= '(') goto yy849; + goto yy1078; } else { - if (yych == '.') goto yy1612; - goto yy189; + if (yych == '+') goto yy1210; + goto yy849; } } else { - if (yych <= '^') { - if (yych <= '@') goto yy1612; - if (yych <= 'Z') goto yy184; - goto yy1612; - } else { - if (yych <= '_') goto yy189; - if (yych <= '`') goto yy1612; - if (yych <= 'z') goto yy192; - goto yy1612; + if (yych <= 'Z') { + if (yych <= '-') goto yy1210; + if (yych <= '@') goto yy849; + goto yy1320; + } else { + if (yych <= '`') goto yy849; + if (yych <= 'z') goto yy1320; + goto yy849; } } -yy1628: - YYDEBUG(1628, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'M') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy184; +yy1303: + YYDEBUG(1303, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12); + yych = *YYCURSOR; + if (yych <= '@') { + if (yych <= '*') { + if (yych == '(') goto yy1209; + goto yy59; + } else { + if (yych == ',') goto yy59; + if (yych <= '-') goto yy1210; + goto yy59; } } else { - if (yych <= '_') { - if (yych <= 'N') goto yy1619; - if (yych <= 'Z') goto yy184; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 'm') { - if (yych <= '`') goto yy3; - goto yy192; - } else { - if (yych <= 'n') goto yy1634; - if (yych <= 'z') goto yy192; - goto yy3; - } + if (yych <= '`') { + if (yych == 'G') goto yy1212; + if (yych <= 'Z') goto yy1211; + goto yy59; + } else { + if (yych <= 'z') goto yy1213; + if (yych == 0xE2) goto yy1215; + goto yy59; } } -yy1629: - YYDEBUG(1629, *YYCURSOR); - yyaccept = 5; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '9') { - if (yych <= '(') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy248; - goto yy250; +yy1304: + YYDEBUG(1304, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12); + yych = *YYCURSOR; + if (yych <= 'G') { + if (yych <= ',') { + if (yych <= '(') { + if (yych <= '\'') goto yy59; + goto yy1209; } else { - if (yych == ' ') goto yy250; - goto yy248; + if (yych == '+') goto yy1210; + goto yy59; } } else { - if (yych <= '-') { - if (yych <= ')') goto yy181; - if (yych <= ',') goto yy248; - goto yy377; + if (yych <= '@') { + if (yych <= '-') goto yy1210; + goto yy59; } else { - if (yych == '/') goto yy189; - goto yy250; + if (yych <= 'A') goto yy1218; + if (yych <= 'F') goto yy1211; + goto yy1212; } } } else { - if (yych <= '^') { - if (yych <= 'D') { - if (yych <= '@') goto yy248; - goto yy184; + if (yych <= 'a') { + if (yych <= 'P') { + if (yych <= 'O') goto yy1211; + goto yy1218; } else { - if (yych <= 'E') goto yy1615; - if (yych <= 'Z') goto yy184; - goto yy248; + if (yych <= 'Z') goto yy1211; + if (yych <= '`') goto yy59; + goto yy1219; } } else { - if (yych <= 'd') { - if (yych <= '_') goto yy189; - if (yych <= '`') goto yy248; - goto yy192; + if (yych <= 'z') { + if (yych == 'p') goto yy1219; + goto yy1213; } else { - if (yych <= 'e') goto yy1630; - if (yych <= 'z') goto yy192; - goto yy248; + if (yych == 0xE2) goto yy1221; + goto yy59; } } } -yy1630: - YYDEBUG(1630, *YYCURSOR); - yyaccept = 1; +yy1305: + YYDEBUG(1305, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'H') goto yy1324; + if (yych == 'h') goto yy1324; + goto yy59; +yy1306: + YYDEBUG(1306, *YYCURSOR); + yyaccept = 24; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'L') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= ' ') { + if (yych == '\t') goto yy1157; + if (yych <= 0x1F) goto yy982; + goto yy1157; + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy982; + goto yy1160; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy185; + if (yych == 0xE2) goto yy1161; + goto yy982; } - } else { - if (yych <= '_') { - if (yych <= 'M') goto yy1616; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; + } +yy1307: + YYDEBUG(1307, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'C') goto yy1325; + if (yych == 'c') goto yy1325; + goto yy59; +yy1308: + YYDEBUG(1308, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '9') { + if (yych == '-') goto yy893; + if (yych <= '/') goto yy196; + goto yy1326; + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy196; + goto yy97; } else { - if (yych <= 'l') { - if (yych <= '`') goto yy3; - goto yy193; - } else { - if (yych <= 'm') goto yy1631; - if (yych <= 'z') goto yy193; - goto yy3; - } + if (yych == 0xE2) goto yy98; + goto yy196; } } -yy1631: - YYDEBUG(1631, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'A') { +yy1309: + YYDEBUG(1309, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == ':') goto yy1327; + goto yy59; +yy1310: + YYDEBUG(1310, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy1328; + if (yych <= '6') goto yy1330; + if (yych <= '9') goto yy1331; + goto yy59; +yy1311: + YYDEBUG(1311, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == ':') goto yy1332; + goto yy59; +yy1312: + YYDEBUG(1312, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 0xC2) goto yy97; + if (yych == 0xE2) goto yy98; + goto yy196; +yy1313: + YYDEBUG(1313, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '0') goto yy1328; + if (yych <= '5') goto yy1314; + if (yych <= '6') goto yy1315; + goto yy59; +yy1314: + YYDEBUG(1314, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1331; + goto yy59; +yy1315: + YYDEBUG(1315, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '0') goto yy1331; + goto yy59; +yy1316: + YYDEBUG(1316, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == ':') goto yy1286; + goto yy59; +yy1317: + YYDEBUG(1317, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == ':') goto yy1244; + goto yy59; +yy1318: + YYDEBUG(1318, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy849; + if (yych <= '9') goto yy1333; + goto yy849; +yy1319: + YYDEBUG(1319, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy1334; + if (yych <= '9') goto yy1078; + goto yy59; +yy1320: + YYDEBUG(1320, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '@') { + if (yych == ')') goto yy1078; + goto yy849; + } else { + if (yych <= 'Z') goto yy1335; + if (yych <= '`') goto yy849; + if (yych <= 'z') goto yy1335; + goto yy849; + } +yy1321: + YYDEBUG(1321, *YYCURSOR); + yyaccept = 20; + YYMARKER = ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(1322, *YYCURSOR); + if (yych <= '@') { if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; + if (yych <= ',') goto yy849; + goto yy1300; } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy186; + if (yych == '/') goto yy1300; + goto yy849; } } else { if (yych <= '_') { - if (yych <= 'B') goto yy1617; - if (yych <= 'Z') goto yy186; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'Z') goto yy1321; + if (yych <= '^') goto yy849; + goto yy1300; } else { - if (yych <= 'a') { - if (yych <= '`') goto yy3; - goto yy194; - } else { - if (yych <= 'b') goto yy1632; - if (yych <= 'z') goto yy194; - goto yy3; - } + if (yych <= '`') goto yy849; + if (yych <= 'z') goto yy1321; + goto yy849; } } -yy1632: - YYDEBUG(1632, *YYCURSOR); - yyaccept = 1; +yy1323: + YYDEBUG(1323, *YYCURSOR); + yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'D') { + if (yych <= '/') { if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy3; + if (yych == ')') goto yy1078; + goto yy849; } else { - if (yych == '.') goto yy3; - if (yych <= '/') goto yy189; - goto yy3; + if (yych == '.') goto yy849; + goto yy1300; } } else { - if (yych <= '`') { - if (yych <= 'E') goto yy1618; - if (yych == '_') goto yy189; - goto yy3; + if (yych <= '^') { + if (yych <= '@') goto yy849; + if (yych <= 'Z') goto yy1335; + goto yy849; + } else { + if (yych <= '_') goto yy1300; + if (yych <= '`') goto yy849; + if (yych <= 'z') goto yy1336; + goto yy849; + } + } +yy1324: + YYDEBUG(1324, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy1086; + if (yych == 't') goto yy1086; + goto yy59; +yy1325: + YYDEBUG(1325, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'O') goto yy1167; + if (yych == 'o') goto yy1167; + goto yy59; +yy1326: + YYDEBUG(1326, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '9') { + if (yych == '-') goto yy893; + if (yych <= '/') goto yy196; + goto yy1337; + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy196; + goto yy97; } else { - if (yych == 'e') goto yy1633; - if (yych <= 'z') goto yy195; - goto yy3; + if (yych == 0xE2) goto yy98; + goto yy196; } } -yy1633: - YYDEBUG(1633, *YYCURSOR); +yy1327: + YYDEBUG(1327, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'R') goto yy259; - if (yych == 'r') goto yy382; - goto yy196; -yy1634: - YYDEBUG(1634, *YYCURSOR); - yyaccept = 32; + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy1338; + goto yy59; +yy1328: + YYDEBUG(1328, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy1329; + if (yych <= '9') goto yy1331; +yy1329: + YYDEBUG(1329, *YYCURSOR); +#line 1656 "ext/date/lib/parse_date.re" + { + int tz_not_found; + DEBUG_OUTPUT("xmlrpc | xmlrpcnocolon | soap | wddx | exif"); + TIMELIB_INIT; + TIMELIB_HAVE_TIME(); + TIMELIB_HAVE_DATE(); + s->time->y = timelib_get_nr(&ptr, 4); + s->time->m = timelib_get_nr(&ptr, 2); + s->time->d = timelib_get_nr(&ptr, 2); + s->time->h = timelib_get_nr(&ptr, 2); + s->time->i = timelib_get_nr(&ptr, 2); + s->time->s = timelib_get_nr(&ptr, 2); + if (*ptr == '.') { + s->time->us = timelib_get_frac_nr(&ptr); + if (*ptr) { /* timezone is optional */ + s->time->z = timelib_parse_zone(&ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper); + if (tz_not_found) { + add_error(s, TIMELIB_ERR_TZID_NOT_FOUND, "The timezone could not be found in the database"); + } + } + } + TIMELIB_DEINIT; + return TIMELIB_XMLRPC_SOAP; + } +#line 24214 "" +yy1330: + YYDEBUG(1330, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '0') goto yy1329; +yy1331: + YYDEBUG(1331, *YYCURSOR); + ++YYCURSOR; + goto yy1329; +yy1332: + YYDEBUG(1332, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy1339; + if (yych <= '9') goto yy1281; + goto yy59; +yy1333: + YYDEBUG(1333, *YYCURSOR); + yyaccept = 20; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') goto yy849; + if (yych <= '5') goto yy1340; + if (yych <= '6') goto yy1341; + goto yy849; +yy1334: + YYDEBUG(1334, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy849; + if (yych <= '9') goto yy1342; + goto yy849; +yy1335: + YYDEBUG(1335, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '@') { + if (yych == ')') goto yy1078; + goto yy849; + } else { + if (yych <= 'Z') goto yy1343; + if (yych <= '`') goto yy849; + if (yych <= 'z') goto yy1343; + goto yy849; + } +yy1336: + YYDEBUG(1336, *YYCURSOR); + yyaccept = 20; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '/') { if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy1620; + if (yych == ')') goto yy1078; + goto yy849; } else { - if (yych == '.') goto yy1620; - goto yy189; + if (yych == '.') goto yy849; + goto yy1300; } } else { if (yych <= '^') { - if (yych <= '@') goto yy1620; - if (yych <= 'Z') goto yy185; - goto yy1620; - } else { - if (yych <= '_') goto yy189; - if (yych <= '`') goto yy1620; - if (yych <= 'z') goto yy193; - goto yy1620; + if (yych <= '@') goto yy849; + if (yych <= 'Z') goto yy1343; + goto yy849; + } else { + if (yych <= '_') goto yy1300; + if (yych <= '`') goto yy849; + if (yych <= 'z') goto yy1344; + goto yy849; } } -yy1635: - YYDEBUG(1635, *YYCURSOR); +yy1337: + YYDEBUG(1337, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'S') { + if (yych == '-') goto yy893; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1345; + goto yy59; +yy1338: + YYDEBUG(1338, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1346; + goto yy59; +yy1339: + YYDEBUG(1339, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1347; + if (yych <= ':') goto yy1310; + goto yy59; +yy1340: + YYDEBUG(1340, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1078; + goto yy59; +yy1341: + YYDEBUG(1341, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '0') goto yy1078; + goto yy59; +yy1342: + YYDEBUG(1342, *YYCURSOR); + yyaccept = 20; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == ':') goto yy1348; + goto yy849; +yy1343: + YYDEBUG(1343, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == ')') goto yy1078; + goto yy849; +yy1344: + YYDEBUG(1344, *YYCURSOR); + yyaccept = 20; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '.') { if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= '(') goto yy849; + goto yy1078; } else { - if (yych <= '@') goto yy3; - if (yych <= 'R') goto yy183; + if (yych == '-') goto yy1300; + goto yy849; } } else { - if (yych <= 'r') { - if (yych <= 'Z') goto yy183; - if (yych <= '`') goto yy3; - goto yy183; + if (yych <= '_') { + if (yych <= '/') goto yy1300; + if (yych <= '^') goto yy849; + goto yy1300; } else { - if (yych <= 's') goto yy1636; - if (yych <= 'z') goto yy183; - goto yy3; + if (yych <= '`') goto yy849; + if (yych <= 'z') goto yy1349; + goto yy849; } } -yy1636: - YYDEBUG(1636, *YYCURSOR); +yy1345: + YYDEBUG(1345, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych == '-') goto yy893; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1351; + goto yy59; +yy1346: + YYDEBUG(1346, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == ':') goto yy1352; + goto yy59; +yy1347: + YYDEBUG(1347, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == ':') goto yy1353; + goto yy59; +yy1348: + YYDEBUG(1348, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy1340; + if (yych <= '6') goto yy1341; + goto yy59; +yy1349: + YYDEBUG(1349, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(1350, *YYCURSOR); + if (yych <= '/') { + if (yych == '-') goto yy1300; + if (yych <= '.') goto yy59; + goto yy1300; + } else { + if (yych <= '_') { + if (yych <= '^') goto yy59; + goto yy1300; } else { - if (yych <= '@') goto yy3; - if (yych <= 'S') goto yy184; + if (yych <= '`') goto yy59; + if (yych <= 'z') goto yy1349; + goto yy59; } - } else { - if (yych <= 's') { - if (yych <= 'Z') goto yy184; - if (yych <= '`') goto yy3; - goto yy184; + } +yy1351: + YYDEBUG(1351, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '-') goto yy893; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1354; + goto yy59; +yy1352: + YYDEBUG(1352, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy1355; + if (yych <= '6') goto yy1356; + goto yy59; +yy1353: + YYDEBUG(1353, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy1357; + if (yych <= '6') goto yy1358; + if (yych <= '9') goto yy1331; + goto yy59; +yy1354: + YYDEBUG(1354, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '-') goto yy893; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1359; + goto yy59; +yy1355: + YYDEBUG(1355, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1360; + goto yy59; +yy1356: + YYDEBUG(1356, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '0') goto yy1360; + goto yy59; +yy1357: + YYDEBUG(1357, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy1329; + if (yych <= '9') goto yy1361; + goto yy1329; +yy1358: + YYDEBUG(1358, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '0') goto yy1361; + goto yy1329; +yy1359: + YYDEBUG(1359, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '-') goto yy893; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1362; + goto yy59; +yy1360: + YYDEBUG(1360, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= ' ') { + if (yych == '\t') goto yy1363; + if (yych <= 0x1F) goto yy59; + goto yy1363; + } else { + if (yych <= 0xC2) { + if (yych <= 0xC1) goto yy59; + goto yy1365; } else { - if (yych <= 't') goto yy1637; - if (yych <= 'z') goto yy184; - goto yy3; + if (yych == 0xE2) goto yy1366; + goto yy59; } } -yy1637: - YYDEBUG(1637, *YYCURSOR); +yy1361: + YYDEBUG(1361, *YYCURSOR); + yyaccept = 32; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == '.') goto yy1367; + goto yy1329; +yy1362: + YYDEBUG(1362, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'E') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych == '-') goto yy893; + goto yy59; +yy1363: + YYDEBUG(1363, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12); + yych = *YYCURSOR; + YYDEBUG(1364, *YYCURSOR); + if (yych <= '*') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy59; + goto yy1363; } else { - if (yych <= '@') goto yy3; - if (yych <= 'D') goto yy185; + if (yych == ' ') goto yy1363; + goto yy59; } } else { - if (yych <= 'd') { - if (yych <= 'Z') goto yy185; - if (yych <= '`') goto yy3; - goto yy185; + if (yych <= '-') { + if (yych == ',') goto yy59; + goto yy1368; } else { - if (yych <= 'e') goto yy1638; - if (yych <= 'z') goto yy185; - goto yy3; + if (yych == 'G') goto yy1369; + goto yy59; } } -yy1638: - YYDEBUG(1638, *YYCURSOR); +yy1365: + YYDEBUG(1365, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0xA0) goto yy1370; + goto yy59; +yy1366: + YYDEBUG(1366, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0x80) goto yy1371; + goto yy59; +yy1367: + YYDEBUG(1367, *YYCURSOR); yych = *++YYCURSOR; - if (yych <= 'R') { - if (yych <= ')') { - if (yych <= '(') goto yy3; - goto yy181; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1372; + goto yy59; +yy1368: + YYDEBUG(1368, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '1') goto yy1374; + if (yych <= '2') goto yy1376; + if (yych <= '9') goto yy1377; + goto yy59; +yy1369: + YYDEBUG(1369, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy1378; + goto yy59; +yy1370: + YYDEBUG(1370, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12); + yych = *YYCURSOR; + if (yych <= '-') { + if (yych == '+') goto yy1368; + if (yych <= ',') goto yy59; + goto yy1368; + } else { + if (yych <= 'G') { + if (yych <= 'F') goto yy59; + goto yy1369; } else { - if (yych <= '@') goto yy3; - if (yych <= 'Q') goto yy186; + if (yych == 0xC2) goto yy1365; + goto yy59; } + } +yy1371: + YYDEBUG(1371, *YYCURSOR); + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if (yych == 0xAF) goto yy1379; + goto yy59; +yy1372: + YYDEBUG(1372, *YYCURSOR); + yyaccept = 32; + YYMARKER = ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12); + yych = *YYCURSOR; + YYDEBUG(1373, *YYCURSOR); + if (yych <= '-') { + if (yych == '+') goto yy1380; + if (yych <= ',') goto yy1329; + goto yy1380; } else { - if (yych <= 'q') { - if (yych <= 'Z') goto yy186; - if (yych <= '`') goto yy3; - goto yy186; + if (yych <= '9') { + if (yych <= '/') goto yy1329; + goto yy1372; } else { - if (yych <= 'r') goto yy1639; - if (yych <= 'z') goto yy186; - goto yy3; + if (yych == 'G') goto yy1381; + goto yy1329; } } -yy1639: - YYDEBUG(1639, *YYCURSOR); - yyaccept = 1; +yy1374: + YYDEBUG(1374, *YYCURSOR); + yyaccept = 33; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'C') { - if (yych == ')') goto yy181; - goto yy3; - } else { - if (yych <= 'D') goto yy1640; - if (yych != 'd') goto yy3; - } -yy1640: - YYDEBUG(1640, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy1641; - if (yych != 'a') goto yy55; -yy1641: - YYDEBUG(1641, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy1642; - if (yych != 'y') goto yy55; -yy1642: - YYDEBUG(1642, *YYCURSOR); - ++YYCURSOR; -yy1643: - YYDEBUG(1643, *YYCURSOR); -#line 1127 "ext/date/lib/parse_date.re" + if (yych <= '/') goto yy1375; + if (yych <= '9') goto yy1382; + if (yych <= ':') goto yy1383; +yy1375: + YYDEBUG(1375, *YYCURSOR); +#line 1762 "ext/date/lib/parse_date.re" { - DEBUG_OUTPUT("yesterday"); + int tz_not_found; + DEBUG_OUTPUT("clf"); TIMELIB_INIT; - TIMELIB_HAVE_RELATIVE(); - TIMELIB_UNHAVE_TIME(); + TIMELIB_HAVE_TIME(); + TIMELIB_HAVE_DATE(); + s->time->d = timelib_get_nr(&ptr, 2); + s->time->m = timelib_get_month(&ptr); + s->time->y = timelib_get_nr(&ptr, 4); + s->time->h = timelib_get_nr(&ptr, 2); + s->time->i = timelib_get_nr(&ptr, 2); + s->time->s = timelib_get_nr(&ptr, 2); - s->time->relative.d = -1; + timelib_eat_spaces(&ptr); + + s->time->z = timelib_parse_zone(&ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper); + if (tz_not_found) { + add_error(s, TIMELIB_ERR_TZID_NOT_FOUND, "The timezone could not be found in the database"); + } TIMELIB_DEINIT; - return TIMELIB_RELATIVE; + return TIMELIB_CLF; } -#line 25780 "" -yy1644: - YYDEBUG(1644, *YYCURSOR); - yyaccept = 1; +#line 24607 "" +yy1376: + YYDEBUG(1376, *YYCURSOR); + yyaccept = 33; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'R') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy183; - } - } else { - if (yych <= '_') { - if (yych <= 'S') goto yy1636; - if (yych <= 'Z') goto yy183; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 'r') { - if (yych <= '`') goto yy3; - goto yy188; - } else { - if (yych <= 's') goto yy1645; - if (yych <= 'z') goto yy188; - goto yy3; - } - } + if (yych <= '5') { + if (yych <= '/') goto yy1375; + if (yych <= '4') goto yy1382; + goto yy1384; + } else { + if (yych <= '9') goto yy1385; + if (yych <= ':') goto yy1383; + goto yy1375; } -yy1645: - YYDEBUG(1645, *YYCURSOR); - yyaccept = 1; +yy1377: + YYDEBUG(1377, *YYCURSOR); + yyaccept = 33; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'S') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy184; - } + if (yych <= '/') goto yy1375; + if (yych <= '5') goto yy1384; + if (yych <= '9') goto yy1385; + if (yych <= ':') goto yy1383; + goto yy1375; +yy1378: + YYDEBUG(1378, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy1386; + goto yy59; +yy1379: + YYDEBUG(1379, *YYCURSOR); + ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 12) YYFILL(12); + yych = *YYCURSOR; + if (yych <= '-') { + if (yych == '+') goto yy1368; + if (yych <= ',') goto yy59; + goto yy1368; } else { - if (yych <= '_') { - if (yych <= 'T') goto yy1637; - if (yych <= 'Z') goto yy184; - if (yych <= '^') goto yy3; - goto yy189; + if (yych <= 'G') { + if (yych <= 'F') goto yy59; + goto yy1369; } else { - if (yych <= 's') { - if (yych <= '`') goto yy3; - goto yy192; - } else { - if (yych <= 't') goto yy1646; - if (yych <= 'z') goto yy192; - goto yy3; - } + if (yych == 0xE2) goto yy1366; + goto yy59; } } -yy1646: - YYDEBUG(1646, *YYCURSOR); - yyaccept = 1; +yy1380: + YYDEBUG(1380, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '1') goto yy1387; + if (yych <= '2') goto yy1388; + if (yych <= '9') goto yy1389; + goto yy59; +yy1381: + YYDEBUG(1381, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'M') goto yy1390; + goto yy59; +yy1382: + YYDEBUG(1382, *YYCURSOR); + yyaccept = 33; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'D') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy185; - } - } else { - if (yych <= '_') { - if (yych <= 'E') goto yy1638; - if (yych <= 'Z') goto yy185; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 'd') { - if (yych <= '`') goto yy3; - goto yy193; - } else { - if (yych <= 'e') goto yy1647; - if (yych <= 'z') goto yy193; - goto yy3; - } - } - } -yy1647: - YYDEBUG(1647, *YYCURSOR); - yyaccept = 1; + if (yych <= '/') goto yy1375; + if (yych <= '5') goto yy1391; + if (yych <= '9') goto yy1385; + if (yych <= ':') goto yy1392; + goto yy1375; +yy1383: + YYDEBUG(1383, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy1384; + if (yych <= '9') goto yy1385; + goto yy59; +yy1384: + YYDEBUG(1384, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy1375; + if (yych >= ':') goto yy1375; +yy1385: + YYDEBUG(1385, *YYCURSOR); + ++YYCURSOR; + goto yy1375; +yy1386: + YYDEBUG(1386, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '+') goto yy1368; + if (yych == '-') goto yy1368; + goto yy59; +yy1387: + YYDEBUG(1387, *YYCURSOR); + yyaccept = 32; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'Q') { - if (yych <= '-') { - if (yych == ')') goto yy181; - if (yych <= ',') goto yy3; - goto yy189; - } else { - if (yych == '/') goto yy189; - if (yych <= '@') goto yy3; - goto yy186; - } - } else { - if (yych <= '_') { - if (yych <= 'R') goto yy1639; - if (yych <= 'Z') goto yy186; - if (yych <= '^') goto yy3; - goto yy189; - } else { - if (yych <= 'q') { - if (yych <= '`') goto yy3; - goto yy194; - } else { - if (yych <= 'r') goto yy1648; - if (yych <= 'z') goto yy194; - goto yy3; - } - } - } -yy1648: - YYDEBUG(1648, *YYCURSOR); - yyaccept = 1; + if (yych <= '/') goto yy1329; + if (yych <= '9') goto yy1393; + if (yych <= ':') goto yy1394; + goto yy1329; +yy1388: + YYDEBUG(1388, *YYCURSOR); + yyaccept = 32; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'C') { - if (yych <= ',') { - if (yych == ')') goto yy181; - goto yy3; - } else { - if (yych == '.') goto yy3; - if (yych <= '/') goto yy189; - goto yy3; - } - } else { - if (yych <= '`') { - if (yych <= 'D') goto yy1640; - if (yych == '_') goto yy189; - goto yy3; - } else { - if (yych == 'd') goto yy1649; - if (yych <= 'z') goto yy195; - goto yy3; - } + if (yych <= '5') { + if (yych <= '/') goto yy1329; + if (yych <= '4') goto yy1393; + goto yy1328; + } else { + if (yych <= '9') goto yy1331; + if (yych <= ':') goto yy1394; + goto yy1329; } -yy1649: - YYDEBUG(1649, *YYCURSOR); +yy1389: + YYDEBUG(1389, *YYCURSOR); + yyaccept = 32; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') goto yy1329; + if (yych <= '5') goto yy1328; + if (yych <= '9') goto yy1331; + if (yych <= ':') goto yy1394; + goto yy1329; +yy1390: + YYDEBUG(1390, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'T') goto yy1395; + goto yy59; +yy1391: + YYDEBUG(1391, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy1375; + if (yych <= '9') goto yy1396; + goto yy1375; +yy1392: + YYDEBUG(1392, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy1397; + if (yych <= '9') goto yy1385; + goto yy59; +yy1393: + YYDEBUG(1393, *YYCURSOR); + yyaccept = 32; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') goto yy1329; + if (yych <= '5') goto yy1398; + if (yych <= '9') goto yy1331; + if (yych <= ':') goto yy1399; + goto yy1329; +yy1394: + YYDEBUG(1394, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'A') goto yy1641; - if (yych != 'a') goto yy196; - YYDEBUG(1650, *YYCURSOR); + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy1328; + if (yych <= '9') goto yy1331; + goto yy59; +yy1395: + YYDEBUG(1395, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'Y') goto yy1642; - if (yych != 'y') goto yy196; - YYDEBUG(1651, *YYCURSOR); + if (yych == '+') goto yy1380; + if (yych == '-') goto yy1380; + goto yy59; +yy1396: + YYDEBUG(1396, *YYCURSOR); yyaccept = 33; yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 8) { - goto yy195; - } - if (yych <= '.') { - if (yych == '-') goto yy189; - goto yy1643; - } else { - if (yych <= '/') goto yy189; - if (yych == '_') goto yy189; - goto yy1643; - } + if (yych <= '/') goto yy1375; + if (yych <= '5') goto yy1400; + if (yych <= '6') goto yy1401; + goto yy1375; +yy1397: + YYDEBUG(1397, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy1375; + if (yych <= '9') goto yy1402; + goto yy1375; +yy1398: + YYDEBUG(1398, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy1329; + if (yych <= '9') goto yy1403; + goto yy1329; +yy1399: + YYDEBUG(1399, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy1404; + if (yych <= '9') goto yy1331; + goto yy59; +yy1400: + YYDEBUG(1400, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy1385; + goto yy59; +yy1401: + YYDEBUG(1401, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '0') goto yy1385; + goto yy59; +yy1402: + YYDEBUG(1402, *YYCURSOR); + yyaccept = 33; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == ':') goto yy1405; + goto yy1375; +yy1403: + YYDEBUG(1403, *YYCURSOR); + yyaccept = 32; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') goto yy1329; + if (yych <= '5') goto yy1314; + if (yych <= '6') goto yy1315; + goto yy1329; +yy1404: + YYDEBUG(1404, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy1329; + if (yych <= '9') goto yy1406; + goto yy1329; +yy1405: + YYDEBUG(1405, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '/') goto yy59; + if (yych <= '5') goto yy1400; + if (yych <= '6') goto yy1401; + goto yy59; +yy1406: + YYDEBUG(1406, *YYCURSOR); + yyaccept = 32; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == ':') goto yy1286; + goto yy1329; } -#line 1955 "ext/date/lib/parse_date.re" +#line 1990 "ext/date/lib/parse_date.re" } #define YYMAXFILL 36 + timelib_time *timelib_strtotime(const char *s, size_t len, timelib_error_container **errors, const timelib_tzdb *tzdb, timelib_tz_get_wrapper tz_get_wrapper) { Scanner in; diff -Nru php8.2-8.2.7/ext/date/lib/parse_date.re php8.2-8.2.18/ext/date/lib/parse_date.re --- php8.2-8.2.7/ext/date/lib/parse_date.re 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/date/lib/parse_date.re 2024-04-09 18:46:23.000000000 +0000 @@ -661,9 +661,21 @@ static void timelib_eat_spaces(const char **ptr) { - while (**ptr == ' ' || **ptr == '\t') { - ++*ptr; - } + do { + if (**ptr == ' ' || **ptr == '\t') { + ++*ptr; + continue; + } + if ((*ptr)[0] == '\xe2' && (*ptr)[1] == '\x80' && (*ptr)[2] == '\xaf') { // NNBSP + *ptr += 3; + continue; + } + if ((*ptr)[0] == '\xc2' && (*ptr)[1] == '\xa0') { // NBSP + *ptr += 2; + continue; + } + break; + } while (true); } static void timelib_eat_until_separator(const char **ptr) @@ -699,6 +711,17 @@ return value; } +static void add_with_overflow(Scanner *s, timelib_sll *e, timelib_sll amount, int multiplier) +{ +#if defined(__has_builtin) && __has_builtin(__builtin_saddll_overflow) + if (__builtin_saddll_overflow(*e, amount * multiplier, e)) { + add_error(s, TIMELIB_ERR_NUMBER_OUT_OF_RANGE, "Number out of range"); + } +#else + *e += (amount * multiplier); +#endif +} + /** * The time_part parameter is a flag. It can be TIMELIB_TIME_PART_KEEP in case * the time portion should not be reset to midnight, or @@ -714,13 +737,13 @@ } switch (relunit->unit) { - case TIMELIB_MICROSEC: s->time->relative.us += amount * relunit->multiplier; break; - case TIMELIB_SECOND: s->time->relative.s += amount * relunit->multiplier; break; - case TIMELIB_MINUTE: s->time->relative.i += amount * relunit->multiplier; break; - case TIMELIB_HOUR: s->time->relative.h += amount * relunit->multiplier; break; - case TIMELIB_DAY: s->time->relative.d += amount * relunit->multiplier; break; - case TIMELIB_MONTH: s->time->relative.m += amount * relunit->multiplier; break; - case TIMELIB_YEAR: s->time->relative.y += amount * relunit->multiplier; break; + case TIMELIB_MICROSEC: add_with_overflow(s, &s->time->relative.us, amount, relunit->multiplier); break; + case TIMELIB_SECOND: add_with_overflow(s, &s->time->relative.s, amount, relunit->multiplier); break; + case TIMELIB_MINUTE: add_with_overflow(s, &s->time->relative.i, amount, relunit->multiplier); break; + case TIMELIB_HOUR: add_with_overflow(s, &s->time->relative.h, amount, relunit->multiplier); break; + case TIMELIB_DAY: add_with_overflow(s, &s->time->relative.d, amount, relunit->multiplier); break; + case TIMELIB_MONTH: add_with_overflow(s, &s->time->relative.m, amount, relunit->multiplier); break; + case TIMELIB_YEAR: add_with_overflow(s, &s->time->relative.y, amount, relunit->multiplier); break; case TIMELIB_WEEKDAY: TIMELIB_HAVE_WEEKDAY_RELATIVE(); @@ -992,7 +1015,9 @@ /*!re2c any = [\000-\377]; -space = [ \t]+; +nbsp = [\302][\240]; +nnbsp = [\342][\200][\257]; +space = [ \t]+ | nbsp+ | nnbsp+; frac = "."[0-9]+; ago = 'ago'; @@ -1318,6 +1343,7 @@ s->time->s = timelib_get_nr(&ptr, 2); } } + timelib_eat_spaces(&ptr); s->time->h += timelib_meridian(&ptr, s->time->h); TIMELIB_DEINIT; return TIMELIB_TIME12; @@ -1745,6 +1771,9 @@ s->time->h = timelib_get_nr(&ptr, 2); s->time->i = timelib_get_nr(&ptr, 2); s->time->s = timelib_get_nr(&ptr, 2); + + timelib_eat_spaces(&ptr); + s->time->z = timelib_parse_zone(&ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper); if (tz_not_found) { add_error(s, TIMELIB_ERR_TZID_NOT_FOUND, "The timezone could not be found in the database"); @@ -1858,6 +1887,7 @@ DEBUG_OUTPUT("tzcorrection | tz"); TIMELIB_INIT; TIMELIB_HAVE_TZ(); + timelib_eat_spaces(&ptr); s->time->z = timelib_parse_zone(&ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb, tz_get_wrapper); if (tz_not_found) { add_error(s, TIMELIB_ERR_TZID_NOT_FOUND, "The timezone could not be found in the database"); @@ -1936,7 +1966,12 @@ return TIMELIB_RELATIVE; } - [ .,\t] + [.,] + { + goto std; + } + + space { goto std; } diff -Nru php8.2-8.2.7/ext/date/lib/timelib.c php8.2-8.2.18/ext/date/lib/timelib.c --- php8.2-8.2.7/ext/date/lib/timelib.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/date/lib/timelib.c 2024-04-09 18:46:23.000000000 +0000 @@ -187,14 +187,22 @@ void timelib_decimal_hour_to_hms(double h, int *hour, int *min, int *sec) { - if (h > 0) { - *hour = floor(h); - *min = floor((h - *hour) * 60); - *sec = (h - *hour - ((float) *min / 60)) * 3600; - } else { - *hour = ceil(h); - *min = 0 - ceil((h - *hour) * 60); - *sec = 0 - (h - *hour - ((float) *min / -60)) * 3600; + bool swap = false; + int seconds; + + if (h < 0) { + swap = true; + h = fabs(h); + } + + *hour = floor(h); + seconds = floor((h - *hour) * 3600); + + *min = seconds / 60; + *sec = seconds % 60; + + if (swap) { + *hour = 0 - *hour; } } diff -Nru php8.2-8.2.7/ext/date/lib/timelib.h php8.2-8.2.18/ext/date/lib/timelib.h --- php8.2-8.2.7/ext/date/lib/timelib.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/date/lib/timelib.h 2024-04-09 18:46:23.000000000 +0000 @@ -30,9 +30,9 @@ # include "timelib_config.h" #endif -#define TIMELIB_VERSION 202207 -#define TIMELIB_EXTENDED_VERSION 20220701 -#define TIMELIB_ASCII_VERSION "2022.07" +#define TIMELIB_VERSION 202210 +#define TIMELIB_EXTENDED_VERSION 20221001 +#define TIMELIB_ASCII_VERSION "2022.10" #include #include @@ -379,7 +379,7 @@ #define TIMELIB_OVERRIDE_TIME 0x01 #define TIMELIB_NO_CLONE 0x02 -#define TIMELIB_UNSET -99999 +#define TIMELIB_UNSET -9999999 /* An entry for each of these error codes is also in the * timelib_error_messages array in timelib.c. diff -Nru php8.2-8.2.7/ext/date/lib/timezonedb.h php8.2-8.2.18/ext/date/lib/timezonedb.h --- php8.2-8.2.7/ext/date/lib/timezonedb.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/date/lib/timezonedb.h 2024-04-09 18:46:23.000000000 +0000 @@ -114,498 +114,498 @@ { (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" , 0x022D3D }, + { (char*) "Asia/Anadyr" , 0x0230E9 }, + { (char*) "Asia/Aqtau" , 0x0233EF }, + { (char*) "Asia/Aqtobe" , 0x02366E }, + { (char*) "Asia/Ashgabat" , 0x0238EE }, + { (char*) "Asia/Ashkhabad" , 0x023A71 }, + { (char*) "Asia/Atyrau" , 0x023BF4 }, + { (char*) "Asia/Baghdad" , 0x023E7D }, + { (char*) "Asia/Bahrain" , 0x0240FF }, + { (char*) "Asia/Baku" , 0x0241B8 }, + { (char*) "Asia/Bangkok" , 0x0244AC }, + { (char*) "Asia/Barnaul" , 0x024550 }, + { (char*) "Asia/Beirut" , 0x02485B }, + { (char*) "Asia/Bishkek" , 0x024B43 }, + { (char*) "Asia/Brunei" , 0x024DB9 }, + { (char*) "Asia/Calcutta" , 0x024E5F }, + { (char*) "Asia/Chita" , 0x024F47 }, + { (char*) "Asia/Choibalsan" , 0x025255 }, + { (char*) "Asia/Chongqing" , 0x0254DE }, + { (char*) "Asia/Chungking" , 0x025673 }, + { (char*) "Asia/Colombo" , 0x025808 }, + { (char*) "Asia/Dacca" , 0x02590B }, + { (char*) "Asia/Damascus" , 0x0259FE }, + { (char*) "Asia/Dhaka" , 0x025EDC }, + { (char*) "Asia/Dili" , 0x025FCF }, + { (char*) "Asia/Dubai" , 0x026085 }, + { (char*) "Asia/Dushanbe" , 0x026116 }, + { (char*) "Asia/Famagusta" , 0x026290 }, + { (char*) "Asia/Gaza" , 0x026657 }, + { (char*) "Asia/Harbin" , 0x0271F3 }, + { (char*) "Asia/Hebron" , 0x027388 }, + { (char*) "Asia/Ho_Chi_Minh" , 0x027F35 }, + { (char*) "Asia/Hong_Kong" , 0x02802D }, + { (char*) "Asia/Hovd" , 0x028340 }, + { (char*) "Asia/Irkutsk" , 0x0285C9 }, + { (char*) "Asia/Istanbul" , 0x0288E7 }, + { (char*) "Asia/Jakarta" , 0x028DA3 }, + { (char*) "Asia/Jayapura" , 0x028EB4 }, + { (char*) "Asia/Jerusalem" , 0x028FA1 }, + { (char*) "Asia/Kabul" , 0x0293DF }, + { (char*) "Asia/Kamchatka" , 0x02948A }, + { (char*) "Asia/Karachi" , 0x02977F }, + { (char*) "Asia/Kashgar" , 0x029895 }, + { (char*) "Asia/Kathmandu" , 0x029926 }, + { (char*) "Asia/Katmandu" , 0x0299D3 }, + { (char*) "Asia/Khandyga" , 0x029A80 }, + { (char*) "Asia/Kolkata" , 0x029DB1 }, + { (char*) "Asia/Krasnoyarsk" , 0x029E99 }, + { (char*) "Asia/Kuala_Lumpur" , 0x02A1A3 }, + { (char*) "Asia/Kuching" , 0x02A2C3 }, + { (char*) "Asia/Kuwait" , 0x02A41D }, + { (char*) "Asia/Macao" , 0x02A4AE }, + { (char*) "Asia/Macau" , 0x02A7D1 }, + { (char*) "Asia/Magadan" , 0x02AAF4 }, + { (char*) "Asia/Makassar" , 0x02ADFF }, + { (char*) "Asia/Manila" , 0x02AF12 }, + { (char*) "Asia/Muscat" , 0x02B00C }, + { (char*) "Asia/Nicosia" , 0x02B09D }, + { (char*) "Asia/Novokuznetsk" , 0x02B30C }, + { (char*) "Asia/Novosibirsk" , 0x02B5FF }, + { (char*) "Asia/Omsk" , 0x02B910 }, + { (char*) "Asia/Oral" , 0x02BC0E }, + { (char*) "Asia/Phnom_Penh" , 0x02BE9A }, + { (char*) "Asia/Pontianak" , 0x02BF6E }, + { (char*) "Asia/Pyongyang" , 0x02C087 }, + { (char*) "Asia/Qatar" , 0x02C14A }, + { (char*) "Asia/Qostanay" , 0x02C1EE }, + { (char*) "Asia/Qyzylorda" , 0x02C484 }, + { (char*) "Asia/Rangoon" , 0x02C71D }, + { (char*) "Asia/Riyadh" , 0x02C7E4 }, + { (char*) "Asia/Saigon" , 0x02C875 }, + { (char*) "Asia/Sakhalin" , 0x02C96D }, + { (char*) "Asia/Samarkand" , 0x02CC84 }, + { (char*) "Asia/Seoul" , 0x02CE0F }, + { (char*) "Asia/Shanghai" , 0x02CFBA }, + { (char*) "Asia/Singapore" , 0x02D15B }, + { (char*) "Asia/Srednekolymsk" , 0x02D267 }, + { (char*) "Asia/Taipei" , 0x02D577 }, + { (char*) "Asia/Tashkent" , 0x02D782 }, + { (char*) "Asia/Tbilisi" , 0x02D90D }, + { (char*) "Asia/Tehran" , 0x02DB8E }, + { (char*) "Asia/Tel_Aviv" , 0x02DEC6 }, + { (char*) "Asia/Thimbu" , 0x02E304 }, + { (char*) "Asia/Thimphu" , 0x02E3AA }, + { (char*) "Asia/Tokyo" , 0x02E450 }, + { (char*) "Asia/Tomsk" , 0x02E531 }, + { (char*) "Asia/Ujung_Pandang" , 0x02E83C }, + { (char*) "Asia/Ulaanbaatar" , 0x02E906 }, + { (char*) "Asia/Ulan_Bator" , 0x02EB74 }, + { (char*) "Asia/Urumqi" , 0x02EDD2 }, + { (char*) "Asia/Ust-Nera" , 0x02EE70 }, + { (char*) "Asia/Vientiane" , 0x02F193 }, + { (char*) "Asia/Vladivostok" , 0x02F279 }, + { (char*) "Asia/Yakutsk" , 0x02F57E }, + { (char*) "Asia/Yangon" , 0x02F882 }, + { (char*) "Asia/Yekaterinburg" , 0x02F949 }, + { (char*) "Asia/Yerevan" , 0x02FC5B }, + { (char*) "Atlantic/Azores" , 0x02FF2B }, + { (char*) "Atlantic/Bermuda" , 0x0304EA }, + { (char*) "Atlantic/Canary" , 0x0308F6 }, + { (char*) "Atlantic/Cape_Verde" , 0x030AEE }, + { (char*) "Atlantic/Faeroe" , 0x030BA9 }, + { (char*) "Atlantic/Faroe" , 0x030D6E }, + { (char*) "Atlantic/Jan_Mayen" , 0x030F33 }, + { (char*) "Atlantic/Madeira" , 0x031200 }, + { (char*) "Atlantic/Reykjavik" , 0x0317C8 }, + { (char*) "Atlantic/South_Georgia" , 0x031AC5 }, + { (char*) "Atlantic/St_Helena" , 0x031B55 }, + { (char*) "Atlantic/Stanley" , 0x031BF6 }, + { (char*) "Australia/ACT" , 0x031F17 }, + { (char*) "Australia/Adelaide" , 0x0322AB }, + { (char*) "Australia/Brisbane" , 0x03265F }, + { (char*) "Australia/Broken_Hill" , 0x0327A3 }, + { (char*) "Australia/Canberra" , 0x032B78 }, + { (char*) "Australia/Currie" , 0x032F0C }, + { (char*) "Australia/Darwin" , 0x033303 }, + { (char*) "Australia/Eucla" , 0x03340B }, + { (char*) "Australia/Hobart" , 0x03356A }, + { (char*) "Australia/LHI" , 0x033969 }, + { (char*) "Australia/Lindeman" , 0x033C29 }, + { (char*) "Australia/Lord_Howe" , 0x033D99 }, + { (char*) "Australia/Melbourne" , 0x034069 }, + { (char*) "Australia/North" , 0x034405 }, + { (char*) "Australia/NSW" , 0x0344FB }, + { (char*) "Australia/Perth" , 0x03488F }, + { (char*) "Australia/Queensland" , 0x0349EB }, + { (char*) "Australia/South" , 0x034B18 }, + { (char*) "Australia/Sydney" , 0x034EBD }, + { (char*) "Australia/Tasmania" , 0x03526D }, + { (char*) "Australia/Victoria" , 0x035664 }, + { (char*) "Australia/West" , 0x0359F8 }, + { (char*) "Australia/Yancowinna" , 0x035B36 }, + { (char*) "Brazil/Acre" , 0x035EEF }, + { (char*) "Brazil/DeNoronha" , 0x03609D }, + { (char*) "Brazil/East" , 0x03628D }, + { (char*) "Brazil/West" , 0x036651 }, + { (char*) "Canada/Atlantic" , 0x0367F9 }, + { (char*) "Canada/Central" , 0x036E8D }, + { (char*) "Canada/Eastern" , 0x0373A7 }, + { (char*) "Canada/Mountain" , 0x037A68 }, + { (char*) "Canada/Newfoundland" , 0x037E3E }, + { (char*) "Canada/Pacific" , 0x0385A0 }, + { (char*) "Canada/Saskatchewan" , 0x038ADE }, + { (char*) "Canada/Yukon" , 0x038D68 }, + { (char*) "CET" , 0x039179 }, + { (char*) "Chile/Continental" , 0x0393F2 }, + { (char*) "Chile/EasterIsland" , 0x039948 }, + { (char*) "CST6CDT" , 0x039DEA }, + { (char*) "Cuba" , 0x03A1AD }, + { (char*) "EET" , 0x03A616 }, + { (char*) "Egypt" , 0x03A813 }, + { (char*) "Eire" , 0x03AD3C }, + { (char*) "EST" , 0x03B320 }, + { (char*) "EST5EDT" , 0x03B39B }, + { (char*) "Etc/GMT" , 0x03B75E }, + { (char*) "Etc/GMT+0" , 0x03B7D9 }, + { (char*) "Etc/GMT+1" , 0x03B854 }, + { (char*) "Etc/GMT+10" , 0x03B8D1 }, + { (char*) "Etc/GMT+11" , 0x03B94F }, + { (char*) "Etc/GMT+12" , 0x03B9CD }, + { (char*) "Etc/GMT+2" , 0x03BA4B }, + { (char*) "Etc/GMT+3" , 0x03BAC8 }, + { (char*) "Etc/GMT+4" , 0x03BB45 }, + { (char*) "Etc/GMT+5" , 0x03BBC2 }, + { (char*) "Etc/GMT+6" , 0x03BC3F }, + { (char*) "Etc/GMT+7" , 0x03BCBC }, + { (char*) "Etc/GMT+8" , 0x03BD39 }, + { (char*) "Etc/GMT+9" , 0x03BDB6 }, + { (char*) "Etc/GMT-0" , 0x03BE33 }, + { (char*) "Etc/GMT-1" , 0x03BEAE }, + { (char*) "Etc/GMT-10" , 0x03BF2C }, + { (char*) "Etc/GMT-11" , 0x03BFAB }, + { (char*) "Etc/GMT-12" , 0x03C02A }, + { (char*) "Etc/GMT-13" , 0x03C0A9 }, + { (char*) "Etc/GMT-14" , 0x03C128 }, + { (char*) "Etc/GMT-2" , 0x03C1A7 }, + { (char*) "Etc/GMT-3" , 0x03C225 }, + { (char*) "Etc/GMT-4" , 0x03C2A3 }, + { (char*) "Etc/GMT-5" , 0x03C321 }, + { (char*) "Etc/GMT-6" , 0x03C39F }, + { (char*) "Etc/GMT-7" , 0x03C41D }, + { (char*) "Etc/GMT-8" , 0x03C49B }, + { (char*) "Etc/GMT-9" , 0x03C519 }, + { (char*) "Etc/GMT0" , 0x03C597 }, + { (char*) "Etc/Greenwich" , 0x03C612 }, + { (char*) "Etc/UCT" , 0x03C68D }, + { (char*) "Etc/Universal" , 0x03C708 }, + { (char*) "Etc/UTC" , 0x03C783 }, + { (char*) "Etc/Zulu" , 0x03C7FE }, + { (char*) "Europe/Amsterdam" , 0x03C879 }, + { (char*) "Europe/Andorra" , 0x03CCB4 }, + { (char*) "Europe/Astrakhan" , 0x03CE45 }, + { (char*) "Europe/Athens" , 0x03D139 }, + { (char*) "Europe/Belfast" , 0x03D3EF }, + { (char*) "Europe/Belgrade" , 0x03DA3A }, + { (char*) "Europe/Berlin" , 0x03DC24 }, + { (char*) "Europe/Bratislava" , 0x03DF00 }, + { (char*) "Europe/Brussels" , 0x03E1DF }, + { (char*) "Europe/Bucharest" , 0x03E63A }, + { (char*) "Europe/Budapest" , 0x03E8DB }, + { (char*) "Europe/Busingen" , 0x03EBE5 }, + { (char*) "Europe/Chisinau" , 0x03EDEA }, + { (char*) "Europe/Copenhagen" , 0x03F0E9 }, + { (char*) "Europe/Dublin" , 0x03F364 }, + { (char*) "Europe/Gibraltar" , 0x03F948 }, + { (char*) "Europe/Guernsey" , 0x03FE18 }, + { (char*) "Europe/Helsinki" , 0x04046F }, + { (char*) "Europe/Isle_of_Man" , 0x04065C }, + { (char*) "Europe/Istanbul" , 0x040CA7 }, + { (char*) "Europe/Jersey" , 0x041163 }, + { (char*) "Europe/Kaliningrad" , 0x0417BA }, + { (char*) "Europe/Kiev" , 0x041B62 }, + { (char*) "Europe/Kirov" , 0x041D9C }, + { (char*) "Europe/Kyiv" , 0x042095 }, + { (char*) "Europe/Lisbon" , 0x0422DE }, + { (char*) "Europe/Ljubljana" , 0x0428AB }, + { (char*) "Europe/London" , 0x042A95 }, + { (char*) "Europe/Luxembourg" , 0x0430E0 }, + { (char*) "Europe/Madrid" , 0x04352B }, + { (char*) "Europe/Malta" , 0x0438C8 }, + { (char*) "Europe/Mariehamn" , 0x043C74 }, + { (char*) "Europe/Minsk" , 0x043E61 }, + { (char*) "Europe/Monaco" , 0x044195 }, + { (char*) "Europe/Moscow" , 0x0445FB }, + { (char*) "Europe/Nicosia" , 0x0449A7 }, + { (char*) "Europe/Oslo" , 0x044C08 }, + { (char*) "Europe/Paris" , 0x044EB8 }, + { (char*) "Europe/Podgorica" , 0x045315 }, + { (char*) "Europe/Prague" , 0x0454FF }, + { (char*) "Europe/Riga" , 0x0457DE }, + { (char*) "Europe/Rome" , 0x045AA0 }, + { (char*) "Europe/Samara" , 0x045E5F }, + { (char*) "Europe/San_Marino" , 0x046160 }, + { (char*) "Europe/Sarajevo" , 0x04651F }, + { (char*) "Europe/Saratov" , 0x046709 }, + { (char*) "Europe/Simferopol" , 0x0469FB }, + { (char*) "Europe/Skopje" , 0x046D6E }, + { (char*) "Europe/Sofia" , 0x046F58 }, + { (char*) "Europe/Stockholm" , 0x0471B4 }, + { (char*) "Europe/Tallinn" , 0x0473B1 }, + { (char*) "Europe/Tirane" , 0x047660 }, + { (char*) "Europe/Tiraspol" , 0x0478C8 }, + { (char*) "Europe/Ulyanovsk" , 0x047BC7 }, + { (char*) "Europe/Uzhgorod" , 0x047EDD }, + { (char*) "Europe/Vaduz" , 0x048117 }, + { (char*) "Europe/Vatican" , 0x048301 }, + { (char*) "Europe/Vienna" , 0x0486C0 }, + { (char*) "Europe/Vilnius" , 0x04895E }, + { (char*) "Europe/Volgograd" , 0x048C0E }, + { (char*) "Europe/Warsaw" , 0x048F1D }, + { (char*) "Europe/Zagreb" , 0x0492C4 }, + { (char*) "Europe/Zaporozhye" , 0x0494AE }, + { (char*) "Europe/Zurich" , 0x0496E8 }, + { (char*) "Factory" , 0x0498E5 }, + { (char*) "GB" , 0x049962 }, + { (char*) "GB-Eire" , 0x049FAD }, + { (char*) "GMT" , 0x04A5F8 }, + { (char*) "GMT+0" , 0x04A673 }, + { (char*) "GMT-0" , 0x04A6EE }, + { (char*) "GMT0" , 0x04A769 }, + { (char*) "Greenwich" , 0x04A7E4 }, + { (char*) "Hongkong" , 0x04A85F }, + { (char*) "HST" , 0x04AB72 }, + { (char*) "Iceland" , 0x04ABEE }, + { (char*) "Indian/Antananarivo" , 0x04AC7C }, + { (char*) "Indian/Chagos" , 0x04AD28 }, + { (char*) "Indian/Christmas" , 0x04ADCC }, + { (char*) "Indian/Cocos" , 0x04AE5D }, + { (char*) "Indian/Comoro" , 0x04AEF5 }, + { (char*) "Indian/Kerguelen" , 0x04AF84 }, + { (char*) "Indian/Mahe" , 0x04B015 }, + { (char*) "Indian/Maldives" , 0x04B0A6 }, + { (char*) "Indian/Mauritius" , 0x04B14A }, + { (char*) "Indian/Mayotte" , 0x04B209 }, + { (char*) "Indian/Reunion" , 0x04B298 }, + { (char*) "Iran" , 0x04B329 }, + { (char*) "Israel" , 0x04B661 }, + { (char*) "Jamaica" , 0x04BA9F }, + { (char*) "Japan" , 0x04BBFE }, + { (char*) "Kwajalein" , 0x04BCDF }, + { (char*) "Libya" , 0x04BDC6 }, + { (char*) "MET" , 0x04BF81 }, + { (char*) "Mexico/BajaNorte" , 0x04C1FA }, + { (char*) "Mexico/BajaSur" , 0x04C607 }, + { (char*) "Mexico/General" , 0x04C8E1 }, + { (char*) "MST" , 0x04CBF2 }, + { (char*) "MST7MDT" , 0x04CC6D }, + { (char*) "Navajo" , 0x04D030 }, + { (char*) "NZ" , 0x04D44E }, + { (char*) "NZ-CHAT" , 0x04D86D }, + { (char*) "Pacific/Apia" , 0x04DBA1 }, + { (char*) "Pacific/Auckland" , 0x04DD44 }, + { (char*) "Pacific/Bougainville" , 0x04E176 }, + { (char*) "Pacific/Chatham" , 0x04E257 }, + { (char*) "Pacific/Chuuk" , 0x04E59A }, + { (char*) "Pacific/Easter" , 0x04E678 }, + { (char*) "Pacific/Efate" , 0x04EB27 }, + { (char*) "Pacific/Enderbury" , 0x04EC89 }, + { (char*) "Pacific/Fakaofo" , 0x04ED41 }, + { (char*) "Pacific/Fiji" , 0x04EDE6 }, + { (char*) "Pacific/Funafuti" , 0x04EF7E }, + { (char*) "Pacific/Galapagos" , 0x04F010 }, + { (char*) "Pacific/Gambier" , 0x04F0DC }, + { (char*) "Pacific/Guadalcanal" , 0x04F17B }, + { (char*) "Pacific/Guam" , 0x04F20D }, + { (char*) "Pacific/Honolulu" , 0x04F377 }, + { (char*) "Pacific/Johnston" , 0x04F466 }, + { (char*) "Pacific/Kanton" , 0x04F54F }, + { (char*) "Pacific/Kiritimati" , 0x04F616 }, + { (char*) "Pacific/Kosrae" , 0x04F6DC }, + { (char*) "Pacific/Kwajalein" , 0x04F7E0 }, + { (char*) "Pacific/Majuro" , 0x04F8D0 }, + { (char*) "Pacific/Marquesas" , 0x04F9CE }, + { (char*) "Pacific/Midway" , 0x04FA76 }, + { (char*) "Pacific/Nauru" , 0x04FB39 }, + { (char*) "Pacific/Niue" , 0x04FBFC }, + { (char*) "Pacific/Norfolk" , 0x04FCA2 }, + { (char*) "Pacific/Noumea" , 0x04FD9B }, + { (char*) "Pacific/Pago_Pago" , 0x04FE6D }, + { (char*) "Pacific/Palau" , 0x04FF0B }, + { (char*) "Pacific/Pitcairn" , 0x04FFAB }, + { (char*) "Pacific/Pohnpei" , 0x050050 }, + { (char*) "Pacific/Ponape" , 0x050140 }, + { (char*) "Pacific/Port_Moresby" , 0x0501D2 }, + { (char*) "Pacific/Rarotonga" , 0x050290 }, + { (char*) "Pacific/Saipan" , 0x050432 }, + { (char*) "Pacific/Samoa" , 0x050593 }, + { (char*) "Pacific/Tahiti" , 0x050631 }, + { (char*) "Pacific/Tarawa" , 0x0506D1 }, + { (char*) "Pacific/Tongatapu" , 0x050772 }, + { (char*) "Pacific/Truk" , 0x05086B }, + { (char*) "Pacific/Wake" , 0x050911 }, + { (char*) "Pacific/Wallis" , 0x0509AE }, + { (char*) "Pacific/Yap" , 0x050A40 }, + { (char*) "Poland" , 0x050AE6 }, + { (char*) "Portugal" , 0x050E8D }, + { (char*) "PRC" , 0x051447 }, + { (char*) "PST8PDT" , 0x0515DC }, + { (char*) "ROC" , 0x05199F }, + { (char*) "ROK" , 0x051BAA }, + { (char*) "Singapore" , 0x051D55 }, + { (char*) "Turkey" , 0x051E61 }, + { (char*) "UCT" , 0x05231D }, + { (char*) "Universal" , 0x052398 }, + { (char*) "US/Alaska" , 0x052413 }, + { (char*) "US/Aleutian" , 0x0527F0 }, + { (char*) "US/Arizona" , 0x052BC5 }, + { (char*) "US/Central" , 0x052CC1 }, + { (char*) "US/East-Indiana" , 0x0533A7 }, + { (char*) "US/Eastern" , 0x0535C6 }, + { (char*) "US/Hawaii" , 0x053CA2 }, + { (char*) "US/Indiana-Starke" , 0x053D8B }, + { (char*) "US/Michigan" , 0x05418F }, + { (char*) "US/Mountain" , 0x05451E }, + { (char*) "US/Pacific" , 0x05493C }, + { (char*) "US/Samoa" , 0x054E56 }, + { (char*) "UTC" , 0x054EF4 }, + { (char*) "W-SU" , 0x054F6F }, + { (char*) "WET" , 0x055307 }, + { (char*) "Zulu" , 0x055501 }, }; -const unsigned char timelib_timezone_db_data_builtin[348143] = { +const unsigned char timelib_timezone_db_data_builtin[349564] = { /* Africa/Abidjan */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -2070,7 +2070,7 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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, @@ -6511,7 +6509,7 @@ 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, 0x2B, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0xFF, -0xFF, 0xFF, 0xFF, 0x91, 0xB6, 0x38, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x13, 0x6E, 0x63, 0xC0, 0x00, +0xFF, 0xFF, 0xFF, 0x91, 0xDF, 0x17, 0x28, 0x00, 0x00, 0x00, 0x00, 0x13, 0x6E, 0x63, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x20, 0x75, 0xE4, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x21, 0x81, 0x77, 0x40, 0x00, 0x00, 0x00, 0x00, 0x22, 0x55, 0xC6, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x23, 0x6A, 0x93, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x24, 0x35, 0xA8, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x25, 0x4A, 0x75, 0xC0, 0x00, @@ -6621,7 +6619,7 @@ 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 @@ 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 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, @@ -6783,10 +6781,10 @@ 0xFF, 0xFF, 0xFF, 0xC7, 0x0F, 0x3A, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x2D, 0x5E, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x88, 0xF0, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x60, 0xFB, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD3, 0x75, 0xE4, 0xF0, 0xFF, -0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xAA, 0xD0, 0xFF, -0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xA3, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0x8C, 0xD0, 0xFF, -0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0x85, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x6E, 0xD0, 0xFF, -0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x76, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, 0x70, 0xFF, +0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xC6, 0xF0, 0xFF, +0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xBF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0xA8, 0xF0, 0xFF, +0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0xA1, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x8A, 0xF0, 0xFF, +0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x92, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x13, 0x74, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0xDE, 0x89, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0xA9, 0x82, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xBE, 0x6B, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x89, 0x64, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x9E, 0x4D, 0x70, 0xFF, @@ -7085,10 +7083,10 @@ 0xFF, 0xFF, 0xFF, 0xC7, 0x0F, 0x3A, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x2D, 0x5E, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x88, 0xF0, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x60, 0xFB, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD3, 0x75, 0xE4, 0xF0, 0xFF, -0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xAA, 0xD0, 0xFF, -0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xA3, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0x8C, 0xD0, 0xFF, -0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0x85, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x6E, 0xD0, 0xFF, -0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x76, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, 0x70, 0xFF, +0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xC6, 0xF0, 0xFF, +0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xBF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0xA8, 0xF0, 0xFF, +0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0xA1, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x8A, 0xF0, 0xFF, +0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x92, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x13, 0x74, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0xDE, 0x89, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0xA9, 0x82, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xBE, 0x6B, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x89, 0x64, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x9E, 0x4D, 0x70, 0xFF, @@ -7523,7 +7521,7 @@ 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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, @@ -8972,10 +9002,10 @@ 0xFF, 0xFF, 0xFF, 0xC7, 0x0F, 0x3A, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x2D, 0x5E, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x88, 0xF0, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x60, 0xFB, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD3, 0x75, 0xE4, 0xF0, 0xFF, -0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xAA, 0xD0, 0xFF, -0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xA3, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0x8C, 0xD0, 0xFF, -0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0x85, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x6E, 0xD0, 0xFF, -0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x76, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, 0x70, 0xFF, +0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xC6, 0xF0, 0xFF, +0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xBF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0xA8, 0xF0, 0xFF, +0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0xA1, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x8A, 0xF0, 0xFF, +0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x92, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x13, 0x74, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0xDE, 0x89, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0xA9, 0x82, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xBE, 0x6B, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x89, 0x64, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x9E, 0x4D, 0x70, 0xFF, @@ -9104,13 +9134,13 @@ 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, @@ -9151,10 +9181,10 @@ 0xFF, 0xFF, 0xFF, 0xC7, 0x0F, 0x3A, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x2D, 0x5E, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x88, 0xF0, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x60, 0xFB, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD3, 0x75, 0xE4, 0xF0, 0xFF, -0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xAA, 0xD0, 0xFF, -0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xA3, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0x8C, 0xD0, 0xFF, -0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0x85, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x6E, 0xD0, 0xFF, -0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x76, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, 0x70, 0xFF, +0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xC6, 0xF0, 0xFF, +0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xBF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0xA8, 0xF0, 0xFF, +0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0xA1, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x8A, 0xF0, 0xFF, +0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x92, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x13, 0x74, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0xDE, 0x89, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0xA9, 0x82, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xBE, 0x6B, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x89, 0x64, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x9E, 0x4D, 0x70, 0xFF, @@ -9228,8 +9258,8 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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, @@ -10050,7 +10083,7 @@ 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, 0x33, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x10, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xAA, 0x19, 0x7B, 0xDC, 0xFF, 0xFF, 0xFF, 0xFF, 0xB5, 0xA3, 0xEF, 0x30, 0x00, 0x00, 0x00, 0x00, 0x15, 0x27, 0x7D, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x16, 0x18, 0xB2, 0x10, 0x00, 0x00, 0x00, 0x00, 0x17, 0x08, 0xB1, 0x20, 0x00, 0x00, 0x00, 0x00, 0x17, 0xF9, 0xE5, 0x90, 0x00, @@ -10076,15 +10109,16 @@ 0x00, 0x00, 0x00, 0x3B, 0xDB, 0x12, 0x40, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xA6, 0x19, 0x40, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBA, 0xF4, 0x40, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x85, 0xFB, 0x40, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9A, 0xD6, 0x40, 0x00, 0x00, 0x00, 0x00, 0x40, 0x65, 0xDD, 0x40, 0x00, -0x00, 0x00, 0x00, 0x41, 0x83, 0xF2, 0xC0, 0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x04, 0x01, 0x03, +0x00, 0x00, 0x00, 0x41, 0x83, 0xF2, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x65, 0xE0, 0xC6, 0x20, 0x01, +0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x03, 0x04, 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, 0x00, 0x00, 0x48, 0x24, 0x00, 0x00, -0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x01, 0x08, 0x00, 0x00, 0x54, 0x60, -0x00, 0x0C, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x2B, 0x30, 0x35, 0x00, -0x2B, 0x30, 0x37, 0x00, 0x2B, 0x30, 0x36, 0x00, 0x0A, 0x3C, 0x2B, 0x30, 0x36, 0x3E, 0x2D, 0x36, -0x0A, 0x00, 0xCB, 0x52, 0xC8, 0x01, 0x88, 0x13, 0x18, 0x00, 0x00, 0x00, 0x12, 0x6D, 0x6F, 0x73, -0x74, 0x20, 0x6F, 0x66, 0x20, 0x4B, 0x61, 0x7A, 0x61, 0x6B, 0x68, 0x73, 0x74, 0x61, 0x6E, +0x02, 0x03, 0x01, 0x00, 0x00, 0x48, 0x24, 0x00, 0x00, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x00, +0x00, 0x62, 0x70, 0x01, 0x08, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x54, 0x60, 0x01, +0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x2B, 0x30, 0x35, 0x00, 0x2B, 0x30, 0x37, 0x00, 0x2B, 0x30, 0x36, +0x00, 0x0A, 0x3C, 0x2B, 0x30, 0x35, 0x3E, 0x2D, 0x35, 0x0A, 0x00, 0xCB, 0x52, 0xC8, 0x01, 0x88, +0x13, 0x18, 0x00, 0x00, 0x00, 0x12, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x6F, 0x66, 0x20, 0x4B, 0x61, +0x7A, 0x61, 0x6B, 0x68, 0x73, 0x74, 0x61, 0x6E, /* Asia/Amman */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x4A, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -11078,7 +11112,7 @@ 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, 0x34, 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, @@ -11140,8 +11174,8 @@ 0x00, 0x00, 0x00, 0x60, 0x5E, 0x59, 0x60, 0x00, 0x00, 0x00, 0x00, 0x61, 0x7B, 0x1D, 0x60, 0x00, 0x00, 0x00, 0x00, 0x62, 0x3F, 0x8C, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x63, 0x5C, 0x5E, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x64, 0x4C, 0x5E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0x3C, 0x40, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x66, 0x19, 0xCB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x1C, 0x22, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x67, 0xF0, 0x72, 0x80, 0x00, 0x00, 0x00, 0x00, 0x68, 0xFC, 0x04, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x66, 0x23, 0x05, 0x80, 0x00, 0x00, 0x00, 0x00, 0x67, 0x1C, 0x22, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x67, 0xF9, 0xAD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0xFC, 0x04, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x69, 0xC7, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xDB, 0xE6, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x6B, 0xA6, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xC5, 0x03, 0x70, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x86, 0xDE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6E, 0xA4, 0xE5, 0x70, 0x00, @@ -11156,41 +11190,40 @@ 0x00, 0x00, 0x00, 0x7E, 0x78, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7A, 0x9C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x80, 0x58, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x48, 0x09, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x82, 0x38, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x1E, 0xB1, 0x70, 0x00, -0x00, 0x00, 0x00, 0x83, 0x4C, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x56, 0x10, 0x70, 0x00, 0x00, 0x00, 0x00, 0x84, 0x17, 0xEB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0xEC, 0x1E, 0x70, 0x00, -0x00, 0x00, 0x00, 0x85, 0x23, 0x8B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x85, 0x35, 0xF2, 0x70, 0x00, +0x00, 0x00, 0x00, 0x85, 0x2C, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x35, 0xF2, 0x70, 0x00, 0x00, 0x00, 0x00, 0x86, 0x01, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x86, 0xC2, 0xC5, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x86, 0xF0, 0xF8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x87, 0x15, 0xD4, 0x70, 0x00, +0x00, 0x00, 0x00, 0x86, 0xFA, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x15, 0xD4, 0x70, 0x00, 0x00, 0x00, 0x00, 0x87, 0xE0, 0xE9, 0x80, 0x00, 0x00, 0x00, 0x00, 0x88, 0x99, 0x6D, 0x70, 0x00, -0x00, 0x00, 0x00, 0x88, 0xC7, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xF5, 0xB6, 0x70, 0x00, +0x00, 0x00, 0x00, 0x88, 0xD0, 0xDA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x88, 0xF5, 0xB6, 0x70, 0x00, 0x00, 0x00, 0x00, 0x89, 0xC0, 0xCB, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x66, 0xDA, 0x70, 0x00, -0x00, 0x00, 0x00, 0x8A, 0x9E, 0x47, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8A, 0xD5, 0x98, 0x70, 0x00, +0x00, 0x00, 0x00, 0x8A, 0xA7, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8A, 0xD5, 0x98, 0x70, 0x00, 0x00, 0x00, 0x00, 0x8B, 0xA0, 0xAD, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x3D, 0x81, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x8C, 0x6B, 0xB4, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8C, 0xBE, 0xB4, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x8C, 0x74, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0xBE, 0xB4, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x8D, 0x80, 0x8F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x14, 0x29, 0x70, 0x00, -0x00, 0x00, 0x00, 0x8E, 0x42, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x9E, 0x96, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x8E, 0x4B, 0x96, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x9E, 0x96, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x8F, 0x60, 0x71, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8F, 0xE1, 0x96, 0x70, 0x00, -0x00, 0x00, 0x00, 0x90, 0x19, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x90, 0x7E, 0x78, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x90, 0x22, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x7E, 0x78, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x91, 0x49, 0x8E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0xB8, 0x3D, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x91, 0xE6, 0x70, 0x80, 0x00, 0x00, 0x00, 0x00, 0x92, 0x5E, 0x5A, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x91, 0xEF, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x5E, 0x5A, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x93, 0x29, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x93, 0x85, 0xAA, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x93, 0xBD, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x94, 0x3E, 0x3C, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x93, 0xC6, 0x52, 0x80, 0x00, 0x00, 0x00, 0x00, 0x94, 0x3E, 0x3C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x95, 0x09, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x95, 0x5C, 0x52, 0x70, 0x00, -0x00, 0x00, 0x00, 0x95, 0x8A, 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x27, 0x59, 0x70, 0x00, +0x00, 0x00, 0x00, 0x95, 0x93, 0xBF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x96, 0x27, 0x59, 0x70, 0x00, 0x00, 0x00, 0x00, 0x96, 0xE9, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x97, 0x32, 0xF9, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x97, 0x61, 0x2C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x98, 0x07, 0x3B, 0x70, 0x00, +0x00, 0x00, 0x00, 0x97, 0x6A, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x07, 0x3B, 0x70, 0x00, 0x00, 0x00, 0x00, 0x98, 0xC9, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0x00, 0x66, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x99, 0x37, 0xD4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0xE7, 0x1D, 0x70, 0x00, +0x00, 0x00, 0x00, 0x99, 0x41, 0x0E, 0x80, 0x00, 0x00, 0x00, 0x00, 0x99, 0xE7, 0x1D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xB2, 0x32, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xD7, 0x0E, 0x70, 0x00, -0x00, 0x00, 0x00, 0x9B, 0x05, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9B, 0xC6, 0xFF, 0x70, 0x00, +0x00, 0x00, 0x00, 0x9B, 0x0E, 0x7B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9B, 0xC6, 0xFF, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9C, 0x92, 0x14, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9C, 0xA4, 0x7B, 0x70, 0x00, -0x00, 0x00, 0x00, 0x9C, 0xDB, 0xE8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9D, 0xA6, 0xE1, 0x70, 0x00, +0x00, 0x00, 0x00, 0x9C, 0xE5, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9D, 0xA6, 0xE1, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9E, 0x71, 0xF6, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9E, 0x7B, 0x22, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x9E, 0xB2, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9F, 0x86, 0xC3, 0x70, 0x00, -0x00, 0x00, 0x00, 0xA0, 0x7F, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA1, 0x6F, 0xDF, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xA2, 0x56, 0xA4, 0x80, 0x00, 0x00, 0x00, 0x00, 0xA3, 0x4F, 0xC1, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xA4, 0x24, 0x11, 0x80, 0x00, 0x00, 0x00, 0x00, 0xA5, 0x2F, 0xA3, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xA5, 0xFA, 0xB9, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA7, 0x0F, 0x85, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x9E, 0xBB, 0xCA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9F, 0x86, 0xC3, 0x70, 0x00, +0x00, 0x00, 0x00, 0xA0, 0x89, 0x37, 0x80, 0x00, 0x00, 0x00, 0x00, 0xA1, 0x6F, 0xDF, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xA2, 0x5F, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA3, 0x4F, 0xC1, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xA4, 0x2D, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA5, 0x2F, 0xA3, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xA6, 0x03, 0xF3, 0x80, 0x00, 0x00, 0x00, 0x00, 0xA7, 0x0F, 0x85, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA7, 0xDA, 0x9B, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA8, 0xEF, 0x67, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA9, 0xBA, 0x7D, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xD8, 0x84, 0x70, 0x00, 0x00, 0x00, 0x00, 0xAB, 0x9A, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAC, 0xB8, 0x66, 0x70, 0x00, @@ -11205,10 +11238,35 @@ 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, 0x60, 0x65, 0x00, 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, 0x37, 0x0C, 0x80, 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, 0x0D, 0xB4, 0x00, 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, 0xDB, 0x21, 0x00, 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, 0xB1, 0xC8, 0x80, 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, 0x88, 0x70, 0x00, 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, 0x55, 0xDD, 0x00, 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, 0x2C, 0x84, 0x80, 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, 0xF9, 0xF1, 0x80, 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, 0xD0, 0x99, 0x00, 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, 0xA7, 0x40, 0x80, 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, 0x74, 0xAD, 0x80, 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, 0x4B, 0x55, 0x00, 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, 0x21, 0xFC, 0x80, 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, 0xEF, 0x69, 0x80, 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,6 +11283,9 @@ 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 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, @@ -11267,7 +11328,7 @@ 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, 0x36, 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, @@ -11330,8 +11391,8 @@ 0x00, 0x00, 0x00, 0x60, 0x5E, 0x59, 0x60, 0x00, 0x00, 0x00, 0x00, 0x61, 0x7B, 0x1D, 0x60, 0x00, 0x00, 0x00, 0x00, 0x62, 0x3F, 0x8C, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x63, 0x5C, 0x5E, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x64, 0x4C, 0x5E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0x3C, 0x40, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x66, 0x19, 0xCB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x1C, 0x22, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x67, 0xF0, 0x72, 0x80, 0x00, 0x00, 0x00, 0x00, 0x68, 0xFC, 0x04, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x66, 0x23, 0x05, 0x80, 0x00, 0x00, 0x00, 0x00, 0x67, 0x1C, 0x22, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x67, 0xF9, 0xAD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0xFC, 0x04, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x69, 0xC7, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xDB, 0xE6, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x6B, 0xA6, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xC5, 0x03, 0x70, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x86, 0xDE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6E, 0xA4, 0xE5, 0x70, 0x00, @@ -11346,41 +11407,40 @@ 0x00, 0x00, 0x00, 0x7E, 0x78, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7A, 0x9C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x80, 0x58, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x48, 0x09, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x82, 0x38, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x1E, 0xB1, 0x70, 0x00, -0x00, 0x00, 0x00, 0x83, 0x4C, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x56, 0x10, 0x70, 0x00, 0x00, 0x00, 0x00, 0x84, 0x17, 0xEB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0xEC, 0x1E, 0x70, 0x00, -0x00, 0x00, 0x00, 0x85, 0x23, 0x8B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x85, 0x35, 0xF2, 0x70, 0x00, +0x00, 0x00, 0x00, 0x85, 0x2C, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x35, 0xF2, 0x70, 0x00, 0x00, 0x00, 0x00, 0x86, 0x01, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x86, 0xC2, 0xC5, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x86, 0xF0, 0xF8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x87, 0x15, 0xD4, 0x70, 0x00, +0x00, 0x00, 0x00, 0x86, 0xFA, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x15, 0xD4, 0x70, 0x00, 0x00, 0x00, 0x00, 0x87, 0xE0, 0xE9, 0x80, 0x00, 0x00, 0x00, 0x00, 0x88, 0x99, 0x6D, 0x70, 0x00, -0x00, 0x00, 0x00, 0x88, 0xC7, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xF5, 0xB6, 0x70, 0x00, +0x00, 0x00, 0x00, 0x88, 0xD0, 0xDA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x88, 0xF5, 0xB6, 0x70, 0x00, 0x00, 0x00, 0x00, 0x89, 0xC0, 0xCB, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x66, 0xDA, 0x70, 0x00, -0x00, 0x00, 0x00, 0x8A, 0x9E, 0x47, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8A, 0xD5, 0x98, 0x70, 0x00, +0x00, 0x00, 0x00, 0x8A, 0xA7, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8A, 0xD5, 0x98, 0x70, 0x00, 0x00, 0x00, 0x00, 0x8B, 0xA0, 0xAD, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x3D, 0x81, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x8C, 0x6B, 0xB4, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8C, 0xBE, 0xB4, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x8C, 0x74, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0xBE, 0xB4, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x8D, 0x80, 0x8F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x14, 0x29, 0x70, 0x00, -0x00, 0x00, 0x00, 0x8E, 0x42, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x9E, 0x96, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x8E, 0x4B, 0x96, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x9E, 0x96, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x8F, 0x60, 0x71, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8F, 0xE1, 0x96, 0x70, 0x00, -0x00, 0x00, 0x00, 0x90, 0x19, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x90, 0x7E, 0x78, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x90, 0x22, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x7E, 0x78, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x91, 0x49, 0x8E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0xB8, 0x3D, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x91, 0xE6, 0x70, 0x80, 0x00, 0x00, 0x00, 0x00, 0x92, 0x5E, 0x5A, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x91, 0xEF, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x5E, 0x5A, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x93, 0x29, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x93, 0x85, 0xAA, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x93, 0xBD, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x94, 0x3E, 0x3C, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x93, 0xC6, 0x52, 0x80, 0x00, 0x00, 0x00, 0x00, 0x94, 0x3E, 0x3C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x95, 0x09, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x95, 0x5C, 0x52, 0x70, 0x00, -0x00, 0x00, 0x00, 0x95, 0x8A, 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x27, 0x59, 0x70, 0x00, +0x00, 0x00, 0x00, 0x95, 0x93, 0xBF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x96, 0x27, 0x59, 0x70, 0x00, 0x00, 0x00, 0x00, 0x96, 0xE9, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x97, 0x32, 0xF9, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x97, 0x61, 0x2C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x98, 0x07, 0x3B, 0x70, 0x00, +0x00, 0x00, 0x00, 0x97, 0x6A, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x07, 0x3B, 0x70, 0x00, 0x00, 0x00, 0x00, 0x98, 0xC9, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0x00, 0x66, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x99, 0x37, 0xD4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0xE7, 0x1D, 0x70, 0x00, +0x00, 0x00, 0x00, 0x99, 0x41, 0x0E, 0x80, 0x00, 0x00, 0x00, 0x00, 0x99, 0xE7, 0x1D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xB2, 0x32, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xD7, 0x0E, 0x70, 0x00, -0x00, 0x00, 0x00, 0x9B, 0x05, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9B, 0xC6, 0xFF, 0x70, 0x00, +0x00, 0x00, 0x00, 0x9B, 0x0E, 0x7B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9B, 0xC6, 0xFF, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9C, 0x92, 0x14, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9C, 0xA4, 0x7B, 0x70, 0x00, -0x00, 0x00, 0x00, 0x9C, 0xDB, 0xE8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9D, 0xA6, 0xE1, 0x70, 0x00, +0x00, 0x00, 0x00, 0x9C, 0xE5, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9D, 0xA6, 0xE1, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9E, 0x71, 0xF6, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9E, 0x7B, 0x22, 0xF0, 0x00, -0x00, 0x00, 0x00, 0x9E, 0xB2, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9F, 0x86, 0xC3, 0x70, 0x00, -0x00, 0x00, 0x00, 0xA0, 0x7F, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA1, 0x6F, 0xDF, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xA2, 0x56, 0xA4, 0x80, 0x00, 0x00, 0x00, 0x00, 0xA3, 0x4F, 0xC1, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xA4, 0x24, 0x11, 0x80, 0x00, 0x00, 0x00, 0x00, 0xA5, 0x2F, 0xA3, 0xF0, 0x00, -0x00, 0x00, 0x00, 0xA5, 0xFA, 0xB9, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA7, 0x0F, 0x85, 0xF0, 0x00, +0x00, 0x00, 0x00, 0x9E, 0xBB, 0xCA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9F, 0x86, 0xC3, 0x70, 0x00, +0x00, 0x00, 0x00, 0xA0, 0x89, 0x37, 0x80, 0x00, 0x00, 0x00, 0x00, 0xA1, 0x6F, 0xDF, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xA2, 0x5F, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA3, 0x4F, 0xC1, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xA4, 0x2D, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA5, 0x2F, 0xA3, 0xF0, 0x00, +0x00, 0x00, 0x00, 0xA6, 0x03, 0xF3, 0x80, 0x00, 0x00, 0x00, 0x00, 0xA7, 0x0F, 0x85, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA7, 0xDA, 0x9B, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA8, 0xEF, 0x67, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA9, 0xBA, 0x7D, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xD8, 0x84, 0x70, 0x00, 0x00, 0x00, 0x00, 0xAB, 0x9A, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAC, 0xB8, 0x66, 0x70, 0x00, @@ -11395,10 +11455,35 @@ 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, 0x60, 0x65, 0x00, 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, 0x37, 0x0C, 0x80, 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, 0x0D, 0xB4, 0x00, 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, 0xDB, 0x21, 0x00, 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, 0xB1, 0xC8, 0x80, 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, 0x88, 0x70, 0x00, 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, 0x55, 0xDD, 0x00, 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, 0x2C, 0x84, 0x80, 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, 0xF9, 0xF1, 0x80, 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, 0xD0, 0x99, 0x00, 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, 0xA7, 0x40, 0x80, 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, 0x74, 0xAD, 0x80, 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, 0x4B, 0x55, 0x00, 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, 0x21, 0xFC, 0x80, 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, 0xEF, 0x69, 0x80, 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,6 +11500,9 @@ 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, +0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 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, @@ -11433,7 +11521,7 @@ 0xFF, 0xFF, 0xFF, 0x88, 0x8C, 0x43, 0x8A, 0xFF, 0xFF, 0xFF, 0xFF, 0x91, 0xA3, 0x2B, 0x0A, 0xFF, 0xFF, 0xFF, 0xFF, 0xCD, 0x35, 0xE6, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xD1, 0x59, 0xCE, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x3B, 0x3E, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x32, 0xBB, 0x10, 0xFF, -0xFF, 0xFF, 0xFF, 0xE4, 0xB6, 0xE4, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xED, 0x2F, 0x98, 0x00, 0x00, +0xFF, 0xFF, 0xFF, 0xE4, 0xB6, 0xF2, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xED, 0x2F, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x3D, 0xC7, 0x00, 0x01, 0x02, 0x03, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, 0x63, 0xF6, 0x00, 0x00, 0x00, 0x00, 0x63, 0xF6, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x00, 0x09, 0x00, 0x00, 0x70, 0x80, 0x00, 0x0D, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x11, 0x4C, 0x4D, @@ -11700,7 +11788,7 @@ 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 +12332,10 @@ 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 +12399,10 @@ 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, @@ -12586,7 +12674,7 @@ 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, 0x33, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x10, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xAA, 0x19, 0x88, 0x5C, 0xFF, 0xFF, 0xFF, 0xFF, 0xB5, 0xA3, 0xFD, 0x40, 0x00, 0x00, 0x00, 0x00, 0x15, 0x27, 0x8B, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x16, 0x18, 0xC0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x17, 0x08, 0xB1, 0x20, 0x00, 0x00, 0x00, 0x00, 0x17, 0xF9, 0xF3, 0xA0, 0x00, @@ -12612,16 +12700,17 @@ 0x00, 0x00, 0x00, 0x3B, 0xDB, 0x20, 0x50, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xA6, 0x27, 0x50, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0x02, 0x50, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x86, 0x09, 0x50, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9A, 0xE4, 0x50, 0x00, 0x00, 0x00, 0x00, 0x40, 0x65, 0xEB, 0x50, 0x00, -0x00, 0x00, 0x00, 0x41, 0x84, 0x00, 0xD0, 0x01, 0x02, 0x03, 0x04, 0x03, 0x02, 0x03, 0x02, 0x03, -0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x05, 0x01, 0x02, +0x00, 0x00, 0x00, 0x41, 0x84, 0x00, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x65, 0xE0, 0xC6, 0x20, 0x01, +0x02, 0x03, 0x04, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x05, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, -0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x04, 0x00, 0x00, 0x3B, 0xA4, 0x00, 0x00, -0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50, 0x00, 0x08, 0x00, 0x00, 0x54, 0x60, -0x01, 0x0C, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x46, 0x50, 0x01, 0x08, 0x4C, 0x4D, -0x54, 0x00, 0x2B, 0x30, 0x34, 0x00, 0x2B, 0x30, 0x35, 0x00, 0x2B, 0x30, 0x36, 0x00, 0x0A, 0x3C, -0x2B, 0x30, 0x36, 0x3E, 0x2D, 0x36, 0x0A, 0x00, 0xDA, 0x81, 0x7F, 0x01, 0x73, 0xBA, 0xC2, 0x00, -0x00, 0x00, 0x1A, 0x51, 0x6F, 0x73, 0x74, 0x61, 0x6E, 0x61, 0x79, 0x2F, 0x4B, 0x6F, 0x73, 0x74, -0x61, 0x6E, 0x61, 0x79, 0x2F, 0x4B, 0x75, 0x73, 0x74, 0x61, 0x6E, 0x61, 0x79, +0x03, 0x04, 0x02, 0x00, 0x00, 0x3B, 0xA4, 0x00, 0x00, 0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x00, +0x00, 0x46, 0x50, 0x00, 0x08, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0C, 0x00, 0x00, 0x54, 0x60, 0x00, +0x0C, 0x00, 0x00, 0x46, 0x50, 0x01, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x2B, 0x30, 0x34, 0x00, 0x2B, +0x30, 0x35, 0x00, 0x2B, 0x30, 0x36, 0x00, 0x0A, 0x3C, 0x2B, 0x30, 0x35, 0x3E, 0x2D, 0x35, 0x0A, +0x00, 0xDA, 0x81, 0x7F, 0x01, 0x73, 0xBA, 0xC2, 0x00, 0x00, 0x00, 0x1A, 0x51, 0x6F, 0x73, 0x74, +0x61, 0x6E, 0x61, 0x79, 0x2F, 0x4B, 0x6F, 0x73, 0x74, 0x61, 0x6E, 0x61, 0x79, 0x2F, 0x4B, 0x75, +0x73, 0x74, 0x61, 0x6E, 0x61, 0x79, /* Asia/Qyzylorda */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x4B, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -12704,7 +12793,7 @@ 0xFF, 0xFF, 0xFF, 0x88, 0x8C, 0x43, 0x8A, 0xFF, 0xFF, 0xFF, 0xFF, 0x91, 0xA3, 0x2B, 0x0A, 0xFF, 0xFF, 0xFF, 0xFF, 0xCD, 0x35, 0xE6, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xD1, 0x59, 0xCE, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x3B, 0x3E, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x32, 0xBB, 0x10, 0xFF, -0xFF, 0xFF, 0xFF, 0xE4, 0xB6, 0xE4, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xED, 0x2F, 0x98, 0x00, 0x00, +0xFF, 0xFF, 0xFF, 0xE4, 0xB6, 0xF2, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xED, 0x2F, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x3D, 0xC7, 0x00, 0x01, 0x02, 0x03, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, 0x63, 0xF6, 0x00, 0x00, 0x00, 0x00, 0x63, 0xF6, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x00, 0x09, 0x00, 0x00, 0x70, 0x80, 0x00, 0x0D, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x11, 0x4C, 0x4D, @@ -12917,7 +13006,7 @@ 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 */ @@ -15639,10 +15728,10 @@ 0xFF, 0xFF, 0xFF, 0xC7, 0x0F, 0x3A, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x2D, 0x5E, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x88, 0xF0, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x60, 0xFB, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD3, 0x75, 0xE4, 0xF0, 0xFF, -0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xAA, 0xD0, 0xFF, -0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xA3, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0x8C, 0xD0, 0xFF, -0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0x85, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x6E, 0xD0, 0xFF, -0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x76, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, 0x70, 0xFF, +0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xC6, 0xF0, 0xFF, +0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xBF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0xA8, 0xF0, 0xFF, +0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0xA1, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x8A, 0xF0, 0xFF, +0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x92, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x13, 0x74, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0xDE, 0x89, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0xA9, 0x82, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xBE, 0x6B, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x89, 0x64, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x9E, 0x4D, 0x70, 0xFF, @@ -15882,7 +15971,7 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ { (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" , 0x049442 }, + { (char*) "Asia/Hebron" , 0x04967F }, + { (char*) "Asia/Ho_Chi_Minh" , 0x04A5B4 }, + { (char*) "Asia/Hong_Kong" , 0x04A711 }, + { (char*) "Asia/Hovd" , 0x04ABEE }, + { (char*) "Asia/Irkutsk" , 0x04AF92 }, + { (char*) "Asia/Istanbul" , 0x04B485 }, + { (char*) "Asia/Jakarta" , 0x04BC1E }, + { (char*) "Asia/Jayapura" , 0x04BDB6 }, + { (char*) "Asia/Jerusalem" , 0x04BED5 }, + { (char*) "Asia/Kabul" , 0x04C835 }, + { (char*) "Asia/Kamchatka" , 0x04C903 }, + { (char*) "Asia/Karachi" , 0x04CDA1 }, + { (char*) "Asia/Kashgar" , 0x04CF28 }, + { (char*) "Asia/Kathmandu" , 0x04CFCB }, + { (char*) "Asia/Katmandu" , 0x04D09D }, + { (char*) "Asia/Khandyga" , 0x04D16F }, + { (char*) "Asia/Kolkata" , 0x04D682 }, + { (char*) "Asia/Krasnoyarsk" , 0x04D7AB }, + { (char*) "Asia/Kuala_Lumpur" , 0x04DC79 }, + { (char*) "Asia/Kuching" , 0x04DE2A }, + { (char*) "Asia/Kuwait" , 0x04E019 }, + { (char*) "Asia/Macao" , 0x04E0BC }, + { (char*) "Asia/Macau" , 0x04E593 }, + { (char*) "Asia/Magadan" , 0x04EA6A }, + { (char*) "Asia/Makassar" , 0x04EF3E }, + { (char*) "Asia/Manila" , 0x04F091 }, + { (char*) "Asia/Muscat" , 0x04F1E5 }, + { (char*) "Asia/Nicosia" , 0x04F288 }, + { (char*) "Asia/Novokuznetsk" , 0x04FA74 }, + { (char*) "Asia/Novosibirsk" , 0x04FF10 }, + { (char*) "Asia/Omsk" , 0x0503E7 }, + { (char*) "Asia/Oral" , 0x0508A9 }, + { (char*) "Asia/Phnom_Penh" , 0x050CA3 }, + { (char*) "Asia/Pontianak" , 0x050DC8 }, + { (char*) "Asia/Pyongyang" , 0x050F4B }, + { (char*) "Asia/Qatar" , 0x051044 }, + { (char*) "Asia/Qostanay" , 0x051109 }, + { (char*) "Asia/Qyzylorda" , 0x051530 }, + { (char*) "Asia/Rangoon" , 0x05194C }, + { (char*) "Asia/Riyadh" , 0x051A56 }, + { (char*) "Asia/Saigon" , 0x051AF9 }, + { (char*) "Asia/Sakhalin" , 0x051C56 }, + { (char*) "Asia/Samarkand" , 0x05211E }, + { (char*) "Asia/Seoul" , 0x05236E }, + { (char*) "Asia/Shanghai" , 0x0525E3 }, + { (char*) "Asia/Singapore" , 0x05282C }, + { (char*) "Asia/Srednekolymsk" , 0x0529C9 }, + { (char*) "Asia/Taipei" , 0x052E9D }, + { (char*) "Asia/Tashkent" , 0x0531A2 }, + { (char*) "Asia/Tbilisi" , 0x053400 }, + { (char*) "Asia/Tehran" , 0x053809 }, + { (char*) "Asia/Tel_Aviv" , 0x053CF5 }, + { (char*) "Asia/Thimbu" , 0x054655 }, + { (char*) "Asia/Thimphu" , 0x05471E }, + { (char*) "Asia/Tokyo" , 0x0547E7 }, + { (char*) "Asia/Tomsk" , 0x054928 }, + { (char*) "Asia/Ujung_Pandang" , 0x054DF9 }, + { (char*) "Asia/Ulaanbaatar" , 0x054F03 }, + { (char*) "Asia/Ulan_Bator" , 0x05528C }, + { (char*) "Asia/Urumqi" , 0x055605 }, + { (char*) "Asia/Ust-Nera" , 0x0556B5 }, + { (char*) "Asia/Vientiane" , 0x055BAB }, + { (char*) "Asia/Vladivostok" , 0x055CEC }, + { (char*) "Asia/Yakutsk" , 0x0561B5 }, + { (char*) "Asia/Yangon" , 0x05667D }, + { (char*) "Asia/Yekaterinburg" , 0x056787 }, + { (char*) "Asia/Yerevan" , 0x056C6E }, + { (char*) "Atlantic/Azores" , 0x0570EB }, + { (char*) "Atlantic/Bermuda" , 0x057EA7 }, + { (char*) "Atlantic/Canary" , 0x05880F }, + { (char*) "Atlantic/Cape_Verde" , 0x058F92 }, + { (char*) "Atlantic/Faeroe" , 0x05909E }, + { (char*) "Atlantic/Faroe" , 0x0597C1 }, + { (char*) "Atlantic/Jan_Mayen" , 0x059EE4 }, + { (char*) "Atlantic/Madeira" , 0x05A7EA }, + { (char*) "Atlantic/Reykjavik" , 0x05B5B4 }, + { (char*) "Atlantic/South_Georgia" , 0x05BA4A }, + { (char*) "Atlantic/St_Helena" , 0x05BAEC }, + { (char*) "Atlantic/Stanley" , 0x05BBAE }, + { (char*) "Australia/ACT" , 0x05C06A }, + { (char*) "Australia/Adelaide" , 0x05C904 }, + { (char*) "Australia/Brisbane" , 0x05D1BF }, + { (char*) "Australia/Broken_Hill" , 0x05D385 }, + { (char*) "Australia/Canberra" , 0x05DC62 }, + { (char*) "Australia/Currie" , 0x05E4FC }, + { (char*) "Australia/Darwin" , 0x05EE3E }, + { (char*) "Australia/Eucla" , 0x05EFA1 }, + { (char*) "Australia/Hobart" , 0x05F18E }, + { (char*) "Australia/LHI" , 0x05FAD8 }, + { (char*) "Australia/Lindeman" , 0x06021A }, + { (char*) "Australia/Lord_Howe" , 0x060420 }, + { (char*) "Australia/Melbourne" , 0x060B72 }, + { (char*) "Australia/North" , 0x061414 }, + { (char*) "Australia/NSW" , 0x061565 }, + { (char*) "Australia/Perth" , 0x061DFF }, + { (char*) "Australia/Queensland" , 0x061FE7 }, + { (char*) "Australia/South" , 0x062196 }, + { (char*) "Australia/Sydney" , 0x062A42 }, + { (char*) "Australia/Tasmania" , 0x0632F8 }, + { (char*) "Australia/Victoria" , 0x063C3A }, + { (char*) "Australia/West" , 0x0644D4 }, + { (char*) "Australia/Yancowinna" , 0x06469E }, + { (char*) "Brazil/Acre" , 0x064F5F }, + { (char*) "Brazil/DeNoronha" , 0x0651D1 }, + { (char*) "Brazil/East" , 0x06549B }, + { (char*) "Brazil/West" , 0x065A3D }, + { (char*) "Canada/Atlantic" , 0x065C97 }, + { (char*) "Canada/Central" , 0x066A03 }, + { (char*) "Canada/Eastern" , 0x067543 }, + { (char*) "Canada/Mountain" , 0x0682F5 }, + { (char*) "Canada/Newfoundland" , 0x068C1D }, + { (char*) "Canada/Pacific" , 0x069A70 }, + { (char*) "Canada/Saskatchewan" , 0x06A5C8 }, + { (char*) "Canada/Yukon" , 0x06A9A8 }, + { (char*) "CET" , 0x06B002 }, + { (char*) "Chile/Continental" , 0x06B83C }, + { (char*) "Chile/EasterIsland" , 0x06C21B }, + { (char*) "CST6CDT" , 0x06CAD2 }, + { (char*) "Cuba" , 0x06D3E4 }, + { (char*) "EET" , 0x06DD60 }, + { (char*) "Egypt" , 0x06E4E0 }, + { (char*) "Eire" , 0x06EE4B }, + { (char*) "EST" , 0x06FBFB }, + { (char*) "EST5EDT" , 0x06FC79 }, + { (char*) "Etc/GMT" , 0x07058B }, + { (char*) "Etc/GMT+0" , 0x070609 }, + { (char*) "Etc/GMT+1" , 0x070687 }, + { (char*) "Etc/GMT+10" , 0x070707 }, + { (char*) "Etc/GMT+11" , 0x070788 }, + { (char*) "Etc/GMT+12" , 0x070809 }, + { (char*) "Etc/GMT+2" , 0x07088A }, + { (char*) "Etc/GMT+3" , 0x07090A }, + { (char*) "Etc/GMT+4" , 0x07098A }, + { (char*) "Etc/GMT+5" , 0x070A0A }, + { (char*) "Etc/GMT+6" , 0x070A8A }, + { (char*) "Etc/GMT+7" , 0x070B0A }, + { (char*) "Etc/GMT+8" , 0x070B8A }, + { (char*) "Etc/GMT+9" , 0x070C0A }, + { (char*) "Etc/GMT-0" , 0x070C8A }, + { (char*) "Etc/GMT-1" , 0x070D08 }, + { (char*) "Etc/GMT-10" , 0x070D89 }, + { (char*) "Etc/GMT-11" , 0x070E0B }, + { (char*) "Etc/GMT-12" , 0x070E8D }, + { (char*) "Etc/GMT-13" , 0x070F0F }, + { (char*) "Etc/GMT-14" , 0x070F91 }, + { (char*) "Etc/GMT-2" , 0x071013 }, + { (char*) "Etc/GMT-3" , 0x071094 }, + { (char*) "Etc/GMT-4" , 0x071115 }, + { (char*) "Etc/GMT-5" , 0x071196 }, + { (char*) "Etc/GMT-6" , 0x071217 }, + { (char*) "Etc/GMT-7" , 0x071298 }, + { (char*) "Etc/GMT-8" , 0x071319 }, + { (char*) "Etc/GMT-9" , 0x07139A }, + { (char*) "Etc/GMT0" , 0x07141B }, + { (char*) "Etc/Greenwich" , 0x071499 }, + { (char*) "Etc/UCT" , 0x071517 }, + { (char*) "Etc/Universal" , 0x071595 }, + { (char*) "Etc/UTC" , 0x071613 }, + { (char*) "Etc/Zulu" , 0x071691 }, + { (char*) "Europe/Amsterdam" , 0x07170F }, + { (char*) "Europe/Andorra" , 0x072279 }, + { (char*) "Europe/Astrakhan" , 0x072953 }, + { (char*) "Europe/Athens" , 0x072DF0 }, + { (char*) "Europe/Belfast" , 0x0736D2 }, + { (char*) "Europe/Belgrade" , 0x07452E }, + { (char*) "Europe/Berlin" , 0x074CBA }, + { (char*) "Europe/Bratislava" , 0x0755CF }, + { (char*) "Europe/Brussels" , 0x075ED8 }, + { (char*) "Europe/Bucharest" , 0x076A59 }, + { (char*) "Europe/Budapest" , 0x0772ED }, + { (char*) "Europe/Busingen" , 0x077C39 }, + { (char*) "Europe/Chisinau" , 0x0783C2 }, + { (char*) "Europe/Copenhagen" , 0x078D24 }, + { (char*) "Europe/Dublin" , 0x079589 }, + { (char*) "Europe/Gibraltar" , 0x07A339 }, + { (char*) "Europe/Guernsey" , 0x07AF41 }, + { (char*) "Europe/Helsinki" , 0x07BDE1 }, + { (char*) "Europe/Isle_of_Man" , 0x07C559 }, + { (char*) "Europe/Istanbul" , 0x07D3A5 }, + { (char*) "Europe/Jersey" , 0x07DB3E }, + { (char*) "Europe/Kaliningrad" , 0x07E9DE }, + { (char*) "Europe/Kiev" , 0x07EFD3 }, + { (char*) "Europe/Kirov" , 0x07F827 }, + { (char*) "Europe/Kyiv" , 0x07FCE2 }, + { (char*) "Europe/Lisbon" , 0x080545 }, + { (char*) "Europe/Ljubljana" , 0x08130D }, + { (char*) "Europe/London" , 0x081A99 }, + { (char*) "Europe/Luxembourg" , 0x0828F5 }, + { (char*) "Europe/Madrid" , 0x083483 }, + { (char*) "Europe/Malta" , 0x083ED5 }, + { (char*) "Europe/Mariehamn" , 0x08491D }, + { (char*) "Europe/Minsk" , 0x085095 }, + { (char*) "Europe/Monaco" , 0x0855BC }, + { (char*) "Europe/Moscow" , 0x086148 }, + { (char*) "Europe/Nicosia" , 0x086767 }, + { (char*) "Europe/Oslo" , 0x086F45 }, + { (char*) "Europe/Paris" , 0x087805 }, + { (char*) "Europe/Podgorica" , 0x0883A3 }, + { (char*) "Europe/Prague" , 0x088B2F }, + { (char*) "Europe/Riga" , 0x089438 }, + { (char*) "Europe/Rome" , 0x089CDA }, + { (char*) "Europe/Samara" , 0x08A737 }, + { (char*) "Europe/San_Marino" , 0x08AC0D }, + { (char*) "Europe/Sarajevo" , 0x08B66A }, + { (char*) "Europe/Saratov" , 0x08BDF6 }, + { (char*) "Europe/Simferopol" , 0x08C2A3 }, + { (char*) "Europe/Skopje" , 0x08C872 }, + { (char*) "Europe/Sofia" , 0x08CFFE }, + { (char*) "Europe/Stockholm" , 0x08D827 }, + { (char*) "Europe/Tallinn" , 0x08DFA8 }, + { (char*) "Europe/Tirane" , 0x08E818 }, + { (char*) "Europe/Tiraspol" , 0x08F048 }, + { (char*) "Europe/Ulyanovsk" , 0x08F9AA }, + { (char*) "Europe/Uzhgorod" , 0x08FEAD }, + { (char*) "Europe/Vaduz" , 0x090701 }, + { (char*) "Europe/Vatican" , 0x090E6D }, + { (char*) "Europe/Vienna" , 0x0918CA }, + { (char*) "Europe/Vilnius" , 0x09216E }, + { (char*) "Europe/Volgograd" , 0x0929EC }, + { (char*) "Europe/Warsaw" , 0x092EB3 }, + { (char*) "Europe/Zagreb" , 0x09391D }, + { (char*) "Europe/Zaporozhye" , 0x0940A9 }, + { (char*) "Europe/Zurich" , 0x0948FD }, + { (char*) "Factory" , 0x09507E }, + { (char*) "GB" , 0x0950FE }, + { (char*) "GB-Eire" , 0x095F5A }, + { (char*) "GMT" , 0x096DB6 }, + { (char*) "GMT+0" , 0x096E34 }, + { (char*) "GMT-0" , 0x096EB2 }, + { (char*) "GMT0" , 0x096F30 }, + { (char*) "Greenwich" , 0x096FAE }, + { (char*) "Hongkong" , 0x09702C }, + { (char*) "HST" , 0x097509 }, + { (char*) "Iceland" , 0x097588 }, + { (char*) "Indian/Antananarivo" , 0x097628 }, + { (char*) "Indian/Chagos" , 0x09770F }, + { (char*) "Indian/Christmas" , 0x0977D4 }, + { (char*) "Indian/Cocos" , 0x097877 }, + { (char*) "Indian/Comoro" , 0x097923 }, + { (char*) "Indian/Kerguelen" , 0x0979C4 }, + { (char*) "Indian/Mahe" , 0x097A67 }, + { (char*) "Indian/Maldives" , 0x097B0A }, + { (char*) "Indian/Mauritius" , 0x097BCF }, + { (char*) "Indian/Mayotte" , 0x097CBE }, + { (char*) "Indian/Reunion" , 0x097D5F }, + { (char*) "Iran" , 0x097E02 }, + { (char*) "Israel" , 0x0982EE }, + { (char*) "Jamaica" , 0x098C4E }, + { (char*) "Japan" , 0x098E3C }, + { (char*) "Kwajalein" , 0x098F7D }, + { (char*) "Libya" , 0x0990B7 }, + { (char*) "MET" , 0x099334 }, + { (char*) "Mexico/BajaNorte" , 0x099B6E }, + { (char*) "Mexico/BajaSur" , 0x09A4C0 }, + { (char*) "Mexico/General" , 0x09A934 }, + { (char*) "MST" , 0x09AE06 }, + { (char*) "MST7MDT" , 0x09AE84 }, + { (char*) "Navajo" , 0x09B796 }, + { (char*) "NZ" , 0x09C13E }, + { (char*) "NZ-CHAT" , 0x09CACF }, + { (char*) "Pacific/Apia" , 0x09D2E1 }, + { (char*) "Pacific/Auckland" , 0x09D543 }, + { (char*) "Pacific/Bougainville" , 0x09DEE7 }, + { (char*) "Pacific/Chatham" , 0x09DFFD }, + { (char*) "Pacific/Chuuk" , 0x09E81E }, + { (char*) "Pacific/Easter" , 0x09E938 }, + { (char*) "Pacific/Efate" , 0x09F1FC }, + { (char*) "Pacific/Enderbury" , 0x09F414 }, + { (char*) "Pacific/Fakaofo" , 0x09F4FC }, + { (char*) "Pacific/Fiji" , 0x09F5C2 }, + { (char*) "Pacific/Funafuti" , 0x09F802 }, + { (char*) "Pacific/Galapagos" , 0x09F8A6 }, + { (char*) "Pacific/Gambier" , 0x09F9A3 }, + { (char*) "Pacific/Guadalcanal" , 0x09FA54 }, + { (char*) "Pacific/Guam" , 0x09FAF8 }, + { (char*) "Pacific/Honolulu" , 0x09FCF2 }, + { (char*) "Pacific/Johnston" , 0x09FE4D }, + { (char*) "Pacific/Kanton" , 0x09FFA2 }, + { (char*) "Pacific/Kiritimati" , 0x0A0099 }, + { (char*) "Pacific/Kosrae" , 0x0A0191 }, + { (char*) "Pacific/Kwajalein" , 0x0A02F4 }, + { (char*) "Pacific/Majuro" , 0x0A0437 }, + { (char*) "Pacific/Marquesas" , 0x0A0583 }, + { (char*) "Pacific/Midway" , 0x0A063F }, + { (char*) "Pacific/Nauru" , 0x0A0732 }, + { (char*) "Pacific/Niue" , 0x0A082C }, + { (char*) "Pacific/Norfolk" , 0x0A08F5 }, + { (char*) "Pacific/Noumea" , 0x0A0C63 }, + { (char*) "Pacific/Pago_Pago" , 0x0A0D91 }, + { (char*) "Pacific/Palau" , 0x0A0E4C }, + { (char*) "Pacific/Pitcairn" , 0x0A0EFE }, + { (char*) "Pacific/Pohnpei" , 0x0A0FC6 }, + { (char*) "Pacific/Ponape" , 0x0A1101 }, + { (char*) "Pacific/Port_Moresby" , 0x0A11A5 }, + { (char*) "Pacific/Rarotonga" , 0x0A1275 }, + { (char*) "Pacific/Saipan" , 0x0A14CE }, + { (char*) "Pacific/Samoa" , 0x0A16BA }, + { (char*) "Pacific/Tahiti" , 0x0A1775 }, + { (char*) "Pacific/Tarawa" , 0x0A1827 }, + { (char*) "Pacific/Tongatapu" , 0x0A18DA }, + { (char*) "Pacific/Truk" , 0x0A1A4C }, + { (char*) "Pacific/Wake" , 0x0A1B04 }, + { (char*) "Pacific/Wallis" , 0x0A1BB3 }, + { (char*) "Pacific/Yap" , 0x0A1C57 }, + { (char*) "Poland" , 0x0A1D0F }, + { (char*) "Portugal" , 0x0A2779 }, + { (char*) "PRC" , 0x0A352E }, + { (char*) "PST8PDT" , 0x0A376B }, + { (char*) "ROC" , 0x0A407D }, + { (char*) "ROK" , 0x0A4382 }, + { (char*) "Singapore" , 0x0A45F7 }, + { (char*) "Turkey" , 0x0A4794 }, + { (char*) "UCT" , 0x0A4F2D }, + { (char*) "Universal" , 0x0A4FAB }, + { (char*) "US/Alaska" , 0x0A5029 }, + { (char*) "US/Aleutian" , 0x0A5978 }, + { (char*) "US/Arizona" , 0x0A62B8 }, + { (char*) "US/Central" , 0x0A642C }, + { (char*) "US/East-Indiana" , 0x0A7240 }, + { (char*) "US/Eastern" , 0x0A78DE }, + { (char*) "US/Hawaii" , 0x0A86CA }, + { (char*) "US/Indiana-Starke" , 0x0A881F }, + { (char*) "US/Michigan" , 0x0A91B7 }, + { (char*) "US/Mountain" , 0x0A9A79 }, + { (char*) "US/Pacific" , 0x0AA421 }, + { (char*) "US/Samoa" , 0x0AAF51 }, + { (char*) "UTC" , 0x0AB00C }, + { (char*) "W-SU" , 0x0AB08A }, + { (char*) "WET" , 0x0AB695 }, + { (char*) "Zulu" , 0x0ABE12 }, }; -const unsigned char timelib_timezone_db_data_builtin[703933] = { +const unsigned char timelib_timezone_db_data_builtin[704144] = { /* Africa/Abidjan */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -26616,7 +26704,7 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ /* 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 @@ 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 @@ 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, @@ -34980,7 +35067,7 @@ /* America/Miquelon */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x50, 0x4D, 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, 0x68, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x91, 0xB6, 0x38, 0xA8, +0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x91, 0xDF, 0x17, 0x28, 0x13, 0x6E, 0x63, 0xC0, 0x20, 0x75, 0xE4, 0xD0, 0x21, 0x81, 0x77, 0x40, 0x22, 0x55, 0xC6, 0xD0, 0x23, 0x6A, 0x93, 0xC0, 0x24, 0x35, 0xA8, 0xD0, 0x25, 0x4A, 0x75, 0xC0, 0x26, 0x15, 0x8A, 0xD0, 0x27, 0x2A, 0x57, 0xC0, 0x27, 0xFE, 0xA7, 0x50, 0x29, 0x0A, 0x39, 0xC0, 0x29, 0xDE, 0x89, 0x50, @@ -35018,7 +35105,7 @@ 0x41, 0x53, 0x54, 0x00, 0x2D, 0x30, 0x33, 0x00, 0x2D, 0x30, 0x32, 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, 0x68, -0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0x91, 0xB6, 0x38, 0xA8, +0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0x91, 0xDF, 0x17, 0x28, 0x00, 0x00, 0x00, 0x00, 0x13, 0x6E, 0x63, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x20, 0x75, 0xE4, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x21, 0x81, 0x77, 0x40, 0x00, 0x00, 0x00, 0x00, 0x22, 0x55, 0xC6, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x23, 0x6A, 0x93, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x24, 0x35, 0xA8, 0xD0, @@ -35467,8 +35554,8 @@ 0xC0, 0xA4, 0x9B, 0xF0, 0xC1, 0x6F, 0x94, 0xE0, 0xC2, 0x84, 0x7D, 0xF0, 0xC3, 0x4F, 0x76, 0xE0, 0xC4, 0x64, 0x5F, 0xF0, 0xC5, 0x2F, 0x58, 0xE0, 0xC6, 0x4D, 0x7C, 0x70, 0xC7, 0x0F, 0x3A, 0xE0, 0xC8, 0x2D, 0x5E, 0x70, 0xCB, 0x88, 0xF0, 0x70, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x60, 0xFB, 0xE0, -0xD3, 0x75, 0xE4, 0xF0, 0xD4, 0x40, 0xDD, 0xE0, 0xD5, 0x55, 0xAA, 0xD0, 0xD6, 0x20, 0xA3, 0xC0, -0xD7, 0x35, 0x8C, 0xD0, 0xD8, 0x00, 0x85, 0xC0, 0xD9, 0x15, 0x6E, 0xD0, 0xDA, 0x33, 0x76, 0x40, +0xD3, 0x75, 0xE4, 0xF0, 0xD4, 0x40, 0xDD, 0xE0, 0xD5, 0x55, 0xC6, 0xF0, 0xD6, 0x20, 0xBF, 0xE0, +0xD7, 0x35, 0xA8, 0xF0, 0xD8, 0x00, 0xA1, 0xE0, 0xD9, 0x15, 0x8A, 0xF0, 0xDA, 0x33, 0x92, 0x60, 0xDA, 0xFE, 0xA7, 0x70, 0xDC, 0x13, 0x74, 0x60, 0xDC, 0xDE, 0x89, 0x70, 0xDD, 0xA9, 0x82, 0x60, 0xDE, 0xBE, 0x6B, 0x70, 0xDF, 0x89, 0x64, 0x60, 0xE0, 0x9E, 0x4D, 0x70, 0xE1, 0x69, 0x46, 0x60, 0xE2, 0x7E, 0x2F, 0x70, 0xE3, 0x49, 0x28, 0x60, 0xE4, 0x5E, 0x11, 0x70, 0xE5, 0x29, 0x0A, 0x60, @@ -35559,10 +35646,10 @@ 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xC7, 0x0F, 0x3A, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x2D, 0x5E, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x88, 0xF0, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x60, 0xFB, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD3, 0x75, 0xE4, -0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xAA, -0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xA3, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0x8C, -0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0x85, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x6E, -0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x76, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xC6, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xBF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0xA8, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0xA1, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x8A, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x92, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x13, 0x74, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0xDE, 0x89, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0xA9, 0x82, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xBE, 0x6B, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x89, 0x64, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x9E, 0x4D, @@ -36082,8 +36169,8 @@ 0xC0, 0xA4, 0x9B, 0xF0, 0xC1, 0x6F, 0x94, 0xE0, 0xC2, 0x84, 0x7D, 0xF0, 0xC3, 0x4F, 0x76, 0xE0, 0xC4, 0x64, 0x5F, 0xF0, 0xC5, 0x2F, 0x58, 0xE0, 0xC6, 0x4D, 0x7C, 0x70, 0xC7, 0x0F, 0x3A, 0xE0, 0xC8, 0x2D, 0x5E, 0x70, 0xCB, 0x88, 0xF0, 0x70, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x60, 0xFB, 0xE0, -0xD3, 0x75, 0xE4, 0xF0, 0xD4, 0x40, 0xDD, 0xE0, 0xD5, 0x55, 0xAA, 0xD0, 0xD6, 0x20, 0xA3, 0xC0, -0xD7, 0x35, 0x8C, 0xD0, 0xD8, 0x00, 0x85, 0xC0, 0xD9, 0x15, 0x6E, 0xD0, 0xDA, 0x33, 0x76, 0x40, +0xD3, 0x75, 0xE4, 0xF0, 0xD4, 0x40, 0xDD, 0xE0, 0xD5, 0x55, 0xC6, 0xF0, 0xD6, 0x20, 0xBF, 0xE0, +0xD7, 0x35, 0xA8, 0xF0, 0xD8, 0x00, 0xA1, 0xE0, 0xD9, 0x15, 0x8A, 0xF0, 0xDA, 0x33, 0x92, 0x60, 0xDA, 0xFE, 0xA7, 0x70, 0xDC, 0x13, 0x74, 0x60, 0xDC, 0xDE, 0x89, 0x70, 0xDD, 0xA9, 0x82, 0x60, 0xDE, 0xBE, 0x6B, 0x70, 0xDF, 0x89, 0x64, 0x60, 0xE0, 0x9E, 0x4D, 0x70, 0xE1, 0x69, 0x46, 0x60, 0xE2, 0x7E, 0x2F, 0x70, 0xE3, 0x49, 0x28, 0x60, 0xE4, 0x5E, 0x11, 0x70, 0xE5, 0x29, 0x0A, 0x60, @@ -36174,10 +36261,10 @@ 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xC7, 0x0F, 0x3A, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x2D, 0x5E, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x88, 0xF0, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x60, 0xFB, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD3, 0x75, 0xE4, -0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xAA, -0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xA3, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0x8C, -0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0x85, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x6E, -0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x76, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xC6, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xBF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0xA8, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0xA1, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x8A, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x92, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x13, 0x74, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0xDE, 0x89, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0xA9, 0x82, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xBE, 0x6B, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x89, 0x64, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x9E, 0x4D, @@ -36954,7 +37041,7 @@ /* 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 @@ 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 @@ /* 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 @@ 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 @@ 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 @@ 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, @@ -39776,8 +39863,8 @@ 0xC0, 0xA4, 0x9B, 0xF0, 0xC1, 0x6F, 0x94, 0xE0, 0xC2, 0x84, 0x7D, 0xF0, 0xC3, 0x4F, 0x76, 0xE0, 0xC4, 0x64, 0x5F, 0xF0, 0xC5, 0x2F, 0x58, 0xE0, 0xC6, 0x4D, 0x7C, 0x70, 0xC7, 0x0F, 0x3A, 0xE0, 0xC8, 0x2D, 0x5E, 0x70, 0xCB, 0x88, 0xF0, 0x70, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x60, 0xFB, 0xE0, -0xD3, 0x75, 0xE4, 0xF0, 0xD4, 0x40, 0xDD, 0xE0, 0xD5, 0x55, 0xAA, 0xD0, 0xD6, 0x20, 0xA3, 0xC0, -0xD7, 0x35, 0x8C, 0xD0, 0xD8, 0x00, 0x85, 0xC0, 0xD9, 0x15, 0x6E, 0xD0, 0xDA, 0x33, 0x76, 0x40, +0xD3, 0x75, 0xE4, 0xF0, 0xD4, 0x40, 0xDD, 0xE0, 0xD5, 0x55, 0xC6, 0xF0, 0xD6, 0x20, 0xBF, 0xE0, +0xD7, 0x35, 0xA8, 0xF0, 0xD8, 0x00, 0xA1, 0xE0, 0xD9, 0x15, 0x8A, 0xF0, 0xDA, 0x33, 0x92, 0x60, 0xDA, 0xFE, 0xA7, 0x70, 0xDC, 0x13, 0x74, 0x60, 0xDC, 0xDE, 0x89, 0x70, 0xDD, 0xA9, 0x82, 0x60, 0xDE, 0xBE, 0x6B, 0x70, 0xDF, 0x89, 0x64, 0x60, 0xE0, 0x9E, 0x4D, 0x70, 0xE1, 0x69, 0x46, 0x60, 0xE2, 0x7E, 0x2F, 0x70, 0xE3, 0x49, 0x28, 0x60, 0xE4, 0x5E, 0x11, 0x70, 0xE5, 0x29, 0x0A, 0x60, @@ -39868,10 +39955,10 @@ 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xC7, 0x0F, 0x3A, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x2D, 0x5E, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x88, 0xF0, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x60, 0xFB, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD3, 0x75, 0xE4, -0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xAA, -0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xA3, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0x8C, -0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0x85, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x6E, -0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x76, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xC6, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xBF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0xA8, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0xA1, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x8A, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x92, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x13, 0x74, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0xDE, 0x89, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0xA9, 0x82, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xBE, 0x6B, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x89, 0x64, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x9E, 0x4D, @@ -40151,8 +40238,8 @@ 0xC0, 0xA4, 0x9B, 0xF0, 0xC1, 0x6F, 0x94, 0xE0, 0xC2, 0x84, 0x7D, 0xF0, 0xC3, 0x4F, 0x76, 0xE0, 0xC4, 0x64, 0x5F, 0xF0, 0xC5, 0x2F, 0x58, 0xE0, 0xC6, 0x4D, 0x7C, 0x70, 0xC7, 0x0F, 0x3A, 0xE0, 0xC8, 0x2D, 0x5E, 0x70, 0xCB, 0x88, 0xF0, 0x70, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x60, 0xFB, 0xE0, -0xD3, 0x75, 0xE4, 0xF0, 0xD4, 0x40, 0xDD, 0xE0, 0xD5, 0x55, 0xAA, 0xD0, 0xD6, 0x20, 0xA3, 0xC0, -0xD7, 0x35, 0x8C, 0xD0, 0xD8, 0x00, 0x85, 0xC0, 0xD9, 0x15, 0x6E, 0xD0, 0xDA, 0x33, 0x76, 0x40, +0xD3, 0x75, 0xE4, 0xF0, 0xD4, 0x40, 0xDD, 0xE0, 0xD5, 0x55, 0xC6, 0xF0, 0xD6, 0x20, 0xBF, 0xE0, +0xD7, 0x35, 0xA8, 0xF0, 0xD8, 0x00, 0xA1, 0xE0, 0xD9, 0x15, 0x8A, 0xF0, 0xDA, 0x33, 0x92, 0x60, 0xDA, 0xFE, 0xA7, 0x70, 0xDC, 0x13, 0x74, 0x60, 0xDC, 0xDE, 0x89, 0x70, 0xDD, 0xA9, 0x82, 0x60, 0xDE, 0xBE, 0x6B, 0x70, 0xDF, 0x89, 0x64, 0x60, 0xE0, 0x9E, 0x4D, 0x70, 0xE1, 0x69, 0x46, 0x60, 0xE2, 0x7E, 0x2F, 0x70, 0xE3, 0x49, 0x28, 0x60, 0xE4, 0x5E, 0x11, 0x70, 0xE5, 0x29, 0x0A, 0x60, @@ -40243,10 +40330,10 @@ 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xC7, 0x0F, 0x3A, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x2D, 0x5E, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x88, 0xF0, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x60, 0xFB, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD3, 0x75, 0xE4, -0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xAA, -0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xA3, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0x8C, -0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0x85, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x6E, -0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x76, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xC6, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xBF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0xA8, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0xA1, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x8A, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x92, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x13, 0x74, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0xDE, 0x89, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0xA9, 0x82, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xBE, 0x6B, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x89, 0x64, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x9E, 0x4D, @@ -40355,8 +40442,9 @@ 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 @@ 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 @@ /* 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 @@ /* 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, @@ -42040,8 +42135,8 @@ /* Asia/Almaty */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x4B, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x10, 0xAA, 0x19, 0x7B, 0xDC, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0xAA, 0x19, 0x7B, 0xDC, 0xB5, 0xA3, 0xEF, 0x30, 0x15, 0x27, 0x7D, 0xA0, 0x16, 0x18, 0xB2, 0x10, 0x17, 0x08, 0xB1, 0x20, 0x17, 0xF9, 0xE5, 0x90, 0x18, 0xE9, 0xE4, 0xA0, 0x19, 0xDB, 0x19, 0x10, 0x1A, 0xCC, 0x69, 0xA0, 0x1B, 0xBC, 0x76, 0xC0, 0x1C, 0xAC, 0x67, 0xC0, 0x1D, 0x9C, 0x58, 0xC0, 0x1E, 0x8C, 0x49, 0xC0, @@ -42054,53 +42149,53 @@ 0x35, 0x1D, 0x56, 0xC0, 0x36, 0x32, 0x31, 0xC0, 0x36, 0xFD, 0x38, 0xC0, 0x38, 0x1B, 0x4E, 0x40, 0x38, 0xDD, 0x1A, 0xC0, 0x39, 0xFB, 0x30, 0x40, 0x3A, 0xBC, 0xFC, 0xC0, 0x3B, 0xDB, 0x12, 0x40, 0x3C, 0xA6, 0x19, 0x40, 0x3D, 0xBA, 0xF4, 0x40, 0x3E, 0x85, 0xFB, 0x40, 0x3F, 0x9A, 0xD6, 0x40, -0x40, 0x65, 0xDD, 0x40, 0x41, 0x83, 0xF2, 0xC0, 0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, -0x02, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x06, 0x07, -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, 0x00, 0x00, 0x48, 0x24, 0x00, -0x00, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x01, 0x08, 0x00, 0x00, 0x54, -0x60, 0x00, 0x0C, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x62, 0x70, 0x01, 0x08, 0x00, -0x00, 0x54, 0x60, 0x01, 0x0C, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x01, -0x08, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x2B, 0x30, 0x35, 0x00, 0x2B, -0x30, 0x37, 0x00, 0x2B, 0x30, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, -0x01, 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, 0x0A, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, -0xFF, 0xAA, 0x19, 0x7B, 0xDC, 0xFF, 0xFF, 0xFF, 0xFF, 0xB5, 0xA3, 0xEF, 0x30, 0x00, 0x00, 0x00, -0x00, 0x15, 0x27, 0x7D, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x16, 0x18, 0xB2, 0x10, 0x00, 0x00, 0x00, -0x00, 0x17, 0x08, 0xB1, 0x20, 0x00, 0x00, 0x00, 0x00, 0x17, 0xF9, 0xE5, 0x90, 0x00, 0x00, 0x00, -0x00, 0x18, 0xE9, 0xE4, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x19, 0xDB, 0x19, 0x10, 0x00, 0x00, 0x00, -0x00, 0x1A, 0xCC, 0x69, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xBC, 0x76, 0xC0, 0x00, 0x00, 0x00, -0x00, 0x1C, 0xAC, 0x67, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x9C, 0x58, 0xC0, 0x00, 0x00, 0x00, -0x00, 0x1E, 0x8C, 0x49, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x7C, 0x3A, 0xC0, 0x00, 0x00, 0x00, -0x00, 0x20, 0x6C, 0x2B, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x21, 0x5C, 0x1C, 0xC0, 0x00, 0x00, 0x00, -0x00, 0x22, 0x4C, 0x0D, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x23, 0x3B, 0xFE, 0xC0, 0x00, 0x00, 0x00, -0x00, 0x24, 0x2B, 0xEF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x25, 0x1B, 0xE0, 0xC0, 0x00, 0x00, 0x00, -0x00, 0x26, 0x0B, 0xD1, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x27, 0x04, 0xFD, 0x40, 0x00, 0x00, 0x00, -0x00, 0x27, 0xF4, 0xEE, 0x40, 0x00, 0x00, 0x00, 0x00, 0x28, 0xE4, 0xED, 0x50, 0x00, 0x00, 0x00, -0x00, 0x29, 0x78, 0x95, 0x50, 0x00, 0x00, 0x00, 0x00, 0x29, 0xD4, 0xD0, 0x40, 0x00, 0x00, 0x00, -0x00, 0x2A, 0xC4, 0xC1, 0x40, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xB4, 0xB2, 0x40, 0x00, 0x00, 0x00, -0x00, 0x2C, 0xA4, 0xA3, 0x40, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0x94, 0x40, 0x00, 0x00, 0x00, -0x00, 0x2E, 0x84, 0x85, 0x40, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0x76, 0x40, 0x00, 0x00, 0x00, -0x00, 0x30, 0x64, 0x67, 0x40, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0x92, 0xC0, 0x00, 0x00, 0x00, -0x00, 0x32, 0x72, 0x6D, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x33, 0x3D, 0x74, 0xC0, 0x00, 0x00, 0x00, -0x00, 0x34, 0x52, 0x4F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x35, 0x1D, 0x56, 0xC0, 0x00, 0x00, 0x00, -0x00, 0x36, 0x32, 0x31, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x36, 0xFD, 0x38, 0xC0, 0x00, 0x00, 0x00, -0x00, 0x38, 0x1B, 0x4E, 0x40, 0x00, 0x00, 0x00, 0x00, 0x38, 0xDD, 0x1A, 0xC0, 0x00, 0x00, 0x00, -0x00, 0x39, 0xFB, 0x30, 0x40, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xBC, 0xFC, 0xC0, 0x00, 0x00, 0x00, -0x00, 0x3B, 0xDB, 0x12, 0x40, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xA6, 0x19, 0x40, 0x00, 0x00, 0x00, -0x00, 0x3D, 0xBA, 0xF4, 0x40, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x85, 0xFB, 0x40, 0x00, 0x00, 0x00, -0x00, 0x3F, 0x9A, 0xD6, 0x40, 0x00, 0x00, 0x00, 0x00, 0x40, 0x65, 0xDD, 0x40, 0x00, 0x00, 0x00, -0x00, 0x41, 0x83, 0xF2, 0xC0, 0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x05, -0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x06, 0x07, 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, 0x00, 0x00, 0x48, 0x24, 0x00, 0x00, 0x00, 0x00, -0x46, 0x50, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x01, 0x08, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, -0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x62, 0x70, 0x01, 0x08, 0x00, 0x00, 0x54, 0x60, -0x01, 0x0C, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x01, 0x08, 0x00, 0x00, -0x54, 0x60, 0x00, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x2B, 0x30, 0x35, 0x00, 0x2B, 0x30, 0x37, 0x00, -0x2B, 0x30, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0A, 0x3C, -0x2B, 0x30, 0x36, 0x3E, 0x2D, 0x36, 0x0A, 0x00, 0xCB, 0x52, 0xC8, 0x01, 0x88, 0x13, 0x18, 0x00, +0x40, 0x65, 0xDD, 0x40, 0x41, 0x83, 0xF2, 0xC0, 0x65, 0xE0, 0xC6, 0x20, 0x01, 0x03, 0x02, 0x03, +0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, +0x05, 0x04, 0x06, 0x07, 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, 0x01, +0x00, 0x00, 0x48, 0x24, 0x00, 0x00, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, +0x01, 0x08, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, 0x00, 0x00, +0x62, 0x70, 0x01, 0x08, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0C, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, +0x00, 0x00, 0x62, 0x70, 0x01, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x2B, 0x30, 0x35, 0x00, 0x2B, 0x30, +0x37, 0x00, 0x2B, 0x30, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 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, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xAA, +0x19, 0x7B, 0xDC, 0xFF, 0xFF, 0xFF, 0xFF, 0xB5, 0xA3, 0xEF, 0x30, 0x00, 0x00, 0x00, 0x00, 0x15, +0x27, 0x7D, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x16, 0x18, 0xB2, 0x10, 0x00, 0x00, 0x00, 0x00, 0x17, +0x08, 0xB1, 0x20, 0x00, 0x00, 0x00, 0x00, 0x17, 0xF9, 0xE5, 0x90, 0x00, 0x00, 0x00, 0x00, 0x18, +0xE9, 0xE4, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x19, 0xDB, 0x19, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1A, +0xCC, 0x69, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xBC, 0x76, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x1C, +0xAC, 0x67, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x9C, 0x58, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x1E, +0x8C, 0x49, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x7C, 0x3A, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x20, +0x6C, 0x2B, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x21, 0x5C, 0x1C, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x22, +0x4C, 0x0D, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x23, 0x3B, 0xFE, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x24, +0x2B, 0xEF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x25, 0x1B, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x26, +0x0B, 0xD1, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x27, 0x04, 0xFD, 0x40, 0x00, 0x00, 0x00, 0x00, 0x27, +0xF4, 0xEE, 0x40, 0x00, 0x00, 0x00, 0x00, 0x28, 0xE4, 0xED, 0x50, 0x00, 0x00, 0x00, 0x00, 0x29, +0x78, 0x95, 0x50, 0x00, 0x00, 0x00, 0x00, 0x29, 0xD4, 0xD0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x2A, +0xC4, 0xC1, 0x40, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xB4, 0xB2, 0x40, 0x00, 0x00, 0x00, 0x00, 0x2C, +0xA4, 0xA3, 0x40, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0x94, 0x40, 0x00, 0x00, 0x00, 0x00, 0x2E, +0x84, 0x85, 0x40, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0x76, 0x40, 0x00, 0x00, 0x00, 0x00, 0x30, +0x64, 0x67, 0x40, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0x92, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x32, +0x72, 0x6D, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x33, 0x3D, 0x74, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x34, +0x52, 0x4F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x35, 0x1D, 0x56, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x36, +0x32, 0x31, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x36, 0xFD, 0x38, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x38, +0x1B, 0x4E, 0x40, 0x00, 0x00, 0x00, 0x00, 0x38, 0xDD, 0x1A, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x39, +0xFB, 0x30, 0x40, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xBC, 0xFC, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x3B, +0xDB, 0x12, 0x40, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xA6, 0x19, 0x40, 0x00, 0x00, 0x00, 0x00, 0x3D, +0xBA, 0xF4, 0x40, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x85, 0xFB, 0x40, 0x00, 0x00, 0x00, 0x00, 0x3F, +0x9A, 0xD6, 0x40, 0x00, 0x00, 0x00, 0x00, 0x40, 0x65, 0xDD, 0x40, 0x00, 0x00, 0x00, 0x00, 0x41, +0x83, 0xF2, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x65, 0xE0, 0xC6, 0x20, 0x01, 0x03, 0x02, 0x03, 0x02, +0x03, 0x02, 0x03, 0x02, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, +0x04, 0x06, 0x07, 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, 0x01, 0x00, +0x00, 0x48, 0x24, 0x00, 0x00, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x01, +0x08, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x62, +0x70, 0x01, 0x08, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0C, 0x00, 0x00, 0x46, 0x50, 0x00, 0x04, 0x00, +0x00, 0x62, 0x70, 0x01, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x2B, 0x30, 0x35, 0x00, 0x2B, 0x30, 0x37, +0x00, 0x2B, 0x30, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0A, 0x3C, +0x2B, 0x30, 0x35, 0x3E, 0x2D, 0x35, 0x0A, 0x00, 0xCB, 0x52, 0xC8, 0x01, 0x88, 0x13, 0x18, 0x00, 0x00, 0x00, 0x12, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x6F, 0x66, 0x20, 0x4B, 0x61, 0x7A, 0x61, 0x6B, 0x68, 0x73, 0x74, 0x61, 0x6E, @@ -43692,7 +43787,7 @@ 0x59, 0xF3, 0xAC, 0x60, 0x5A, 0xB5, 0x86, 0xF0, 0x5B, 0xD3, 0x8E, 0x60, 0x5C, 0x9D, 0x43, 0xE0, 0x5D, 0xB3, 0x62, 0x50, 0x5E, 0x7E, 0x77, 0x60, 0x5F, 0x93, 0x52, 0x60, 0x60, 0x5E, 0x59, 0x60, 0x61, 0x7B, 0x1D, 0x60, 0x62, 0x3F, 0x8C, 0xE0, 0x63, 0x5C, 0x5E, 0xF0, 0x64, 0x4C, 0x5E, 0x00, -0x65, 0x3C, 0x40, 0xF0, 0x66, 0x19, 0xCB, 0x00, 0x67, 0x1C, 0x22, 0xF0, 0x67, 0xF0, 0x72, 0x80, +0x65, 0x3C, 0x40, 0xF0, 0x66, 0x23, 0x05, 0x80, 0x67, 0x1C, 0x22, 0xF0, 0x67, 0xF9, 0xAD, 0x00, 0x68, 0xFC, 0x04, 0xF0, 0x69, 0xC7, 0x1A, 0x00, 0x6A, 0xDB, 0xE6, 0xF0, 0x6B, 0xA6, 0xFC, 0x00, 0x6C, 0xC5, 0x03, 0x70, 0x6D, 0x86, 0xDE, 0x00, 0x6E, 0xA4, 0xE5, 0x70, 0x6F, 0x66, 0xC0, 0x00, 0x70, 0x84, 0xC7, 0x70, 0x71, 0x4F, 0xDC, 0x80, 0x72, 0x64, 0xA9, 0x70, 0x73, 0x2F, 0xBE, 0x80, @@ -43717,7 +43812,7 @@ 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, 0x34, 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, @@ -43779,8 +43874,8 @@ 0x5E, 0x59, 0x60, 0x00, 0x00, 0x00, 0x00, 0x61, 0x7B, 0x1D, 0x60, 0x00, 0x00, 0x00, 0x00, 0x62, 0x3F, 0x8C, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x63, 0x5C, 0x5E, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x64, 0x4C, 0x5E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0x3C, 0x40, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x66, -0x19, 0xCB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x1C, 0x22, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x67, -0xF0, 0x72, 0x80, 0x00, 0x00, 0x00, 0x00, 0x68, 0xFC, 0x04, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x69, +0x23, 0x05, 0x80, 0x00, 0x00, 0x00, 0x00, 0x67, 0x1C, 0x22, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x67, +0xF9, 0xAD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0xFC, 0x04, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x69, 0xC7, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xDB, 0xE6, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x6B, 0xA6, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xC5, 0x03, 0x70, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x86, 0xDE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6E, 0xA4, 0xE5, 0x70, 0x00, 0x00, 0x00, 0x00, 0x6F, @@ -43794,42 +43889,41 @@ 0x98, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7D, 0xA3, 0xF5, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x78, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7A, 0x9C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x80, 0x58, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x48, 0x09, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x82, -0x38, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x1E, 0xB1, 0x70, 0x00, 0x00, 0x00, 0x00, 0x83, -0x4C, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x56, 0x10, 0x70, 0x00, 0x00, 0x00, 0x00, 0x84, +0x38, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x1E, 0xB1, 0x70, 0x00, 0x00, 0x00, 0x00, 0x84, 0x17, 0xEB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0xEC, 0x1E, 0x70, 0x00, 0x00, 0x00, 0x00, 0x85, -0x23, 0x8B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x85, 0x35, 0xF2, 0x70, 0x00, 0x00, 0x00, 0x00, 0x86, +0x2C, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x35, 0xF2, 0x70, 0x00, 0x00, 0x00, 0x00, 0x86, 0x01, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x86, 0xC2, 0xC5, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x86, -0xF0, 0xF8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x87, 0x15, 0xD4, 0x70, 0x00, 0x00, 0x00, 0x00, 0x87, +0xFA, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x15, 0xD4, 0x70, 0x00, 0x00, 0x00, 0x00, 0x87, 0xE0, 0xE9, 0x80, 0x00, 0x00, 0x00, 0x00, 0x88, 0x99, 0x6D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x88, -0xC7, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xF5, 0xB6, 0x70, 0x00, 0x00, 0x00, 0x00, 0x89, +0xD0, 0xDA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x88, 0xF5, 0xB6, 0x70, 0x00, 0x00, 0x00, 0x00, 0x89, 0xC0, 0xCB, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x66, 0xDA, 0x70, 0x00, 0x00, 0x00, 0x00, 0x8A, -0x9E, 0x47, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8A, 0xD5, 0x98, 0x70, 0x00, 0x00, 0x00, 0x00, 0x8B, +0xA7, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8A, 0xD5, 0x98, 0x70, 0x00, 0x00, 0x00, 0x00, 0x8B, 0xA0, 0xAD, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x3D, 0x81, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x8C, -0x6B, 0xB4, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8C, 0xBE, 0xB4, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x8D, +0x74, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0xBE, 0xB4, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x8D, 0x80, 0x8F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x14, 0x29, 0x70, 0x00, 0x00, 0x00, 0x00, 0x8E, -0x42, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x9E, 0x96, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x8F, +0x4B, 0x96, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x9E, 0x96, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x8F, 0x60, 0x71, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8F, 0xE1, 0x96, 0x70, 0x00, 0x00, 0x00, 0x00, 0x90, -0x19, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x90, 0x7E, 0x78, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x91, +0x22, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x7E, 0x78, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x91, 0x49, 0x8E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0xB8, 0x3D, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x91, -0xE6, 0x70, 0x80, 0x00, 0x00, 0x00, 0x00, 0x92, 0x5E, 0x5A, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x93, +0xEF, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x5E, 0x5A, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x93, 0x29, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x93, 0x85, 0xAA, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x93, -0xBD, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x94, 0x3E, 0x3C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x95, +0xC6, 0x52, 0x80, 0x00, 0x00, 0x00, 0x00, 0x94, 0x3E, 0x3C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x95, 0x09, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x95, 0x5C, 0x52, 0x70, 0x00, 0x00, 0x00, 0x00, 0x95, -0x8A, 0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x27, 0x59, 0x70, 0x00, 0x00, 0x00, 0x00, 0x96, +0x93, 0xBF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x96, 0x27, 0x59, 0x70, 0x00, 0x00, 0x00, 0x00, 0x96, 0xE9, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x97, 0x32, 0xF9, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x97, -0x61, 0x2C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x98, 0x07, 0x3B, 0x70, 0x00, 0x00, 0x00, 0x00, 0x98, +0x6A, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x07, 0x3B, 0x70, 0x00, 0x00, 0x00, 0x00, 0x98, 0xC9, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0x00, 0x66, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x99, -0x37, 0xD4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0xE7, 0x1D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9A, +0x41, 0x0E, 0x80, 0x00, 0x00, 0x00, 0x00, 0x99, 0xE7, 0x1D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xB2, 0x32, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xD7, 0x0E, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9B, -0x05, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9B, 0xC6, 0xFF, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9C, +0x0E, 0x7B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9B, 0xC6, 0xFF, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9C, 0x92, 0x14, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9C, 0xA4, 0x7B, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9C, -0xDB, 0xE8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9D, 0xA6, 0xE1, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9E, +0xE5, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9D, 0xA6, 0xE1, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9E, 0x71, 0xF6, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9E, 0x7B, 0x22, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x9E, -0xB2, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9F, 0x86, 0xC3, 0x70, 0x00, 0x00, 0x00, 0x00, 0xA0, -0x7F, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA1, 0x6F, 0xDF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA2, -0x56, 0xA4, 0x80, 0x00, 0x00, 0x00, 0x00, 0xA3, 0x4F, 0xC1, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA4, -0x24, 0x11, 0x80, 0x00, 0x00, 0x00, 0x00, 0xA5, 0x2F, 0xA3, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA5, -0xFA, 0xB9, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA7, 0x0F, 0x85, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA7, +0xBB, 0xCA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9F, 0x86, 0xC3, 0x70, 0x00, 0x00, 0x00, 0x00, 0xA0, +0x89, 0x37, 0x80, 0x00, 0x00, 0x00, 0x00, 0xA1, 0x6F, 0xDF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA2, +0x5F, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA3, 0x4F, 0xC1, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA4, +0x2D, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA5, 0x2F, 0xA3, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA6, +0x03, 0xF3, 0x80, 0x00, 0x00, 0x00, 0x00, 0xA7, 0x0F, 0x85, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA7, 0xDA, 0x9B, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA8, 0xEF, 0x67, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA9, 0xBA, 0x7D, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xD8, 0x84, 0x70, 0x00, 0x00, 0x00, 0x00, 0xAB, 0x9A, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAC, 0xB8, 0x66, 0x70, 0x00, 0x00, 0x00, 0x00, 0xAD, @@ -43844,32 +43938,35 @@ 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, 0x00, 0x00, 0x00, 0x00, 0xC7, +0x60, 0x65, 0x00, 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, +0x37, 0x0C, 0x80, 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, +0x0D, 0xB4, 0x00, 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, +0xDB, 0x21, 0x00, 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, +0xB1, 0xC8, 0x80, 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, +0x88, 0x70, 0x00, 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, +0x55, 0xDD, 0x00, 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, +0x2C, 0x84, 0x80, 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, +0xF9, 0xF1, 0x80, 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, +0xD0, 0x99, 0x00, 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, +0xA7, 0x40, 0x80, 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, +0x74, 0xAD, 0x80, 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, +0x4B, 0x55, 0x00, 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, +0x21, 0xFC, 0x80, 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, 0x03, 0x01, 0x02, 0x01, 0x02, +0xEF, 0x69, 0x80, 0x00, 0x00, 0x00, 0x00, 0xDB, 0xBA, 0x62, 0x70, 0x03, 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, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x06, 0x05, 0x06, 0x05, 0x06, 0x07, 0x08, 0x07, 0x08, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, @@ -43888,17 +43985,17 @@ 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, 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, @@ -43972,8 +44069,8 @@ 0x58, 0x13, 0xCA, 0x60, 0x58, 0xD5, 0xA4, 0xF0, 0x59, 0xF3, 0xAC, 0x60, 0x5A, 0xB5, 0x86, 0xF0, 0x5B, 0xD3, 0x8E, 0x60, 0x5C, 0x9D, 0x43, 0xE0, 0x5D, 0xB3, 0x62, 0x50, 0x5E, 0x7E, 0x77, 0x60, 0x5F, 0x93, 0x52, 0x60, 0x60, 0x5E, 0x59, 0x60, 0x61, 0x7B, 0x1D, 0x60, 0x62, 0x3F, 0x8C, 0xE0, -0x63, 0x5C, 0x5E, 0xF0, 0x64, 0x4C, 0x5E, 0x00, 0x65, 0x3C, 0x40, 0xF0, 0x66, 0x19, 0xCB, 0x00, -0x67, 0x1C, 0x22, 0xF0, 0x67, 0xF0, 0x72, 0x80, 0x68, 0xFC, 0x04, 0xF0, 0x69, 0xC7, 0x1A, 0x00, +0x63, 0x5C, 0x5E, 0xF0, 0x64, 0x4C, 0x5E, 0x00, 0x65, 0x3C, 0x40, 0xF0, 0x66, 0x23, 0x05, 0x80, +0x67, 0x1C, 0x22, 0xF0, 0x67, 0xF9, 0xAD, 0x00, 0x68, 0xFC, 0x04, 0xF0, 0x69, 0xC7, 0x1A, 0x00, 0x6A, 0xDB, 0xE6, 0xF0, 0x6B, 0xA6, 0xFC, 0x00, 0x6C, 0xC5, 0x03, 0x70, 0x6D, 0x86, 0xDE, 0x00, 0x6E, 0xA4, 0xE5, 0x70, 0x6F, 0x66, 0xC0, 0x00, 0x70, 0x84, 0xC7, 0x70, 0x71, 0x4F, 0xDC, 0x80, 0x72, 0x64, 0xA9, 0x70, 0x73, 0x2F, 0xBE, 0x80, 0x74, 0x44, 0x8B, 0x70, 0x75, 0x0F, 0xA0, 0x80, @@ -43997,7 +44094,7 @@ 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, 0x36, 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, @@ -44060,8 +44157,8 @@ 0x00, 0x5F, 0x93, 0x52, 0x60, 0x00, 0x00, 0x00, 0x00, 0x60, 0x5E, 0x59, 0x60, 0x00, 0x00, 0x00, 0x00, 0x61, 0x7B, 0x1D, 0x60, 0x00, 0x00, 0x00, 0x00, 0x62, 0x3F, 0x8C, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x63, 0x5C, 0x5E, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x64, 0x4C, 0x5E, 0x00, 0x00, 0x00, 0x00, -0x00, 0x65, 0x3C, 0x40, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x66, 0x19, 0xCB, 0x00, 0x00, 0x00, 0x00, -0x00, 0x67, 0x1C, 0x22, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x67, 0xF0, 0x72, 0x80, 0x00, 0x00, 0x00, +0x00, 0x65, 0x3C, 0x40, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x66, 0x23, 0x05, 0x80, 0x00, 0x00, 0x00, +0x00, 0x67, 0x1C, 0x22, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x67, 0xF9, 0xAD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0xFC, 0x04, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x69, 0xC7, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xDB, 0xE6, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x6B, 0xA6, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xC5, 0x03, 0x70, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x86, 0xDE, 0x00, 0x00, 0x00, 0x00, @@ -44076,41 +44173,40 @@ 0x00, 0x7D, 0xA3, 0xF5, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x78, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7A, 0x9C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x80, 0x58, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x48, 0x09, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x82, 0x38, 0x09, 0x00, 0x00, 0x00, 0x00, -0x00, 0x83, 0x1E, 0xB1, 0x70, 0x00, 0x00, 0x00, 0x00, 0x83, 0x4C, 0xE4, 0x00, 0x00, 0x00, 0x00, -0x00, 0x83, 0x56, 0x10, 0x70, 0x00, 0x00, 0x00, 0x00, 0x84, 0x17, 0xEB, 0x00, 0x00, 0x00, 0x00, -0x00, 0x84, 0xEC, 0x1E, 0x70, 0x00, 0x00, 0x00, 0x00, 0x85, 0x23, 0x8B, 0x80, 0x00, 0x00, 0x00, +0x00, 0x83, 0x1E, 0xB1, 0x70, 0x00, 0x00, 0x00, 0x00, 0x84, 0x17, 0xEB, 0x00, 0x00, 0x00, 0x00, +0x00, 0x84, 0xEC, 0x1E, 0x70, 0x00, 0x00, 0x00, 0x00, 0x85, 0x2C, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x35, 0xF2, 0x70, 0x00, 0x00, 0x00, 0x00, 0x86, 0x01, 0x07, 0x80, 0x00, 0x00, 0x00, -0x00, 0x86, 0xC2, 0xC5, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x86, 0xF0, 0xF8, 0x80, 0x00, 0x00, 0x00, +0x00, 0x86, 0xC2, 0xC5, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x86, 0xFA, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x15, 0xD4, 0x70, 0x00, 0x00, 0x00, 0x00, 0x87, 0xE0, 0xE9, 0x80, 0x00, 0x00, 0x00, -0x00, 0x88, 0x99, 0x6D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x88, 0xC7, 0xA0, 0x00, 0x00, 0x00, 0x00, +0x00, 0x88, 0x99, 0x6D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x88, 0xD0, 0xDA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x88, 0xF5, 0xB6, 0x70, 0x00, 0x00, 0x00, 0x00, 0x89, 0xC0, 0xCB, 0x80, 0x00, 0x00, 0x00, -0x00, 0x8A, 0x66, 0xDA, 0x70, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x9E, 0x47, 0x80, 0x00, 0x00, 0x00, +0x00, 0x8A, 0x66, 0xDA, 0x70, 0x00, 0x00, 0x00, 0x00, 0x8A, 0xA7, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8A, 0xD5, 0x98, 0x70, 0x00, 0x00, 0x00, 0x00, 0x8B, 0xA0, 0xAD, 0x80, 0x00, 0x00, 0x00, -0x00, 0x8C, 0x3D, 0x81, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x6B, 0xB4, 0x80, 0x00, 0x00, 0x00, +0x00, 0x8C, 0x3D, 0x81, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x74, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0xBE, 0xB4, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x8D, 0x80, 0x8F, 0x80, 0x00, 0x00, 0x00, -0x00, 0x8E, 0x14, 0x29, 0x70, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x42, 0x5C, 0x00, 0x00, 0x00, 0x00, +0x00, 0x8E, 0x14, 0x29, 0x70, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x4B, 0x96, 0x80, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x9E, 0x96, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x8F, 0x60, 0x71, 0x80, 0x00, 0x00, 0x00, -0x00, 0x8F, 0xE1, 0x96, 0x70, 0x00, 0x00, 0x00, 0x00, 0x90, 0x19, 0x03, 0x80, 0x00, 0x00, 0x00, +0x00, 0x8F, 0xE1, 0x96, 0x70, 0x00, 0x00, 0x00, 0x00, 0x90, 0x22, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x7E, 0x78, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x91, 0x49, 0x8E, 0x00, 0x00, 0x00, 0x00, -0x00, 0x91, 0xB8, 0x3D, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x91, 0xE6, 0x70, 0x80, 0x00, 0x00, 0x00, +0x00, 0x91, 0xB8, 0x3D, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x91, 0xEF, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x5E, 0x5A, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x93, 0x29, 0x70, 0x00, 0x00, 0x00, 0x00, -0x00, 0x93, 0x85, 0xAA, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x93, 0xBD, 0x18, 0x00, 0x00, 0x00, 0x00, +0x00, 0x93, 0x85, 0xAA, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x93, 0xC6, 0x52, 0x80, 0x00, 0x00, 0x00, 0x00, 0x94, 0x3E, 0x3C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x95, 0x09, 0x52, 0x00, 0x00, 0x00, 0x00, -0x00, 0x95, 0x5C, 0x52, 0x70, 0x00, 0x00, 0x00, 0x00, 0x95, 0x8A, 0x85, 0x00, 0x00, 0x00, 0x00, +0x00, 0x95, 0x5C, 0x52, 0x70, 0x00, 0x00, 0x00, 0x00, 0x95, 0x93, 0xBF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x96, 0x27, 0x59, 0x70, 0x00, 0x00, 0x00, 0x00, 0x96, 0xE9, 0x34, 0x00, 0x00, 0x00, 0x00, -0x00, 0x97, 0x32, 0xF9, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x97, 0x61, 0x2C, 0x80, 0x00, 0x00, 0x00, +0x00, 0x97, 0x32, 0xF9, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x97, 0x6A, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x07, 0x3B, 0x70, 0x00, 0x00, 0x00, 0x00, 0x98, 0xC9, 0x16, 0x00, 0x00, 0x00, 0x00, -0x00, 0x99, 0x00, 0x66, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x99, 0x37, 0xD4, 0x00, 0x00, 0x00, 0x00, +0x00, 0x99, 0x00, 0x66, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x99, 0x41, 0x0E, 0x80, 0x00, 0x00, 0x00, 0x00, 0x99, 0xE7, 0x1D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xB2, 0x32, 0x80, 0x00, 0x00, 0x00, -0x00, 0x9A, 0xD7, 0x0E, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9B, 0x05, 0x41, 0x00, 0x00, 0x00, 0x00, +0x00, 0x9A, 0xD7, 0x0E, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9B, 0x0E, 0x7B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x9B, 0xC6, 0xFF, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9C, 0x92, 0x14, 0x80, 0x00, 0x00, 0x00, -0x00, 0x9C, 0xA4, 0x7B, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9C, 0xDB, 0xE8, 0x80, 0x00, 0x00, 0x00, +0x00, 0x9C, 0xA4, 0x7B, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9C, 0xE5, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9D, 0xA6, 0xE1, 0x70, 0x00, 0x00, 0x00, 0x00, 0x9E, 0x71, 0xF6, 0x80, 0x00, 0x00, 0x00, -0x00, 0x9E, 0x7B, 0x22, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x9E, 0xB2, 0x90, 0x00, 0x00, 0x00, 0x00, -0x00, 0x9F, 0x86, 0xC3, 0x70, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x7F, 0xFD, 0x00, 0x00, 0x00, 0x00, -0x00, 0xA1, 0x6F, 0xDF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA2, 0x56, 0xA4, 0x80, 0x00, 0x00, 0x00, -0x00, 0xA3, 0x4F, 0xC1, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA4, 0x24, 0x11, 0x80, 0x00, 0x00, 0x00, -0x00, 0xA5, 0x2F, 0xA3, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA5, 0xFA, 0xB9, 0x00, 0x00, 0x00, 0x00, +0x00, 0x9E, 0x7B, 0x22, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x9E, 0xBB, 0xCA, 0x80, 0x00, 0x00, 0x00, +0x00, 0x9F, 0x86, 0xC3, 0x70, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x89, 0x37, 0x80, 0x00, 0x00, 0x00, +0x00, 0xA1, 0x6F, 0xDF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA2, 0x5F, 0xDF, 0x00, 0x00, 0x00, 0x00, +0x00, 0xA3, 0x4F, 0xC1, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA4, 0x2D, 0x4C, 0x00, 0x00, 0x00, 0x00, +0x00, 0xA5, 0x2F, 0xA3, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA6, 0x03, 0xF3, 0x80, 0x00, 0x00, 0x00, 0x00, 0xA7, 0x0F, 0x85, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA7, 0xDA, 0x9B, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA8, 0xEF, 0x67, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xA9, 0xBA, 0x7D, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xD8, 0x84, 0x70, 0x00, 0x00, 0x00, 0x00, 0xAB, 0x9A, 0x5F, 0x00, 0x00, 0x00, 0x00, @@ -44125,32 +44221,35 @@ 0x00, 0xBB, 0xAE, 0x3B, 0xF0, 0x00, 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, 0xC1, 0x28, 0xF7, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x60, 0x65, 0x00, 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, 0x37, 0x0C, 0x80, 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, 0x0D, 0xB4, 0x00, 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, 0xDB, 0x21, 0x00, 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, 0x71, 0x20, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xC8, 0xB1, 0xC8, 0x80, 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, 0x47, 0xC8, 0x70, 0x00, 0x00, 0x00, 0x00, 0xCA, 0x88, 0x70, 0x00, 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, 0x1E, 0x6F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xCC, 0x55, 0xDD, 0x00, 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, 0xCD, 0xEB, 0xDC, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xCE, 0x2C, 0x84, 0x80, 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, 0xCF, 0xC2, 0x84, 0x70, 0x00, 0x00, 0x00, 0x00, 0xCF, 0xF9, 0xF1, 0x80, 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, 0xD1, 0x99, 0x2B, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xD1, 0xD0, 0x99, 0x00, 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, 0xD3, 0x66, 0x98, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xD3, 0xA7, 0x40, 0x80, 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, 0xD5, 0x3D, 0x40, 0x70, 0x00, 0x00, 0x00, 0x00, 0xD5, 0x74, 0xAD, 0x80, 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, 0x0A, 0xAD, 0x70, 0x00, 0x00, 0x00, 0x00, 0xD7, 0x4B, 0x55, 0x00, 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, 0xD8, 0xE1, 0x54, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xD9, 0x21, 0xFC, 0x80, 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, 0xDA, 0xB7, 0xFC, 0x70, 0x00, 0x00, 0x00, 0x00, 0xDA, 0xEF, 0x69, 0x80, 0x00, 0x00, 0x00, 0x00, 0xDB, 0xBA, 0x62, 0x70, 0x03, 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, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x06, 0x05, 0x06, 0x05, 0x06, 0x07, 0x08, 0x07, 0x08, @@ -44170,24 +44269,24 @@ 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x15, 0x88, 0x8C, 0x43, 0x8A, 0x91, 0xA3, 0x2B, 0x0A, 0xCD, 0x35, 0xE6, 0x80, 0xD1, 0x59, 0xCE, 0x70, 0xD2, 0x3B, 0x3E, 0xF0, -0xD5, 0x32, 0xBB, 0x10, 0xE4, 0xB6, 0xE4, 0x80, 0xED, 0x2F, 0x98, 0x00, 0x0A, 0x3D, 0xC7, 0x00, +0xD5, 0x32, 0xBB, 0x10, 0xE4, 0xB6, 0xF2, 0x90, 0xED, 0x2F, 0x98, 0x00, 0x0A, 0x3D, 0xC7, 0x00, 0x01, 0x02, 0x03, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, 0x63, 0xF6, 0x00, 0x00, 0x00, 0x00, 0x63, 0xF6, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x00, 0x09, 0x00, 0x00, 0x70, 0x80, 0x00, 0x0D, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x11, 0x00, 0x00, 0x62, 0x70, 0x00, 0x09, 0x4C, 0x4D, 0x54, @@ -44198,7 +44297,7 @@ 0xFF, 0xFF, 0x88, 0x8C, 0x43, 0x8A, 0xFF, 0xFF, 0xFF, 0xFF, 0x91, 0xA3, 0x2B, 0x0A, 0xFF, 0xFF, 0xFF, 0xFF, 0xCD, 0x35, 0xE6, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xD1, 0x59, 0xCE, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x3B, 0x3E, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x32, 0xBB, 0x10, 0xFF, 0xFF, -0xFF, 0xFF, 0xE4, 0xB6, 0xE4, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xED, 0x2F, 0x98, 0x00, 0x00, 0x00, +0xFF, 0xFF, 0xE4, 0xB6, 0xF2, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xED, 0x2F, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x3D, 0xC7, 0x00, 0x01, 0x02, 0x03, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, 0x63, 0xF6, 0x00, 0x00, 0x00, 0x00, 0x63, 0xF6, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x00, 0x09, 0x00, 0x00, 0x70, 0x80, 0x00, 0x0D, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x11, 0x00, 0x00, 0x62, @@ -44598,7 +44697,7 @@ 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 +45534,10 @@ 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 */ @@ -45991,8 +46090,8 @@ /* Asia/Qostanay */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x4B, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x10, 0xAA, 0x19, 0x88, 0x5C, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x10, 0xAA, 0x19, 0x88, 0x5C, 0xB5, 0xA3, 0xFD, 0x40, 0x15, 0x27, 0x8B, 0xB0, 0x16, 0x18, 0xC0, 0x20, 0x17, 0x08, 0xB1, 0x20, 0x17, 0xF9, 0xF3, 0xA0, 0x18, 0xE9, 0xF2, 0xB0, 0x19, 0xDB, 0x27, 0x20, 0x1A, 0xCC, 0x77, 0xB0, 0x1B, 0xBC, 0x84, 0xD0, 0x1C, 0xAC, 0x75, 0xD0, 0x1D, 0x9C, 0x66, 0xD0, 0x1E, 0x8C, 0x57, 0xD0, @@ -46005,56 +46104,58 @@ 0x35, 0x1D, 0x64, 0xD0, 0x36, 0x32, 0x3F, 0xD0, 0x36, 0xFD, 0x46, 0xD0, 0x38, 0x1B, 0x5C, 0x50, 0x38, 0xDD, 0x28, 0xD0, 0x39, 0xFB, 0x3E, 0x50, 0x3A, 0xBD, 0x0A, 0xD0, 0x3B, 0xDB, 0x20, 0x50, 0x3C, 0xA6, 0x27, 0x50, 0x3D, 0xBB, 0x02, 0x50, 0x3E, 0x86, 0x09, 0x50, 0x3F, 0x9A, 0xE4, 0x50, -0x40, 0x65, 0xEB, 0x50, 0x41, 0x84, 0x00, 0xD0, 0x01, 0x02, 0x03, 0x04, 0x03, 0x02, 0x03, 0x02, -0x03, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x07, 0x08, -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, 0x09, 0x00, 0x00, 0x3B, 0xA4, 0x00, -0x00, 0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50, 0x00, 0x08, 0x00, 0x00, 0x54, -0x60, 0x01, 0x0C, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x46, 0x50, 0x00, 0x08, 0x00, -0x00, 0x54, 0x60, 0x01, 0x0C, 0x00, 0x00, 0x46, 0x50, 0x01, 0x08, 0x00, 0x00, 0x38, 0x40, 0x00, -0x04, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0C, 0x4C, 0x4D, 0x54, -0x00, 0x2B, 0x30, 0x34, 0x00, 0x2B, 0x30, 0x35, 0x00, 0x2B, 0x30, 0x36, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 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, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x0B, -0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xAA, 0x19, 0x88, 0x5C, 0xFF, 0xFF, 0xFF, 0xFF, -0xB5, 0xA3, 0xFD, 0x40, 0x00, 0x00, 0x00, 0x00, 0x15, 0x27, 0x8B, 0xB0, 0x00, 0x00, 0x00, 0x00, -0x16, 0x18, 0xC0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x17, 0x08, 0xB1, 0x20, 0x00, 0x00, 0x00, 0x00, -0x17, 0xF9, 0xF3, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x18, 0xE9, 0xF2, 0xB0, 0x00, 0x00, 0x00, 0x00, -0x19, 0xDB, 0x27, 0x20, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xCC, 0x77, 0xB0, 0x00, 0x00, 0x00, 0x00, -0x1B, 0xBC, 0x84, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xAC, 0x75, 0xD0, 0x00, 0x00, 0x00, 0x00, -0x1D, 0x9C, 0x66, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x8C, 0x57, 0xD0, 0x00, 0x00, 0x00, 0x00, -0x1F, 0x7C, 0x48, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x20, 0x6C, 0x39, 0xD0, 0x00, 0x00, 0x00, 0x00, -0x21, 0x5C, 0x2A, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x22, 0x4C, 0x1B, 0xD0, 0x00, 0x00, 0x00, 0x00, -0x23, 0x3C, 0x0C, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x24, 0x2B, 0xFD, 0xD0, 0x00, 0x00, 0x00, 0x00, -0x25, 0x1B, 0xEE, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x26, 0x0B, 0xDF, 0xD0, 0x00, 0x00, 0x00, 0x00, -0x27, 0x05, 0x0B, 0x50, 0x00, 0x00, 0x00, 0x00, 0x27, 0xF4, 0xFC, 0x50, 0x00, 0x00, 0x00, 0x00, -0x28, 0xE4, 0xFB, 0x60, 0x00, 0x00, 0x00, 0x00, 0x29, 0x78, 0xA3, 0x60, 0x00, 0x00, 0x00, 0x00, -0x29, 0xD4, 0xDE, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xC4, 0xCF, 0x50, 0x00, 0x00, 0x00, 0x00, -0x2B, 0xB4, 0xC0, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xA4, 0xB1, 0x50, 0x00, 0x00, 0x00, 0x00, -0x2D, 0x94, 0xA2, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0x93, 0x50, 0x00, 0x00, 0x00, 0x00, -0x2F, 0x74, 0x84, 0x50, 0x00, 0x00, 0x00, 0x00, 0x30, 0x64, 0x75, 0x50, 0x00, 0x00, 0x00, 0x00, -0x31, 0x5D, 0xA0, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x32, 0x72, 0x7B, 0xD0, 0x00, 0x00, 0x00, 0x00, -0x33, 0x3D, 0x82, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0x5D, 0xD0, 0x00, 0x00, 0x00, 0x00, -0x35, 0x1D, 0x64, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0x3F, 0xD0, 0x00, 0x00, 0x00, 0x00, -0x36, 0xFD, 0x46, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0x5C, 0x50, 0x00, 0x00, 0x00, 0x00, -0x38, 0xDD, 0x28, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x39, 0xFB, 0x3E, 0x50, 0x00, 0x00, 0x00, 0x00, -0x3A, 0xBD, 0x0A, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xDB, 0x20, 0x50, 0x00, 0x00, 0x00, 0x00, -0x3C, 0xA6, 0x27, 0x50, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0x02, 0x50, 0x00, 0x00, 0x00, 0x00, -0x3E, 0x86, 0x09, 0x50, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9A, 0xE4, 0x50, 0x00, 0x00, 0x00, 0x00, -0x40, 0x65, 0xEB, 0x50, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x00, 0xD0, 0x01, 0x02, 0x03, 0x04, +0x40, 0x65, 0xEB, 0x50, 0x41, 0x84, 0x00, 0xD0, 0x65, 0xE0, 0xC6, 0x20, 0x01, 0x02, 0x03, 0x04, 0x03, 0x02, 0x03, 0x02, 0x03, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x07, 0x08, 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, 0x09, 0x00, -0x00, 0x3B, 0xA4, 0x00, 0x00, 0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50, 0x00, -0x08, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0C, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x46, -0x50, 0x00, 0x08, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0C, 0x00, 0x00, 0x46, 0x50, 0x01, 0x08, 0x00, -0x00, 0x38, 0x40, 0x00, 0x04, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x54, 0x60, 0x01, -0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x2B, 0x30, 0x34, 0x00, 0x2B, 0x30, 0x35, 0x00, 0x2B, 0x30, 0x36, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0A, 0x3C, 0x2B, 0x30, -0x36, 0x3E, 0x2D, 0x36, 0x0A, 0x00, 0xDA, 0x81, 0x7F, 0x01, 0x73, 0xBA, 0xC2, 0x00, 0x00, 0x00, -0x1A, 0x51, 0x6F, 0x73, 0x74, 0x61, 0x6E, 0x61, 0x79, 0x2F, 0x4B, 0x6F, 0x73, 0x74, 0x61, 0x6E, -0x61, 0x79, 0x2F, 0x4B, 0x75, 0x73, 0x74, 0x61, 0x6E, 0x61, 0x79, +0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x09, 0x02, +0x00, 0x00, 0x3B, 0xA4, 0x00, 0x00, 0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50, +0x00, 0x08, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0C, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, 0x00, 0x00, +0x46, 0x50, 0x00, 0x08, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0C, 0x00, 0x00, 0x46, 0x50, 0x01, 0x08, +0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x54, 0x60, +0x01, 0x0C, 0x00, 0x00, 0x46, 0x50, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x2B, 0x30, 0x34, 0x00, +0x2B, 0x30, 0x35, 0x00, 0x2B, 0x30, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, +0x01, 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, 0x00, 0x00, 0x00, 0x00, 0x0C, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x10, +0xFF, 0xFF, 0xFF, 0xFF, 0xAA, 0x19, 0x88, 0x5C, 0xFF, 0xFF, 0xFF, 0xFF, 0xB5, 0xA3, 0xFD, 0x40, +0x00, 0x00, 0x00, 0x00, 0x15, 0x27, 0x8B, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x16, 0x18, 0xC0, 0x20, +0x00, 0x00, 0x00, 0x00, 0x17, 0x08, 0xB1, 0x20, 0x00, 0x00, 0x00, 0x00, 0x17, 0xF9, 0xF3, 0xA0, +0x00, 0x00, 0x00, 0x00, 0x18, 0xE9, 0xF2, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x19, 0xDB, 0x27, 0x20, +0x00, 0x00, 0x00, 0x00, 0x1A, 0xCC, 0x77, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xBC, 0x84, 0xD0, +0x00, 0x00, 0x00, 0x00, 0x1C, 0xAC, 0x75, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x9C, 0x66, 0xD0, +0x00, 0x00, 0x00, 0x00, 0x1E, 0x8C, 0x57, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x7C, 0x48, 0xD0, +0x00, 0x00, 0x00, 0x00, 0x20, 0x6C, 0x39, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x21, 0x5C, 0x2A, 0xD0, +0x00, 0x00, 0x00, 0x00, 0x22, 0x4C, 0x1B, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x23, 0x3C, 0x0C, 0xD0, +0x00, 0x00, 0x00, 0x00, 0x24, 0x2B, 0xFD, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x25, 0x1B, 0xEE, 0xD0, +0x00, 0x00, 0x00, 0x00, 0x26, 0x0B, 0xDF, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x27, 0x05, 0x0B, 0x50, +0x00, 0x00, 0x00, 0x00, 0x27, 0xF4, 0xFC, 0x50, 0x00, 0x00, 0x00, 0x00, 0x28, 0xE4, 0xFB, 0x60, +0x00, 0x00, 0x00, 0x00, 0x29, 0x78, 0xA3, 0x60, 0x00, 0x00, 0x00, 0x00, 0x29, 0xD4, 0xDE, 0x50, +0x00, 0x00, 0x00, 0x00, 0x2A, 0xC4, 0xCF, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xB4, 0xC0, 0x50, +0x00, 0x00, 0x00, 0x00, 0x2C, 0xA4, 0xB1, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xA2, 0x50, +0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0x93, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0x84, 0x50, +0x00, 0x00, 0x00, 0x00, 0x30, 0x64, 0x75, 0x50, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xA0, 0xD0, +0x00, 0x00, 0x00, 0x00, 0x32, 0x72, 0x7B, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x33, 0x3D, 0x82, 0xD0, +0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0x5D, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x35, 0x1D, 0x64, 0xD0, +0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0x3F, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x36, 0xFD, 0x46, 0xD0, +0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0x5C, 0x50, 0x00, 0x00, 0x00, 0x00, 0x38, 0xDD, 0x28, 0xD0, +0x00, 0x00, 0x00, 0x00, 0x39, 0xFB, 0x3E, 0x50, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xBD, 0x0A, 0xD0, +0x00, 0x00, 0x00, 0x00, 0x3B, 0xDB, 0x20, 0x50, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xA6, 0x27, 0x50, +0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0x02, 0x50, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x86, 0x09, 0x50, +0x00, 0x00, 0x00, 0x00, 0x3F, 0x9A, 0xE4, 0x50, 0x00, 0x00, 0x00, 0x00, 0x40, 0x65, 0xEB, 0x50, +0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x00, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x65, 0xE0, 0xC6, 0x20, +0x01, 0x02, 0x03, 0x04, 0x03, 0x02, 0x03, 0x02, 0x03, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, +0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x07, 0x08, 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, 0x09, 0x02, 0x00, 0x00, 0x3B, 0xA4, 0x00, 0x00, 0x00, 0x00, 0x38, 0x40, 0x00, 0x04, +0x00, 0x00, 0x46, 0x50, 0x00, 0x08, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0C, 0x00, 0x00, 0x54, 0x60, +0x00, 0x0C, 0x00, 0x00, 0x46, 0x50, 0x00, 0x08, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0C, 0x00, 0x00, +0x46, 0x50, 0x01, 0x08, 0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, +0x00, 0x00, 0x54, 0x60, 0x01, 0x0C, 0x00, 0x00, 0x46, 0x50, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, +0x2B, 0x30, 0x34, 0x00, 0x2B, 0x30, 0x35, 0x00, 0x2B, 0x30, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x0A, 0x3C, 0x2B, 0x30, 0x35, 0x3E, 0x2D, 0x35, +0x0A, 0x00, 0xDA, 0x81, 0x7F, 0x01, 0x73, 0xBA, 0xC2, 0x00, 0x00, 0x00, 0x1A, 0x51, 0x6F, 0x73, +0x74, 0x61, 0x6E, 0x61, 0x79, 0x2F, 0x4B, 0x6F, 0x73, 0x74, 0x61, 0x6E, 0x61, 0x79, 0x2F, 0x4B, +0x75, 0x73, 0x74, 0x61, 0x6E, 0x61, 0x79, /* Asia/Qyzylorda */ 0x50, 0x48, 0x50, 0x32, 0x01, 0x4B, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -46161,7 +46262,7 @@ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x15, 0x88, 0x8C, 0x43, 0x8A, 0x91, 0xA3, 0x2B, 0x0A, 0xCD, 0x35, 0xE6, 0x80, 0xD1, 0x59, 0xCE, 0x70, 0xD2, 0x3B, 0x3E, 0xF0, -0xD5, 0x32, 0xBB, 0x10, 0xE4, 0xB6, 0xE4, 0x80, 0xED, 0x2F, 0x98, 0x00, 0x0A, 0x3D, 0xC7, 0x00, +0xD5, 0x32, 0xBB, 0x10, 0xE4, 0xB6, 0xF2, 0x90, 0xED, 0x2F, 0x98, 0x00, 0x0A, 0x3D, 0xC7, 0x00, 0x01, 0x02, 0x03, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, 0x63, 0xF6, 0x00, 0x00, 0x00, 0x00, 0x63, 0xF6, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x00, 0x09, 0x00, 0x00, 0x70, 0x80, 0x00, 0x0D, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x11, 0x00, 0x00, 0x62, 0x70, 0x00, 0x09, 0x4C, 0x4D, 0x54, @@ -46172,7 +46273,7 @@ 0xFF, 0xFF, 0x88, 0x8C, 0x43, 0x8A, 0xFF, 0xFF, 0xFF, 0xFF, 0x91, 0xA3, 0x2B, 0x0A, 0xFF, 0xFF, 0xFF, 0xFF, 0xCD, 0x35, 0xE6, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xD1, 0x59, 0xCE, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x3B, 0x3E, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x32, 0xBB, 0x10, 0xFF, 0xFF, -0xFF, 0xFF, 0xE4, 0xB6, 0xE4, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xED, 0x2F, 0x98, 0x00, 0x00, 0x00, +0xFF, 0xFF, 0xE4, 0xB6, 0xF2, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xED, 0x2F, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x3D, 0xC7, 0x00, 0x01, 0x02, 0x03, 0x04, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, 0x63, 0xF6, 0x00, 0x00, 0x00, 0x00, 0x63, 0xF6, 0x00, 0x04, 0x00, 0x00, 0x62, 0x70, 0x00, 0x09, 0x00, 0x00, 0x70, 0x80, 0x00, 0x0D, 0x00, 0x00, 0x7E, 0x90, 0x00, 0x11, 0x00, 0x00, 0x62, @@ -46485,7 +46586,7 @@ 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 */ @@ -51887,8 +51988,8 @@ 0xC0, 0xA4, 0x9B, 0xF0, 0xC1, 0x6F, 0x94, 0xE0, 0xC2, 0x84, 0x7D, 0xF0, 0xC3, 0x4F, 0x76, 0xE0, 0xC4, 0x64, 0x5F, 0xF0, 0xC5, 0x2F, 0x58, 0xE0, 0xC6, 0x4D, 0x7C, 0x70, 0xC7, 0x0F, 0x3A, 0xE0, 0xC8, 0x2D, 0x5E, 0x70, 0xCB, 0x88, 0xF0, 0x70, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x60, 0xFB, 0xE0, -0xD3, 0x75, 0xE4, 0xF0, 0xD4, 0x40, 0xDD, 0xE0, 0xD5, 0x55, 0xAA, 0xD0, 0xD6, 0x20, 0xA3, 0xC0, -0xD7, 0x35, 0x8C, 0xD0, 0xD8, 0x00, 0x85, 0xC0, 0xD9, 0x15, 0x6E, 0xD0, 0xDA, 0x33, 0x76, 0x40, +0xD3, 0x75, 0xE4, 0xF0, 0xD4, 0x40, 0xDD, 0xE0, 0xD5, 0x55, 0xC6, 0xF0, 0xD6, 0x20, 0xBF, 0xE0, +0xD7, 0x35, 0xA8, 0xF0, 0xD8, 0x00, 0xA1, 0xE0, 0xD9, 0x15, 0x8A, 0xF0, 0xDA, 0x33, 0x92, 0x60, 0xDA, 0xFE, 0xA7, 0x70, 0xDC, 0x13, 0x74, 0x60, 0xDC, 0xDE, 0x89, 0x70, 0xDD, 0xA9, 0x82, 0x60, 0xDE, 0xBE, 0x6B, 0x70, 0xDF, 0x89, 0x64, 0x60, 0xE0, 0x9E, 0x4D, 0x70, 0xE1, 0x69, 0x46, 0x60, 0xE2, 0x7E, 0x2F, 0x70, 0xE3, 0x49, 0x28, 0x60, 0xE4, 0x5E, 0x11, 0x70, 0xE5, 0x29, 0x0A, 0x60, @@ -51979,10 +52080,10 @@ 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xC7, 0x0F, 0x3A, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x2D, 0x5E, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x88, 0xF0, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x60, 0xFB, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD3, 0x75, 0xE4, -0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xAA, -0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xA3, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0x8C, -0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0x85, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x6E, -0xD0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x76, 0x40, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xC6, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xBF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0xA8, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0xA1, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x8A, +0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0x33, 0x92, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0x13, 0x74, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0xDE, 0x89, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0xA9, 0x82, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xBE, 0x6B, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x89, 0x64, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x9E, 0x4D, @@ -69999,4 +70100,4 @@ }; #endif -const timelib_tzdb timezonedb_builtin = { "2023.3", 597, timezonedb_idx_builtin, timelib_timezone_db_data_builtin }; +const timelib_tzdb timezonedb_builtin = { "2024.1", 597, timezonedb_idx_builtin, timelib_timezone_db_data_builtin }; diff -Nru php8.2-8.2.7/ext/date/php_date.c php8.2-8.2.18/ext/date/php_date.c --- php8.2-8.2.7/ext/date/php_date.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/date/php_date.c 2024-04-09 18:46:23.000000000 +0000 @@ -2176,7 +2176,7 @@ ZVAL_DOUBLE(&zv, (double)intervalobj->diff->us / 1000000.0); zend_hash_str_update(props, "f", sizeof("f") - 1, &zv); PHP_DATE_INTERVAL_ADD_PROPERTY("invert", invert); - if (intervalobj->diff->days != -99999) { + if (intervalobj->diff->days != TIMELIB_UNSET) { PHP_DATE_INTERVAL_ADD_PROPERTY("days", days); } else { ZVAL_FALSE(&zv); @@ -2305,7 +2305,9 @@ common = zend_std_get_properties(zobj); ZEND_HASH_MAP_FOREACH_STR_KEY_VAL_IND(common, name, prop) { - zend_hash_add(myht, name, prop); + if (zend_hash_add(myht, name, prop) != NULL) { + Z_TRY_ADDREF_P(prop); + } } ZEND_HASH_FOREACH_END(); } @@ -2967,7 +2969,7 @@ array_init(return_value); #define PHP_DATE_PARSE_DATE_SET_TIME_ELEMENT(name, elem) \ - if (parsed_time->elem == -99999) { \ + if (parsed_time->elem == TIMELIB_UNSET) { \ add_assoc_bool(return_value, #name, 0); \ } else { \ add_assoc_long(return_value, #name, parsed_time->elem); \ @@ -2979,7 +2981,7 @@ PHP_DATE_PARSE_DATE_SET_TIME_ELEMENT(minute, i); PHP_DATE_PARSE_DATE_SET_TIME_ELEMENT(second, s); - if (parsed_time->us == -99999) { + if (parsed_time->us == TIMELIB_UNSET) { add_assoc_bool(return_value, "fraction", 0); } else { add_assoc_double(return_value, "fraction", (double)parsed_time->us / 1000000.0); @@ -3115,21 +3117,21 @@ dateobj->time->have_relative = tmp_time->have_relative; dateobj->time->sse_uptodate = 0; - if (tmp_time->y != -99999) { + if (tmp_time->y != TIMELIB_UNSET) { dateobj->time->y = tmp_time->y; } - if (tmp_time->m != -99999) { + if (tmp_time->m != TIMELIB_UNSET) { dateobj->time->m = tmp_time->m; } - if (tmp_time->d != -99999) { + if (tmp_time->d != TIMELIB_UNSET) { dateobj->time->d = tmp_time->d; } - if (tmp_time->h != -99999) { + if (tmp_time->h != TIMELIB_UNSET) { dateobj->time->h = tmp_time->h; - if (tmp_time->i != -99999) { + if (tmp_time->i != TIMELIB_UNSET) { dateobj->time->i = tmp_time->i; - if (tmp_time->s != -99999) { + if (tmp_time->s != TIMELIB_UNSET) { dateobj->time->s = tmp_time->s; } else { dateobj->time->s = 0; @@ -3140,7 +3142,7 @@ } } - if (tmp_time->us != -99999) { + if (tmp_time->us != TIMELIB_UNSET) { dateobj->time->us = tmp_time->us; } @@ -4224,7 +4226,7 @@ if (fvalue != -1) { ZVAL_DOUBLE(retval, fvalue); - } else if (value != -99999) { + } else if (value != TIMELIB_UNSET) { ZVAL_LONG(retval, value); } else { ZVAL_FALSE(retval); @@ -4383,7 +4385,7 @@ do { \ zval *z_arg = zend_hash_str_find(myht, "days", sizeof("days") - 1); \ if (z_arg && Z_TYPE_P(z_arg) == IS_FALSE) { \ - (*intobj)->diff->member = -99999; \ + (*intobj)->diff->member = TIMELIB_UNSET; \ } else if (z_arg && Z_TYPE_P(z_arg) <= IS_STRING) { \ zend_string *str = zval_get_string(z_arg); \ DATE_A64I((*intobj)->diff->member, ZSTR_VAL(str)); \ @@ -4624,7 +4626,7 @@ case 'f': length = slprintf(buffer, sizeof(buffer), ZEND_LONG_FMT, (zend_long) t->us); break; case 'a': { - if ((int) t->days != -99999) { + if ((int) t->days != TIMELIB_UNSET) { length = slprintf(buffer, sizeof(buffer), "%d", (int) t->days); } else { length = slprintf(buffer, sizeof(buffer), "(unknown)"); @@ -4763,6 +4765,12 @@ } dpobj->start_ce = date_ce_date; } else { + /* check initialisation */ + DATE_CHECK_INITIALIZED(Z_PHPDATE_P(start)->time, DateTimeInterface); + if (end) { + DATE_CHECK_INITIALIZED(Z_PHPDATE_P(end)->time, DateTimeInterface); + } + /* init */ php_interval_obj *intobj = Z_PHPINTERVAL_P(interval); @@ -5304,6 +5312,11 @@ if (Z_TYPE_P(ht_entry) == IS_OBJECT && instanceof_function(Z_OBJCE_P(ht_entry), date_ce_interface)) { php_date_obj *date_obj; date_obj = Z_PHPDATE_P(ht_entry); + + if (!date_obj->time) { + return 0; + } + if (period_obj->start != NULL) { timelib_time_dtor(period_obj->start); } @@ -5321,6 +5334,11 @@ if (Z_TYPE_P(ht_entry) == IS_OBJECT && instanceof_function(Z_OBJCE_P(ht_entry), date_ce_interface)) { php_date_obj *date_obj; date_obj = Z_PHPDATE_P(ht_entry); + + if (!date_obj->time) { + return 0; + } + if (period_obj->end != NULL) { timelib_time_dtor(period_obj->end); } @@ -5337,6 +5355,11 @@ if (Z_TYPE_P(ht_entry) == IS_OBJECT && instanceof_function(Z_OBJCE_P(ht_entry), date_ce_interface)) { php_date_obj *date_obj; date_obj = Z_PHPDATE_P(ht_entry); + + if (!date_obj->time) { + return 0; + } + if (period_obj->current != NULL) { timelib_time_dtor(period_obj->current); } @@ -5353,6 +5376,11 @@ if (Z_TYPE_P(ht_entry) == IS_OBJECT && Z_OBJCE_P(ht_entry) == date_ce_interval) { php_interval_obj *interval_obj; interval_obj = Z_PHPINTERVAL_P(ht_entry); + + if (!interval_obj->initialized) { + return 0; + } + if (period_obj->interval != NULL) { timelib_rel_time_dtor(period_obj->interval); } diff -Nru php8.2-8.2.7/ext/date/tests/bug-gh11368.phpt php8.2-8.2.18/ext/date/tests/bug-gh11368.phpt --- php8.2-8.2.7/ext/date/tests/bug-gh11368.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/date/tests/bug-gh11368.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,33 @@ +--TEST-- +Bug GH-11368: Date modify returns invalid datetime +--INI-- +date.timezone=UTC +--FILE-- +setTime(1,1,1,1 /* If set to any other number, it works fine */); +var_dump($datetime); + +$datetime->modify('-100 ms'); +var_dump($datetime); + +?> +--EXPECTF-- +object(DateTime)#1 (3) { + ["date"]=> + string(26) "2023-06-04 01:01:01.000001" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(3) "UTC" +} +object(DateTime)#1 (3) { + ["date"]=> + string(26) "2023-06-04 01:01:00.900001" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(3) "UTC" +} diff -Nru php8.2-8.2.7/ext/date/tests/bug-gh11416.phpt php8.2-8.2.18/ext/date/tests/bug-gh11416.phpt --- php8.2-8.2.7/ext/date/tests/bug-gh11416.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/date/tests/bug-gh11416.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,70 @@ +--TEST-- +Bug GH-11416: Crash with DatePeriod when uninitialised objects are passed in +--INI-- +date.timezone=UTC +--FILE-- +newInstanceWithoutConstructor(); +try { + new DatePeriod($date, new DateInterval('P1D'), 2); +} catch (Error $e) { + echo get_class($e), ': ', $e->getMessage(), "\n"; +} + +$date = (new ReflectionClass(DateTime::class))->newInstanceWithoutConstructor(); +try { + new DatePeriod($now, new DateInterval('P1D'), $date); +} catch (Error $e) { + echo get_class($e), ': ', $e->getMessage(), "\n"; +} + +$date = (new ReflectionClass(DateTime::class))->newInstanceWithoutConstructor(); +$dateperiod = (new ReflectionClass(DatePeriod::class))->newInstanceWithoutConstructor(); +$dateinterval = (new ReflectionClass(DateInterval::class))->newInstanceWithoutConstructor(); +try { + $dateperiod->__unserialize(['start' => $date]); +} catch (Error $e) { + echo get_class($e), ': ', $e->getMessage(), "\n"; +} + +try { + $dateperiod->__unserialize(['start' => $now, 'end' => $date]); +} catch (Error $e) { + echo get_class($e), ': ', $e->getMessage(), "\n"; +} + +try { + $dateperiod->__unserialize(['start' => $now, 'end' => $now, 'current' => $date]); +} catch (Error $e) { + echo get_class($e), ': ', $e->getMessage(), "\n"; +} + +try { + $dateperiod->__unserialize(['start' => $now, 'end' => $now, 'current' => $now, 'interval' => $dateinterval]); +} catch (Error $e) { + echo get_class($e), ': ', $e->getMessage(), "\n"; +} + +try { + $dateperiod->__unserialize([ + 'start' => $now, 'end' => $now, 'current' => $now, 'interval' => $simpleInterval, + 'recurrences' => 2, 'include_start_date' => true, 'include_end_date' => true, + ]); + echo "DatePeriod::__unserialize: SUCCESS\n"; +} catch (Error $e) { + echo get_class($e), ': ', $e->getMessage(), "\n"; +} +echo "OK\n"; +?> +--EXPECT-- +Error: The DateTimeInterface object has not been correctly initialized by its constructor +Error: The DateTimeInterface object has not been correctly initialized by its constructor +Error: Invalid serialization data for DatePeriod object +Error: Invalid serialization data for DatePeriod object +Error: Invalid serialization data for DatePeriod object +Error: Invalid serialization data for DatePeriod object +DatePeriod::__unserialize: SUCCESS +OK diff -Nru php8.2-8.2.7/ext/date/tests/bug-gh11600.phpt php8.2-8.2.18/ext/date/tests/bug-gh11600.phpt --- php8.2-8.2.7/ext/date/tests/bug-gh11600.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/date/tests/bug-gh11600.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,21 @@ +--TEST-- +Bug GH-11600: Intl patterns are not parseable DateTime Strings +--EXTENSIONS-- +intl +--INI-- +date.timezone=UTC +--FILE-- +getPattern(); + +$timeString = $formatter->format(strtotime('2023-07-11 16:02')); + +$timestamp = strtotime("2023-07-11 {$timeString}"); + +var_dump($pattern, $timeString, $timestamp); +?> +--EXPECTF-- +string(%d) "h:mm%sa" +string(%d) "4:02%sPM" +int(1689091320) diff -Nru php8.2-8.2.7/ext/date/tests/bug80963.phpt php8.2-8.2.18/ext/date/tests/bug80963.phpt --- php8.2-8.2.7/ext/date/tests/bug80963.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/date/tests/bug80963.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -13,8 +13,8 @@ var_dump(sizeof($t), end($t)); } ?> ---EXPECT-- -int(243) +--EXPECTF-- +int(24%d) array(5) { ["ts"]=> int(2140045200) diff -Nru php8.2-8.2.7/ext/date/tests/gh10747-1.phpt php8.2-8.2.18/ext/date/tests/gh10747-1.phpt --- php8.2-8.2.7/ext/date/tests/gh10747-1.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/date/tests/gh10747-1.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -1,5 +1,7 @@ --TEST-- Bug GH-10747 (Private fields in serialized DateTimeImmutable objects throw) +--INI-- +date.timezone=UTC --FILE-- myProperty->field = str_repeat("hello", 3); +$serialized = serialize($datetime); +var_dump($datetime->myProperty); +$unserialized = unserialize($serialized); +var_dump($unserialized); +?> +--EXPECT-- +object(stdClass)#2 (1) { + ["field"]=> + string(15) "hellohellohello" +} +object(MyDateTimeImmutable)#3 (4) { + ["myProperty"]=> + object(stdClass)#4 (1) { + ["field"]=> + string(15) "hellohellohello" + } + ["date"]=> + string(26) "2022-12-22 11:26:00.000000" + ["timezone_type"]=> + int(2) + ["timezone"]=> + string(1) "Z" +} diff -Nru php8.2-8.2.7/ext/date/tests/gh11854.phpt php8.2-8.2.18/ext/date/tests/gh11854.phpt --- php8.2-8.2.7/ext/date/tests/gh11854.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/date/tests/gh11854.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,19 @@ +--TEST-- +Bug GH-11854 (DateTime:createFromFormat stopped parsing DateTime with extra space) +--INI-- +date.timezone=UTC +--FILE-- + +--EXPECTF-- +object(DateTime)#1 (3) { + ["date"]=> + string(26) "2023-08-02 08:37:50.000000" + ["timezone_type"]=> + int(3) + ["timezone"]=> + string(3) "UTC" +} diff -Nru php8.2-8.2.7/ext/dl_test/dl_test.c php8.2-8.2.18/ext/dl_test/dl_test.c --- php8.2-8.2.7/ext/dl_test/dl_test.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dl_test/dl_test.c 2024-04-09 18:46:23.000000000 +0000 @@ -90,6 +90,10 @@ zend_register_functions(NULL, php_dl_test_use_register_functions_directly_functions, NULL, type); } + if (getenv("PHP_DL_TEST_MODULE_DEBUG")) { + fprintf(stderr, "DL TEST MINIT\n"); + } + return SUCCESS; } /* }}} */ @@ -104,6 +108,10 @@ UNREGISTER_INI_ENTRIES(); } + if (getenv("PHP_DL_TEST_MODULE_DEBUG")) { + fprintf(stderr, "DL TEST MSHUTDOWN\n"); + } + return SUCCESS; } /* }}} */ @@ -115,6 +123,21 @@ ZEND_TSRMLS_CACHE_UPDATE(); #endif + if (getenv("PHP_DL_TEST_MODULE_DEBUG")) { + fprintf(stderr, "DL TEST RINIT\n"); + } + + return SUCCESS; +} +/* }}} */ + +/* {{{ PHP_RSHUTDOWN_FUNCTION */ +PHP_RSHUTDOWN_FUNCTION(dl_test) +{ + if (getenv("PHP_DL_TEST_MODULE_DEBUG")) { + fprintf(stderr, "DL TEST RSHUTDOWN\n"); + } + return SUCCESS; } /* }}} */ @@ -148,7 +171,7 @@ PHP_MINIT(dl_test), PHP_MSHUTDOWN(dl_test), PHP_RINIT(dl_test), - NULL, + PHP_RSHUTDOWN(dl_test), PHP_MINFO(dl_test), PHP_DL_TEST_VERSION, PHP_MODULE_GLOBALS(dl_test), diff -Nru php8.2-8.2.7/ext/dl_test/tests/skip.inc php8.2-8.2.18/ext/dl_test/tests/skip.inc --- php8.2-8.2.7/ext/dl_test/tests/skip.inc 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dl_test/tests/skip.inc 2024-04-09 18:46:23.000000000 +0000 @@ -12,3 +12,7 @@ if (!file_exists($path)) { die(sprintf('skip dl_test extension is not built (tried %s)', $path)); } + +if (getenv('SKIP_ASAN')) { + die('skip dl() crashes LSan'); +} diff -Nru php8.2-8.2.7/ext/dom/attr.c php8.2-8.2.18/ext/dom/attr.c --- php8.2-8.2.7/ext/dom/attr.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dom/attr.c 2024-04-09 18:46:23.000000000 +0000 @@ -62,7 +62,7 @@ oldnode = dom_object_get_node(intern); if (oldnode != NULL) { - php_libxml_node_free_resource(oldnode ); + php_libxml_node_decrement_resource((php_libxml_node_object *)intern); } php_libxml_increment_node_ptr((php_libxml_node_object *)intern, (xmlNodePtr)nodep, (void *)intern); } diff -Nru php8.2-8.2.7/ext/dom/cdatasection.c php8.2-8.2.18/ext/dom/cdatasection.c --- php8.2-8.2.7/ext/dom/cdatasection.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dom/cdatasection.c 2024-04-09 18:46:23.000000000 +0000 @@ -52,7 +52,7 @@ intern = Z_DOMOBJ_P(ZEND_THIS); oldnode = dom_object_get_node(intern); if (oldnode != NULL) { - php_libxml_node_free_resource(oldnode ); + php_libxml_node_decrement_resource((php_libxml_node_object *)intern); } php_libxml_increment_node_ptr((php_libxml_node_object *)intern, nodep, (void *)intern); } diff -Nru php8.2-8.2.7/ext/dom/characterdata.c php8.2-8.2.18/ext/dom/characterdata.c --- php8.2-8.2.7/ext/dom/characterdata.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dom/characterdata.c 2024-04-09 18:46:23.000000000 +0000 @@ -364,12 +364,12 @@ PHP_METHOD(DOMCharacterData, after) { - int argc; + int argc = 0; zval *args, *id; dom_object *intern; xmlNode *context; - if (zend_parse_parameters(ZEND_NUM_ARGS(), "+", &args, &argc) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS(), "*", &args, &argc) == FAILURE) { RETURN_THROWS(); } @@ -381,12 +381,12 @@ PHP_METHOD(DOMCharacterData, before) { - int argc; + int argc = 0; zval *args, *id; dom_object *intern; xmlNode *context; - if (zend_parse_parameters(ZEND_NUM_ARGS(), "+", &args, &argc) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS(), "*", &args, &argc) == FAILURE) { RETURN_THROWS(); } @@ -398,20 +398,19 @@ PHP_METHOD(DOMCharacterData, replaceWith) { - int argc; + int argc = 0; zval *args, *id; dom_object *intern; xmlNode *context; - if (zend_parse_parameters(ZEND_NUM_ARGS(), "+", &args, &argc) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS(), "*", &args, &argc) == FAILURE) { RETURN_THROWS(); } id = ZEND_THIS; DOM_GET_OBJ(context, id, xmlNodePtr, intern); - dom_parent_node_after(intern, args, argc); - dom_child_node_remove(intern); + dom_child_replace_with(intern, args, argc); } #endif diff -Nru php8.2-8.2.7/ext/dom/comment.c php8.2-8.2.18/ext/dom/comment.c --- php8.2-8.2.7/ext/dom/comment.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dom/comment.c 2024-04-09 18:46:23.000000000 +0000 @@ -50,13 +50,11 @@ } intern = Z_DOMOBJ_P(ZEND_THIS); - if (intern != NULL) { - oldnode = dom_object_get_node(intern); - if (oldnode != NULL) { - php_libxml_node_free_resource(oldnode ); - } - php_libxml_increment_node_ptr((php_libxml_node_object *)intern, (xmlNodePtr)nodep, (void *)intern); + oldnode = dom_object_get_node(intern); + if (oldnode != NULL) { + php_libxml_node_decrement_resource((php_libxml_node_object *)intern); } + php_libxml_increment_node_ptr((php_libxml_node_object *)intern, (xmlNodePtr)nodep, (void *)intern); } /* }}} end DOMComment::__construct */ diff -Nru php8.2-8.2.7/ext/dom/document.c php8.2-8.2.18/ext/dom/document.c --- php8.2-8.2.7/ext/dom/document.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dom/document.c 2024-04-09 18:46:23.000000000 +0000 @@ -23,6 +23,7 @@ #if defined(HAVE_LIBXML) && defined(HAVE_DOM) #include "php_dom.h" #include +#include #ifdef LIBXML_SCHEMAS_ENABLED #include #include @@ -139,7 +140,6 @@ zend_result dom_document_encoding_write(dom_object *obj, zval *newval) { xmlDoc *docp = (xmlDocPtr) dom_object_get_node(obj); - zend_string *str; xmlCharEncodingHandlerPtr handler; if (docp == NULL) { @@ -147,11 +147,15 @@ return FAILURE; } - str = zval_try_get_string(newval); - if (UNEXPECTED(!str)) { - return FAILURE; + /* Typed property, can only be IS_STRING or IS_NULL. */ + ZEND_ASSERT(Z_TYPE_P(newval) == IS_STRING || Z_TYPE_P(newval) == IS_NULL); + + if (Z_TYPE_P(newval) == IS_NULL) { + goto invalid_encoding; } + zend_string *str = Z_STR_P(newval); + handler = xmlFindCharEncodingHandler(ZSTR_VAL(str)); if (handler != NULL) { @@ -161,12 +165,14 @@ } docp->encoding = xmlStrdup((const xmlChar *) ZSTR_VAL(str)); } else { - zend_value_error("Invalid document encoding"); - return FAILURE; + goto invalid_encoding; } - zend_string_release_ex(str, 0); return SUCCESS; + +invalid_encoding: + zend_value_error("Invalid document encoding"); + return FAILURE; } /* }}} */ @@ -187,7 +193,7 @@ return FAILURE; } - ZVAL_BOOL(retval, docp->standalone); + ZVAL_BOOL(retval, docp->standalone > 0); return SUCCESS; } @@ -1008,6 +1014,19 @@ } /* }}} end dom_document_get_elements_by_tag_name_ns */ +static bool php_dom_is_node_attached(const xmlNode *node) +{ + ZEND_ASSERT(node != NULL); + node = node->parent; + while (node != NULL) { + if (node->type == XML_DOCUMENT_NODE || node->type == XML_HTML_DOCUMENT_NODE) { + return true; + } + node = node->parent; + } + return false; +} + /* {{{ URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-getElBId Since: DOM Level 2 */ @@ -1030,7 +1049,13 @@ attrp = xmlGetID(docp, (xmlChar *) idname); - if (attrp && attrp->parent) { + /* From the moment an ID is created, libxml2's behaviour is to cache that element, even + * if that element is not yet attached to the document. Similarly, only upon destruction of + * the element the ID is actually removed by libxml2. Since libxml2 has such behaviour deeply + * ingrained in the library, and uses the cache for various purposes, it seems like a bad + * idea and lost cause to fight it. Instead, we'll simply walk the tree upwards to check + * if the node is attached to the document. */ + if (attrp && attrp->parent && php_dom_is_node_attached(attrp->parent)) { DOM_RET_OBJ((xmlNodePtr) attrp->parent, &ret, intern); } else { RETVAL_NULL(); @@ -1099,22 +1124,20 @@ } intern = Z_DOMOBJ_P(ZEND_THIS); - if (intern != NULL) { - olddoc = (xmlDocPtr) dom_object_get_node(intern); - if (olddoc != NULL) { - php_libxml_decrement_node_ptr((php_libxml_node_object *) intern); - refcount = php_libxml_decrement_doc_ref((php_libxml_node_object *)intern); - if (refcount != 0) { - olddoc->_private = NULL; - } - } - intern->document = NULL; - if (php_libxml_increment_doc_ref((php_libxml_node_object *)intern, docp) == -1) { - /* docp is always non-null so php_libxml_increment_doc_ref() never returns -1 */ - ZEND_UNREACHABLE(); + olddoc = (xmlDocPtr) dom_object_get_node(intern); + if (olddoc != NULL) { + php_libxml_decrement_node_ptr((php_libxml_node_object *) intern); + refcount = php_libxml_decrement_doc_ref((php_libxml_node_object *)intern); + if (refcount != 0) { + olddoc->_private = NULL; } - php_libxml_increment_node_ptr((php_libxml_node_object *)intern, (xmlNodePtr)docp, (void *)intern); } + intern->document = NULL; + if (php_libxml_increment_doc_ref((php_libxml_node_object *)intern, docp) == -1) { + /* docp is always non-null so php_libxml_increment_doc_ref() never returns -1 */ + ZEND_UNREACHABLE(); + } + php_libxml_increment_node_ptr((php_libxml_node_object *)intern, (xmlNodePtr)docp, (void *)intern); } /* }}} end DOMDocument::__construct */ @@ -1126,6 +1149,9 @@ int isFileUri = 0; uri = xmlCreateURI(); + if (uri == NULL) { + return NULL; + } escsource = xmlURIEscapeStr((xmlChar *) source, (xmlChar *) ":"); xmlParseURIReference(uri, (char *) escsource); xmlFree(escsource); @@ -1262,6 +1288,7 @@ options |= XML_PARSE_NOBLANKS; } + php_libxml_sanitize_parse_ctxt_options(ctxt); xmlCtxtUseOptions(ctxt, options); ctxt->recovery = recover; @@ -1556,7 +1583,9 @@ DOM_GET_OBJ(docp, id, xmlDocPtr, intern); + PHP_LIBXML_SANITIZE_GLOBALS(xinclude); err = xmlXIncludeProcessFlags(docp, (int)flags); + PHP_LIBXML_RESTORE_GLOBALS(xinclude); /* XML_XINCLUDE_START and XML_XINCLUDE_END nodes need to be removed as these are added via xmlXIncludeProcess to mark beginning and ending of xincluded document @@ -1594,6 +1623,7 @@ DOM_GET_OBJ(docp, id, xmlDocPtr, intern); + PHP_LIBXML_SANITIZE_GLOBALS(validate); cvp = xmlNewValidCtxt(); cvp->userData = NULL; @@ -1605,6 +1635,7 @@ } else { RETVAL_FALSE; } + PHP_LIBXML_RESTORE_GLOBALS(validate); xmlFreeValidCtxt(cvp); @@ -1639,14 +1670,18 @@ DOM_GET_OBJ(docp, id, xmlDocPtr, intern); + PHP_LIBXML_SANITIZE_GLOBALS(new_parser_ctxt); + switch (type) { case DOM_LOAD_FILE: if (CHECK_NULL_PATH(source, source_len)) { + PHP_LIBXML_RESTORE_GLOBALS(new_parser_ctxt); zend_argument_value_error(1, "must not contain any null bytes"); RETURN_THROWS(); } valid_file = _dom_get_valid_file_path(source, resolved_path, MAXPATHLEN); if (!valid_file) { + PHP_LIBXML_RESTORE_GLOBALS(new_parser_ctxt); php_error_docref(NULL, E_WARNING, "Invalid Schema file source"); RETURN_FALSE; } @@ -1667,6 +1702,7 @@ parser); sptr = xmlSchemaParse(parser); xmlSchemaFreeParserCtxt(parser); + PHP_LIBXML_RESTORE_GLOBALS(new_parser_ctxt); if (!sptr) { if (!EG(exception)) { php_error_docref(NULL, E_WARNING, "Invalid Schema"); @@ -1687,11 +1723,13 @@ valid_opts |= XML_SCHEMA_VAL_VC_I_CREATE; } + PHP_LIBXML_SANITIZE_GLOBALS(validate); xmlSchemaSetValidOptions(vptr, valid_opts); xmlSchemaSetValidErrors(vptr, php_libxml_error_handler, php_libxml_error_handler, vptr); is_valid = xmlSchemaValidateDoc(vptr, docp); xmlSchemaFree(sptr); xmlSchemaFreeValidCtxt(vptr); + PHP_LIBXML_RESTORE_GLOBALS(validate); if (is_valid == 0) { RETURN_TRUE; @@ -1762,12 +1800,14 @@ return; } + PHP_LIBXML_SANITIZE_GLOBALS(parse); xmlRelaxNGSetParserErrors(parser, (xmlRelaxNGValidityErrorFunc) php_libxml_error_handler, (xmlRelaxNGValidityWarningFunc) php_libxml_error_handler, parser); sptr = xmlRelaxNGParse(parser); xmlRelaxNGFreeParserCtxt(parser); + PHP_LIBXML_RESTORE_GLOBALS(parse); if (!sptr) { php_error_docref(NULL, E_WARNING, "Invalid RelaxNG"); RETURN_FALSE; @@ -1866,6 +1906,7 @@ ctxt->sax->error = php_libxml_ctx_error; ctxt->sax->warning = php_libxml_ctx_warning; } + php_libxml_sanitize_parse_ctxt_options(ctxt); if (options) { htmlCtxtUseOptions(ctxt, (int)options); } @@ -2059,6 +2100,10 @@ } if (ce == NULL || instanceof_function(ce, basece)) { + if (UNEXPECTED(ce != NULL && (ce->ce_flags & ZEND_ACC_ABSTRACT))) { + zend_argument_value_error(2, "must not be an abstract class"); + RETURN_THROWS(); + } DOM_GET_OBJ(docp, id, xmlDocPtr, intern); dom_set_doc_classmap(intern->document, basece, ce); RETURN_TRUE; @@ -2073,12 +2118,12 @@ */ PHP_METHOD(DOMDocument, append) { - int argc; + int argc = 0; zval *args, *id; dom_object *intern; xmlNode *context; - if (zend_parse_parameters(ZEND_NUM_ARGS(), "+", &args, &argc) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS(), "*", &args, &argc) == FAILURE) { RETURN_THROWS(); } @@ -2094,12 +2139,12 @@ */ PHP_METHOD(DOMDocument, prepend) { - int argc; + int argc = 0; zval *args, *id; dom_object *intern; xmlNode *context; - if (zend_parse_parameters(ZEND_NUM_ARGS(), "+", &args, &argc) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS(), "*", &args, &argc) == FAILURE) { RETURN_THROWS(); } diff -Nru php8.2-8.2.7/ext/dom/documentfragment.c php8.2-8.2.18/ext/dom/documentfragment.c --- php8.2-8.2.7/ext/dom/documentfragment.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dom/documentfragment.c 2024-04-09 18:46:23.000000000 +0000 @@ -50,9 +50,8 @@ intern = Z_DOMOBJ_P(ZEND_THIS); oldnode = dom_object_get_node(intern); if (oldnode != NULL) { - php_libxml_node_free_resource(oldnode ); + php_libxml_node_decrement_resource((php_libxml_node_object *)intern); } - /* php_dom_set_object(intern, nodep); */ php_libxml_increment_node_ptr((php_libxml_node_object *)intern, nodep, (void *)intern); } /* }}} end DOMDocumentFragment::__construct */ @@ -114,7 +113,9 @@ } if (data) { + PHP_LIBXML_SANITIZE_GLOBALS(parse); err = xmlParseBalancedChunkMemory(nodep->doc, NULL, NULL, 0, (xmlChar *) data, &lst); + PHP_LIBXML_RESTORE_GLOBALS(parse); if (err != 0) { RETURN_FALSE; } @@ -135,12 +136,12 @@ */ PHP_METHOD(DOMDocumentFragment, append) { - int argc; + int argc = 0; zval *args, *id; dom_object *intern; xmlNode *context; - if (zend_parse_parameters(ZEND_NUM_ARGS(), "+", &args, &argc) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS(), "*", &args, &argc) == FAILURE) { RETURN_THROWS(); } @@ -156,12 +157,12 @@ */ PHP_METHOD(DOMDocumentFragment, prepend) { - int argc; + int argc = 0; zval *args, *id; dom_object *intern; xmlNode *context; - if (zend_parse_parameters(ZEND_NUM_ARGS(), "+", &args, &argc) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS(), "*", &args, &argc) == FAILURE) { RETURN_THROWS(); } diff -Nru php8.2-8.2.7/ext/dom/element.c php8.2-8.2.18/ext/dom/element.c --- php8.2-8.2.7/ext/dom/element.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dom/element.c 2024-04-09 18:46:23.000000000 +0000 @@ -97,7 +97,7 @@ intern = Z_DOMOBJ_P(ZEND_THIS); oldnode = dom_object_get_node(intern); if (oldnode != NULL) { - php_libxml_node_free_resource(oldnode ); + php_libxml_node_decrement_resource((php_libxml_node_object *)intern); } php_libxml_increment_node_ptr((php_libxml_node_object *)intern, nodep, (void *)intern); } @@ -150,6 +150,7 @@ /* }}} */ +/* Note: the object returned is not necessarily a node, but can be an attribute or a namespace declaration. */ static xmlNodePtr dom_get_dom1_attribute(xmlNodePtr elem, xmlChar *name) /* {{{ */ { int len; @@ -376,25 +377,13 @@ } if (attrp->type == XML_NAMESPACE_DECL) { - xmlNsPtr curns; - xmlNodePtr nsparent; - - nsparent = attrp->_private; - curns = xmlNewNs(NULL, attrp->name, NULL); - if (attrp->children) { - curns->prefix = xmlStrdup((xmlChar *) attrp->children); - } - if (attrp->children) { - attrp = xmlNewDocNode(nodep->doc, NULL, (xmlChar *) attrp->children, attrp->name); - } else { - attrp = xmlNewDocNode(nodep->doc, NULL, (xmlChar *)"xmlns", attrp->name); - } - attrp->type = XML_NAMESPACE_DECL; - attrp->parent = nsparent; - attrp->ns = curns; + xmlNsPtr original = (xmlNsPtr) attrp; + /* Keep parent alive, because we're a fake child. */ + GC_ADDREF(&intern->std); + (void) php_dom_create_fake_namespace_decl(nodep, original, return_value, intern); + } else { + DOM_RET_OBJ((xmlNodePtr) attrp, &ret, intern); } - - DOM_RET_OBJ((xmlNodePtr) attrp, &ret, intern); } /* }}} end dom_element_get_attribute_node */ @@ -735,6 +724,83 @@ } /* }}} end dom_element_set_attribute_ns */ +static void dom_remove_eliminated_ns_single_element(xmlNodePtr node, xmlNsPtr eliminatedNs) +{ + ZEND_ASSERT(node->type == XML_ELEMENT_NODE); + if (node->ns == eliminatedNs) { + node->ns = NULL; + } + + for (xmlAttrPtr attr = node->properties; attr != NULL; attr = attr->next) { + if (attr->ns == eliminatedNs) { + attr->ns = NULL; + } + } +} + +static void dom_remove_eliminated_ns(xmlNodePtr node, xmlNsPtr eliminatedNs) +{ + dom_remove_eliminated_ns_single_element(node, eliminatedNs); + + xmlNodePtr base = node; + node = node->children; + while (node != NULL) { + ZEND_ASSERT(node != base); + + if (node->type == XML_ELEMENT_NODE) { + dom_remove_eliminated_ns_single_element(node, eliminatedNs); + + if (node->children) { + node = node->children; + continue; + } + } + + if (node->next) { + node = node->next; + } else { + /* Go upwards, until we find a parent node with a next sibling, or until we hit the base. */ + do { + node = node->parent; + if (node == base) { + return; + } + } while (node->next == NULL); + node = node->next; + } + } +} + +static void dom_eliminate_ns(xmlNodePtr nodep, xmlNsPtr nsptr) +{ + if (nsptr->href != NULL) { + xmlFree((char *) nsptr->href); + nsptr->href = NULL; + } + if (nsptr->prefix != NULL) { + xmlFree((char *) nsptr->prefix); + nsptr->prefix = NULL; + } + + /* Remove it from the list and move it to the old ns list */ + xmlNsPtr current_ns = nodep->nsDef; + if (current_ns == nsptr) { + nodep->nsDef = nsptr->next; + } else { + do { + if (current_ns->next == nsptr) { + current_ns->next = nsptr->next; + break; + } + current_ns = current_ns->next; + } while (current_ns != NULL); + } + nsptr->next = NULL; + dom_set_old_ns(nodep->doc, nsptr); + + dom_remove_eliminated_ns(nodep, nsptr); +} + /* {{{ URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElRemAtNS Since: DOM Level 2 */ @@ -765,14 +831,7 @@ nsptr = dom_get_nsdecl(nodep, (xmlChar *)name); if (nsptr != NULL) { if (xmlStrEqual((xmlChar *)uri, nsptr->href)) { - if (nsptr->href != NULL) { - xmlFree((char *) nsptr->href); - nsptr->href = NULL; - } - if (nsptr->prefix != NULL) { - xmlFree((char *) nsptr->prefix); - nsptr->prefix = NULL; - } + dom_eliminate_ns(nodep, nsptr); } else { RETURN_NULL(); } @@ -798,7 +857,7 @@ PHP_METHOD(DOMElement, getAttributeNodeNS) { zval *id; - xmlNodePtr elemp, fakeAttrp; + xmlNodePtr elemp; xmlAttrPtr attrp; dom_object *intern; size_t uri_len, name_len; @@ -819,21 +878,9 @@ xmlNsPtr nsptr; nsptr = dom_get_nsdecl(elemp, (xmlChar *)name); if (nsptr != NULL) { - xmlNsPtr curns; - curns = xmlNewNs(NULL, nsptr->href, NULL); - if (nsptr->prefix) { - curns->prefix = xmlStrdup((xmlChar *) nsptr->prefix); - } - if (nsptr->prefix) { - fakeAttrp = xmlNewDocNode(elemp->doc, NULL, (xmlChar *) nsptr->prefix, nsptr->href); - } else { - fakeAttrp = xmlNewDocNode(elemp->doc, NULL, (xmlChar *)"xmlns", nsptr->href); - } - fakeAttrp->type = XML_NAMESPACE_DECL; - fakeAttrp->parent = elemp; - fakeAttrp->ns = curns; - - DOM_RET_OBJ(fakeAttrp, &ret, intern); + /* Keep parent alive, because we're a fake child. */ + GC_ADDREF(&intern->std); + (void) php_dom_create_fake_namespace_decl(elemp, nsptr, return_value, intern); } else { RETURN_NULL(); } @@ -885,7 +932,7 @@ nsp = attrp->ns; if (nsp != NULL) { - existattrp = xmlHasNsProp(nodep, nsp->href, attrp->name); + existattrp = xmlHasNsProp(nodep, attrp->name, nsp->href); } else { existattrp = xmlHasProp(nodep, attrp->name); } @@ -1160,12 +1207,12 @@ PHP_METHOD(DOMElement, after) { - int argc; + int argc = 0; zval *args, *id; dom_object *intern; xmlNode *context; - if (zend_parse_parameters(ZEND_NUM_ARGS(), "+", &args, &argc) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS(), "*", &args, &argc) == FAILURE) { RETURN_THROWS(); } @@ -1177,12 +1224,12 @@ PHP_METHOD(DOMElement, before) { - int argc; + int argc = 0; zval *args, *id; dom_object *intern; xmlNode *context; - if (zend_parse_parameters(ZEND_NUM_ARGS(), "+", &args, &argc) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS(), "*", &args, &argc) == FAILURE) { RETURN_THROWS(); } @@ -1197,12 +1244,12 @@ */ PHP_METHOD(DOMElement, append) { - int argc; + int argc = 0; zval *args, *id; dom_object *intern; xmlNode *context; - if (zend_parse_parameters(ZEND_NUM_ARGS(), "+", &args, &argc) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS(), "*", &args, &argc) == FAILURE) { RETURN_THROWS(); } @@ -1218,12 +1265,12 @@ */ PHP_METHOD(DOMElement, prepend) { - int argc; + int argc = 0; zval *args, *id; dom_object *intern; xmlNode *context; - if (zend_parse_parameters(ZEND_NUM_ARGS(), "+", &args, &argc) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS(), "*", &args, &argc) == FAILURE) { RETURN_THROWS(); } @@ -1234,25 +1281,24 @@ } /* }}} end DOMElement::prepend */ -/* {{{ URL: https://dom.spec.whatwg.org/#dom-parentnode-prepend +/* {{{ URL: https://dom.spec.whatwg.org/#dom-parentnode-replacechildren Since: DOM Living Standard (DOM4) */ PHP_METHOD(DOMElement, replaceWith) { - int argc; + int argc = 0; zval *args, *id; dom_object *intern; xmlNode *context; - if (zend_parse_parameters(ZEND_NUM_ARGS(), "+", &args, &argc) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS(), "*", &args, &argc) == FAILURE) { RETURN_THROWS(); } id = ZEND_THIS; DOM_GET_OBJ(context, id, xmlNodePtr, intern); - dom_parent_node_after(intern, args, argc); - dom_child_node_remove(intern); + dom_child_replace_with(intern, args, argc); } /* }}} end DOMElement::prepend */ diff -Nru php8.2-8.2.7/ext/dom/entity.c php8.2-8.2.18/ext/dom/entity.c --- php8.2-8.2.7/ext/dom/entity.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dom/entity.c 2024-04-09 18:46:23.000000000 +0000 @@ -27,13 +27,13 @@ /* * class DOMEntity extends DOMNode * -* URL: https://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-527DCFF2 +* URL: https://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-527DCFF2 * Since: */ /* {{{ publicId string readonly=yes -URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-D7303025 +URL: https://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-D7303025 Since: */ int dom_entity_public_id_read(dom_object *obj, zval *retval) @@ -45,7 +45,7 @@ return FAILURE; } - if (nodep->etype != XML_EXTERNAL_GENERAL_UNPARSED_ENTITY) { + if (nodep->etype != XML_EXTERNAL_GENERAL_UNPARSED_ENTITY || !nodep->ExternalID) { ZVAL_NULL(retval); } else { ZVAL_STRING(retval, (char *) (nodep->ExternalID)); @@ -58,7 +58,7 @@ /* {{{ systemId string readonly=yes -URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-D7C29F3E +URL: https://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-D7C29F3E Since: */ int dom_entity_system_id_read(dom_object *obj, zval *retval) @@ -83,13 +83,12 @@ /* {{{ notationName string readonly=yes -URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-6ABAEB38 +URL: https://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-6ABAEB38 Since: */ int dom_entity_notation_name_read(dom_object *obj, zval *retval) { xmlEntity *nodep = (xmlEntity *) dom_object_get_node(obj); - char *content; if (nodep == NULL) { php_dom_throw_error(INVALID_STATE_ERR, 1); @@ -99,9 +98,12 @@ if (nodep->etype != XML_EXTERNAL_GENERAL_UNPARSED_ENTITY) { ZVAL_NULL(retval); } else { - content = (char *) xmlNodeGetContent((xmlNodePtr) nodep); - ZVAL_STRING(retval, content); - xmlFree(content); + /* According to spec, NULL is only allowed for unparsed entities, if it's not set we should use the empty string. */ + if (!nodep->content) { + ZVAL_EMPTY_STRING(retval); + } else { + ZVAL_STRING(retval, (const char *) nodep->content); + } } return SUCCESS; diff -Nru php8.2-8.2.7/ext/dom/entityreference.c php8.2-8.2.18/ext/dom/entityreference.c --- php8.2-8.2.7/ext/dom/entityreference.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dom/entityreference.c 2024-04-09 18:46:23.000000000 +0000 @@ -57,13 +57,11 @@ } intern = Z_DOMOBJ_P(ZEND_THIS); - if (intern != NULL) { - oldnode = dom_object_get_node(intern); - if (oldnode != NULL) { - php_libxml_node_free_resource(oldnode ); - } - php_libxml_increment_node_ptr((php_libxml_node_object *)intern, node, (void *)intern); + oldnode = dom_object_get_node(intern); + if (oldnode != NULL) { + php_libxml_node_decrement_resource((php_libxml_node_object *)intern); } + php_libxml_increment_node_ptr((php_libxml_node_object *)intern, node, (void *)intern); } /* }}} end DOMEntityReference::__construct */ diff -Nru php8.2-8.2.7/ext/dom/namednodemap.c php8.2-8.2.18/ext/dom/namednodemap.c --- php8.2-8.2.7/ext/dom/namednodemap.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dom/namednodemap.c 2024-04-09 18:46:23.000000000 +0000 @@ -31,7 +31,7 @@ * Since: */ -static int get_namednodemap_length(dom_object *obj) +int php_dom_get_namednodemap_length(dom_object *obj) { dom_nnodemap_object *objmap = (dom_nnodemap_object *) obj->ptr; if (!objmap) { @@ -65,95 +65,74 @@ */ int dom_namednodemap_length_read(dom_object *obj, zval *retval) { - ZVAL_LONG(retval, get_namednodemap_length(obj)); + ZVAL_LONG(retval, php_dom_get_namednodemap_length(obj)); return SUCCESS; } /* }}} */ -/* {{{ URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1074577549 -Since: -*/ -PHP_METHOD(DOMNamedNodeMap, getNamedItem) +xmlNodePtr php_dom_named_node_map_get_named_item(dom_nnodemap_object *objmap, const char *named, bool may_transform) { - zval *id; - int ret; - size_t namedlen=0; - dom_object *intern; xmlNodePtr itemnode = NULL; - char *named; - - dom_nnodemap_object *objmap; - xmlNodePtr nodep; - xmlNotation *notep = NULL; - - id = ZEND_THIS; - if (zend_parse_parameters(ZEND_NUM_ARGS(), "s", &named, &namedlen) == FAILURE) { - RETURN_THROWS(); - } - - intern = Z_DOMOBJ_P(id); - - objmap = (dom_nnodemap_object *)intern->ptr; - if (objmap != NULL) { if ((objmap->nodetype == XML_NOTATION_NODE) || objmap->nodetype == XML_ENTITY_NODE) { if (objmap->ht) { if (objmap->nodetype == XML_ENTITY_NODE) { - itemnode = (xmlNodePtr)xmlHashLookup(objmap->ht, (xmlChar *) named); + itemnode = (xmlNodePtr)xmlHashLookup(objmap->ht, (const xmlChar *) named); } else { - notep = (xmlNotation *)xmlHashLookup(objmap->ht, (xmlChar *) named); + xmlNotationPtr notep = xmlHashLookup(objmap->ht, (const xmlChar *) named); if (notep) { - itemnode = create_notation(notep->name, notep->PublicID, notep->SystemID); + if (may_transform) { + itemnode = create_notation(notep->name, notep->PublicID, notep->SystemID); + } else { + itemnode = (xmlNodePtr) notep; + } } } } } else { - nodep = dom_object_get_node(objmap->baseobj); + xmlNodePtr nodep = dom_object_get_node(objmap->baseobj); if (nodep) { - itemnode = (xmlNodePtr)xmlHasProp(nodep, (xmlChar *) named); + itemnode = (xmlNodePtr)xmlHasProp(nodep, (const xmlChar *) named); } } } + return itemnode; +} +void php_dom_named_node_map_get_named_item_into_zval(dom_nnodemap_object *objmap, const char *named, zval *return_value) +{ + int ret; + xmlNodePtr itemnode = php_dom_named_node_map_get_named_item(objmap, named, true); if (itemnode) { DOM_RET_OBJ(itemnode, &ret, objmap->baseobj); - return; } else { - RETVAL_NULL(); + RETURN_NULL(); } } -/* }}} end dom_namednodemap_get_named_item */ -/* {{{ URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-349467F9 +/* {{{ URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1074577549 Since: */ -PHP_METHOD(DOMNamedNodeMap, item) +PHP_METHOD(DOMNamedNodeMap, getNamedItem) { - zval *id; - zend_long index; - int ret; - dom_object *intern; - xmlNodePtr itemnode = NULL; - - dom_nnodemap_object *objmap; - xmlNodePtr nodep, curnode; - int count; + size_t namedlen; + char *named; - id = ZEND_THIS; - if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &index) == FAILURE) { - RETURN_THROWS(); - } - if (index < 0 || ZEND_LONG_INT_OVFL(index)) { - zend_argument_value_error(1, "must be between 0 and %d", INT_MAX); + if (zend_parse_parameters(ZEND_NUM_ARGS(), "s", &named, &namedlen) == FAILURE) { RETURN_THROWS(); } - intern = Z_DOMOBJ_P(id); - - objmap = (dom_nnodemap_object *)intern->ptr; + zval *id = ZEND_THIS; + dom_nnodemap_object *objmap = Z_DOMOBJ_P(id)->ptr; + php_dom_named_node_map_get_named_item_into_zval(objmap, named, return_value); +} +/* }}} end dom_namednodemap_get_named_item */ +xmlNodePtr php_dom_named_node_map_get_item(dom_nnodemap_object *objmap, zend_long index) +{ + xmlNodePtr itemnode = NULL; if (objmap != NULL) { if ((objmap->nodetype == XML_NOTATION_NODE) || objmap->nodetype == XML_ENTITY_NODE) { @@ -165,10 +144,10 @@ } } } else { - nodep = dom_object_get_node(objmap->baseobj); + xmlNodePtr nodep = dom_object_get_node(objmap->baseobj); if (nodep) { - curnode = (xmlNodePtr)nodep->properties; - count = 0; + xmlNodePtr curnode = (xmlNodePtr)nodep->properties; + zend_long count = 0; while (count < index && curnode != NULL) { count++; curnode = (xmlNodePtr)curnode->next; @@ -177,13 +156,38 @@ } } } + return itemnode; +} +void php_dom_named_node_map_get_item_into_zval(dom_nnodemap_object *objmap, zend_long index, zval *return_value) +{ + int ret; + xmlNodePtr itemnode = php_dom_named_node_map_get_item(objmap, index); if (itemnode) { DOM_RET_OBJ(itemnode, &ret, objmap->baseobj); - return; + } else { + RETURN_NULL(); + } +} + +/* {{{ URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-349467F9 +Since: +*/ +PHP_METHOD(DOMNamedNodeMap, item) +{ + zend_long index; + if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &index) == FAILURE) { + RETURN_THROWS(); + } + if (index < 0 || ZEND_LONG_INT_OVFL(index)) { + zend_argument_value_error(1, "must be between 0 and %d", INT_MAX); + RETURN_THROWS(); } - RETVAL_NULL(); + zval *id = ZEND_THIS; + dom_object *intern = Z_DOMOBJ_P(id); + dom_nnodemap_object *objmap = intern->ptr; + php_dom_named_node_map_get_item_into_zval(objmap, index, return_value); } /* }}} end dom_namednodemap_item */ @@ -254,7 +258,7 @@ } intern = Z_DOMOBJ_P(id); - RETURN_LONG(get_namednodemap_length(intern)); + RETURN_LONG(php_dom_get_namednodemap_length(intern)); } /* }}} end dom_namednodemap_count */ diff -Nru php8.2-8.2.7/ext/dom/node.c php8.2-8.2.18/ext/dom/node.c --- php8.2-8.2.7/ext/dom/node.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dom/node.c 2024-04-09 18:46:23.000000000 +0000 @@ -769,17 +769,28 @@ return FAILURE; } - if (nodep->type == XML_ELEMENT_NODE || nodep->type == XML_ATTRIBUTE_NODE) { + const xmlChar *xmlChars = (const xmlChar *) ZSTR_VAL(str); + int type = nodep->type; + + /* We can't directly call xmlNodeSetContent, because it might encode the string through + * xmlStringLenGetNodeList for types XML_DOCUMENT_FRAG_NODE, XML_ELEMENT_NODE, XML_ATTRIBUTE_NODE. + * See tree.c:xmlNodeSetContent in libxml. + * In these cases we need to use a text node to avoid the encoding. + * For the other cases, we *can* rely on xmlNodeSetContent because it is either a no-op, or handles + * the content without encoding. */ + if (type == XML_DOCUMENT_FRAG_NODE || type == XML_ELEMENT_NODE || type == XML_ATTRIBUTE_NODE) { if (nodep->children) { node_list_unlink(nodep->children); php_libxml_node_free_list((xmlNodePtr) nodep->children); nodep->children = NULL; } + + xmlNode *textNode = xmlNewText(xmlChars); + xmlAddChild(nodep, textNode); + } else { + xmlNodeSetContent(nodep, xmlChars); } - /* we have to use xmlNodeAddContent() to get the same behavior as with xmlNewText() */ - xmlNodeSetContent(nodep, (xmlChar *) ""); - xmlNodeAddContent(nodep, (xmlChar *) ZSTR_VAL(str)); zend_string_release_ex(str, 0); return SUCCESS; @@ -932,12 +943,20 @@ return; } } + new_child = xmlAddPrevSibling(refp, child); + if (UNEXPECTED(NULL == new_child)) { + goto cannot_add; + } } else if (child->type == XML_DOCUMENT_FRAG_NODE) { + xmlNodePtr last = child->last; new_child = _php_dom_insert_fragment(parentp, refp->prev, refp, child, intern, childobj); - } - - if (new_child == NULL) { + dom_reconcile_ns_list(parentp->doc, new_child, last); + } else { new_child = xmlAddPrevSibling(refp, child); + if (UNEXPECTED(NULL == new_child)) { + goto cannot_add; + } + dom_reconcile_ns(parentp->doc, new_child); } } else { if (child->parent != NULL){ @@ -974,23 +993,28 @@ return; } } + new_child = xmlAddChild(parentp, child); + if (UNEXPECTED(NULL == new_child)) { + goto cannot_add; + } } else if (child->type == XML_DOCUMENT_FRAG_NODE) { + xmlNodePtr last = child->last; new_child = _php_dom_insert_fragment(parentp, parentp->last, NULL, child, intern, childobj); - } - if (new_child == NULL) { + dom_reconcile_ns_list(parentp->doc, new_child, last); + } else { new_child = xmlAddChild(parentp, child); + if (UNEXPECTED(NULL == new_child)) { + goto cannot_add; + } + dom_reconcile_ns(parentp->doc, new_child); } } - if (NULL == new_child) { - zend_throw_error(NULL, "Cannot add newnode as the previous sibling of refnode"); - RETURN_THROWS(); - } - - dom_reconcile_ns(parentp->doc, new_child); - DOM_RET_OBJ(new_child, &ret, intern); - + return; +cannot_add: + zend_throw_error(NULL, "Cannot add newnode as the previous sibling of refnode"); + RETURN_THROWS(); } /* }}} end dom_node_insert_before */ @@ -1055,9 +1079,10 @@ xmlUnlinkNode(oldchild); + xmlNodePtr last = newchild->last; newchild = _php_dom_insert_fragment(nodep, prevsib, nextsib, newchild, intern, newchildobj); if (newchild) { - dom_reconcile_ns(nodep->doc, newchild); + dom_reconcile_ns_list(nodep->doc, newchild, last); } } else if (oldchild != newchild) { xmlDtdPtr intSubset = xmlGetIntSubset(nodep->doc); @@ -1204,22 +1229,28 @@ php_libxml_node_free_resource((xmlNodePtr) lastattr); } } + new_child = xmlAddChild(nodep, child); + if (UNEXPECTED(new_child == NULL)) { + goto cannot_add; + } } else if (child->type == XML_DOCUMENT_FRAG_NODE) { + xmlNodePtr last = child->last; new_child = _php_dom_insert_fragment(nodep, nodep->last, NULL, child, intern, childobj); - } - - if (new_child == NULL) { + dom_reconcile_ns_list(nodep->doc, new_child, last); + } else { new_child = xmlAddChild(nodep, child); - if (new_child == NULL) { - // TODO Convert to Error? - php_error_docref(NULL, E_WARNING, "Couldn't append node"); - RETURN_FALSE; + if (UNEXPECTED(new_child == NULL)) { + goto cannot_add; } + dom_reconcile_ns(nodep->doc, new_child); } - dom_reconcile_ns(nodep->doc, new_child); - DOM_RET_OBJ(new_child, &ret, intern); + return; +cannot_add: + // TODO Convert to Error? + php_error_docref(NULL, E_WARNING, "Couldn't append node"); + RETURN_FALSE; } /* }}} end dom_node_append_child */ @@ -1755,4 +1786,33 @@ } /* }}} */ +/** + * We want to block the serialization and unserialization of DOM classes. + * However, using @not-serializable makes the child classes also not serializable, even if the user implements the methods. + * So instead, we implement the methods wherein we throw exceptions. + * The reason we choose these methods is because: + * - If the user implements __serialize / __unserialize, the respective throwing methods are not called. + * - If the user implements __sleep / __wakeup, then it's also not a problem because they will not enter the throwing methods. + */ + +PHP_METHOD(DOMNode, __sleep) +{ + if (zend_parse_parameters_none() != SUCCESS) { + RETURN_THROWS(); + } + + zend_throw_exception_ex(NULL, 0, "Serialization of '%s' is not allowed, unless serialization methods are implemented in a subclass", ZSTR_VAL(Z_OBJCE_P(ZEND_THIS)->name)); + RETURN_THROWS(); +} + +PHP_METHOD(DOMNode, __wakeup) +{ + if (zend_parse_parameters_none() != SUCCESS) { + RETURN_THROWS(); + } + + zend_throw_exception_ex(NULL, 0, "Unserialization of '%s' is not allowed, unless unserialization methods are implemented in a subclass", ZSTR_VAL(Z_OBJCE_P(ZEND_THIS)->name)); + RETURN_THROWS(); +} + #endif diff -Nru php8.2-8.2.7/ext/dom/nodelist.c php8.2-8.2.18/ext/dom/nodelist.c --- php8.2-8.2.7/ext/dom/nodelist.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dom/nodelist.c 2024-04-09 18:46:23.000000000 +0000 @@ -31,7 +31,7 @@ * Since: */ -static int get_nodelist_length(dom_object *obj) +int php_dom_get_nodelist_length(dom_object *obj) { dom_nnodemap_object *objmap = (dom_nnodemap_object *) obj->ptr; if (!objmap) { @@ -82,7 +82,7 @@ */ int dom_nodelist_length_read(dom_object *obj, zval *retval) { - ZVAL_LONG(retval, get_nodelist_length(obj)); + ZVAL_LONG(retval, php_dom_get_nodelist_length(obj)); return SUCCESS; } @@ -99,36 +99,15 @@ } intern = Z_DOMOBJ_P(id); - RETURN_LONG(get_nodelist_length(intern)); + RETURN_LONG(php_dom_get_nodelist_length(intern)); } /* }}} end dom_nodelist_count */ -/* }}} */ - -/* {{{ URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-844377136 -Since: -*/ -PHP_METHOD(DOMNodeList, item) +void php_dom_nodelist_get_item_into_zval(dom_nnodemap_object *objmap, zend_long index, zval *return_value) { - zval *id; - zend_long index; int ret; - dom_object *intern; xmlNodePtr itemnode = NULL; - - dom_nnodemap_object *objmap; - xmlNodePtr nodep, curnode; - int count = 0; - - id = ZEND_THIS; - if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &index) == FAILURE) { - RETURN_THROWS(); - } - if (index >= 0) { - intern = Z_DOMOBJ_P(id); - - objmap = (dom_nnodemap_object *)intern->ptr; if (objmap != NULL) { if (objmap->ht) { if (objmap->nodetype == XML_ENTITY_NODE) { @@ -145,10 +124,11 @@ return; } } else if (objmap->baseobj) { - nodep = dom_object_get_node(objmap->baseobj); + xmlNodePtr nodep = dom_object_get_node(objmap->baseobj); if (nodep) { + int count = 0; if (objmap->nodetype == XML_ATTRIBUTE_NODE || objmap->nodetype == XML_ELEMENT_NODE) { - curnode = nodep->children; + xmlNodePtr curnode = nodep->children; while (count < index && curnode != NULL) { count++; curnode = curnode->next; @@ -175,6 +155,22 @@ RETVAL_NULL(); } + +/* {{{ URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-844377136 +Since: +*/ +PHP_METHOD(DOMNodeList, item) +{ + zend_long index; + if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &index) == FAILURE) { + RETURN_THROWS(); + } + + zval *id = ZEND_THIS; + dom_object *intern = Z_DOMOBJ_P(id); + dom_nnodemap_object *objmap = intern->ptr; + php_dom_nodelist_get_item_into_zval(objmap, index, return_value); +} /* }}} end dom_nodelist_item */ ZEND_METHOD(DOMNodeList, getIterator) diff -Nru php8.2-8.2.7/ext/dom/parentnode.c php8.2-8.2.18/ext/dom/parentnode.c --- php8.2-8.2.7/ext/dom/parentnode.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dom/parentnode.c 2024-04-09 18:46:23.000000000 +0000 @@ -124,26 +124,41 @@ } /* }}} */ +static bool dom_is_node_in_list(const zval *nodes, int nodesc, const xmlNodePtr node_to_find) +{ + for (int i = 0; i < nodesc; i++) { + if (Z_TYPE(nodes[i]) == IS_OBJECT) { + const zend_class_entry *ce = Z_OBJCE(nodes[i]); + + if (instanceof_function(ce, dom_node_class_entry)) { + if (dom_object_get_node(Z_DOMOBJ_P(nodes + i)) == node_to_find) { + return true; + } + } + } + } + + return false; +} + +static xmlDocPtr dom_doc_from_context_node(xmlNodePtr contextNode) +{ + if (contextNode->type == XML_DOCUMENT_NODE || contextNode->type == XML_HTML_DOCUMENT_NODE) { + return (xmlDocPtr) contextNode; + } else { + return contextNode->doc; + } +} + xmlNode* dom_zvals_to_fragment(php_libxml_ref_obj *document, xmlNode *contextNode, zval *nodes, int nodesc) { int i; xmlDoc *documentNode; xmlNode *fragment; xmlNode *newNode; - zend_class_entry *ce; dom_object *newNodeObj; - int stricterror; - - if (document == NULL) { - php_dom_throw_error(HIERARCHY_REQUEST_ERR, 1); - return NULL; - } - if (contextNode->type == XML_DOCUMENT_NODE || contextNode->type == XML_HTML_DOCUMENT_NODE) { - documentNode = (xmlDoc *) contextNode; - } else { - documentNode = contextNode->doc; - } + documentNode = dom_doc_from_context_node(contextNode); fragment = xmlNewDocFragment(documentNode); @@ -151,72 +166,59 @@ return NULL; } - stricterror = dom_get_strict_error(document); - for (i = 0; i < nodesc; i++) { if (Z_TYPE(nodes[i]) == IS_OBJECT) { - ce = Z_OBJCE(nodes[i]); - - if (instanceof_function(ce, dom_node_class_entry)) { - newNodeObj = Z_DOMOBJ_P(&nodes[i]); - newNode = dom_object_get_node(newNodeObj); + newNodeObj = Z_DOMOBJ_P(&nodes[i]); + newNode = dom_object_get_node(newNodeObj); - if (newNode->doc != documentNode) { - php_dom_throw_error(WRONG_DOCUMENT_ERR, stricterror); - goto err; - } - - if (newNode->parent != NULL) { - xmlUnlinkNode(newNode); - } - - newNodeObj->document = document; - xmlSetTreeDoc(newNode, documentNode); + if (newNode->parent != NULL) { + xmlUnlinkNode(newNode); + } - if (newNode->type == XML_ATTRIBUTE_NODE) { - goto hierarchy_request_err; - } + newNodeObj->document = document; + xmlSetTreeDoc(newNode, documentNode); - /* - * xmlNewDocText function will always returns same address to the second parameter if the parameters are greater than or equal to three. - * If it's text, that's fine, but if it's an object, it can cause invalid pointer because many new nodes point to the same memory address. - * So we must copy the new node to avoid this situation. - */ - if (nodesc > 1) { - newNode = xmlCopyNode(newNode, 1); - } + /* Citing from the docs (https://gnome.pages.gitlab.gnome.org/libxml2/devhelp/libxml2-tree.html#xmlAddChild): + * "Add a new node to @parent, at the end of the child (or property) list merging adjacent TEXT nodes (in which case @cur is freed)". + * So we must take a copy if this situation arises to prevent a use-after-free. */ + bool will_free = newNode->type == XML_TEXT_NODE && fragment->last && fragment->last->type == XML_TEXT_NODE; + if (will_free) { + newNode = xmlCopyNode(newNode, 1); + } - if (!xmlAddChild(fragment, newNode)) { - if (nodesc > 1) { - xmlFreeNode(newNode); + if (newNode->type == XML_DOCUMENT_FRAG_NODE) { + /* Unpack document fragment nodes, the behaviour differs for different libxml2 versions. */ + newNode = newNode->children; + while (newNode) { + xmlNodePtr next = newNode->next; + xmlUnlinkNode(newNode); + if (!xmlAddChild(fragment, newNode)) { + goto err; } - goto hierarchy_request_err; + newNode = next; + } + } else if (!xmlAddChild(fragment, newNode)) { + if (will_free) { + xmlFreeNode(newNode); } - - continue; - } else { - zend_argument_type_error(i + 1, "must be of type DOMNode|string, %s given", zend_zval_type_name(&nodes[i])); goto err; } - } else if (Z_TYPE(nodes[i]) == IS_STRING) { + } else { + ZEND_ASSERT(Z_TYPE(nodes[i]) == IS_STRING); + newNode = xmlNewDocText(documentNode, (xmlChar *) Z_STRVAL(nodes[i])); xmlSetTreeDoc(newNode, documentNode); if (!xmlAddChild(fragment, newNode)) { xmlFreeNode(newNode); - goto hierarchy_request_err; + goto err; } - } else { - zend_argument_type_error(i + 1, "must be of type DOMNode|string, %s given", zend_zval_type_name(&nodes[i])); - goto err; } } return fragment; -hierarchy_request_err: - php_dom_throw_error(HIERARCHY_REQUEST_ERR, stricterror); err: xmlFreeNode(fragment); return NULL; @@ -239,10 +241,81 @@ fragment->last = NULL; } +static zend_result dom_sanity_check_node_list_for_insertion(php_libxml_ref_obj *document, xmlNodePtr parentNode, zval *nodes, int nodesc) +{ + if (document == NULL) { + php_dom_throw_error(HIERARCHY_REQUEST_ERR, 1); + return FAILURE; + } + + xmlDocPtr documentNode = dom_doc_from_context_node(parentNode); + + for (int i = 0; i < nodesc; i++) { + zend_uchar type = Z_TYPE(nodes[i]); + if (type == IS_OBJECT) { + const zend_class_entry *ce = Z_OBJCE(nodes[i]); + + if (instanceof_function(ce, dom_node_class_entry)) { + xmlNodePtr node = dom_object_get_node(Z_DOMOBJ_P(nodes + i)); + + if (node->doc != documentNode) { + php_dom_throw_error(WRONG_DOCUMENT_ERR, dom_get_strict_error(document)); + return FAILURE; + } + + if (node->type == XML_ATTRIBUTE_NODE || dom_hierarchy(parentNode, node) != SUCCESS) { + php_dom_throw_error(HIERARCHY_REQUEST_ERR, dom_get_strict_error(document)); + return FAILURE; + } + } else { + zend_argument_type_error(i + 1, "must be of type DOMNode|string, %s given", zend_zval_type_name(&nodes[i])); + return FAILURE; + } + } else if (type != IS_STRING) { + zend_argument_type_error(i + 1, "must be of type DOMNode|string, %s given", zend_zval_type_name(&nodes[i])); + return FAILURE; + } + } + + return SUCCESS; +} + +static void dom_pre_insert(xmlNodePtr insertion_point, xmlNodePtr parentNode, xmlNodePtr newchild, xmlNodePtr fragment) +{ + if (!insertion_point) { + /* Place it as last node */ + if (parentNode->children) { + /* There are children */ + newchild->prev = parentNode->last; + parentNode->last->next = newchild; + } else { + /* No children, because they moved out when they became a fragment */ + parentNode->children = newchild; + } + parentNode->last = fragment->last; + } else { + /* Insert fragment before insertion_point */ + fragment->last->next = insertion_point; + if (insertion_point->prev) { + insertion_point->prev->next = newchild; + newchild->prev = insertion_point->prev; + } + insertion_point->prev = fragment->last; + if (parentNode->children == insertion_point) { + parentNode->children = newchild; + } + } +} + void dom_parent_node_append(dom_object *context, zval *nodes, int nodesc) { xmlNode *parentNode = dom_object_get_node(context); xmlNodePtr newchild, prevsib; + + if (UNEXPECTED(dom_sanity_check_node_list_for_insertion(context->document, parentNode, nodes, nodesc) != SUCCESS)) { + return; + } + xmlNode *fragment = dom_zvals_to_fragment(context->document, parentNode, nodes, nodesc); if (fragment == NULL) { @@ -259,13 +332,14 @@ parentNode->children = newchild; } - parentNode->last = fragment->last; + xmlNodePtr last = fragment->last; + parentNode->last = last; newchild->prev = prevsib; dom_fragment_assign_parent_node(parentNode, fragment); - dom_reconcile_ns(parentNode->doc, newchild); + dom_reconcile_ns_list(parentNode->doc, newchild, last); } xmlFree(fragment); @@ -280,24 +354,26 @@ return; } - xmlNodePtr newchild, nextsib; + if (UNEXPECTED(dom_sanity_check_node_list_for_insertion(context->document, parentNode, nodes, nodesc) != SUCCESS)) { + return; + } + xmlNode *fragment = dom_zvals_to_fragment(context->document, parentNode, nodes, nodesc); if (fragment == NULL) { return; } - newchild = fragment->children; - nextsib = parentNode->children; + xmlNode *newchild = fragment->children; if (newchild) { - parentNode->children = newchild; - fragment->last->next = nextsib; - nextsib->prev = fragment->last; + xmlNodePtr last = fragment->last; + + dom_pre_insert(parentNode->children, parentNode, newchild, fragment); dom_fragment_assign_parent_node(parentNode, fragment); - dom_reconcile_ns(parentNode->doc, newchild); + dom_reconcile_ns_list(parentNode->doc, newchild, last); } xmlFree(fragment); @@ -305,23 +381,38 @@ void dom_parent_node_after(dom_object *context, zval *nodes, int nodesc) { + /* Spec link: https://dom.spec.whatwg.org/#dom-childnode-after */ + xmlNode *prevsib = dom_object_get_node(context); xmlNodePtr newchild, parentNode; - xmlNode *fragment, *nextsib; + xmlNode *fragment; xmlDoc *doc; - bool afterlastchild; - - int stricterror = dom_get_strict_error(context->document); - if (!prevsib->parent) { - php_dom_throw_error(NO_MODIFICATION_ALLOWED_ERR, stricterror); + /* Spec step 1 */ + parentNode = prevsib->parent; + /* Spec step 2 */ + if (!parentNode) { + int stricterror = dom_get_strict_error(context->document); + php_dom_throw_error(HIERARCHY_REQUEST_ERR, stricterror); return; } + /* Spec step 3: find first following child not in nodes; otherwise null */ + xmlNodePtr viable_next_sibling = prevsib->next; + while (viable_next_sibling) { + if (!dom_is_node_in_list(nodes, nodesc, viable_next_sibling)) { + break; + } + viable_next_sibling = viable_next_sibling->next; + } + doc = prevsib->doc; - parentNode = prevsib->parent; - nextsib = prevsib->next; - afterlastchild = (nextsib == NULL); + + if (UNEXPECTED(dom_sanity_check_node_list_for_insertion(context->document, parentNode, nodes, nodesc) != SUCCESS)) { + return; + } + + /* Spec step 4: convert nodes into fragment */ fragment = dom_zvals_to_fragment(context->document, parentNode, nodes, nodesc); if (fragment == NULL) { @@ -331,42 +422,13 @@ newchild = fragment->children; if (newchild) { - /* first node and last node are both both parameters to DOMElement::after() method so nextsib and prevsib are null. */ - if (!parentNode->children) { - prevsib = nextsib = NULL; - } else if (afterlastchild) { - /* - * The new node will be inserted after last node, prevsib is last node. - * The first node is the parameter to DOMElement::after() if parentNode->children == prevsib is true - * and prevsib does not change, otherwise prevsib is parentNode->last (first node). - */ - prevsib = parentNode->children == prevsib ? prevsib : parentNode->last; - } else { - /* - * The new node will be inserted after first node, prevsib is first node. - * The first node is not the parameter to DOMElement::after() if parentNode->children == prevsib is true - * and prevsib does not change otherwise prevsib is null to mean that parentNode->children is the new node. - */ - prevsib = parentNode->children == prevsib ? prevsib : NULL; - } + xmlNodePtr last = fragment->last; - if (prevsib) { - fragment->last->next = prevsib->next; - if (prevsib->next) { - prevsib->next->prev = fragment->last; - } - prevsib->next = newchild; - } else { - parentNode->children = newchild; - if (nextsib) { - fragment->last->next = nextsib; - nextsib->prev = fragment->last; - } - } + /* Step 5: place fragment into the parent before viable_next_sibling */ + dom_pre_insert(viable_next_sibling, parentNode, newchild, fragment); - newchild->prev = prevsib; dom_fragment_assign_parent_node(parentNode, fragment); - dom_reconcile_ns(doc, newchild); + dom_reconcile_ns_list(doc, newchild, last); } xmlFree(fragment); @@ -374,17 +436,38 @@ void dom_parent_node_before(dom_object *context, zval *nodes, int nodesc) { + /* Spec link: https://dom.spec.whatwg.org/#dom-childnode-before */ + xmlNode *nextsib = dom_object_get_node(context); - xmlNodePtr newchild, prevsib, parentNode; - xmlNode *fragment, *afternextsib; + xmlNodePtr newchild, parentNode; + xmlNode *fragment; xmlDoc *doc; - bool beforefirstchild; - doc = nextsib->doc; - prevsib = nextsib->prev; - afternextsib = nextsib->next; + /* Spec step 1 */ parentNode = nextsib->parent; - beforefirstchild = !prevsib; + /* Spec step 2 */ + if (!parentNode) { + int stricterror = dom_get_strict_error(context->document); + php_dom_throw_error(HIERARCHY_REQUEST_ERR, stricterror); + return; + } + + /* Spec step 3: find first following child not in nodes; otherwise null */ + xmlNodePtr viable_previous_sibling = nextsib->prev; + while (viable_previous_sibling) { + if (!dom_is_node_in_list(nodes, nodesc, viable_previous_sibling)) { + break; + } + viable_previous_sibling = viable_previous_sibling->prev; + } + + doc = nextsib->doc; + + if (UNEXPECTED(dom_sanity_check_node_list_for_insertion(context->document, parentNode, nodes, nodesc) != SUCCESS)) { + return; + } + + /* Spec step 4: convert nodes into fragment */ fragment = dom_zvals_to_fragment(context->document, parentNode, nodes, nodesc); if (fragment == NULL) { @@ -394,74 +477,63 @@ newchild = fragment->children; if (newchild) { - /* first node and last node are both both parameters to DOMElement::before() method so nextsib is null. */ - if (!parentNode->children) { - nextsib = NULL; - } else if (beforefirstchild) { - /* - * The new node will be inserted before first node, nextsib is first node and afternextsib is last node. - * The first node is not the parameter to DOMElement::before() if parentNode->children == nextsib is true - * and nextsib does not change, otherwise nextsib is the last node. - */ - nextsib = parentNode->children == nextsib ? nextsib : afternextsib; - } else { - /* - * The new node will be inserted before last node, prevsib is first node and nestsib is last node. - * The first node is not the parameter to DOMElement::before() if parentNode->children == prevsib is true - * but last node may be, so use prevsib->next to determine the value of nextsib, otherwise nextsib does not change. - */ - nextsib = parentNode->children == prevsib ? prevsib->next : nextsib; - } + xmlNodePtr last = fragment->last; - if (parentNode->children == nextsib) { - parentNode->children = newchild; + /* Step 5: if viable_previous_sibling is null, set it to the parent's first child, otherwise viable_previous_sibling's next sibling */ + if (!viable_previous_sibling) { + viable_previous_sibling = parentNode->children; } else { - prevsib->next = newchild; + viable_previous_sibling = viable_previous_sibling->next; } - - fragment->last->next = nextsib; - if (nextsib) { - nextsib->prev = fragment->last; - } - - newchild->prev = prevsib; + /* Step 6: place fragment into the parent after viable_previous_sibling */ + dom_pre_insert(viable_previous_sibling, parentNode, newchild, fragment); dom_fragment_assign_parent_node(parentNode, fragment); - dom_reconcile_ns(doc, newchild); + dom_reconcile_ns_list(doc, newchild, last); } xmlFree(fragment); } -void dom_child_node_remove(dom_object *context) +static zend_result dom_child_removal_preconditions(const xmlNodePtr child, int stricterror) { - xmlNode *child = dom_object_get_node(context); - xmlNodePtr children; - int stricterror; - - stricterror = dom_get_strict_error(context->document); - if (dom_node_is_read_only(child) == SUCCESS || (child->parent != NULL && dom_node_is_read_only(child->parent) == SUCCESS)) { php_dom_throw_error(NO_MODIFICATION_ALLOWED_ERR, stricterror); - return; + return FAILURE; } if (!child->parent) { php_dom_throw_error(NOT_FOUND_ERR, stricterror); - return; + return FAILURE; } if (dom_node_children_valid(child->parent) == FAILURE) { - return; + return FAILURE; } - children = child->parent->children; + xmlNodePtr children = child->parent->children; if (!children) { php_dom_throw_error(NOT_FOUND_ERR, stricterror); + return FAILURE; + } + + return SUCCESS; +} + +void dom_child_node_remove(dom_object *context) +{ + xmlNode *child = dom_object_get_node(context); + xmlNodePtr children; + int stricterror; + + stricterror = dom_get_strict_error(context->document); + + if (UNEXPECTED(dom_child_removal_preconditions(child, stricterror) != SUCCESS)) { return; } + children = child->parent->children; while (children) { if (children == child) { xmlUnlinkNode(child); @@ -473,4 +545,65 @@ php_dom_throw_error(NOT_FOUND_ERR, stricterror); } +void dom_child_replace_with(dom_object *context, zval *nodes, int nodesc) +{ + /* Spec link: https://dom.spec.whatwg.org/#dom-childnode-replacewith */ + + xmlNodePtr child = dom_object_get_node(context); + + /* Spec step 1 */ + xmlNodePtr parentNode = child->parent; + /* Spec step 2 */ + if (!parentNode) { + int stricterror = dom_get_strict_error(context->document); + php_dom_throw_error(HIERARCHY_REQUEST_ERR, stricterror); + return; + } + + int stricterror = dom_get_strict_error(context->document); + if (UNEXPECTED(dom_child_removal_preconditions(child, stricterror) != SUCCESS)) { + return; + } + + /* Spec step 3: find first following child not in nodes; otherwise null */ + xmlNodePtr viable_next_sibling = child->next; + while (viable_next_sibling) { + if (!dom_is_node_in_list(nodes, nodesc, viable_next_sibling)) { + break; + } + viable_next_sibling = viable_next_sibling->next; + } + + if (UNEXPECTED(dom_sanity_check_node_list_for_insertion(context->document, parentNode, nodes, nodesc) != SUCCESS)) { + return; + } + + /* Spec step 4: convert nodes into fragment */ + xmlNodePtr fragment = dom_zvals_to_fragment(context->document, parentNode, nodes, nodesc); + if (UNEXPECTED(fragment == NULL)) { + return; + } + + /* Spec step 5: perform the replacement */ + + xmlNodePtr newchild = fragment->children; + xmlDocPtr doc = parentNode->doc; + + /* Unlink and free it unless it became a part of the fragment. */ + if (child->parent != fragment) { + xmlUnlinkNode(child); + } + + if (newchild) { + xmlNodePtr last = fragment->last; + + dom_pre_insert(viable_next_sibling, parentNode, newchild, fragment); + + dom_fragment_assign_parent_node(parentNode, fragment); + dom_reconcile_ns_list(doc, newchild, last); + } + + xmlFree(fragment); +} + #endif diff -Nru php8.2-8.2.7/ext/dom/php_dom.c php8.2-8.2.18/ext/dom/php_dom.c --- php8.2-8.2.7/ext/dom/php_dom.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dom/php_dom.c 2024-04-09 18:46:23.000000000 +0000 @@ -61,6 +61,8 @@ zend_object_handlers dom_object_handlers; zend_object_handlers dom_nnodemap_object_handlers; +zend_object_handlers dom_nodelist_object_handlers; +zend_object_handlers dom_object_namespace_node_handlers; #ifdef LIBXML_XPATH_ENABLED zend_object_handlers dom_xpath_object_handlers; #endif @@ -86,6 +88,11 @@ #endif /* }}} */ +static zend_object *dom_objects_namespace_node_new(zend_class_entry *class_type); +static void dom_object_namespace_node_free_storage(zend_object *object); +static xmlNodePtr php_dom_create_fake_namespace_decl_node_ptr(xmlNodePtr nodep, xmlNsPtr original); +static zend_object *dom_nodelist_objects_new(zend_class_entry *class_type); + typedef int (*dom_read_t)(dom_object *obj, zval *retval); typedef int (*dom_write_t)(dom_object *obj, zval *newval); @@ -473,6 +480,19 @@ static dom_object* dom_objects_set_class(zend_class_entry *class_type); +static void dom_update_refcount_after_clone(dom_object *original, xmlNodePtr original_node, dom_object *clone, xmlNodePtr cloned_node) +{ + /* If we cloned a document then we must create new doc proxy */ + if (cloned_node->doc == original_node->doc) { + clone->document = original->document; + } + php_libxml_increment_doc_ref((php_libxml_node_object *)clone, cloned_node->doc); + php_libxml_increment_node_ptr((php_libxml_node_object *)clone, cloned_node, (void *)clone); + if (original->document != clone->document) { + dom_copy_doc_props(original->document, clone->document); + } +} + static zend_object *dom_objects_store_clone_obj(zend_object *zobject) /* {{{ */ { dom_object *intern = php_dom_obj_from_obj(zobject); @@ -485,15 +505,7 @@ if (node != NULL) { xmlNodePtr cloned_node = xmlDocCopyNode(node, node->doc, 1); if (cloned_node != NULL) { - /* If we cloned a document then we must create new doc proxy */ - if (cloned_node->doc == node->doc) { - clone->document = intern->document; - } - php_libxml_increment_doc_ref((php_libxml_node_object *)clone, cloned_node->doc); - php_libxml_increment_node_ptr((php_libxml_node_object *)clone, cloned_node, (void *)clone); - if (intern->document != clone->document) { - dom_copy_doc_props(intern->document, clone->document); - } + dom_update_refcount_after_clone(intern, node, clone, cloned_node); } } @@ -505,6 +517,26 @@ } /* }}} */ +static zend_object *dom_object_namespace_node_clone_obj(zend_object *zobject) +{ + dom_object_namespace_node *intern = php_dom_namespace_node_obj_from_obj(zobject); + zend_object *clone = dom_objects_namespace_node_new(intern->dom.std.ce); + dom_object_namespace_node *clone_intern = php_dom_namespace_node_obj_from_obj(clone); + + xmlNodePtr original_node = dom_object_get_node(&intern->dom); + ZEND_ASSERT(original_node->type == XML_NAMESPACE_DECL); + xmlNodePtr cloned_node = php_dom_create_fake_namespace_decl_node_ptr(original_node->parent, original_node->ns); + + if (intern->parent_intern) { + clone_intern->parent_intern = intern->parent_intern; + GC_ADDREF(&clone_intern->parent_intern->std); + } + dom_update_refcount_after_clone(&intern->dom, original_node, &clone_intern->dom, cloned_node); + + zend_objects_clone_members(clone, &intern->dom.std); + return clone; +} + static void dom_copy_prop_handler(zval *zv) /* {{{ */ { dom_prop_handler *hnd = Z_PTR_P(zv); @@ -547,6 +579,8 @@ void dom_nnodemap_objects_free_storage(zend_object *object); static zval *dom_nodelist_read_dimension(zend_object *object, zval *offset, int type, zval *rv); static int dom_nodelist_has_dimension(zend_object *object, zval *member, int check_empty); +static zval *dom_nodemap_read_dimension(zend_object *object, zval *offset, int type, zval *rv); +static int dom_nodemap_has_dimension(zend_object *object, zval *member, int check_empty); static zend_object *dom_objects_store_clone_obj(zend_object *zobject); #ifdef LIBXML_XPATH_ENABLED void dom_xpath_objects_free_storage(zend_object *object); @@ -567,8 +601,17 @@ memcpy(&dom_nnodemap_object_handlers, &dom_object_handlers, sizeof(zend_object_handlers)); dom_nnodemap_object_handlers.free_obj = dom_nnodemap_objects_free_storage; - dom_nnodemap_object_handlers.read_dimension = dom_nodelist_read_dimension; - dom_nnodemap_object_handlers.has_dimension = dom_nodelist_has_dimension; + dom_nnodemap_object_handlers.read_dimension = dom_nodemap_read_dimension; + dom_nnodemap_object_handlers.has_dimension = dom_nodemap_has_dimension; + + memcpy(&dom_nodelist_object_handlers, &dom_nnodemap_object_handlers, sizeof(zend_object_handlers)); + dom_nodelist_object_handlers.read_dimension = dom_nodelist_read_dimension; + dom_nodelist_object_handlers.has_dimension = dom_nodelist_has_dimension; + + memcpy(&dom_object_namespace_node_handlers, &dom_object_handlers, sizeof(zend_object_handlers)); + dom_object_namespace_node_handlers.offset = XtOffsetOf(dom_object_namespace_node, dom.std); + dom_object_namespace_node_handlers.free_obj = dom_object_namespace_node_free_storage; + dom_object_namespace_node_handlers.clone_obj = dom_object_namespace_node_clone_obj; zend_hash_init(&classes, 0, NULL, NULL, 1); @@ -604,7 +647,7 @@ zend_hash_add_ptr(&classes, dom_node_class_entry->name, &dom_node_prop_handlers); dom_namespace_node_class_entry = register_class_DOMNameSpaceNode(); - dom_namespace_node_class_entry->create_object = dom_objects_new; + dom_namespace_node_class_entry->create_object = dom_objects_namespace_node_new; zend_hash_init(&dom_namespace_node_prop_handlers, 0, NULL, dom_dtor_prop_handler, 1); dom_register_prop_handler(&dom_namespace_node_prop_handlers, "nodeName", sizeof("nodeName")-1, dom_node_node_name_read, NULL); @@ -659,7 +702,7 @@ zend_hash_add_ptr(&classes, dom_document_class_entry->name, &dom_document_prop_handlers); dom_nodelist_class_entry = register_class_DOMNodeList(zend_ce_aggregate, zend_ce_countable); - dom_nodelist_class_entry->create_object = dom_nnodemap_objects_new; + dom_nodelist_class_entry->create_object = dom_nodelist_objects_new; dom_nodelist_class_entry->get_iterator = php_dom_get_iterator; zend_hash_init(&dom_nodelist_prop_handlers, 0, NULL, dom_dtor_prop_handler, 1); @@ -952,10 +995,8 @@ } /* }}} */ -static dom_object* dom_objects_set_class(zend_class_entry *class_type) /* {{{ */ +static void dom_objects_set_class_ex(zend_class_entry *class_type, dom_object *intern) { - dom_object *intern = zend_object_alloc(sizeof(dom_object), class_type); - zend_class_entry *base_class = class_type; while ((base_class->type != ZEND_INTERNAL_CLASS || base_class->info.internal.module->module_number != dom_module_entry.module_number) && base_class->parent != NULL) { base_class = base_class->parent; @@ -965,10 +1006,14 @@ zend_object_std_init(&intern->std, class_type); object_properties_init(&intern->std, class_type); +} +static dom_object* dom_objects_set_class(zend_class_entry *class_type) +{ + dom_object *intern = zend_object_alloc(sizeof(dom_object), class_type); + dom_objects_set_class_ex(class_type, intern); return intern; } -/* }}} */ /* {{{ dom_objects_new */ zend_object *dom_objects_new(zend_class_entry *class_type) @@ -979,6 +1024,25 @@ } /* }}} */ +static zend_object *dom_objects_namespace_node_new(zend_class_entry *class_type) +{ + dom_object_namespace_node *intern = zend_object_alloc(sizeof(dom_object_namespace_node), class_type); + dom_objects_set_class_ex(class_type, &intern->dom); + intern->dom.std.handlers = &dom_object_namespace_node_handlers; + return &intern->dom.std; +} + +static void dom_object_namespace_node_free_storage(zend_object *object) +{ + dom_object_namespace_node *intern = php_dom_namespace_node_obj_from_obj(object); + if (intern->parent_intern != NULL) { + zval tmp; + ZVAL_OBJ(&tmp, &intern->parent_intern->std); + zval_ptr_dtor(&tmp); + } + dom_objects_free_storage(object); +} + #ifdef LIBXML_XPATH_ENABLED /* {{{ zend_object dom_xpath_objects_new(zend_class_entry *class_type) */ zend_object *dom_xpath_objects_new(zend_class_entry *class_type) @@ -1024,7 +1088,7 @@ } /* }}} */ -zend_object *dom_nnodemap_objects_new(zend_class_entry *class_type) /* {{{ */ +static zend_object *dom_nodemap_or_nodelist_objects_new(zend_class_entry *class_type, const zend_object_handlers *handlers) { dom_object *intern; dom_nnodemap_object *objmap; @@ -1039,12 +1103,22 @@ objmap->local = NULL; objmap->ns = NULL; - intern->std.handlers = &dom_nnodemap_object_handlers; + intern->std.handlers = handlers; return &intern->std; } + +zend_object *dom_nnodemap_objects_new(zend_class_entry *class_type) /* {{{ */ +{ + return dom_nodemap_or_nodelist_objects_new(class_type, &dom_nnodemap_object_handlers); +} /* }}} */ +zend_object *dom_nodelist_objects_new(zend_class_entry *class_type) +{ + return dom_nodemap_or_nodelist_objects_new(class_type, &dom_nodelist_object_handlers); +} + void php_dom_create_iterator(zval *return_value, int ce_type) /* {{{ */ { zend_class_entry *ce; @@ -1221,10 +1295,15 @@ { xmlNodePtr ret = NULL; + /* Note: The spec says that ns == '' must be transformed to ns == NULL. In other words, they are equivalent. + * PHP however does not do this and internally uses the empty string everywhere when the user provides ns == NULL. + * This is because for PHP ns == NULL has another meaning: "match every namespace" instead of "match the empty namespace". */ + bool ns_match_any = ns == NULL || (ns[0] == '*' && ns[1] == '\0'); + while (nodep != NULL && (*cur <= index || index == -1)) { if (nodep->type == XML_ELEMENT_NODE) { if (xmlStrEqual(nodep->name, (xmlChar *)local) || xmlStrEqual((xmlChar *)"*", (xmlChar *)local)) { - if (ns == NULL || (!strcmp(ns, "") && nodep->ns == NULL) || (nodep->ns != NULL && (xmlStrEqual(nodep->ns->href, (xmlChar *)ns) || xmlStrEqual((xmlChar *)"*", (xmlChar *)ns)))) { + if (ns_match_any || (!strcmp(ns, "") && nodep->ns == NULL) || (nodep->ns != NULL && xmlStrEqual(nodep->ns->href, (xmlChar *)ns))) { if (*cur == index) { ret = nodep; break; @@ -1331,38 +1410,91 @@ } /* }}} end dom_set_old_ns */ -void dom_reconcile_ns(xmlDocPtr doc, xmlNodePtr nodep) /* {{{ */ +static void dom_reconcile_ns_internal(xmlDocPtr doc, xmlNodePtr nodep, xmlNodePtr search_parent) { xmlNsPtr nsptr, nsdftptr, curns, prevns = NULL; - if (nodep->type == XML_ELEMENT_NODE) { - /* Following if block primarily used for inserting nodes created via createElementNS */ - if (nodep->nsDef != NULL) { - curns = nodep->nsDef; - while (curns) { - nsdftptr = curns->next; - if (curns->href != NULL) { - if((nsptr = xmlSearchNsByHref(doc, nodep->parent, curns->href)) && - (curns->prefix == NULL || xmlStrEqual(nsptr->prefix, curns->prefix))) { - curns->next = NULL; - if (prevns == NULL) { - nodep->nsDef = nsdftptr; - } else { - prevns->next = nsdftptr; - } - dom_set_old_ns(doc, curns); - curns = prevns; + /* Following if block primarily used for inserting nodes created via createElementNS */ + if (nodep->nsDef != NULL) { + curns = nodep->nsDef; + while (curns) { + nsdftptr = curns->next; + if (curns->href != NULL) { + if((nsptr = xmlSearchNsByHref(doc, search_parent, curns->href)) && + (curns->prefix == NULL || xmlStrEqual(nsptr->prefix, curns->prefix))) { + curns->next = NULL; + if (prevns == NULL) { + nodep->nsDef = nsdftptr; + } else { + prevns->next = nsdftptr; } + dom_set_old_ns(doc, curns); + curns = prevns; } - prevns = curns; - curns = nsdftptr; } + prevns = curns; + curns = nsdftptr; } - xmlReconciliateNs(doc, nodep); + } +} + +static void dom_libxml_reconcile_ensure_namespaces_are_declared(xmlNodePtr nodep) +{ + /* Ideally we'd use the DOM-wrapped version, but we cannot: https://github.com/php/php-src/pull/12308. */ +#if 0 + /* Put on stack to avoid allocation. + * Although libxml2 currently does not use this for the reconciliation, it still + * makes sense to do this just in case libxml2's internal change in the future. */ + xmlDOMWrapCtxt dummy_ctxt = {0}; + xmlDOMWrapReconcileNamespaces(&dummy_ctxt, nodep, /* options */ 0); +#else + xmlReconciliateNs(nodep->doc, nodep); +#endif +} + +void dom_reconcile_ns(xmlDocPtr doc, xmlNodePtr nodep) /* {{{ */ +{ + /* Although the node type will be checked by the libxml2 API, + * we still want to do the internal reconciliation conditionally. */ + if (nodep->type == XML_ELEMENT_NODE) { + dom_reconcile_ns_internal(doc, nodep, nodep->parent); + dom_libxml_reconcile_ensure_namespaces_are_declared(nodep); } } /* }}} */ +static void dom_reconcile_ns_list_internal(xmlDocPtr doc, xmlNodePtr nodep, xmlNodePtr last, xmlNodePtr search_parent) +{ + ZEND_ASSERT(nodep != NULL); + while (true) { + if (nodep->type == XML_ELEMENT_NODE) { + dom_reconcile_ns_internal(doc, nodep, search_parent); + if (nodep->children) { + dom_reconcile_ns_list_internal(doc, nodep->children, nodep->last /* process the whole children list */, search_parent); + } + } + if (nodep == last) { + break; + } + nodep = nodep->next; + } +} + +void dom_reconcile_ns_list(xmlDocPtr doc, xmlNodePtr nodep, xmlNodePtr last) +{ + dom_reconcile_ns_list_internal(doc, nodep, last, nodep->parent); + /* The loop is outside of the recursion in the above call because + * dom_libxml_reconcile_ensure_namespaces_are_declared() performs its own recursion. */ + while (true) { + /* The internal libxml2 call will already check the node type, no need for us to do it here. */ + dom_libxml_reconcile_ensure_namespaces_are_declared(nodep); + if (nodep == last) { + break; + } + nodep = nodep->next; + } +} + /* http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#ID-DocCrElNS @@ -1461,34 +1593,119 @@ } /* }}} end dom_get_nsdecl */ -static zval *dom_nodelist_read_dimension(zend_object *object, zval *offset, int type, zval *rv) /* {{{ */ +static xmlNodePtr php_dom_create_fake_namespace_decl_node_ptr(xmlNodePtr nodep, xmlNsPtr original) { - zval offset_copy; + xmlNodePtr attrp; + xmlNsPtr curns = xmlNewNs(NULL, original->href, NULL); + if (original->prefix) { + curns->prefix = xmlStrdup(original->prefix); + attrp = xmlNewDocNode(nodep->doc, NULL, (xmlChar *) original->prefix, original->href); + } else { + attrp = xmlNewDocNode(nodep->doc, NULL, (xmlChar *)"xmlns", original->href); + } + attrp->type = XML_NAMESPACE_DECL; + attrp->parent = nodep; + attrp->ns = curns; + return attrp; +} - if (!offset) { - zend_throw_error(NULL, "Cannot access node list without offset"); +/* Note: Assumes the additional lifetime was already added in the caller. */ +xmlNodePtr php_dom_create_fake_namespace_decl(xmlNodePtr nodep, xmlNsPtr original, zval *return_value, dom_object *parent_intern) +{ + xmlNodePtr attrp = php_dom_create_fake_namespace_decl_node_ptr(nodep, original); + php_dom_create_object(attrp, return_value, parent_intern); + /* This object must exist, because we just created an object for it via php_dom_create_object(). */ + php_dom_namespace_node_obj_from_obj(Z_OBJ_P(return_value))->parent_intern = parent_intern; + return attrp; +} + +static bool dom_nodemap_or_nodelist_process_offset_as_named(zval *offset, zend_long *lval) +{ + if (Z_TYPE_P(offset) == IS_STRING) { + /* See zval_get_long_func() */ + double dval; + zend_uchar is_numeric_string_type; + if (0 == (is_numeric_string_type = is_numeric_string(Z_STRVAL_P(offset), Z_STRLEN_P(offset), lval, &dval, true))) { + return true; + } else if (is_numeric_string_type == IS_DOUBLE) { + *lval = zend_dval_to_lval_cap(dval); + } + } else { + *lval = zval_get_long(offset); + } + return false; +} + +static zval *dom_nodelist_read_dimension(zend_object *object, zval *offset, int type, zval *rv) /* {{{ */ +{ + if (UNEXPECTED(!offset)) { + zend_throw_error(NULL, "Cannot access DOMNodeList without offset"); return NULL; } - ZVAL_LONG(&offset_copy, zval_get_long(offset)); + ZVAL_DEREF(offset); - zend_call_method_with_1_params(object, object->ce, NULL, "item", rv, &offset_copy); + zend_long lval; + if (dom_nodemap_or_nodelist_process_offset_as_named(offset, &lval)) { + /* does not support named lookup */ + ZVAL_NULL(rv); + return rv; + } + php_dom_nodelist_get_item_into_zval(php_dom_obj_from_obj(object)->ptr, lval, rv); return rv; } /* }}} end dom_nodelist_read_dimension */ static int dom_nodelist_has_dimension(zend_object *object, zval *member, int check_empty) { - zend_long offset = zval_get_long(member); - zval rv; + ZVAL_DEREF(member); - if (offset < 0) { + zend_long offset; + if (dom_nodemap_or_nodelist_process_offset_as_named(member, &offset)) { + /* does not support named lookup */ return 0; - } else { - zval *length = zend_read_property( - object->ce, object, "length", sizeof("length") - 1, 0, &rv); - return length && offset < Z_LVAL_P(length); } + + return offset >= 0 && offset < php_dom_get_nodelist_length(php_dom_obj_from_obj(object)); } /* }}} end dom_nodelist_has_dimension */ +static zval *dom_nodemap_read_dimension(zend_object *object, zval *offset, int type, zval *rv) /* {{{ */ +{ + if (UNEXPECTED(!offset)) { + zend_throw_error(NULL, "Cannot access DOMNamedNodeMap without offset"); + return NULL; + } + + ZVAL_DEREF(offset); + + zend_long lval; + if (dom_nodemap_or_nodelist_process_offset_as_named(offset, &lval)) { + /* exceptional case, switch to named lookup */ + php_dom_named_node_map_get_named_item_into_zval(php_dom_obj_from_obj(object)->ptr, Z_STRVAL_P(offset), rv); + return rv; + } + + /* see PHP_METHOD(DOMNamedNodeMap, item) */ + if (UNEXPECTED(lval < 0 || ZEND_LONG_INT_OVFL(lval))) { + zend_value_error("must be between 0 and %d", INT_MAX); + return NULL; + } + + php_dom_named_node_map_get_item_into_zval(php_dom_obj_from_obj(object)->ptr, lval, rv); + return rv; +} /* }}} end dom_nodemap_read_dimension */ + +static int dom_nodemap_has_dimension(zend_object *object, zval *member, int check_empty) +{ + ZVAL_DEREF(member); + + zend_long offset; + if (dom_nodemap_or_nodelist_process_offset_as_named(member, &offset)) { + /* exceptional case, switch to named lookup */ + return php_dom_named_node_map_get_named_item(php_dom_obj_from_obj(object)->ptr, Z_STRVAL_P(member), false) != NULL; + } + + return offset >= 0 && offset < php_dom_get_namednodemap_length(php_dom_obj_from_obj(object)); +} /* }}} end dom_nodemap_has_dimension */ + #endif /* HAVE_DOM */ diff -Nru php8.2-8.2.7/ext/dom/php_dom.h php8.2-8.2.18/ext/dom/php_dom.h --- php8.2-8.2.7/ext/dom/php_dom.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dom/php_dom.h 2024-04-09 18:46:23.000000000 +0000 @@ -93,6 +93,18 @@ HashPosition pos; } php_dom_iterator; +typedef struct { + /* This may be a fake object that isn't actually in the children list of the parent. + * This is because some namespace declaration nodes aren't stored on the parent in libxml2, so we have to fake it. + * We could use a zval for this, but since this is always going to be an object let's save space... */ + dom_object *parent_intern; + dom_object dom; +} dom_object_namespace_node; + +static inline dom_object_namespace_node *php_dom_namespace_node_obj_from_obj(zend_object *obj) { + return (dom_object_namespace_node*)((char*)(obj) - XtOffsetOf(dom_object_namespace_node, dom.std)); +} + #include "domexception.h" dom_object *dom_object_get_data(xmlNodePtr obj); @@ -110,6 +122,7 @@ xmlNsPtr dom_get_ns(xmlNodePtr node, char *uri, int *errorcode, char *prefix); void dom_set_old_ns(xmlDoc *doc, xmlNs *ns); 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); void dom_normalize (xmlNodePtr nodep); xmlNode *dom_get_elements_by_tag_name_ns_raw(xmlNodePtr nodep, char *ns, char *local, int *cur, int index); @@ -125,12 +138,23 @@ xmlNode *php_dom_libxml_notation_iter(xmlHashTable *ht, int index); zend_object_iterator *php_dom_get_iterator(zend_class_entry *ce, zval *object, int by_ref); void dom_set_doc_classmap(php_libxml_ref_obj *document, zend_class_entry *basece, zend_class_entry *ce); +xmlNodePtr php_dom_create_fake_namespace_decl(xmlNodePtr nodep, xmlNsPtr original, zval *return_value, dom_object *parent_intern); void dom_parent_node_prepend(dom_object *context, zval *nodes, int nodesc); void dom_parent_node_append(dom_object *context, zval *nodes, int nodesc); void dom_parent_node_after(dom_object *context, zval *nodes, int nodesc); void dom_parent_node_before(dom_object *context, zval *nodes, int nodesc); void dom_child_node_remove(dom_object *context); +void dom_child_replace_with(dom_object *context, zval *nodes, int nodesc); + +/* nodemap and nodelist APIs */ +xmlNodePtr php_dom_named_node_map_get_named_item(dom_nnodemap_object *objmap, const char *named, bool may_transform); +void php_dom_named_node_map_get_named_item_into_zval(dom_nnodemap_object *objmap, const char *named, zval *return_value); +xmlNodePtr php_dom_named_node_map_get_item(dom_nnodemap_object *objmap, zend_long index); +void php_dom_named_node_map_get_item_into_zval(dom_nnodemap_object *objmap, zend_long index, zval *return_value); +void php_dom_nodelist_get_item_into_zval(dom_nnodemap_object *objmap, zend_long index, zval *return_value); +int php_dom_get_namednodemap_length(dom_object *obj); +int php_dom_get_nodelist_length(dom_object *obj); #define DOM_GET_OBJ(__ptr, __id, __prtype, __intern) { \ __intern = Z_DOMOBJ_P(__id); \ diff -Nru php8.2-8.2.7/ext/dom/php_dom.stub.php php8.2-8.2.18/ext/dom/php_dom.stub.php --- php8.2-8.2.7/ext/dom/php_dom.stub.php 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dom/php_dom.stub.php 2024-04-09 18:46:23.000000000 +0000 @@ -291,7 +291,6 @@ public function replaceWith(...$nodes): void; } -/** @not-serializable */ class DOMNode { /** @readonly */ @@ -339,6 +338,10 @@ public string $textContent; + public function __sleep(): array {} + + public function __wakeup(): void {} + /** @return DOMNode|false */ public function appendChild(DOMNode $node) {} @@ -391,7 +394,6 @@ public function replaceChild(DOMNode $node, DOMNode $child) {} } -/** @not-serializable */ class DOMNameSpaceNode { /** @readonly */ @@ -417,6 +419,12 @@ /** @readonly */ public ?DOMNode $parentNode; + + /** @implementation-alias DOMNode::__sleep */ + public function __sleep(): array {} + + /** @implementation-alias DOMNode::__wakeup */ + public function __wakeup(): void {} } class DOMImplementation @@ -467,7 +475,7 @@ public function getIterator(): Iterator {} - /** @return DOMNode|DOMNameSpaceNode|null */ + /** @return DOMElement|DOMNode|DOMNameSpaceNode|null */ public function item(int $index) {} } @@ -668,7 +676,7 @@ * @readonly * @deprecated */ - public mixed $config = null; + public mixed $config; public bool $formatOutput; @@ -735,11 +743,11 @@ /** @return DOMNode|false */ public function importNode(DOMNode $node, bool $deep = false) {} - /** @return DOMDocument|bool */ - public function load(string $filename, int $options = 0) {} // TODO return type shouldn't depend on the call scope + /** @return bool */ + public function load(string $filename, int $options = 0) {} - /** @return DOMDocument|bool */ - public function loadXML(string $source, int $options = 0) {} // TODO return type shouldn't depend on the call scope + /** @return bool */ + public function loadXML(string $source, int $options = 0) {} /** @tentative-return-type */ public function normalizeDocument(): void {} @@ -751,11 +759,11 @@ public function save(string $filename, int $options = 0): int|false {} #ifdef LIBXML_HTML_ENABLED - /** @return DOMDocument|bool */ - public function loadHTML(string $source, int $options = 0) {} // TODO return type shouldn't depend on the call scope + /** @return bool */ + public function loadHTML(string $source, int $options = 0) {} - /** @return DOMDocument|bool */ - public function loadHTMLFile(string $filename, int $options = 0) {} // TODO return type shouldn't depend on the call scope + /** @return bool */ + public function loadHTMLFile(string $filename, int $options = 0) {} /** @tentative-return-type */ public function saveHTML(?DOMNode $node = null): string|false {} diff -Nru php8.2-8.2.7/ext/dom/php_dom_arginfo.h php8.2-8.2.18/ext/dom/php_dom_arginfo.h --- php8.2-8.2.7/ext/dom/php_dom_arginfo.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dom/php_dom_arginfo.h 2024-04-09 18:46:23.000000000 +0000 @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: 8365be2868e4932ea74f8eb2d4ce840117d48deb */ + * Stub hash: 7d4dc9e1a3736f2ac9082c32bf5260dfa58b1aa0 */ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_dom_import_simplexml, 0, 1, DOMElement, 0) ZEND_ARG_TYPE_INFO(0, node, IS_OBJECT, 0) @@ -28,6 +28,11 @@ #define arginfo_class_DOMChildNode_replaceWith arginfo_class_DOMParentNode_append +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_DOMNode___sleep, 0, 0, IS_ARRAY, 0) +ZEND_END_ARG_INFO() + +#define arginfo_class_DOMNode___wakeup arginfo_class_DOMChildNode_remove + ZEND_BEGIN_ARG_INFO_EX(arginfo_class_DOMNode_appendChild, 0, 0, 1) ZEND_ARG_OBJ_INFO(0, node, DOMNode, 0) ZEND_END_ARG_INFO() @@ -100,6 +105,10 @@ ZEND_ARG_OBJ_INFO(0, child, DOMNode, 0) ZEND_END_ARG_INFO() +#define arginfo_class_DOMNameSpaceNode___sleep arginfo_class_DOMNode___sleep + +#define arginfo_class_DOMNameSpaceNode___wakeup arginfo_class_DOMChildNode_remove + ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_DOMImplementation_getFeature, 0, 2, IS_NEVER, 0) ZEND_ARG_TYPE_INFO(0, feature, IS_STRING, 0) ZEND_ARG_TYPE_INFO(0, version, IS_STRING, 0) @@ -491,6 +500,8 @@ ZEND_FUNCTION(dom_import_simplexml); ZEND_METHOD(DOMCdataSection, __construct); ZEND_METHOD(DOMComment, __construct); +ZEND_METHOD(DOMNode, __sleep); +ZEND_METHOD(DOMNode, __wakeup); ZEND_METHOD(DOMNode, appendChild); ZEND_METHOD(DOMNode, C14N); ZEND_METHOD(DOMNode, C14NFile); @@ -672,6 +683,8 @@ static const zend_function_entry class_DOMNode_methods[] = { + ZEND_ME(DOMNode, __sleep, arginfo_class_DOMNode___sleep, ZEND_ACC_PUBLIC) + ZEND_ME(DOMNode, __wakeup, arginfo_class_DOMNode___wakeup, ZEND_ACC_PUBLIC) ZEND_ME(DOMNode, appendChild, arginfo_class_DOMNode_appendChild, ZEND_ACC_PUBLIC) ZEND_ME(DOMNode, C14N, arginfo_class_DOMNode_C14N, ZEND_ACC_PUBLIC) ZEND_ME(DOMNode, C14NFile, arginfo_class_DOMNode_C14NFile, ZEND_ACC_PUBLIC) @@ -694,6 +707,8 @@ static const zend_function_entry class_DOMNameSpaceNode_methods[] = { + ZEND_MALIAS(DOMNode, __sleep, __sleep, arginfo_class_DOMNameSpaceNode___sleep, ZEND_ACC_PUBLIC) + ZEND_MALIAS(DOMNode, __wakeup, __wakeup, arginfo_class_DOMNameSpaceNode___wakeup, ZEND_ACC_PUBLIC) ZEND_FE_END }; @@ -1033,7 +1048,6 @@ INIT_CLASS_ENTRY(ce, "DOMNode", class_DOMNode_methods); class_entry = zend_register_internal_class_ex(&ce, NULL); - class_entry->ce_flags |= ZEND_ACC_NOT_SERIALIZABLE; zval property_nodeName_default_value; ZVAL_UNDEF(&property_nodeName_default_value); @@ -1148,7 +1162,6 @@ INIT_CLASS_ENTRY(ce, "DOMNameSpaceNode", class_DOMNameSpaceNode_methods); class_entry = zend_register_internal_class_ex(&ce, NULL); - class_entry->ce_flags |= ZEND_ACC_NOT_SERIALIZABLE; zval property_nodeName_default_value; ZVAL_UNDEF(&property_nodeName_default_value); @@ -1480,7 +1493,7 @@ zend_string_release(property_documentURI_name); zval property_config_default_value; - ZVAL_NULL(&property_config_default_value); + ZVAL_UNDEF(&property_config_default_value); zend_string *property_config_name = zend_string_init("config", sizeof("config") - 1, 1); zend_declare_typed_property(class_entry, property_config_name, &property_config_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_ANY)); zend_string_release(property_config_name); diff -Nru php8.2-8.2.7/ext/dom/processinginstruction.c php8.2-8.2.18/ext/dom/processinginstruction.c --- php8.2-8.2.7/ext/dom/processinginstruction.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dom/processinginstruction.c 2024-04-09 18:46:23.000000000 +0000 @@ -59,7 +59,7 @@ intern = Z_DOMOBJ_P(ZEND_THIS); oldnode = dom_object_get_node(intern); if (oldnode != NULL) { - php_libxml_node_free_resource(oldnode ); + php_libxml_node_decrement_resource((php_libxml_node_object *)intern); } php_libxml_increment_node_ptr((php_libxml_node_object *)intern, nodep, (void *)intern); } diff -Nru php8.2-8.2.7/ext/dom/tests/DOMCharacterData_replaceWith_self.phpt php8.2-8.2.18/ext/dom/tests/DOMCharacterData_replaceWith_self.phpt --- php8.2-8.2.7/ext/dom/tests/DOMCharacterData_replaceWith_self.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/DOMCharacterData_replaceWith_self.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,15 @@ +--TEST-- +DOMCharacterData::replaceWith() with itself +--EXTENSIONS-- +dom +--FILE-- +loadXML(''); +$cdata = $dom->documentElement->firstChild; +$cdata->replaceWith($cdata); +echo $dom->saveXML(); +?> +--EXPECT-- + + diff -Nru php8.2-8.2.7/ext/dom/tests/DOMDocumentFragment_construct_basic_002.phpt php8.2-8.2.18/ext/dom/tests/DOMDocumentFragment_construct_basic_002.phpt --- php8.2-8.2.7/ext/dom/tests/DOMDocumentFragment_construct_basic_002.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/DOMDocumentFragment_construct_basic_002.phpt 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ ---TEST-- -DOMDocumentFragment::__construct() called twice. ---CREDITS-- -Eric Lee Stewart -# TestFest Atlanta 2009-05-24 ---EXTENSIONS-- -dom ---FILE-- -__construct(); -var_dump($fragment); -?> ---EXPECT-- -object(DOMDocumentFragment)#1 (0) { -} diff -Nru php8.2-8.2.7/ext/dom/tests/DOMDocument_getElementsByTagNameNS_match_any_namespace.phpt php8.2-8.2.18/ext/dom/tests/DOMDocument_getElementsByTagNameNS_match_any_namespace.phpt --- php8.2-8.2.7/ext/dom/tests/DOMDocument_getElementsByTagNameNS_match_any_namespace.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/DOMDocument_getElementsByTagNameNS_match_any_namespace.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,82 @@ +--TEST-- +DOMDocument::getElementsByTagNameNS() match any namespace +--EXTENSIONS-- +dom +--FILE-- + + +Books of the other guy.. + + + + xinclude: book.xml not found + + + + This is another namespace + + + +EOD; +$dom = new DOMDocument; + +// load the XML string defined above +$dom->loadXML($xml); + +function test($namespace, $local) { + global $dom; + $namespace_str = $namespace !== NULL ? "'$namespace'" : "null"; + echo "-- getElementsByTagNameNS($namespace_str, '$local') --\n"; + foreach ($dom->getElementsByTagNameNS($namespace, $local) as $element) { + echo 'local name: \'', $element->localName, '\', prefix: \'', $element->prefix, "'\n"; + } +} + +// Should *also* include objects even without a namespace +test(null, '*'); +// Should *also* include objects even without a namespace +test('*', '*'); +// Should *only* include objects without a namespace +test('', '*'); +// Should *only* include objects with the specified namespace +test('http://www.w3.org/2001/XInclude', '*'); +// Should not give any output +test('', 'fallback'); +// Should not give any output, because the null namespace is the same as the empty namespace +test(null, 'fallback'); +// Should only output the include from the empty namespace +test(null, 'include'); + +?> +--EXPECT-- +-- getElementsByTagNameNS(null, '*') -- +local name: 'chapter', prefix: '' +local name: 'title', prefix: '' +local name: 'para', prefix: '' +local name: 'error', prefix: '' +local name: 'include', prefix: '' +-- getElementsByTagNameNS('*', '*') -- +local name: 'chapter', prefix: '' +local name: 'title', prefix: '' +local name: 'para', prefix: '' +local name: 'include', prefix: 'xi' +local name: 'fallback', prefix: 'xi' +local name: 'error', prefix: '' +local name: 'include', prefix: '' +-- getElementsByTagNameNS('', '*') -- +local name: 'chapter', prefix: '' +local name: 'title', prefix: '' +local name: 'para', prefix: '' +local name: 'error', prefix: '' +local name: 'include', prefix: '' +-- getElementsByTagNameNS('http://www.w3.org/2001/XInclude', '*') -- +local name: 'include', prefix: 'xi' +local name: 'fallback', prefix: 'xi' +-- getElementsByTagNameNS('', 'fallback') -- +-- getElementsByTagNameNS(null, 'fallback') -- +-- getElementsByTagNameNS(null, 'include') -- +local name: 'include', prefix: '' diff -Nru php8.2-8.2.7/ext/dom/tests/DOMDocument_json_encode.phpt php8.2-8.2.18/ext/dom/tests/DOMDocument_json_encode.phpt --- php8.2-8.2.7/ext/dom/tests/DOMDocument_json_encode.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/DOMDocument_json_encode.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,11 @@ +--TEST-- +JSON encoding a DOMDocument +--EXTENSIONS-- +dom +--FILE-- + +--EXPECT-- +{} diff -Nru php8.2-8.2.7/ext/dom/tests/DOMDocument_loadXML_error1.phpt php8.2-8.2.18/ext/dom/tests/DOMDocument_loadXML_error1.phpt --- php8.2-8.2.7/ext/dom/tests/DOMDocument_loadXML_error1.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/DOMDocument_loadXML_error1.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -1,5 +1,9 @@ --TEST-- Test DOMDocument::loadXML() detects not-well formed XML +--SKIPIF-- += 21200) die('skip libxml2 test variant for version < 2.12'); +?> --DESCRIPTION-- This test verifies the method detects an opening and ending tag mismatch Environment variables used in the test: diff -Nru php8.2-8.2.7/ext/dom/tests/DOMDocument_loadXML_error1_gte2_12.phpt php8.2-8.2.18/ext/dom/tests/DOMDocument_loadXML_error1_gte2_12.phpt --- php8.2-8.2.7/ext/dom/tests/DOMDocument_loadXML_error1_gte2_12.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/DOMDocument_loadXML_error1_gte2_12.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,26 @@ +--TEST-- +Test DOMDocument::loadXML() detects not-well formed XML +--SKIPIF-- += 2.12'); +?> +--DESCRIPTION-- +This test verifies the method detects an opening and ending tag mismatch +Environment variables used in the test: +- XML_FILE: the xml file to load +- LOAD_OPTIONS: the second parameter to pass to the method +- EXPECTED_RESULT: the expected result +--CREDITS-- +Antonio Diaz Ruiz +--EXTENSIONS-- +dom +--ENV-- +XML_FILE=/not_well_formed.xml +LOAD_OPTIONS=0 +EXPECTED_RESULT=0 +--FILE_EXTERNAL-- +domdocumentloadxml_test_method.inc +--EXPECTF-- +Warning: DOMDocument::load%r(XML){0,1}%r(): Opening and ending tag mismatch: title line 5 and book %s + +Warning: DOMDocument::load%r(XML){0,1}%r(): %rexpected '>'|Opening and ending tag mismatch: book line (4|5) and books%r %s diff -Nru php8.2-8.2.7/ext/dom/tests/DOMDocument_loadXML_error2_gte2_11.phpt php8.2-8.2.18/ext/dom/tests/DOMDocument_loadXML_error2_gte2_11.phpt --- php8.2-8.2.7/ext/dom/tests/DOMDocument_loadXML_error2_gte2_11.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/DOMDocument_loadXML_error2_gte2_11.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -2,7 +2,7 @@ Test DOMDocument::loadXML() detects not-well formed XML --SKIPIF-- = 2.11'); +if (LIBXML_VERSION < 21100 || LIBXML_VERSION >= 21200) die('skip libxml2 test variant for version >= 2.11 && <= 2.12'); ?> --DESCRIPTION-- This test verifies the method detects attributes values not closed between " or ' diff -Nru php8.2-8.2.7/ext/dom/tests/DOMDocument_loadXML_error2_gte2_12.phpt php8.2-8.2.18/ext/dom/tests/DOMDocument_loadXML_error2_gte2_12.phpt --- php8.2-8.2.7/ext/dom/tests/DOMDocument_loadXML_error2_gte2_12.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/DOMDocument_loadXML_error2_gte2_12.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,30 @@ +--TEST-- +Test DOMDocument::loadXML() detects not-well formed XML +--SKIPIF-- += 2.12'); +?> +--DESCRIPTION-- +This test verifies the method detects attributes values not closed between " or ' +Environment variables used in the test: +- XML_FILE: the xml file to load +- LOAD_OPTIONS: the second parameter to pass to the method +- EXPECTED_RESULT: the expected result +--CREDITS-- +Antonio Diaz Ruiz +--EXTENSIONS-- +dom +--ENV-- +XML_FILE=/not_well_formed2.xml +LOAD_OPTIONS=0 +EXPECTED_RESULT=0 +--FILE_EXTERNAL-- +domdocumentloadxml_test_method.inc +--EXPECTF-- +Warning: DOMDocument::loadXML(): AttValue: " or ' expected in Entity, line: 4 in %s on line %d + +Warning: DOMDocument::loadXML(): internal error: xmlParseStartTag: problem parsing attributes in Entity, line: 4 in %s on line %d + +Warning: DOMDocument::loadXML(): Couldn't find end of Start Tag book line 4 in Entity, line: 4 in %s on line %d + +Warning: DOMDocument::loadXML(): Opening and ending tag mismatch: books line 3 and book in Entity, line: 7 in %s on line %d diff -Nru php8.2-8.2.7/ext/dom/tests/DOMDocument_load_error1.phpt php8.2-8.2.18/ext/dom/tests/DOMDocument_load_error1.phpt --- php8.2-8.2.7/ext/dom/tests/DOMDocument_load_error1.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/DOMDocument_load_error1.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -1,5 +1,9 @@ --TEST-- Test DOMDocument::load() detects not-well formed XML +--SKIPIF-- += 21200) die('skip libxml2 test variant for version < 2.12'); +?> --DESCRIPTION-- This test verifies the method detects an opening and ending tag mismatch Environment variables used in the test: diff -Nru php8.2-8.2.7/ext/dom/tests/DOMDocument_load_error1_gte2_12.phpt php8.2-8.2.18/ext/dom/tests/DOMDocument_load_error1_gte2_12.phpt --- php8.2-8.2.7/ext/dom/tests/DOMDocument_load_error1_gte2_12.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/DOMDocument_load_error1_gte2_12.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,26 @@ +--TEST-- +Test DOMDocument::load() detects not-well formed XML +--SKIPIF-- += 2.12'); +?> +--DESCRIPTION-- +This test verifies the method detects an opening and ending tag mismatch +Environment variables used in the test: +- XML_FILE: the xml file to load +- LOAD_OPTIONS: the second parameter to pass to the method +- EXPECTED_RESULT: the expected result +--CREDITS-- +Antonio Diaz Ruiz +--EXTENSIONS-- +dom +--ENV-- +XML_FILE=/not_well_formed.xml +LOAD_OPTIONS=0 +EXPECTED_RESULT=0 +--FILE_EXTERNAL-- +domdocumentload_test_method.inc +--EXPECTF-- +Warning: DOMDocument::load%r(XML){0,1}%r(): Opening and ending tag mismatch: title line 5 and book %s + +Warning: DOMDocument::load%r(XML){0,1}%r(): %rexpected '>'|Opening and ending tag mismatch: book line (4|5) and books%r %s diff -Nru php8.2-8.2.7/ext/dom/tests/DOMDocument_load_error2_gte2_11.phpt php8.2-8.2.18/ext/dom/tests/DOMDocument_load_error2_gte2_11.phpt --- php8.2-8.2.7/ext/dom/tests/DOMDocument_load_error2_gte2_11.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/DOMDocument_load_error2_gte2_11.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -2,7 +2,7 @@ Test DOMDocument::load() detects not-well formed --SKIPIF-- = 2.11'); +if (LIBXML_VERSION < 21100 || LIBXML_VERSION >= 21200) die('skip libxml2 test variant for version >= 2.11 && <= 2.12'); ?> --DESCRIPTION-- This test verifies the method detects attributes values not closed between " or ' diff -Nru php8.2-8.2.7/ext/dom/tests/DOMDocument_load_error2_gte2_12.phpt php8.2-8.2.18/ext/dom/tests/DOMDocument_load_error2_gte2_12.phpt --- php8.2-8.2.7/ext/dom/tests/DOMDocument_load_error2_gte2_12.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/DOMDocument_load_error2_gte2_12.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,30 @@ +--TEST-- +Test DOMDocument::load() detects not-well formed +--SKIPIF-- += 2.12'); +?> +--DESCRIPTION-- +This test verifies the method detects attributes values not closed between " or ' +Environment variables used in the test: +- XML_FILE: the xml file to load +- LOAD_OPTIONS: the second parameter to pass to the method +- EXPECTED_RESULT: the expected result +--CREDITS-- +Antonio Diaz Ruiz +--EXTENSIONS-- +dom +--ENV-- +XML_FILE=/not_well_formed2.xml +LOAD_OPTIONS=0 +EXPECTED_RESULT=0 +--FILE_EXTERNAL-- +domdocumentload_test_method.inc +--EXPECTF-- +Warning: DOMDocument::load(): AttValue: " or ' expected in %s on line %d + +Warning: DOMDocument::load(): internal error: xmlParseStartTag: problem parsing attributes in %s on line %d + +Warning: DOMDocument::load(): Couldn't find end of Start Tag book line 4 in %s on line %d + +Warning: DOMDocument::load(): Opening and ending tag mismatch: books line 3 and book in %s on line %d diff -Nru php8.2-8.2.7/ext/dom/tests/DOMElement_append_hierarchy_test.phpt php8.2-8.2.18/ext/dom/tests/DOMElement_append_hierarchy_test.phpt --- php8.2-8.2.7/ext/dom/tests/DOMElement_append_hierarchy_test.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/DOMElement_append_hierarchy_test.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,89 @@ +--TEST-- +DOMElement::append() with hierarchy changes and errors +--EXTENSIONS-- +dom +--FILE-- +loadXML('

helloworld

'); + +echo "-- Append hello with world --\n"; +$dom = clone $dom_original; +$b_hello = $dom->firstChild->firstChild; +$b_world = $b_hello->nextSibling; +$b_hello->append($b_world); +var_dump($dom->saveHTML()); + +echo "-- Append hello with world's child --\n"; +$dom = clone $dom_original; +$b_hello = $dom->firstChild->firstChild; +$b_world = $b_hello->nextSibling; +$b_hello->append($b_world->firstChild); +var_dump($dom->saveHTML()); + +echo "-- Append world's child with hello --\n"; +$dom = clone $dom_original; +$b_hello = $dom->firstChild->firstChild; +$b_world = $b_hello->nextSibling; +$b_world->firstChild->append($b_hello); +var_dump($dom->saveHTML()); + +echo "-- Append hello with itself --\n"; +$dom = clone $dom_original; +$b_hello = $dom->firstChild->firstChild; +try { + $b_hello->append($b_hello); +} catch (\DOMException $e) { + echo $e->getMessage(), "\n"; +} +var_dump($dom->saveHTML()); + +echo "-- Append world's i tag with the parent --\n"; +$dom = clone $dom_original; +$b_hello = $dom->firstChild->firstChild; +$b_world = $b_hello->nextSibling; +try { + $b_world->firstChild->append($b_world); +} catch (\DOMException $e) { + echo $e->getMessage(), "\n"; +} +var_dump($dom->saveHTML()); + +echo "-- Append from another document --\n"; +$dom = clone $dom_original; +$dom2 = new DOMDocument; +$dom2->loadXML('

other

'); +try { + $dom->firstChild->firstChild->prepend($dom2->firstChild); +} catch (\DOMException $e) { + echo $e->getMessage(), "\n"; +} +var_dump($dom2->saveHTML()); +var_dump($dom->saveHTML()); + +?> +--EXPECT-- +-- Append hello with world -- +string(39) "

helloworld

+" +-- Append hello with world's child -- +string(39) "

helloworld

+" +-- Append world's child with hello -- +string(39) "

worldhello

+" +-- Append hello with itself -- +Hierarchy Request Error +string(39) "

helloworld

+" +-- Append world's i tag with the parent -- +Hierarchy Request Error +string(39) "

helloworld

+" +-- Append from another document -- +Wrong Document Error +string(13) "

other

+" +string(39) "

helloworld

+" diff -Nru php8.2-8.2.7/ext/dom/tests/DOMElement_prepend_hierarchy_test.phpt php8.2-8.2.18/ext/dom/tests/DOMElement_prepend_hierarchy_test.phpt --- php8.2-8.2.7/ext/dom/tests/DOMElement_prepend_hierarchy_test.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/DOMElement_prepend_hierarchy_test.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,89 @@ +--TEST-- +DOMElement::prepend() with hierarchy changes and errors +--EXTENSIONS-- +dom +--FILE-- +loadXML('

helloworld

'); + +echo "-- Prepend hello with world --\n"; +$dom = clone $dom_original; +$b_hello = $dom->firstChild->firstChild; +$b_world = $b_hello->nextSibling; +$b_hello->prepend($b_world); +var_dump($dom->saveHTML()); + +echo "-- Prepend hello with world's child --\n"; +$dom = clone $dom_original; +$b_hello = $dom->firstChild->firstChild; +$b_world = $b_hello->nextSibling; +$b_hello->prepend($b_world->firstChild); +var_dump($dom->saveHTML()); + +echo "-- Prepend world's child with hello --\n"; +$dom = clone $dom_original; +$b_hello = $dom->firstChild->firstChild; +$b_world = $b_hello->nextSibling; +$b_world->firstChild->prepend($b_hello); +var_dump($dom->saveHTML()); + +echo "-- Prepend hello with itself --\n"; +$dom = clone $dom_original; +$b_hello = $dom->firstChild->firstChild; +try { + $b_hello->prepend($b_hello); +} catch (\DOMException $e) { + echo $e->getMessage(), "\n"; +} +var_dump($dom->saveHTML()); + +echo "-- Prepend world's i tag with the parent --\n"; +$dom = clone $dom_original; +$b_hello = $dom->firstChild->firstChild; +$b_world = $b_hello->nextSibling; +try { + $b_world->firstChild->prepend($b_world); +} catch (\DOMException $e) { + echo $e->getMessage(), "\n"; +} +var_dump($dom->saveHTML()); + +echo "-- Append from another document --\n"; +$dom = clone $dom_original; +$dom2 = new DOMDocument; +$dom2->loadXML('

other

'); +try { + $dom->firstChild->firstChild->prepend($dom2->firstChild); +} catch (\DOMException $e) { + echo $e->getMessage(), "\n"; +} +var_dump($dom2->saveHTML()); +var_dump($dom->saveHTML()); + +?> +--EXPECT-- +-- Prepend hello with world -- +string(39) "

worldhello

+" +-- Prepend hello with world's child -- +string(39) "

worldhello

+" +-- Prepend world's child with hello -- +string(39) "

helloworld

+" +-- Prepend hello with itself -- +Hierarchy Request Error +string(39) "

helloworld

+" +-- Prepend world's i tag with the parent -- +Hierarchy Request Error +string(39) "

helloworld

+" +-- Append from another document -- +Wrong Document Error +string(13) "

other

+" +string(39) "

helloworld

+" diff -Nru php8.2-8.2.7/ext/dom/tests/DOMEntity_fields.phpt php8.2-8.2.18/ext/dom/tests/DOMEntity_fields.phpt --- php8.2-8.2.7/ext/dom/tests/DOMEntity_fields.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/DOMEntity_fields.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,100 @@ +--TEST-- +DOMEntity fields +--EXTENSIONS-- +dom +--FILE-- + + + + + + + + +]> + +XML; + +$dom = new DOMDocument(); +$dom->loadXML($xmlString); + +// Sort them, the iteration order isn't defined +$entities = iterator_to_array($dom->doctype->entities); +ksort($entities); + +foreach ($entities as $entity) { + echo "Entity name: {$entity->nodeName}\n"; + echo "publicId: "; + var_dump($entity->publicId); + echo "systemId: "; + var_dump($entity->systemId); + echo "notationName: "; + var_dump($entity->notationName); + echo "actualEncoding: "; + var_dump($entity->actualEncoding); + echo "encoding: "; + var_dump($entity->encoding); + echo "version: "; + var_dump($entity->version); + echo "\n"; +} +?> +--EXPECT-- +Entity name: sampleExternalPublicWithNotationName1 +publicId: string(9) "public id" +systemId: string(14) "external.stuff" +notationName: string(5) "stuff" +actualEncoding: NULL +encoding: NULL +version: NULL + +Entity name: sampleExternalPublicWithNotationName2 +publicId: string(0) "" +systemId: string(14) "external.stuff" +notationName: string(5) "stuff" +actualEncoding: NULL +encoding: NULL +version: NULL + +Entity name: sampleExternalPublicWithoutNotationName1 +publicId: string(9) "public id" +systemId: string(14) "external.stuff" +notationName: string(0) "" +actualEncoding: NULL +encoding: NULL +version: NULL + +Entity name: sampleExternalPublicWithoutNotationName2 +publicId: string(0) "" +systemId: string(14) "external.stuff" +notationName: string(0) "" +actualEncoding: NULL +encoding: NULL +version: NULL + +Entity name: sampleExternalSystemWithNotationName +publicId: NULL +systemId: string(14) "external.stuff" +notationName: string(5) "stuff" +actualEncoding: NULL +encoding: NULL +version: NULL + +Entity name: sampleExternalSystemWithoutNotationName +publicId: NULL +systemId: string(14) "external.stuff" +notationName: string(0) "" +actualEncoding: NULL +encoding: NULL +version: NULL + +Entity name: sampleInternalEntity +publicId: NULL +systemId: NULL +notationName: NULL +actualEncoding: NULL +encoding: NULL +version: NULL diff -Nru php8.2-8.2.7/ext/dom/tests/DOMNamedNodeMap_string_references.phpt php8.2-8.2.18/ext/dom/tests/DOMNamedNodeMap_string_references.phpt --- php8.2-8.2.7/ext/dom/tests/DOMNamedNodeMap_string_references.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/DOMNamedNodeMap_string_references.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,64 @@ +--TEST-- +DOMNamedNodeMap string references +--EXTENSIONS-- +dom +--FILE-- +loadXML(''); + +$attributes = $dom->documentElement->attributes; + +var_dump(isset($attributes['href']), $attributes['href']->value); + +var_dump(isset($attributes['foo']), $attributes['foo']->value); + +$str = 'href'; +$ref =& $str; +var_dump(isset($attributes[$ref]), $attributes[$ref]->value); + +$str = 'foo'; +$ref =& $str; +var_dump(isset($attributes[$ref]), $attributes[$ref]->value); + +$str = 'this does not exist'; +$ref =& $str; +var_dump(isset($attributes[$ref]), $attributes[$ref]); + +$str = '0'; +$ref =& $str; +var_dump(isset($attributes[$ref]), $attributes[$ref]->value); + +$str = '1'; +$ref =& $str; +var_dump(isset($attributes[$ref]), $attributes[$ref]->value); + +$int = 0; +$ref =& $int; +var_dump(isset($attributes[$ref]), $attributes[$ref]->value); + +$int = 1; +$ref =& $int; +var_dump(isset($attributes[$ref]), $attributes[$ref]->value); + +?> +--EXPECT-- +bool(true) +string(2) "hi" +bool(true) +string(3) "bar" +bool(true) +string(2) "hi" +bool(true) +string(3) "bar" +bool(false) +NULL +bool(true) +string(2) "hi" +bool(true) +string(3) "bar" +bool(true) +string(2) "hi" +bool(true) +string(3) "bar" diff -Nru php8.2-8.2.7/ext/dom/tests/DOMParentNode_empty_argument.phpt php8.2-8.2.18/ext/dom/tests/DOMParentNode_empty_argument.phpt --- php8.2-8.2.7/ext/dom/tests/DOMParentNode_empty_argument.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/DOMParentNode_empty_argument.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,84 @@ +--TEST-- +DOMParentNode functions with empty argument +--EXTENSIONS-- +dom +--FILE-- +loadXML(''); + +$emptyFragment = $dom->createDocumentFragment(); + +echo "--- DOMElement test ---\n"; + +$dom->documentElement->after(...$emptyFragment->childNodes); +$dom->documentElement->before(...$emptyFragment->childNodes); +$dom->documentElement->append(...$emptyFragment->childNodes); +$dom->documentElement->prepend(...$emptyFragment->childNodes); +$dom->documentElement->after(); +$dom->documentElement->before(); +$dom->documentElement->append(); +$dom->documentElement->prepend(); +echo $dom->saveXML(); + +$dom->documentElement->firstChild->replaceWith(...$emptyFragment->childNodes); +echo $dom->saveXML(); + +$dom->documentElement->replaceWith(...$emptyFragment->childNodes); +echo $dom->saveXML(); + +echo "--- DOMDocumentFragment test ---\n"; + +$fragment = $dom->createDocumentFragment(); +$fragment->append($dom->createElement('foo')); +$fragment->append(...$emptyFragment->childNodes); +$fragment->prepend(...$emptyFragment->childNodes); +$fragment->append(); +$fragment->prepend(); +echo $dom->saveXML($fragment), "\n"; + +echo "--- DOMDocument test ---\n"; + +$dom->append(...$emptyFragment->childNodes); +$dom->prepend(...$emptyFragment->childNodes); +$dom->append(); +$dom->prepend(); +echo $dom->saveXML(), "\n"; + +echo "--- DOMCharacterData test ---\n"; + +$cdata = $dom->createCDATASection('foo'); +$dom->appendChild($cdata); + +$cdata->after(...$emptyFragment->childNodes); +$cdata->before(...$emptyFragment->childNodes); +$cdata->after(); +$cdata->before(); +echo $dom->saveXML(), "\n"; +$cdata->replaceWith(...$emptyFragment->childNodes); +echo $dom->saveXML(), "\n"; + +$cdata = $dom->createCDATASection('foo'); +$dom->appendChild($cdata); +$cdata->replaceWith(...$emptyFragment->childNodes); +echo $dom->saveXML(), "\n"; +?> +--EXPECT-- +--- DOMElement test --- + + + + + +--- DOMDocumentFragment test --- + +--- DOMDocument test --- + + +--- DOMCharacterData test --- + + + + + + diff -Nru php8.2-8.2.7/ext/dom/tests/bug47530.phpt php8.2-8.2.18/ext/dom/tests/bug47530.phpt --- php8.2-8.2.7/ext/dom/tests/bug47530.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/bug47530.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,152 @@ +--TEST-- +Bug #47530 (Importing objects into document fragments creates bogus "default" namespace) +--EXTENSIONS-- +dom +--FILE-- +loadXML(''); + $root = $doc->documentElement; + $frag = $doc->createDocumentFragment(); + $frag->appendChild($doc->importNode($root->firstChild)); + $root->appendChild($frag); + echo $doc->saveXML(); +} + +function test_document_fragment_without_import() { + $doc = new DOMDocument; + $doc->loadXML(''); + $frag = $doc->createDocumentFragment(); + $frag->appendChild($doc->createElementNS('https://php.net/bar', 'bar')); + $frag->appendChild($doc->createElementNS('', 'bar')); + $element = $doc->documentElement->firstChild; + $element->appendChild($frag); + unset($frag); // Free fragment, should not break getting the namespaceURI below + echo $doc->saveXML(); + unset($doc); + var_dump($element->firstChild->tagName); + var_dump($element->firstChild->namespaceURI); +} + +function test_document_import() { + $xml = << + +
+

Test-Text

+
+
+XML; + + $dom = new DOMDocument(); + $dom->loadXML($xml); + + $dom2 = new DOMDocument(); + $importedNode = $dom2->importNode($dom->documentElement, true); + $dom2->appendChild($importedNode); + + echo $dom2->saveXML(); +} + +function test_partial_document_import() { + $xml = << + +
+

Test-Text

+ More test text + Even more test text +
+
+XML; + + $dom = new DOMDocument(); + $dom->loadXML($xml); + + $dom2 = new DOMDocument(); + $dom2->loadXML(''); + $importedNode = $dom2->importNode($dom->documentElement, true); + $dom2->documentElement->appendChild($importedNode); + + // Freeing the original document shouldn't break the other document + unset($importedNode); + unset($dom); + + echo $dom2->saveXML(); +} + +function test_document_import_with_attributes() { + $dom = new DOMDocument(); + $dom->loadXML('

'); + $dom2 = new DOMDocument(); + $dom2->loadXML('
'); + $dom2->documentElement->appendChild($dom2->importNode($dom->documentElement->firstChild)); + echo $dom2->saveXML(), "\n"; + + $dom2->documentElement->firstChild->appendChild($dom2->importNode($dom->documentElement->firstChild->nextSibling)); + echo $dom2->saveXML(), "\n"; +} + +function test_appendChild_with_shadowing() { + $dom = new DOMDocument(); + $dom->loadXML(''); + + $a = $dom->documentElement->firstElementChild; + $b = $a->nextSibling; + $b->remove(); + $a->appendChild($b); + + echo $dom->saveXML(), "\n"; +} + +echo "-- Test document fragment with import --\n"; +test_document_fragment_with_import(); +echo "-- Test document fragment without import --\n"; +test_document_fragment_without_import(); +echo "-- Test document import --\n"; +test_document_import(); +echo "-- Test partial document import --\n"; +test_partial_document_import(); +echo "-- Test document import with attributes --\n"; +test_document_import_with_attributes(); +echo "-- Test appendChild with shadowing --\n"; +test_appendChild_with_shadowing(); + +?> +--EXPECT-- +-- Test document fragment with import -- + + +-- Test document fragment without import -- + + +string(7) "foo:bar" +string(19) "https://php.net/bar" +-- Test document import -- + + + + Test-Text + + +-- Test partial document import -- + + +
+

Test-Text

+ More test text + Even more test text +
+
+-- Test document import with attributes -- + +

+ + +

+ +-- Test appendChild with shadowing -- + +
diff -Nru php8.2-8.2.7/ext/dom/tests/bug47847.phpt php8.2-8.2.18/ext/dom/tests/bug47847.phpt --- php8.2-8.2.7/ext/dom/tests/bug47847.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/bug47847.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,29 @@ +--TEST-- +Bug #47847 (importNode loses the namespace of an XML element) +--EXTENSIONS-- +dom +--XFAIL-- +See https://github.com/php/php-src/pull/12308 +--FILE-- +loadXML(<< + + + + + +XML); + +$aDOM = new DOMDocument(); +$imported = $aDOM->importNode($fromdom->documentElement->firstElementChild, true); +$aDOM->appendChild($imported); + +echo $aDOM->saveXML(); +?> +--EXPECT-- + + + + diff -Nru php8.2-8.2.7/ext/dom/tests/bug55294.phpt php8.2-8.2.18/ext/dom/tests/bug55294.phpt --- php8.2-8.2.7/ext/dom/tests/bug55294.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/bug55294.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,31 @@ +--TEST-- +Bug #55294 (DOMDocument::importNode shifts namespaces when "default" namespace exists) +--EXTENSIONS-- +dom +--XFAIL-- +See https://github.com/php/php-src/pull/12308 +--FILE-- +loadXML(<< + + + + +EOXML +); + +$bDOM = new DOMDocument(); +$node = $bDOM->importNode($aDOM->getElementsByTagNameNS('http://example.com/A', 'B')->item(0), true); +$bDOM->appendChild($node); + +echo $bDOM->saveXML(), "\n"; + +?> +--EXPECT-- + + + + diff -Nru php8.2-8.2.7/ext/dom/tests/bug67440.phpt php8.2-8.2.18/ext/dom/tests/bug67440.phpt --- php8.2-8.2.7/ext/dom/tests/bug67440.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/bug67440.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,151 @@ +--TEST-- +Bug #67440 (append_node of a DOMDocumentFragment does not reconcile namespaces) +--EXTENSIONS-- +dom +--FILE-- +loadXML(''); + $fragment = $document->createDocumentFragment(); + $fragment->appendChild($document->createTextNode("\n")); + $fragment->appendChild($document->createElementNS('http://example/ns', 'myns:childNode', '1')); + $fragment->appendChild($document->createTextNode("\n")); + $fragment->appendChild($document->createElementNS('http://example/ns', 'myns:childNode', '2')); + $fragment->appendChild($document->createTextNode("\n")); + return array($document, $fragment); +} + +function case1($method) { + list($document, $fragment) = createDocument(); + $document->documentElement->{$method}($fragment); + echo $document->saveXML(); +} + +function case2($method) { + list($document, $fragment) = createDocument(); + $childNodes = iterator_to_array($fragment->childNodes); + foreach ($childNodes as $childNode) { + $document->documentElement->{$method}($childNode); + } + echo $document->saveXML(); +} + +function case3($method) { + list($document, $fragment) = createDocument(); + $fragment->removeChild($fragment->firstChild); + $document->documentElement->{$method}($fragment); + echo $document->saveXML(); +} + +function case4($method) { + list($document, $fragment) = createDocument(); + $fragment->childNodes[1]->appendChild($document->createElementNS('http://example/ns2', 'myns2:childNode', '3')); + $document->documentElement->{$method}($fragment); + echo $document->saveXML(); +} + +echo "== appendChild ==\n"; +echo "-- fragment to document element --\n"; case1('appendChild'); echo "\n"; +echo "-- children manually document element --\n"; case2('appendChild'); echo "\n"; +echo "-- fragment to document where first element is not a text node --\n"; case3('appendChild'); echo "\n"; +echo "-- fragment with namespace declarations in children --\n"; case4('appendChild'); echo "\n"; + +echo "== insertBefore ==\n"; +echo "-- fragment to document element --\n"; case1('insertBefore'); echo "\n"; +echo "-- children manually document element --\n"; case2('insertBefore'); echo "\n"; +echo "-- fragment to document where first element is not a text node --\n"; case3('insertBefore'); echo "\n"; +echo "-- fragment with namespace declarations in children --\n"; case4('insertBefore'); echo "\n"; + +echo "== insertAfter ==\n"; +echo "-- fragment to document element --\n"; case1('insertBefore'); echo "\n"; +echo "-- children manually document element --\n"; case2('insertBefore'); echo "\n"; +echo "-- fragment to document where first element is not a text node --\n"; case3('insertBefore'); echo "\n"; +echo "-- fragment with namespace declarations in children --\n"; case4('insertBefore'); echo "\n"; + +?> +--EXPECT-- +== appendChild == +-- fragment to document element -- + + +1 +2 + + +-- children manually document element -- + + +1 +2 + + +-- fragment to document where first element is not a text node -- + +1 +2 + + +-- fragment with namespace declarations in children -- + + +13 +2 + + +== insertBefore == +-- fragment to document element -- + + +1 +2 + + +-- children manually document element -- + + +1 +2 + + +-- fragment to document where first element is not a text node -- + +1 +2 + + +-- fragment with namespace declarations in children -- + + +13 +2 + + +== insertAfter == +-- fragment to document element -- + + +1 +2 + + +-- children manually document element -- + + +1 +2 + + +-- fragment to document where first element is not a text node -- + +1 +2 + + +-- fragment with namespace declarations in children -- + + +13 +2 + diff -Nru php8.2-8.2.7/ext/dom/tests/bug67949.phpt php8.2-8.2.18/ext/dom/tests/bug67949.phpt --- php8.2-8.2.7/ext/dom/tests/bug67949.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/bug67949.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -5,6 +5,8 @@ --FILE-- data
hello world @@ -14,57 +16,56 @@ $nodes = $doc->getElementsByTagName('div'); -echo "testing has_dimension\n"; +echo "--- testing has_dimension ---\n"; var_dump(isset($nodes[0])); var_dump(isset($nodes[1])); var_dump(isset($nodes[-1])); -echo "testing property access\n"; +echo "--- testing property access ---\n"; var_dump($nodes[0]->textContent); var_dump($nodes[1]->textContent); -echo "testing offset not a long\n"; +echo "--- testing offset not a long: array ---\n"; $offset = ['test']; var_dump($offset); var_dump(isset($nodes[$offset]), $nodes[$offset]->textContent); -var_dump($offset); -$something = 'test'; +echo "--- testing offset not a long: Reference to string ---\n"; +$something = 'href'; $offset = &$something; var_dump($offset); var_dump(isset($nodes[$offset]), $nodes[$offset]->textContent); -var_dump($offset); +echo "--- testing offset not a long: string ---\n"; $offset = 'test'; var_dump($offset); var_dump(isset($nodes[$offset]), $nodes[$offset]->textContent); -var_dump($offset); -echo "testing read_dimension with null offset\n"; +echo "--- testing read_dimension with null offset ---\n"; try { var_dump($nodes[][] = 1); } catch (Error $e) { echo $e->getMessage(), "\n"; } -echo "testing attribute access\n"; +echo "--- testing attribute access ---\n"; $anchor = $doc->getElementsByTagName('a')[0]; var_dump($anchor->attributes[0]->name); echo "==DONE==\n"; ?> --EXPECTF-- -testing has_dimension +--- testing has_dimension --- bool(true) bool(false) bool(false) -testing property access +--- testing property access --- string(4) "data" Warning: Attempt to read property "textContent" on null in %s on line %d NULL -testing offset not a long +--- testing offset not a long: array --- array(1) { [0]=> string(4) "test" @@ -73,20 +74,20 @@ Warning: Attempt to read property "textContent" on null in %s on line %d bool(false) NULL -array(1) { - [0]=> - string(4) "test" -} -string(4) "test" -bool(true) -string(4) "data" -string(4) "test" -string(4) "test" -bool(true) -string(4) "data" +--- testing offset not a long: Reference to string --- +string(4) "href" + +Warning: Attempt to read property "textContent" on null in %s on line %d +bool(false) +NULL +--- testing offset not a long: string --- string(4) "test" -testing read_dimension with null offset -Cannot access node list without offset -testing attribute access + +Warning: Attempt to read property "textContent" on null in %s on line %d +bool(false) +NULL +--- testing read_dimension with null offset --- +Cannot access DOMNodeList without offset +--- testing attribute access --- string(4) "href" ==DONE== diff -Nru php8.2-8.2.7/ext/dom/tests/bug70359.phpt php8.2-8.2.18/ext/dom/tests/bug70359.phpt --- php8.2-8.2.7/ext/dom/tests/bug70359.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/bug70359.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,83 @@ +--TEST-- +Bug #70359 (print_r() on DOMAttr causes Segfault in php_libxml_node_free_list()) +--EXTENSIONS-- +dom +--FILE-- +loadXML(<< + +XML); +$spaceNode = $dom->documentElement->getAttributeNode('xmlns'); +print_r($spaceNode); + +echo "-- Test with parent and non-ns attribute --\n"; + +$dom = new DOMDocument(); +$dom->loadXML(<< + + + +XML); +$spaceNode = $dom->documentElement->firstElementChild->getAttributeNode('myattrib'); +var_dump($spaceNode->nodeType); +var_dump($spaceNode->nodeValue); + +$dom->documentElement->firstElementChild->remove(); +try { + print_r($spaceNode->parentNode); +} catch (\Error $e) { + echo $e->getMessage(), "\n"; +} + +echo "-- Test with parent and ns attribute --\n"; + +$dom = new DOMDocument(); +$dom->loadXML(<< + + + +XML); +$spaceNode = $dom->documentElement->firstElementChild->getAttributeNode('xmlns:xsi'); +print_r($spaceNode); + +$dom->documentElement->firstElementChild->remove(); +var_dump($spaceNode->parentNode->nodeName); // Shouldn't crash + +?> +--EXPECT-- +-- Test without parent -- +DOMNameSpaceNode Object +( + [nodeName] => xmlns + [nodeValue] => http://www.sitemaps.org/schemas/sitemap/0.9 + [nodeType] => 18 + [prefix] => + [localName] => xmlns + [namespaceURI] => http://www.sitemaps.org/schemas/sitemap/0.9 + [ownerDocument] => (object value omitted) + [parentNode] => (object value omitted) +) +-- Test with parent and non-ns attribute -- +int(2) +string(3) "bar" +Couldn't fetch DOMAttr. Node no longer exists +-- Test with parent and ns attribute -- +DOMNameSpaceNode Object +( + [nodeName] => xmlns:xsi + [nodeValue] => fooooooooooooooooooooo + [nodeType] => 18 + [prefix] => xsi + [localName] => xsi + [namespaceURI] => fooooooooooooooooooooo + [ownerDocument] => (object value omitted) + [parentNode] => (object value omitted) +) +string(3) "url" diff -Nru php8.2-8.2.7/ext/dom/tests/bug77686.phpt php8.2-8.2.18/ext/dom/tests/bug77686.phpt --- php8.2-8.2.7/ext/dom/tests/bug77686.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/bug77686.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,40 @@ +--TEST-- +Bug #77686 (Removed elements are still returned by getElementById) +--EXTENSIONS-- +dom +--FILE-- +loadHTML('before
hello
after'); +$body = $doc->getElementById('x'); +$div = $doc->getElementById('y'); +var_dump($doc->getElementById('y')->textContent); + +// Detached from document, should not find it anymore +$body->removeChild($div); +var_dump($doc->getElementById('y')); + +// Added again, should find it +$body->appendChild($div); +var_dump($doc->getElementById('y')->textContent); + +// Should find root element without a problem +var_dump($doc->getElementById('htmlelement')->textContent); + +// Created element but not yet attached, should not find it before it is added +$new_element = $doc->createElement('p'); +$new_element->textContent = 'my new text'; +$new_element->setAttribute('id', 'myp'); +var_dump($doc->getElementById('myp')); +$body->appendChild($new_element); +var_dump($doc->getElementById('myp')->textContent); + +?> +--EXPECT-- +string(5) "hello" +NULL +string(5) "hello" +string(16) "beforeafterhello" +NULL +string(11) "my new text" diff -Nru php8.2-8.2.7/ext/dom/tests/bug78577.phpt php8.2-8.2.18/ext/dom/tests/bug78577.phpt --- php8.2-8.2.7/ext/dom/tests/bug78577.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/bug78577.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,33 @@ +--TEST-- +Bug #78577 (Crash in DOMNameSpace debug info handlers) +--EXTENSIONS-- +dom +--FILE-- +loadXML(''); + +$attr = $doc->documentElement->getAttributeNode('xmlns'); +var_dump($attr); + +?> +--EXPECT-- +object(DOMNameSpaceNode)#3 (8) { + ["nodeName"]=> + string(5) "xmlns" + ["nodeValue"]=> + string(19) "http://php.net/test" + ["nodeType"]=> + int(18) + ["prefix"]=> + string(0) "" + ["localName"]=> + string(5) "xmlns" + ["namespaceURI"]=> + string(19) "http://php.net/test" + ["ownerDocument"]=> + string(22) "(object value omitted)" + ["parentNode"]=> + string(22) "(object value omitted)" +} diff -Nru php8.2-8.2.7/ext/dom/tests/bug79971_2.phpt php8.2-8.2.18/ext/dom/tests/bug79971_2.phpt --- php8.2-8.2.7/ext/dom/tests/bug79971_2.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/bug79971_2.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -1,9 +1,7 @@ --TEST-- Bug #79971 (special character is breaking the path in xml function) ---SKIPIF-- - +--EXTENSIONS-- +dom --FILE-- loadHTML(''); + +$x = new DOMXPath($doc); +$span = $x->query('//span')[0]; + +print "Node name: {$span->nodeName}\n"; + +function test($span, $key) { + $key_formatted = match ($key) { + false => 'false', + true => 'true', + null => 'null', + default => is_string($key) ? "'$key'" : $key, + }; + echo "Attribute [{$key_formatted}] name: ", $span->attributes[$key]->nodeName ?? '/', "\n"; + echo "Attribute [{$key_formatted}] value: ", $span->attributes[$key]->nodeValue ?? '/', "\n"; + echo "Attribute [{$key_formatted}] isset: ", isset($span->attributes[$key]) ? "yes" : "no", "\n"; + echo "\n"; +} + +test($span, 0); +test($span, false); +test($span, true); +test($span, null); +test($span, 'attr2'); +// This one should fail because there is no 'hi' attribute +test($span, 'hi'); +test($span, '0'); +test($span, '0.5'); +test($span, '1'); +// This one should fail because it's out of bounds +test($span, '2147483647'); + +?> +--EXPECT-- +Node name: span +Attribute [0] name: attr1 +Attribute [0] value: value1 +Attribute [0] isset: yes + +Attribute [false] name: attr1 +Attribute [false] value: value1 +Attribute [false] isset: yes + +Attribute [true] name: attr2 +Attribute [true] value: value2 +Attribute [true] isset: yes + +Attribute [null] name: attr1 +Attribute [null] value: value1 +Attribute [null] isset: yes + +Attribute ['attr2'] name: attr2 +Attribute ['attr2'] value: value2 +Attribute ['attr2'] isset: yes + +Attribute ['hi'] name: / +Attribute ['hi'] value: / +Attribute ['hi'] isset: no + +Attribute ['0'] name: attr1 +Attribute ['0'] value: value1 +Attribute ['0'] isset: yes + +Attribute ['0.5'] name: attr1 +Attribute ['0.5'] value: value1 +Attribute ['0.5'] isset: yes + +Attribute ['1'] name: attr2 +Attribute ['1'] value: value2 +Attribute ['1'] isset: yes + +Attribute ['2147483647'] name: / +Attribute ['2147483647'] value: / +Attribute ['2147483647'] isset: no diff -Nru php8.2-8.2.7/ext/dom/tests/bug80332_2.phpt php8.2-8.2.18/ext/dom/tests/bug80332_2.phpt --- php8.2-8.2.7/ext/dom/tests/bug80332_2.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/bug80332_2.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,47 @@ +--TEST-- +Bug #80332 (Completely broken array access functionality with DOMNamedNodeMap) - DOMNodeList variation +--EXTENSIONS-- +dom +--FILE-- +loadXML(''); + +$list = $doc->getElementsByTagName('strong'); + +function test($list, $key) { + $key_formatted = match ($key) { + false => 'false', + true => 'true', + null => 'null', + default => is_string($key) ? "'$key'" : $key, + }; + echo "list[$key_formatted] id attribute: ", $list[$key] ? $list[$key]->getAttribute('id') : '/', "\n"; +} + +test($list, 0); +test($list, false); +test($list, true); +test($list, null); +test($list, '0'); +test($list, '0.5'); +test($list, '1'); +// These two should fail because there's no named lookup possible here +test($list, 'attr2'); +test($list, 'hi'); +// This one should fail because it's out of bounds +test($list, '2147483647'); + +?> +--EXPECT-- +list[0] id attribute: 1 +list[false] id attribute: 1 +list[true] id attribute: 2 +list[null] id attribute: 1 +list['0'] id attribute: 1 +list['0.5'] id attribute: 1 +list['1'] id attribute: 2 +list['attr2'] id attribute: / +list['hi'] id attribute: / +list['2147483647'] id attribute: / diff -Nru php8.2-8.2.7/ext/dom/tests/bug80602.phpt php8.2-8.2.18/ext/dom/tests/bug80602.phpt --- php8.2-8.2.7/ext/dom/tests/bug80602.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/bug80602.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -1,5 +1,7 @@ --TEST-- Bug #80602 (Segfault when using DOMChildNode::before()) +--EXTENSIONS-- +dom --FILE-- loadXML('foo'); $target = $doc->documentElement->firstChild; $target->before($target); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "1 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->lastChild; $target->before($target); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "2 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->firstChild; $target->before($doc->documentElement->lastChild); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "3 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->lastChild; $target->before($doc->documentElement->firstChild); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "4 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->firstChild; $target->before($target, $doc->documentElement->lastChild); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "5 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->firstChild; $target->before($doc->documentElement->lastChild, $target); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "6 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->lastChild; $target->before($target, $doc->documentElement->firstChild); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "7 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->lastChild; $target->before($doc->documentElement->firstChild, $target); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "8 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->firstChild; $target->before('bar','baz'); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "9 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->lastChild; $target->before('bar','baz'); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "10 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->firstChild; $target->before($target, 'bar','baz'); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "11 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->firstChild; $target->before('bar', $target, 'baz'); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "12 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->firstChild; $target->before('bar', 'baz', $target); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "13 ", $doc->saveXML($doc->documentElement).PHP_EOL; @@ -93,19 +95,19 @@ $doc->loadXML('foo'); $target = $doc->documentElement->lastChild; $target->before($target, 'bar','baz'); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "14 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->lastChild; $target->before('bar', $target, 'baz'); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "15 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->lastChild; $target->before('bar', 'baz', $target); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "16 ", $doc->saveXML($doc->documentElement).PHP_EOL; @@ -113,21 +115,21 @@ $doc->loadXML('foo'); $target = $doc->documentElement->firstChild; $target->before('bar', $target, $doc->documentElement->lastChild); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "17 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->firstChild; $target->before($target, 'bar', $doc->documentElement->lastChild); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "18 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->firstChild; $target->before($target, $doc->documentElement->lastChild, 'bar'); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "19 ", $doc->saveXML($doc->documentElement).PHP_EOL; @@ -136,43 +138,43 @@ $doc->loadXML('foo'); $target = $doc->documentElement->lastChild; $target->before('bar', $doc->documentElement->firstChild, $target); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "20 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->lastChild; $target->before($doc->documentElement->firstChild, 'bar', $target); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "21 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->lastChild; $target->before($doc->documentElement->firstChild, $target, 'bar'); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "22 ", $doc->saveXML($doc->documentElement).PHP_EOL; ?> --EXPECTF-- -foo -foo -foo -foo -foo -foo -foo -foo -barbazfoo -foobarbaz -foobarbaz -barfoobaz -barbazfoo -foobarbaz -foobarbaz -foobarbaz -barfoo -foobar -foobar -barfoo -foobar -foobar +1 foo +2 foo +3 foo +4 foo +5 foo +6 foo +7 foo +8 foo +9 barbazfoo +10 foobarbaz +11 foobarbaz +12 barfoobaz +13 barbazfoo +14 foobarbaz +15 foobarbaz +16 foobarbaz +17 barfoo +18 foobar +19 foobar +20 barfoo +21 foobar +22 foobar diff -Nru php8.2-8.2.7/ext/dom/tests/bug80602_2.phpt php8.2-8.2.18/ext/dom/tests/bug80602_2.phpt --- php8.2-8.2.7/ext/dom/tests/bug80602_2.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/bug80602_2.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -1,5 +1,7 @@ --TEST-- Bug #80602 (Segfault when using DOMChildNode::after()) +--EXTENSIONS-- +dom --FILE-- loadXML('foo'); $target = $doc->documentElement->firstChild; $target->after($target); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "1 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->lastChild; $target->after($target); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "2 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->firstChild; $target->after($doc->documentElement->lastChild); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "3 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->lastChild; $target->after($doc->documentElement->firstChild); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "4 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->firstChild; $target->after($target, $doc->documentElement->lastChild); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "5 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->firstChild; $target->after($doc->documentElement->lastChild, $target); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "6 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->lastChild; $target->after($target, $doc->documentElement->firstChild); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "7 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->lastChild; $target->after($doc->documentElement->firstChild, $target); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "8 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->firstChild; $target->after('bar','baz'); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "9 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->lastChild; $target->after('bar','baz'); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "10 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->firstChild; $target->after($target, 'bar','baz'); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "11 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->firstChild; $target->after('bar', $target, 'baz'); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "12 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->firstChild; $target->after('bar', 'baz', $target); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "13 ", $doc->saveXML($doc->documentElement).PHP_EOL; @@ -93,19 +95,19 @@ $doc->loadXML('foo'); $target = $doc->documentElement->lastChild; $target->after($target, 'bar','baz'); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "14 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->lastChild; $target->after('bar', $target, 'baz'); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "15 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->lastChild; $target->after('bar', 'baz', $target); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "16 ", $doc->saveXML($doc->documentElement).PHP_EOL; @@ -113,21 +115,21 @@ $doc->loadXML('foo'); $target = $doc->documentElement->firstChild; $target->after('bar', $target, $doc->documentElement->lastChild); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "17 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->firstChild; $target->after($target, 'bar', $doc->documentElement->lastChild); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "18 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->firstChild; $target->after($target, $doc->documentElement->lastChild, 'bar'); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "19 ", $doc->saveXML($doc->documentElement).PHP_EOL; @@ -136,43 +138,43 @@ $doc->loadXML('foo'); $target = $doc->documentElement->lastChild; $target->after('bar', $doc->documentElement->firstChild, $target); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "20 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->lastChild; $target->after($doc->documentElement->firstChild, 'bar', $target); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "21 ", $doc->saveXML($doc->documentElement).PHP_EOL; $doc = new \DOMDocument(); $doc->loadXML('foo'); $target = $doc->documentElement->lastChild; $target->after($doc->documentElement->firstChild, $target, 'bar'); -echo $doc->saveXML($doc->documentElement).PHP_EOL; +echo "22 ", $doc->saveXML($doc->documentElement).PHP_EOL; ?> --EXPECTF-- -foo -foo -foo -foo -foo -foo -foo -foo -foobarbaz -foobarbaz -foobarbaz -barfoobaz -barbazfoo -foobarbaz -foobarbaz -foobarbaz -barfoo -foobar -foobar -barfoo -foobar -foobar +1 foo +2 foo +3 foo +4 foo +5 foo +6 foo +7 foo +8 foo +9 foobarbaz +10 foobarbaz +11 foobarbaz +12 barfoobaz +13 barbazfoo +14 foobarbaz +15 foobarbaz +16 foobarbaz +17 barfoo +18 foobar +19 foobar +20 barfoo +21 foobar +22 foobar diff -Nru php8.2-8.2.7/ext/dom/tests/bug80602_3.phpt php8.2-8.2.18/ext/dom/tests/bug80602_3.phpt --- php8.2-8.2.7/ext/dom/tests/bug80602_3.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/bug80602_3.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,122 @@ +--TEST-- +Bug #80602 (Segfault when using DOMChildNode::before()) - use-after-free variation +--EXTENSIONS-- +dom +--FILE-- +loadXML('foo'); +$target = $doc->documentElement->lastChild; +$target->before('bar', $doc->documentElement->firstChild, 'baz'); +echo $doc->saveXML($doc->documentElement), "\n"; +var_dump($target); + +$doc = new \DOMDocument(); +$doc->loadXML('foo'); +$target = $doc->documentElement->lastChild; +// Note: after instead of before +$target->after('bar', $doc->documentElement->firstChild, 'baz'); +echo $doc->saveXML($doc->documentElement), "\n"; +var_dump($target); + +?> +--EXPECTF-- +barfoobaz +object(DOMElement)#3 (23) { + ["schemaTypeInfo"]=> + NULL + ["tagName"]=> + string(4) "last" + ["firstElementChild"]=> + NULL + ["lastElementChild"]=> + NULL + ["childElementCount"]=> + int(0) + ["previousElementSibling"]=> + NULL + ["nextElementSibling"]=> + NULL + ["nodeName"]=> + string(4) "last" + ["nodeValue"]=> + string(0) "" + ["nodeType"]=> + int(1) + ["parentNode"]=> + string(22) "(object value omitted)" + ["childNodes"]=> + string(22) "(object value omitted)" + ["firstChild"]=> + NULL + ["lastChild"]=> + NULL + ["previousSibling"]=> + string(22) "(object value omitted)" + ["nextSibling"]=> + NULL + ["attributes"]=> + string(22) "(object value omitted)" + ["ownerDocument"]=> + string(22) "(object value omitted)" + ["namespaceURI"]=> + NULL + ["prefix"]=> + string(0) "" + ["localName"]=> + string(4) "last" + ["baseURI"]=> + string(%d) %s + ["textContent"]=> + string(0) "" +} +barfoobaz +object(DOMElement)#2 (23) { + ["schemaTypeInfo"]=> + NULL + ["tagName"]=> + string(4) "last" + ["firstElementChild"]=> + NULL + ["lastElementChild"]=> + NULL + ["childElementCount"]=> + int(0) + ["previousElementSibling"]=> + NULL + ["nextElementSibling"]=> + NULL + ["nodeName"]=> + string(4) "last" + ["nodeValue"]=> + string(0) "" + ["nodeType"]=> + int(1) + ["parentNode"]=> + string(22) "(object value omitted)" + ["childNodes"]=> + string(22) "(object value omitted)" + ["firstChild"]=> + NULL + ["lastChild"]=> + NULL + ["previousSibling"]=> + NULL + ["nextSibling"]=> + string(22) "(object value omitted)" + ["attributes"]=> + string(22) "(object value omitted)" + ["ownerDocument"]=> + string(22) "(object value omitted)" + ["namespaceURI"]=> + NULL + ["prefix"]=> + string(0) "" + ["localName"]=> + string(4) "last" + ["baseURI"]=> + string(%d) %s + ["textContent"]=> + string(0) "" +} diff -Nru php8.2-8.2.7/ext/dom/tests/bug80602_4.phpt php8.2-8.2.18/ext/dom/tests/bug80602_4.phpt --- php8.2-8.2.7/ext/dom/tests/bug80602_4.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/bug80602_4.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,35 @@ +--TEST-- +Bug #80602 (Segfault when using DOMChildNode::before()) - after text merge variation +--EXTENSIONS-- +dom +--FILE-- +loadXML('foobar'); +$foo = $doc->firstChild->firstChild; +$bar = $doc->firstChild->lastChild; + +$foo->after($bar); + +var_dump($doc->saveXML()); + +$foo->nodeValue = "x"; + +var_dump($doc->saveXML()); + +$bar->nodeValue = "y"; + +var_dump($doc->saveXML()); + +?> +--EXPECT-- +string(43) " +foobar +" +string(41) " +xbar +" +string(39) " +xy +" diff -Nru php8.2-8.2.7/ext/dom/tests/bug81642.phpt php8.2-8.2.18/ext/dom/tests/bug81642.phpt --- php8.2-8.2.7/ext/dom/tests/bug81642.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/bug81642.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,49 @@ +--TEST-- +Bug #81642 (DOMChildNode::replaceWith() bug when replacing a node with itself) +--EXTENSIONS-- +dom +--FILE-- +appendChild($target = $doc->createElement('test')); +$target->replaceWith($target); +var_dump($doc->saveXML()); + +// Replace with itself + another element +$doc = new DOMDocument(); +$doc->appendChild($target = $doc->createElement('test')); +$target->replaceWith($target, $doc->createElement('foo')); +var_dump($doc->saveXML()); + +// Replace with text node +$doc = new DOMDocument(); +$doc->appendChild($target = $doc->createElement('test')); +$target->replaceWith($target, 'foo'); +var_dump($doc->saveXML()); + +// Replace with text node variant 2 +$doc = new DOMDocument(); +$doc->appendChild($target = $doc->createElement('test')); +$target->replaceWith('bar', $target, 'foo'); +var_dump($doc->saveXML()); + +?> +--EXPECT-- +string(30) " + +" +string(37) " + + +" +string(34) " + +foo +" +string(38) " +bar + +foo +" diff -Nru php8.2-8.2.7/ext/dom/tests/bug_lifetime_parentNode_getAttributeNodeNS.phpt php8.2-8.2.18/ext/dom/tests/bug_lifetime_parentNode_getAttributeNodeNS.phpt --- php8.2-8.2.7/ext/dom/tests/bug_lifetime_parentNode_getAttributeNodeNS.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/bug_lifetime_parentNode_getAttributeNodeNS.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,20 @@ +--TEST-- +Lifetime issue with parentNode on getAttributeNodeNS() +--EXTENSIONS-- +dom +--FILE-- + + + +'; + +$xml=new DOMDocument(); +$xml->loadXML($xmlString); +$ns2 = $xml->documentElement->getAttributeNodeNS("http://www.w3.org/2000/xmlns/", "ns2"); +$ns2->parentNode->remove(); +var_dump($ns2->parentNode->localName); + +?> +--EXPECT-- +string(4) "root" diff -Nru php8.2-8.2.7/ext/dom/tests/clone_nodes.phpt php8.2-8.2.18/ext/dom/tests/clone_nodes.phpt --- php8.2-8.2.7/ext/dom/tests/clone_nodes.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/clone_nodes.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,72 @@ +--TEST-- +Clone nodes +--EXTENSIONS-- +dom +--FILE-- +loadXML(''); + +$attr = $doc->documentElement->getAttributeNode('xmlns'); +var_dump($attr); + +$attrClone = clone $attr; +var_dump($attrClone->nodeValue); +var_dump($attrClone->parentNode->nodeName); + +unset($doc); +unset($attr); + +var_dump($attrClone->nodeValue); +var_dump($attrClone->parentNode->nodeName); + +echo "-- Clone DOMNode --\n"; + +$doc = new DOMDocument; +$doc->loadXML(''); + +$bar = $doc->documentElement->firstChild; +$barClone = clone $bar; +$bar->remove(); +unset($bar); + +var_dump($barClone->nodeName); + +$doc->firstElementChild->remove(); +unset($doc); + +var_dump($barClone->nodeName); +var_dump($barClone->parentNode); + +?> +--EXPECT-- +-- Clone DOMNameSpaceNode -- +object(DOMNameSpaceNode)#3 (8) { + ["nodeName"]=> + string(5) "xmlns" + ["nodeValue"]=> + string(19) "http://php.net/test" + ["nodeType"]=> + int(18) + ["prefix"]=> + string(0) "" + ["localName"]=> + string(5) "xmlns" + ["namespaceURI"]=> + string(19) "http://php.net/test" + ["ownerDocument"]=> + string(22) "(object value omitted)" + ["parentNode"]=> + string(22) "(object value omitted)" +} +string(19) "http://php.net/test" +string(3) "foo" +string(19) "http://php.net/test" +string(3) "foo" +-- Clone DOMNode -- +string(3) "bar" +string(3) "bar" +NULL diff -Nru php8.2-8.2.7/ext/dom/tests/domobject_debug_handler.phpt php8.2-8.2.18/ext/dom/tests/domobject_debug_handler.phpt --- php8.2-8.2.7/ext/dom/tests/domobject_debug_handler.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/domobject_debug_handler.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -12,54 +12,90 @@ $d = new domdocument; $d->dynamicProperty = new stdclass; $d->loadXML($xml); -print_r($d); +var_dump($d); ?> --EXPECTF-- Deprecated: Creation of dynamic property DOMDocument::$dynamicProperty is deprecated in %s on line %d -DOMDocument Object -( - [config] => - [dynamicProperty] => stdClass Object - ( - ) - - [doctype] => - [implementation] => (object value omitted) - [documentElement] => (object value omitted) - [actualEncoding] => - [encoding] => - [xmlEncoding] => - [standalone] => 1 - [xmlStandalone] => 1 - [version] => 1.0 - [xmlVersion] => 1.0 - [strictErrorChecking] => 1 - [documentURI] => %s - [formatOutput] => - [validateOnParse] => - [resolveExternals] => - [preserveWhiteSpace] => 1 - [recover] => - [substituteEntities] => - [firstElementChild] => (object value omitted) - [lastElementChild] => (object value omitted) - [childElementCount] => 1 - [nodeName] => #document - [nodeValue] => - [nodeType] => 9 - [parentNode] => - [childNodes] => (object value omitted) - [firstChild] => (object value omitted) - [lastChild] => (object value omitted) - [previousSibling] => - [nextSibling] => - [attributes] => - [ownerDocument] => - [namespaceURI] => - [prefix] => - [localName] => - [baseURI] => %s - [textContent] => +object(DOMDocument)#1 (39) { + ["dynamicProperty"]=> + object(stdClass)#2 (0) { + } + ["doctype"]=> + NULL + ["implementation"]=> + string(22) "(object value omitted)" + ["documentElement"]=> + string(22) "(object value omitted)" + ["actualEncoding"]=> + NULL + ["encoding"]=> + NULL + ["xmlEncoding"]=> + NULL + ["standalone"]=> + bool(false) + ["xmlStandalone"]=> + bool(false) + ["version"]=> + string(3) "1.0" + ["xmlVersion"]=> + string(3) "1.0" + ["strictErrorChecking"]=> + bool(true) + ["documentURI"]=> + string(%d) %s + ["config"]=> + NULL + ["formatOutput"]=> + bool(false) + ["validateOnParse"]=> + bool(false) + ["resolveExternals"]=> + bool(false) + ["preserveWhiteSpace"]=> + bool(true) + ["recover"]=> + bool(false) + ["substituteEntities"]=> + bool(false) + ["firstElementChild"]=> + string(22) "(object value omitted)" + ["lastElementChild"]=> + string(22) "(object value omitted)" + ["childElementCount"]=> + int(1) + ["nodeName"]=> + string(9) "#document" + ["nodeValue"]=> + NULL + ["nodeType"]=> + int(9) + ["parentNode"]=> + 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 + ["ownerDocument"]=> + NULL + ["namespaceURI"]=> + NULL + ["prefix"]=> + string(0) "" + ["localName"]=> + NULL + ["baseURI"]=> + string(%d) %s + ["textContent"]=> + string(12) " foobar - -) +" +} diff -Nru php8.2-8.2.7/ext/dom/tests/fragments_multiple_nodes_DOMParentNode.phpt php8.2-8.2.18/ext/dom/tests/fragments_multiple_nodes_DOMParentNode.phpt --- php8.2-8.2.7/ext/dom/tests/fragments_multiple_nodes_DOMParentNode.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/fragments_multiple_nodes_DOMParentNode.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,38 @@ +--TEST-- +Handling fragments of multiple nodes for DOMParentNode +--EXTENSIONS-- +dom +--FILE-- +loadXML(''); + +$container = $dom->documentElement->firstElementChild; + +$fragment = $dom->createDocumentFragment(); +$fragment->appendChild($dom->createElement('p', '1')); +$fragment->appendChild($dom->createElement('b', '2')); +$container->replaceWith($fragment); +echo $dom->saveXML(); + +$dom->documentElement->append('foo'); +echo $dom->saveXML(); + +$fragment = $dom->createDocumentFragment(); +$fragment->appendChild($dom->createElement('p', '3')); +$fragment->appendChild($dom->createElement('b', '4')); +$dom->documentElement->prepend($fragment); +echo $dom->saveXML(); + +?> +--EXPECT-- + + +

1

2 + + +

1

2foo + + +

3

4

1

2foo diff -Nru php8.2-8.2.7/ext/dom/tests/gh10234.phpt php8.2-8.2.18/ext/dom/tests/gh10234.phpt --- php8.2-8.2.7/ext/dom/tests/gh10234.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/gh10234.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,93 @@ +--TEST-- +GH-10234 (Setting DOMAttr::textContent results in an empty attribute value.) +--EXTENSIONS-- +dom +--FILE-- +loadXML(''); +$attribute = $document->documentElement->getAttributeNode('attribute'); + +echo "-- Attribute tests --\n"; + +var_dump($document->saveHTML()); +var_dump($attribute->textContent); + +$attribute->textContent = 'new value'; +var_dump($attribute->textContent); +var_dump($document->saveHTML()); + +$attribute->textContent = 'hello & world'; +var_dump($attribute->textContent); +var_dump($document->saveHTML()); + +$attribute->textContent = 'hi'; +var_dump($attribute->textContent); +var_dump($document->saveHTML()); + +$attribute->textContent = 'quote "test"'; +var_dump($attribute->textContent); +var_dump($document->saveHTML()); + +$attribute->textContent = "quote 'test'"; +var_dump($attribute->textContent); +var_dump($document->saveHTML()); + +$attribute->textContent = "quote '\"test\"'"; +var_dump($attribute->textContent); +var_dump($document->saveHTML()); + +echo "-- Document element tests --\n"; + +$document->documentElement->textContent = 'hello & world'; +var_dump($document->documentElement->textContent); +var_dump($document->saveHTML()); + +$document->documentElement->textContent = 'hi'; +var_dump($document->documentElement->textContent); +var_dump($document->saveHTML()); + +$document->documentElement->textContent = 'quote "test"'; +var_dump($document->documentElement->textContent); +var_dump($document->saveHTML()); + +$document->documentElement->textContent = "quote 'test'"; +var_dump($document->documentElement->textContent); +var_dump($document->saveHTML()); +?> +--EXPECT-- +-- Attribute tests -- +string(38) " +" +string(5) "value" +string(9) "new value" +string(42) " +" +string(13) "hello & world" +string(50) " +" +string(9) "hi" +string(54) " +" +string(12) "quote "test"" +string(45) " +" +string(12) "quote 'test'" +string(45) " +" +string(14) "quote '"test"'" +string(57) " +" +-- Document element tests -- +string(13) "hello & world" +string(74) "hello & world +" +string(9) "hi" +string(78) "<b>hi</b> +" +string(12) "quote "test"" +string(69) "quote "test" +" +string(12) "quote 'test'" +string(69) "quote 'test' +" diff -Nru php8.2-8.2.7/ext/dom/tests/gh11288.phpt php8.2-8.2.18/ext/dom/tests/gh11288.phpt --- php8.2-8.2.7/ext/dom/tests/gh11288.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/gh11288.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,69 @@ +--TEST-- +GH-11288 (Error: Couldn't fetch DOMElement introduced in 8.2.6, 8.1.19) +--EXTENSIONS-- +dom +--FILE-- + + +Loremipsum + +HTML; + +$dom = new DOMDocument(); +$dom->loadHTML($html); + +$spans = iterator_to_array($dom->getElementsByTagName('span')->getIterator()); +foreach ($spans as $span) { + if ('unwrap_me' === $span->getAttribute('class')) { + $fragment = $dom->createDocumentFragment(); + $fragment->append(...$span->childNodes); + $span->parentNode?->replaceChild($fragment, $span); + } +} + +var_dump(str_replace("\n", "", $dom->saveHTML())); + +$html = << + +Loremipsum + +HTML; + +$dom = new DOMDocument(); +$dom->loadHTML($html); + +$spans = iterator_to_array($dom->getElementsByTagName('span')->getIterator()); +foreach ($spans as $span) { + if ('unwrap_me' === $span->getAttribute('class')) { + $span->replaceWith(...$span->childNodes); + } +} + +var_dump(str_replace("\n", "", $dom->saveHTML())); + +$html = << + +Loremipsum + +HTML; + +$dom = new DOMDocument(); +$dom->loadHTML($html); + +$spans = iterator_to_array($dom->getElementsByTagName('span')->getIterator()); +foreach ($spans as $span) { + if ('unwrap_me' === $span->getAttribute('class')) { + $span->replaceWith('abc'); + } +} + +var_dump(str_replace("\n", "", $dom->saveHTML())); +?> +--EXPECT-- +string(108) "Loremipsum" +string(108) "Loremipsum" +string(44) "abc" diff -Nru php8.2-8.2.7/ext/dom/tests/gh11289.phpt php8.2-8.2.18/ext/dom/tests/gh11289.phpt --- php8.2-8.2.7/ext/dom/tests/gh11289.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/gh11289.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,30 @@ +--TEST-- +GH-11289 (DOMException: Not Found Error introduced in 8.2.6, 8.1.19) +--EXTENSIONS-- +dom +--FILE-- + + + +
+ + +HTML; + +$dom = new DOMDocument(); +$dom->loadHTML($html); + +$divs = iterator_to_array($dom->getElementsByTagName('div')->getIterator()); +foreach ($divs as $div) { + $fragment = $dom->createDocumentFragment(); + $fragment->appendXML('

Hi!

'); + $div->replaceWith(...$fragment->childNodes); +} + +var_dump(str_replace("\n", "", $dom->saveHTML())); +?> +--EXPECT-- +string(55) "

Hi!

" diff -Nru php8.2-8.2.7/ext/dom/tests/gh11290.phpt php8.2-8.2.18/ext/dom/tests/gh11290.phpt --- php8.2-8.2.7/ext/dom/tests/gh11290.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/gh11290.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,29 @@ +--TEST-- +GH-11290 (DOMElement::replaceWith causes crash) +--EXTENSIONS-- +dom +--FILE-- + + + +

Loremipsumdolor

+ + +HTML; + +$dom = new DOMDocument(); +$dom->loadHTML($html); + +$spans = iterator_to_array($dom->getElementsByTagName('span')->getIterator()); +foreach ($spans as $span) { + if ('unwrap_me' === $span->getAttribute('class')) { + $span->replaceWith(...$span->childNodes); + } +} + +var_dump(str_replace("\n", "", $dom->saveHTML())); +?> +--EXPECT-- +string(67) "

Loremipsumdolor

" diff -Nru php8.2-8.2.7/ext/dom/tests/gh11347.phpt php8.2-8.2.18/ext/dom/tests/gh11347.phpt --- php8.2-8.2.7/ext/dom/tests/gh11347.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/gh11347.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,26 @@ +--TEST-- +GH-11347 (Memory leak when calling a static method inside an xpath query) +--EXTENSIONS-- +dom +--FILE-- +loadHTML('hello'); +$xpath = new DOMXpath($doc); +$xpath->registerNamespace("php", "http://php.net/xpath"); +$xpath->registerPHPFunctions(); +$xpath->query("//a[php:function('MyClass::dump', string(@href))]"); + +?> +Done +--EXPECT-- +string(15) "https://php.net" +Done diff -Nru php8.2-8.2.7/ext/dom/tests/gh11625.phpt php8.2-8.2.18/ext/dom/tests/gh11625.phpt --- php8.2-8.2.7/ext/dom/tests/gh11625.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/gh11625.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,72 @@ +--TEST-- +GH-11625 (DOMElement::replaceWith() doesn't replace node with DOMDocumentFragment but just deletes node or causes wrapping <> depending on libxml2 version) +--EXTENSIONS-- +dom +--FILE-- + +
+ + XML; + + $dom = new DOMDocument(); + $dom->loadXML($html); + + $divs = iterator_to_array($dom->getElementsByTagName('div')->getIterator()); + $i = 0; + foreach ($divs as $div) { + $mutator($dom, $div, $i); + echo $dom->saveHTML(); + $i++; + } +} + +echo "--- Single replacement ---\n"; + +test(function($dom, $div, $i) { + $fragment = $dom->createDocumentFragment(); + $fragment->appendXML("

Hi $i!

"); + $div->replaceWith($fragment); +}); + +echo "--- Multiple replacement ---\n"; + +test(function($dom, $div, $i) { + $fragment = $dom->createDocumentFragment(); + $fragment->appendXML("

Hi $i!

"); + $div->replaceWith($fragment, $dom->createElement('x'), "hello"); +}); + +echo "--- Empty fragment replacement ---\n"; + +test(function($dom, $div, $i) { + $fragment = $dom->createDocumentFragment(); + $div->replaceWith($fragment); +}); + +?> +--EXPECT-- +--- Single replacement --- + +

Hi 0!

+ + +

Hi 0!

Hi 1!

+ +--- Multiple replacement --- + +

Hi 0!

hello
+ + +

Hi 0!

hello

Hi 1!

hello + +--- Empty fragment replacement --- + +
+ + + + diff -Nru php8.2-8.2.7/ext/dom/tests/gh11682.phpt php8.2-8.2.18/ext/dom/tests/gh11682.phpt --- php8.2-8.2.7/ext/dom/tests/gh11682.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/gh11682.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,27 @@ +--TEST-- +Fix GH-11682 (Consecutive calls to DOMNode::before and DOMNode::remove unlink wrong nodes) +--EXTENSIONS-- +dom +--FILE-- +loadXML(''); + +$list = [ + $dom->createElement('foo1'), + $dom->createElement('foo2'), + $dom->createElement('foo3') +]; + +$node = $dom->getElementsByTagName('node')->item(0); + +$node->before(...$list); +$node->remove(); + +echo $dom->saveXML(); + +?> +--EXPECT-- + + diff -Nru php8.2-8.2.7/ext/dom/tests/gh11791.phpt php8.2-8.2.18/ext/dom/tests/gh11791.phpt --- php8.2-8.2.7/ext/dom/tests/gh11791.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/gh11791.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,39 @@ +--TEST-- +GH-11791 (Wrong default value of DOMDocument.xmlStandalone) +--EXTENSIONS-- +dom +--FILE-- +loadXML(''); +var_dump($doc->xmlStandalone); +$doc->xmlStandalone = true; +var_dump($doc->xmlStandalone); + +$doc = new DOMDocument(); +$doc->loadXML(''); +var_dump($doc->xmlStandalone); +$doc->xmlStandalone = true; +var_dump($doc->xmlStandalone); + +$doc = new DOMDocument(); +$doc->loadXML(''); +var_dump($doc->xmlStandalone); +$doc->xmlStandalone = true; +var_dump($doc->xmlStandalone); + +$doc = new DOMDocument(); +$doc->loadXML(''); +var_dump($doc->xmlStandalone); +$doc->xmlStandalone = false; +var_dump($doc->xmlStandalone); +?> +--EXPECT-- +bool(false) +bool(true) +bool(false) +bool(true) +bool(false) +bool(true) +bool(true) +bool(false) diff -Nru php8.2-8.2.7/ext/dom/tests/gh11830/attribute_variation.phpt php8.2-8.2.18/ext/dom/tests/gh11830/attribute_variation.phpt --- php8.2-8.2.7/ext/dom/tests/gh11830/attribute_variation.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/gh11830/attribute_variation.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,56 @@ +--TEST-- +GH-11830 (ParentNode methods should perform their checks upfront) - attribute variation +--EXTENSIONS-- +dom +--FILE-- +loadXML(<< + + + +XML); + +try { + $doc->documentElement->firstElementChild->prepend($doc->documentElement->attributes[0]); +} catch (\DOMException $e) { + echo $e->getMessage(), "\n"; +} + +try { + $doc->documentElement->firstElementChild->append($doc->documentElement->attributes[0]); +} catch (\DOMException $e) { + echo $e->getMessage(), "\n"; +} + +try { + $doc->documentElement->firstElementChild->before($doc->documentElement->attributes[0]); +} catch (\DOMException $e) { + echo $e->getMessage(), "\n"; +} + +try { + $doc->documentElement->firstElementChild->after($doc->documentElement->attributes[0]); +} catch (\DOMException $e) { + echo $e->getMessage(), "\n"; +} + +try { + $doc->documentElement->firstElementChild->replaceWith($doc->documentElement->attributes[0]); +} catch (\DOMException $e) { + echo $e->getMessage(), "\n"; +} + +echo $doc->saveXML(); +?> +--EXPECT-- +Hierarchy Request Error +Hierarchy Request Error +Hierarchy Request Error +Hierarchy Request Error +Hierarchy Request Error + + + + diff -Nru php8.2-8.2.7/ext/dom/tests/gh11830/document_variation.phpt php8.2-8.2.18/ext/dom/tests/gh11830/document_variation.phpt --- php8.2-8.2.7/ext/dom/tests/gh11830/document_variation.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/gh11830/document_variation.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,71 @@ +--TEST-- +GH-11830 (ParentNode methods should perform their checks upfront) - document variation +--EXTENSIONS-- +dom +--FILE-- +loadXML(<< + +XML); + +$otherElement = $otherDoc->documentElement; + +$doc = new DOMDocument; +$doc->loadXML(<< + + + + +XML); + +$testElement = $doc->documentElement->firstElementChild->nextElementSibling->firstElementChild; + +try { + $doc->documentElement->firstElementChild->prepend($testElement, $otherElement); +} catch (\DOMException $e) { + echo $e->getMessage(), "\n"; +} + +try { + $doc->documentElement->firstElementChild->append($testElement, $otherElement); +} catch (\DOMException $e) { + echo $e->getMessage(), "\n"; +} + +try { + $doc->documentElement->firstElementChild->before($testElement, $otherElement); +} catch (\DOMException $e) { + echo $e->getMessage(), "\n"; +} + +try { + $doc->documentElement->firstElementChild->after($testElement, $otherElement); +} catch (\DOMException $e) { + echo $e->getMessage(), "\n"; +} + +try { + $doc->documentElement->firstElementChild->replaceWith($testElement, $otherElement); +} catch (\DOMException $e) { + echo $e->getMessage(), "\n"; +} + +echo $otherDoc->saveXML(); +echo $doc->saveXML(); +?> +--EXPECT-- +Wrong Document Error +Wrong Document Error +Wrong Document Error +Wrong Document Error +Wrong Document Error + + + + + + + diff -Nru php8.2-8.2.7/ext/dom/tests/gh11830/hierarchy_variation.phpt php8.2-8.2.18/ext/dom/tests/gh11830/hierarchy_variation.phpt --- php8.2-8.2.7/ext/dom/tests/gh11830/hierarchy_variation.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/gh11830/hierarchy_variation.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,62 @@ +--TEST-- +GH-11830 (ParentNode methods should perform their checks upfront) - hierarchy variation +--EXTENSIONS-- +dom +--FILE-- +loadXML(<< + + + + +XML); + +$container = $doc->documentElement; +$alone = $container->firstElementChild; +$testElement = $alone->nextElementSibling->firstElementChild; + +try { + $testElement->prepend($alone, $container); +} catch (\DOMException $e) { + echo $e->getMessage(), "\n"; +} + +try { + $testElement->append($alone, $container); +} catch (\DOMException $e) { + echo $e->getMessage(), "\n"; +} + +try { + $testElement->before($alone, $container); +} catch (\DOMException $e) { + echo $e->getMessage(), "\n"; +} + +try { + $testElement->after($alone, $container); +} catch (\DOMException $e) { + echo $e->getMessage(), "\n"; +} + +try { + $testElement->replaceWith($alone, $container); +} catch (\DOMException $e) { + echo $e->getMessage(), "\n"; +} + +echo $doc->saveXML(); +?> +--EXPECT-- +Hierarchy Request Error +Hierarchy Request Error +Hierarchy Request Error +Hierarchy Request Error +Hierarchy Request Error + + + + + diff -Nru php8.2-8.2.7/ext/dom/tests/gh11830/type_variation.phpt php8.2-8.2.18/ext/dom/tests/gh11830/type_variation.phpt --- php8.2-8.2.7/ext/dom/tests/gh11830/type_variation.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/gh11830/type_variation.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,60 @@ +--TEST-- +GH-11830 (ParentNode methods should perform their checks upfront) - type variation +--EXTENSIONS-- +dom +--FILE-- +loadXML(<< + + + + +XML); + +$testElement = $doc->documentElement->firstElementChild->nextElementSibling->firstElementChild; + +try { + $doc->documentElement->firstElementChild->prepend($testElement, 0); +} catch (\TypeError $e) { + echo $e->getMessage(), "\n"; +} + +try { + $doc->documentElement->firstElementChild->append($testElement, true); +} catch (\TypeError $e) { + echo $e->getMessage(), "\n"; +} + +try { + $doc->documentElement->firstElementChild->before($testElement, null); +} catch (\TypeError $e) { + echo $e->getMessage(), "\n"; +} + +try { + $doc->documentElement->firstElementChild->after($testElement, new stdClass); +} catch (\TypeError $e) { + echo $e->getMessage(), "\n"; +} + +try { + $doc->documentElement->firstElementChild->replaceWith($testElement, []); +} catch (\TypeError $e) { + echo $e->getMessage(), "\n"; +} + +echo $doc->saveXML(); +?> +--EXPECT-- +DOMElement::prepend(): Argument #2 must be of type DOMNode|string, int given +DOMElement::append(): Argument #2 must be of type DOMNode|string, bool given +DOMElement::before(): Argument #2 must be of type DOMNode|string, null given +DOMElement::after(): Argument #2 must be of type DOMNode|string, stdClass given +DOMElement::replaceWith(): Argument #2 must be of type DOMNode|string, array given + + + + + diff -Nru php8.2-8.2.7/ext/dom/tests/gh11906.phpt php8.2-8.2.18/ext/dom/tests/gh11906.phpt --- php8.2-8.2.7/ext/dom/tests/gh11906.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/gh11906.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,45 @@ +--TEST-- +GH-11906 (prepend without children after creating fragment results in segfault) +--EXTENSIONS-- +dom +--FILE-- +loadXML(<< + + + +XML); + +$container = $doc->documentElement; +$child = $container->firstElementChild; + +$test = $doc->createElement('foo'); +$test->append($child); +echo "--- document output ---\n"; +echo $doc->saveXML(); +echo "--- \$test output ---\n"; +echo $doc->saveXML($test), "\n"; +$test->prepend($child); +echo "--- document output ---\n"; +echo $doc->saveXML(); +echo "--- \$test output ---\n"; +echo $doc->saveXML($test), "\n"; +$test->append($child); +?> +--EXPECT-- +--- document output --- + + + + +--- $test output --- + +--- document output --- + + + + +--- $test output --- + diff -Nru php8.2-8.2.7/ext/dom/tests/gh12002.phpt php8.2-8.2.18/ext/dom/tests/gh12002.phpt --- php8.2-8.2.7/ext/dom/tests/gh12002.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/gh12002.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,38 @@ +--TEST-- +GH-12002 (DOMDocument::encoding memory leak with invalid encoding) +--EXTENSIONS-- +dom +--FILE-- +encoding = make_nonconst('utf-8'); +var_dump($dom->encoding); +try { + $dom->encoding = make_nonconst('foobar'); +} catch (ValueError $e) { + echo $e->getMessage(), "\n"; +} +var_dump($dom->encoding); +$dom->encoding = make_nonconst('utf-16le'); +var_dump($dom->encoding); +try { + $dom->encoding = NULL; +} catch (ValueError $e) { + echo $e->getMessage(), "\n"; +} +var_dump($dom->encoding); + +?> +--EXPECT-- +string(5) "utf-8" +Invalid document encoding +string(5) "utf-8" +string(8) "utf-16le" +Invalid document encoding +string(8) "utf-16le" diff -Nru php8.2-8.2.7/ext/dom/tests/gh12616_1.phpt php8.2-8.2.18/ext/dom/tests/gh12616_1.phpt --- php8.2-8.2.7/ext/dom/tests/gh12616_1.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/gh12616_1.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,36 @@ +--TEST-- +GH-12616 (DOM: Removing XMLNS namespace node results in invalid default: prefix) +--EXTENSIONS-- +dom +--FILE-- +loadXML( + << + CHILDREN +
+ XML +); + +$doc->documentElement->removeAttributeNS('http://symfony.com/schema/dic/services', ''); +echo $doc->saveXML(); + +$new = new DOMDocument(); +$new->append( + $new->importNode($doc->documentElement, true) +); + +echo $new->saveXML(); + +?> +--EXPECT-- + + + CHILDREN + + + + CHILDREN + diff -Nru php8.2-8.2.7/ext/dom/tests/gh12616_2.phpt php8.2-8.2.18/ext/dom/tests/gh12616_2.phpt --- php8.2-8.2.7/ext/dom/tests/gh12616_2.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/gh12616_2.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,39 @@ +--TEST-- +GH-12616 (DOM: Removing XMLNS namespace node results in invalid default: prefix) +--EXTENSIONS-- +dom +--FILE-- +loadXML( + << + + + + + XML +); + +$doc->documentElement->removeAttributeNS('http://symfony.com/schema/dic/services', 'symfony'); +$xpath = new DOMXPath($doc); +$xpath->registerNamespace('test', 'urn:test'); + +echo $doc->saveXML(); + +$result = $xpath->query('//container/services/test:service[@id="hello"]'); +var_dump($result); + +?> +--EXPECT-- + + + + + + +object(DOMNodeList)#4 (1) { + ["length"]=> + int(1) +} diff -Nru php8.2-8.2.7/ext/dom/tests/gh12616_3.phpt php8.2-8.2.18/ext/dom/tests/gh12616_3.phpt --- php8.2-8.2.7/ext/dom/tests/gh12616_3.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/gh12616_3.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,152 @@ +--TEST-- +GH-12616 (DOM: Removing XMLNS namespace node results in invalid default: prefix) +--EXTENSIONS-- +dom +--FILE-- +loadXML( + << + + + + + + + + + + XML +); + +$doc->documentElement->firstElementChild->removeAttributeNS('http://symfony.com/schema/dic/services', 'x'); +echo $doc->saveXML(); + +$xpath = new DOMXPath($doc); + +echo "--- Namespaces of child1 ---\n"; + +foreach ($xpath->query("/container/child1/namespace::*") as $ns) { + var_dump($ns); +} + +echo "--- Namespaces of child1/foo (both nodes) ---\n"; + +foreach ($xpath->query("/container/child1/foo/namespace::*") as $ns) { + var_dump($ns); +} + +echo "--- Namespaces of child2 ---\n"; + +foreach ($xpath->query("/container/child2/namespace::*") as $ns) { + var_dump($ns); +} + +?> +--EXPECT-- + + + + + + + + + + + +--- Namespaces of child1 --- +object(DOMNameSpaceNode)#4 (8) { + ["nodeName"]=> + string(9) "xmlns:xml" + ["nodeValue"]=> + string(36) "http://www.w3.org/XML/1998/namespace" + ["nodeType"]=> + int(18) + ["prefix"]=> + string(3) "xml" + ["localName"]=> + string(3) "xml" + ["namespaceURI"]=> + string(36) "http://www.w3.org/XML/1998/namespace" + ["ownerDocument"]=> + string(22) "(object value omitted)" + ["parentNode"]=> + string(22) "(object value omitted)" +} +--- Namespaces of child1/foo (both nodes) --- +object(DOMNameSpaceNode)#5 (8) { + ["nodeName"]=> + string(9) "xmlns:xml" + ["nodeValue"]=> + string(36) "http://www.w3.org/XML/1998/namespace" + ["nodeType"]=> + int(18) + ["prefix"]=> + string(3) "xml" + ["localName"]=> + string(3) "xml" + ["namespaceURI"]=> + string(36) "http://www.w3.org/XML/1998/namespace" + ["ownerDocument"]=> + string(22) "(object value omitted)" + ["parentNode"]=> + string(22) "(object value omitted)" +} +object(DOMNameSpaceNode)#8 (8) { + ["nodeName"]=> + string(9) "xmlns:xml" + ["nodeValue"]=> + string(36) "http://www.w3.org/XML/1998/namespace" + ["nodeType"]=> + int(18) + ["prefix"]=> + string(3) "xml" + ["localName"]=> + string(3) "xml" + ["namespaceURI"]=> + string(36) "http://www.w3.org/XML/1998/namespace" + ["ownerDocument"]=> + string(22) "(object value omitted)" + ["parentNode"]=> + string(22) "(object value omitted)" +} +--- Namespaces of child2 --- +object(DOMNameSpaceNode)#9 (8) { + ["nodeName"]=> + string(9) "xmlns:xml" + ["nodeValue"]=> + string(36) "http://www.w3.org/XML/1998/namespace" + ["nodeType"]=> + int(18) + ["prefix"]=> + string(3) "xml" + ["localName"]=> + string(3) "xml" + ["namespaceURI"]=> + string(36) "http://www.w3.org/XML/1998/namespace" + ["ownerDocument"]=> + string(22) "(object value omitted)" + ["parentNode"]=> + string(22) "(object value omitted)" +} +object(DOMNameSpaceNode)#5 (8) { + ["nodeName"]=> + string(7) "xmlns:x" + ["nodeValue"]=> + string(38) "http://symfony.com/schema/dic/services" + ["nodeType"]=> + int(18) + ["prefix"]=> + string(1) "x" + ["localName"]=> + string(1) "x" + ["namespaceURI"]=> + string(38) "http://symfony.com/schema/dic/services" + ["ownerDocument"]=> + string(22) "(object value omitted)" + ["parentNode"]=> + string(22) "(object value omitted)" +} diff -Nru php8.2-8.2.7/ext/dom/tests/gh8996.phpt php8.2-8.2.18/ext/dom/tests/gh8996.phpt --- php8.2-8.2.7/ext/dom/tests/gh8996.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/gh8996.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,120 @@ +--TEST-- +GH-8996: DOMNode serialization on PHP ^8.1 +--EXTENSIONS-- +dom +--FILE-- +xmlData = $this->saveXML(); + return ['xmlData']; + } + + public function __wakeup(): void + { + $this->loadXML($this->xmlData); + } +} + +$dom = new SerializableDomDocumentSleepWakeup('1.0', 'UTF-8'); +$dom->loadXML('value'); + +$serialized = serialize($dom); +var_dump($serialized); +$unserialized = unserialize($serialized); + +echo "Serialized:\n-----------\n$serialized\n-----------\nRestored:\n-----------\n{$unserialized->saveXml()}"; + +echo "=== __serialize and __unserialize ===\n"; + +class SerializableDomDocument__Serialize__Unserialize extends DOMDocument +{ + public function __serialize(): array + { + return ['xmlData' => $this->saveXML()]; + } + + public function __unserialize(array $data): void + { + $this->loadXML($data['xmlData']); + } +} + +$dom = new SerializableDomDocument__Serialize__Unserialize('1.0', 'UTF-8'); +$dom->loadXML('value'); + +$serialized = serialize($dom); +$unserialized = unserialize($serialized); + +echo "Serialized:\n-----------\n$serialized\n-----------\nRestored:\n-----------\n{$unserialized->saveXml()}"; + +echo "=== serialize and unserialize ===\n"; + +class SerializableDomDocumentSerializeUnserialize extends DOMDocument implements Serializable +{ + public function serialize(): ?string + { + return $this->saveXML(); + } + + public function unserialize(string $data): void + { + $this->loadXML($data); + } +} + +$dom = new SerializableDomDocumentSerializeUnserialize('1.0', 'UTF-8'); +$dom->loadXML('value'); + +$serialized = serialize($dom); +$unserialized = unserialize($serialized); + +echo "Serialized:\n-----------\n$serialized\n-----------\nRestored:\n-----------\n{$unserialized->saveXml()}"; + +?> +--EXPECTF-- +=== __sleep and __wakeup === +string(144) "O:34:"SerializableDomDocumentSleepWakeup":1:{s:43:"%0SerializableDomDocumentSleepWakeup%0xmlData";s:39:" +value +";}" +Serialized: +----------- +O:34:"SerializableDomDocumentSleepWakeup":1:{s:43:"%0SerializableDomDocumentSleepWakeup%0xmlData";s:39:" +value +";} +----------- +Restored: +----------- + +value +=== __serialize and __unserialize === +Serialized: +----------- +O:47:"SerializableDomDocument__Serialize__Unserialize":1:{s:7:"xmlData";s:39:" +value +";} +----------- +Restored: +----------- + +value +=== serialize and unserialize === + +Deprecated: SerializableDomDocumentSerializeUnserialize implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in %s on line %d +Serialized: +----------- +C:43:"SerializableDomDocumentSerializeUnserialize":39:{ +value +} +----------- +Restored: +----------- + +value diff -Nru php8.2-8.2.7/ext/dom/tests/gh9142.phpt php8.2-8.2.18/ext/dom/tests/gh9142.phpt --- php8.2-8.2.7/ext/dom/tests/gh9142.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/gh9142.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,22 @@ +--TEST-- +GH-9142 (DOMChildNode replaceWith() double-free error when replacing elements not separated by any whitespace) +--EXTENSIONS-- +dom +--FILE-- +OneTwo'; + +($dom = new DOMDocument('1.0', 'UTF-8'))->loadHTML($document); + +foreach ((new DOMXPath($dom))->query('//var') as $var) { + $var->replaceWith($dom->createElement('p', $var->nodeValue)); +} + +var_dump($dom->saveHTML()); + +?> +--EXPECT-- +string(154) " +

One

Two

+" diff -Nru php8.2-8.2.7/ext/dom/tests/libxml_global_state_entity_loader_bypass.phpt php8.2-8.2.18/ext/dom/tests/libxml_global_state_entity_loader_bypass.phpt --- php8.2-8.2.7/ext/dom/tests/libxml_global_state_entity_loader_bypass.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/libxml_global_state_entity_loader_bypass.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,38 @@ +--TEST-- +GHSA-3qrf-m4j2-pcrr (libxml global state entity loader bypass) +--EXTENSIONS-- +dom +libxml +zend_test +--SKIPIF-- + +--FILE-- + %bork;]>"; + +libxml_use_internal_errors(true); + +function parseXML($xml) { + $doc = new DOMDocument(); + @$doc->loadXML($xml); + $doc->createDocumentFragment()->appendXML("&bork;"); + foreach (libxml_get_errors() as $error) { + var_dump(trim($error->message)); + } +} + +parseXML($xml); +zend_test_override_libxml_global_state(); +parseXML($xml); + +echo "Done\n"; + +?> +--EXPECT-- +string(25) "Entity 'bork' not defined" +string(25) "Entity 'bork' not defined" +string(25) "Entity 'bork' not defined" +Done diff -Nru php8.2-8.2.7/ext/dom/tests/manually_call_constructor/attribute.phpt php8.2-8.2.18/ext/dom/tests/manually_call_constructor/attribute.phpt --- php8.2-8.2.7/ext/dom/tests/manually_call_constructor/attribute.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/manually_call_constructor/attribute.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,34 @@ +--TEST-- +Manually call __construct() - attribute variation +--EXTENSIONS-- +dom +--FILE-- +nodeName, $attr->nodeValue); +$attr->__construct("newattribute", "my new value"); +var_dump($attr->nodeName, $attr->nodeValue); + +$doc = new DOMDocument(); +$doc->loadXML(<< + +XML); +$doc->documentElement->setAttributeNode($attr); +echo $doc->saveXML(); + +$attr->__construct("newnewattribute", "my even newer value"); +$doc->documentElement->setAttributeNode($attr); +echo $doc->saveXML(); + +?> +--EXPECT-- +string(9) "attribute" +string(8) "my value" +string(12) "newattribute" +string(12) "my new value" + + + + diff -Nru php8.2-8.2.7/ext/dom/tests/manually_call_constructor/cdatasection.phpt php8.2-8.2.18/ext/dom/tests/manually_call_constructor/cdatasection.phpt --- php8.2-8.2.7/ext/dom/tests/manually_call_constructor/cdatasection.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/manually_call_constructor/cdatasection.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,32 @@ +--TEST-- +Manually call __construct() - CDATA section variation +--EXTENSIONS-- +dom +--FILE-- +nodeValue); +$cdata->__construct("my new value"); +var_dump($cdata->nodeValue); + +$doc = new DOMDocument(); +$doc->loadXML(<< + +XML); +$doc->documentElement->appendChild($cdata); +echo $doc->saveXML(); + +$cdata->__construct("my even newer value"); +$doc->documentElement->appendChild($cdata); +echo $doc->saveXML(); + +?> +--EXPECT-- +string(8) "my value" +string(12) "my new value" + + + + diff -Nru php8.2-8.2.7/ext/dom/tests/manually_call_constructor/comment.phpt php8.2-8.2.18/ext/dom/tests/manually_call_constructor/comment.phpt --- php8.2-8.2.7/ext/dom/tests/manually_call_constructor/comment.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/manually_call_constructor/comment.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,34 @@ +--TEST-- +Manually call __construct() - comment variation +--EXTENSIONS-- +dom +--FILE-- +nodeName, $comment->nodeValue); +$comment->__construct("my new value"); +var_dump($comment->nodeName, $comment->nodeValue); + +$doc = new DOMDocument(); +$doc->loadXML(<< + +XML); +$doc->documentElement->appendChild($comment); +echo $doc->saveXML(); + +$comment->__construct("my even newer value"); +$doc->documentElement->appendChild($comment); +echo $doc->saveXML(); + +?> +--EXPECT-- +string(8) "#comment" +string(8) "my value" +string(8) "#comment" +string(12) "my new value" + + + + diff -Nru php8.2-8.2.7/ext/dom/tests/manually_call_constructor/document.phpt php8.2-8.2.18/ext/dom/tests/manually_call_constructor/document.phpt --- php8.2-8.2.7/ext/dom/tests/manually_call_constructor/document.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/manually_call_constructor/document.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,15 @@ +--TEST-- +Manually call __construct() - document variation +--EXTENSIONS-- +dom +--FILE-- +loadXML(''); +$doc->__construct("1.1", "UTF-8"); +echo $doc->saveXML(); + +?> +--EXPECT-- + diff -Nru php8.2-8.2.7/ext/dom/tests/manually_call_constructor/documentfragment.phpt php8.2-8.2.18/ext/dom/tests/manually_call_constructor/documentfragment.phpt --- php8.2-8.2.7/ext/dom/tests/manually_call_constructor/documentfragment.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/manually_call_constructor/documentfragment.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,32 @@ +--TEST-- +Manually call __construct() - document fragment variation +--EXTENSIONS-- +dom +--FILE-- +textContent); +$fragment->__construct(); +var_dump($fragment->textContent); + +$doc = new DOMDocument(); +$doc->loadXML(<< + +XML); +@$doc->documentElement->appendChild($fragment); +echo $doc->saveXML(); + +$fragment->__construct(); +@$doc->documentElement->appendChild($fragment); +echo $doc->saveXML(); + +?> +--EXPECT-- +string(0) "" +string(0) "" + + + + diff -Nru php8.2-8.2.7/ext/dom/tests/manually_call_constructor/element.phpt php8.2-8.2.18/ext/dom/tests/manually_call_constructor/element.phpt --- php8.2-8.2.7/ext/dom/tests/manually_call_constructor/element.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/manually_call_constructor/element.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,34 @@ +--TEST-- +Manually call __construct() - element variation +--EXTENSIONS-- +dom +--FILE-- +nodeName, $element->textContent); +$element->__construct('foo2', 'my new value'); +var_dump($element->nodeName, $element->textContent); + +$doc = new DOMDocument(); +$doc->loadXML(<< + +XML); +$doc->documentElement->appendChild($element); +echo $doc->saveXML(); + +$element->__construct('foo3', 'my new new value'); +$doc->documentElement->appendChild($element); +echo $doc->saveXML(); + +?> +--EXPECT-- +string(3) "foo" +string(8) "my value" +string(4) "foo2" +string(12) "my new value" + +my new value + +my new valuemy new new value diff -Nru php8.2-8.2.7/ext/dom/tests/manually_call_constructor/entityreference.phpt php8.2-8.2.18/ext/dom/tests/manually_call_constructor/entityreference.phpt --- php8.2-8.2.7/ext/dom/tests/manually_call_constructor/entityreference.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/manually_call_constructor/entityreference.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,34 @@ +--TEST-- +Manually call __construct() - entity reference variation +--EXTENSIONS-- +dom +--FILE-- +nodeName, $entityRef->textContent); +$entityRef->__construct('foo2'); +var_dump($entityRef->nodeName, $entityRef->textContent); + +$doc = new DOMDocument(); +$doc->loadXML(<< + +XML); +$doc->documentElement->appendChild($entityRef); +echo $doc->saveXML(); + +$entityRef->__construct('foo3'); +$doc->documentElement->appendChild($entityRef); +echo $doc->saveXML(); + +?> +--EXPECT-- +string(3) "foo" +string(0) "" +string(4) "foo2" +string(0) "" + +&foo2; + +&foo2;&foo3; diff -Nru php8.2-8.2.7/ext/dom/tests/manually_call_constructor/processinginstruction.phpt php8.2-8.2.18/ext/dom/tests/manually_call_constructor/processinginstruction.phpt --- php8.2-8.2.7/ext/dom/tests/manually_call_constructor/processinginstruction.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/manually_call_constructor/processinginstruction.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,34 @@ +--TEST-- +Manually call __construct() - processing instruction variation +--EXTENSIONS-- +dom +--FILE-- +target, $pi->data); +$pi->__construct('name2', 'value2'); +var_dump($pi->target, $pi->data); + +$doc = new DOMDocument(); +$doc->loadXML(<< + +XML); +$doc->documentElement->appendChild($pi); +echo $doc->saveXML(); + +$pi->__construct('name3', 'value3'); +$doc->documentElement->appendChild($pi); +echo $doc->saveXML(); + +?> +--EXPECT-- +string(5) "name1" +string(6) "value1" +string(5) "name2" +string(6) "value2" + + + + diff -Nru php8.2-8.2.7/ext/dom/tests/manually_call_constructor/text.phpt php8.2-8.2.18/ext/dom/tests/manually_call_constructor/text.phpt --- php8.2-8.2.7/ext/dom/tests/manually_call_constructor/text.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/manually_call_constructor/text.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,33 @@ +--TEST-- +Manually call __construct() - text variation +--EXTENSIONS-- +dom +--FILE-- +textContent); +$text->__construct('my new value'); +var_dump($text->textContent); + +$doc = new DOMDocument(); +$doc->loadXML(<< + +XML); +$doc->documentElement->appendChild($text); +echo $doc->saveXML(); + +$text->__construct("\nmy new new value"); +$doc->documentElement->appendChild($text); +echo $doc->saveXML(); + +?> +--EXPECT-- +string(8) "my value" +string(12) "my new value" + +my new value + +my new value +my new new value diff -Nru php8.2-8.2.7/ext/dom/tests/not_serializable.phpt php8.2-8.2.18/ext/dom/tests/not_serializable.phpt --- php8.2-8.2.7/ext/dom/tests/not_serializable.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/not_serializable.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -36,7 +36,7 @@ ?> --EXPECT-- -Serialization of 'DOMDocument' is not allowed -Serialization of 'DOMElement' is not allowed +Serialization of 'DOMDocument' is not allowed, unless serialization methods are implemented in a subclass +Serialization of 'DOMElement' is not allowed, unless serialization methods are implemented in a subclass Serialization of 'DOMXPath' is not allowed -Serialization of 'DOMNameSpaceNode' is not allowed +Serialization of 'DOMNameSpaceNode' is not allowed, unless serialization methods are implemented in a subclass diff -Nru php8.2-8.2.7/ext/dom/tests/not_unserializable.phpt php8.2-8.2.18/ext/dom/tests/not_unserializable.phpt --- php8.2-8.2.7/ext/dom/tests/not_unserializable.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/not_unserializable.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,29 @@ +--TEST-- +DOM classes are not unserializable +--EXTENSIONS-- +dom +--FILE-- +getMessage(), "\n"; + } +} + +?> +--EXPECT-- +Unserialization of 'DOMXPath' is not allowed +Unserialization of 'DOMDocument' is not allowed, unless unserialization methods are implemented in a subclass +Unserialization of 'DOMNode' is not allowed, unless unserialization methods are implemented in a subclass +Unserialization of 'DOMNameSpaceNode' is not allowed, unless unserialization methods are implemented in a subclass diff -Nru php8.2-8.2.7/ext/dom/tests/php_function_edge_cases.phpt php8.2-8.2.18/ext/dom/tests/php_function_edge_cases.phpt --- php8.2-8.2.7/ext/dom/tests/php_function_edge_cases.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/php_function_edge_cases.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,27 @@ +--TEST-- +php:function() edge cases +--EXTENSIONS-- +dom +--FILE-- +loadHTML('hello'); +$xpath = new DOMXpath($doc); +$xpath->registerNamespace("php", "http://php.net/xpath"); +$xpath->registerPHPFunctions(); +try { + $xpath->query("//a[php:function(3)]"); +} catch (TypeError $e) { + echo $e->getMessage(), "\n"; +} +try { + $xpath->query("//a[php:function()]"); +} catch (Throwable $e) { + echo $e->getMessage(), "\n"; +} + +?> +--EXPECT-- +Handler name must be a string +Function name must be passed as the first argument diff -Nru php8.2-8.2.7/ext/dom/tests/registerNodeClass_abstract_class.phpt php8.2-8.2.18/ext/dom/tests/registerNodeClass_abstract_class.phpt --- php8.2-8.2.7/ext/dom/tests/registerNodeClass_abstract_class.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/registerNodeClass_abstract_class.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,24 @@ +--TEST-- +registerNodeClass() with an abstract class should fail +--EXTENSIONS-- +dom +--FILE-- +registerNodeClass("DOMElement", "Test"); +} catch (ValueError $e) { + echo "ValueError: ", $e->getMessage(), "\n"; +} + +$dom->createElement("foo"); + +?> +--EXPECT-- +ValueError: DOMDocument::registerNodeClass(): Argument #2 ($extendedClass) must not be an abstract class diff -Nru php8.2-8.2.7/ext/dom/tests/replaceWith_non_viable_next_sibling.phpt php8.2-8.2.18/ext/dom/tests/replaceWith_non_viable_next_sibling.phpt --- php8.2-8.2.7/ext/dom/tests/replaceWith_non_viable_next_sibling.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/replaceWith_non_viable_next_sibling.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,36 @@ +--TEST-- +replaceWith() with a non-viable next sibling +--EXTENSIONS-- +dom +--FILE-- +loadXML(<< + + + + + +XML); + +$container = $doc->documentElement; +$child = $container->firstElementChild; +$alone = $child->firstElementChild; + +$child->after($alone); +echo $doc->saveXML(); +$child->replaceWith($alone); +echo $doc->saveXML(); +?> +--EXPECT-- + + + + + + + + + + diff -Nru php8.2-8.2.7/ext/dom/tests/setAttributeNodeNS_same_uri_different_prefix.phpt php8.2-8.2.18/ext/dom/tests/setAttributeNodeNS_same_uri_different_prefix.phpt --- php8.2-8.2.7/ext/dom/tests/setAttributeNodeNS_same_uri_different_prefix.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/setAttributeNodeNS_same_uri_different_prefix.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,38 @@ +--TEST-- +setAttributeNodeNS with same URI but different prefix +--EXTENSIONS-- +dom +--FILE-- +appendChild($doc->createElement('container')); +$attribute = $doc->createAttributeNS('http://php.net/ns1', 'foo:hello'); +$attribute->nodeValue = '1'; +var_dump($doc->documentElement->setAttributeNodeNS($attribute)?->nodeValue); +echo $doc->saveXML(), "\n"; +$attribute = $doc->createAttributeNS('http://php.net/ns1', 'bar:hello'); +$attribute->nodeValue = '2'; +var_dump($doc->documentElement->setAttributeNodeNS($attribute)?->nodeValue); +echo $doc->saveXML(), "\n"; +$attribute = $doc->createAttributeNS('http://php.net/ns1', 'hello'); +$attribute->nodeValue = '3'; +var_dump($doc->documentElement->setAttributeNodeNS($attribute)?->nodeValue); +echo $doc->saveXML(), "\n"; +?> +--EXPECT-- +NULL + + + +string(1) "1" + + + +string(1) "2" + + diff -Nru php8.2-8.2.7/ext/dom/tests/specific_namespace_behaviour.phpt php8.2-8.2.18/ext/dom/tests/specific_namespace_behaviour.phpt --- php8.2-8.2.7/ext/dom/tests/specific_namespace_behaviour.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/specific_namespace_behaviour.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,27 @@ +--TEST-- +DOM: specific namespace behaviour for applications with fixed serialization requirements +--EXTENSIONS-- +dom +--FILE-- +loadXML(<< + + + +XML); +$dom2 = new DOMDocument(); +$dom2->loadXML(''); +$wsse = $dom2->importNode($dom1->documentElement, true); +$dom2->firstChild->firstChild->appendChild($wsse); +echo $dom2->saveXML(); + +?> +--EXPECT-- + + + + + diff -Nru php8.2-8.2.7/ext/dom/tests/xpath_domnamespacenode.phpt php8.2-8.2.18/ext/dom/tests/xpath_domnamespacenode.phpt --- php8.2-8.2.7/ext/dom/tests/xpath_domnamespacenode.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/xpath_domnamespacenode.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -17,7 +17,7 @@ ?> --EXPECT-- -object(DOMNameSpaceNode)#3 (8) { +object(DOMNameSpaceNode)#4 (8) { ["nodeName"]=> string(9) "xmlns:xml" ["nodeValue"]=> diff -Nru php8.2-8.2.7/ext/dom/tests/xpath_domnamespacenode_advanced.phpt php8.2-8.2.18/ext/dom/tests/xpath_domnamespacenode_advanced.phpt --- php8.2-8.2.7/ext/dom/tests/xpath_domnamespacenode_advanced.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/dom/tests/xpath_domnamespacenode_advanced.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,75 @@ +--TEST-- +DOMXPath::query() can return DOMNodeList with DOMNameSpaceNode items - advanced variation +--EXTENSIONS-- +dom +--FILE-- +loadXML(<<<'XML' + + Hello PHP! + +XML); + +$xpath = new DOMXPath($dom); +$query = '//namespace::*'; + +echo "-- All namespace attributes --\n"; + +foreach ($xpath->query($query) as $attribute) { + echo $attribute->nodeName . ' = ' . $attribute->nodeValue . PHP_EOL; + var_dump($attribute->parentNode->tagName); +} + +echo "-- All namespace attributes with removal attempt --\n"; + +foreach ($xpath->query($query) as $attribute) { + echo "Before: ", $attribute->parentNode->tagName, "\n"; + // Second & third attempt should fail because it's no longer in the document + try { + $attribute->parentNode->remove(); + } catch (\DOMException $e) { + echo $e->getMessage(), "\n"; + } + // However, it should not cause a use-after-free + echo "After: ", $attribute->parentNode->tagName, "\n"; +} + +?> +--EXPECT-- +-- All namespace attributes -- +xmlns:xml = http://www.w3.org/XML/1998/namespace +string(4) "root" +xmlns:bar = http://example.com/bar +string(4) "root" +xmlns:foo = http://example.com/foo +string(4) "root" +xmlns:xml = http://www.w3.org/XML/1998/namespace +string(5) "child" +xmlns:bar = http://example.com/bar +string(5) "child" +xmlns:foo = http://example.com/foo +string(5) "child" +xmlns:baz = http://example.com/baz +string(5) "child" +-- All namespace attributes with removal attempt -- +Before: root +After: root +Before: root +Not Found Error +After: root +Before: root +Not Found Error +After: root +Before: child +After: child +Before: child +Not Found Error +After: child +Before: child +Not Found Error +After: child +Before: child +Not Found Error +After: child diff -Nru php8.2-8.2.7/ext/dom/text.c php8.2-8.2.18/ext/dom/text.c --- php8.2-8.2.7/ext/dom/text.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dom/text.c 2024-04-09 18:46:23.000000000 +0000 @@ -51,13 +51,11 @@ } intern = Z_DOMOBJ_P(ZEND_THIS); - if (intern != NULL) { - oldnode = dom_object_get_node(intern); - if (oldnode != NULL) { - php_libxml_node_free_resource(oldnode ); - } - php_libxml_increment_node_ptr((php_libxml_node_object *)intern, nodep, (void *)intern); + oldnode = dom_object_get_node(intern); + if (oldnode != NULL) { + php_libxml_node_decrement_resource((php_libxml_node_object *)intern); } + php_libxml_increment_node_ptr((php_libxml_node_object *)intern, nodep, (void *)intern); } /* }}} end DOMText::__construct */ diff -Nru php8.2-8.2.7/ext/dom/xpath.c php8.2-8.2.18/ext/dom/xpath.c --- php8.2-8.2.7/ext/dom/xpath.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/dom/xpath.c 2024-04-09 18:46:23.000000000 +0000 @@ -70,12 +70,17 @@ return; } + if (UNEXPECTED(nargs == 0)) { + zend_throw_error(NULL, "Function name must be passed as the first argument"); + return; + } + fci.param_count = nargs - 1; if (fci.param_count > 0) { fci.params = safe_emalloc(fci.param_count, sizeof(zval), 0); } /* Reverse order to pop values off ctxt stack */ - for (i = nargs - 2; i >= 0; i--) { + for (i = fci.param_count - 1; i >= 0; i--) { obj = valuePop(ctxt); switch (obj->type) { case XPATH_STRING: @@ -101,24 +106,18 @@ zval child; /* not sure, if we need this... it's copied from xpath.c */ if (node->type == XML_NAMESPACE_DECL) { - xmlNsPtr curns; - xmlNodePtr nsparent; + xmlNodePtr nsparent = node->_private; + xmlNsPtr original = (xmlNsPtr) node; - nsparent = node->_private; - curns = xmlNewNs(NULL, node->name, NULL); - if (node->children) { - curns->prefix = xmlStrdup((xmlChar *) node->children); - } - if (node->children) { - node = xmlNewDocNode(node->doc, NULL, (xmlChar *) node->children, node->name); - } else { - node = xmlNewDocNode(node->doc, NULL, (xmlChar *) "xmlns", node->name); - } - node->type = XML_NAMESPACE_DECL; - node->parent = nsparent; - node->ns = curns; + /* Make sure parent dom object exists, so we can take an extra reference. */ + zval parent_zval; /* don't destroy me, my lifetime is transfered to the fake namespace decl */ + php_dom_create_object(nsparent, &parent_zval, &intern->dom); + dom_object *parent_intern = Z_DOMOBJ_P(&parent_zval); + + node = php_dom_create_fake_namespace_decl(nsparent, original, &child, parent_intern); + } else { + php_dom_create_object(node, &child, &intern->dom); } - php_dom_create_object(node, &child, &intern->dom); add_next_index_zval(&fci.params[i], &child); } } else { @@ -126,19 +125,23 @@ } } break; - default: - ZVAL_STRING(&fci.params[i], (char *)xmlXPathCastToString(obj)); + default: { + str = (char *)xmlXPathCastToString(obj); + ZVAL_STRING(&fci.params[i], str); + xmlFree(str); + } } xmlXPathFreeObject(obj); } fci.size = sizeof(fci); + /* Last element of the stack is the function name */ obj = valuePop(ctxt); if (obj->stringval == NULL) { zend_type_error("Handler name must be a string"); xmlXPathFreeObject(obj); - goto cleanup; + goto cleanup_no_callable; } ZVAL_STRING(&fci.function_name, (char *) obj->stringval); xmlXPathFreeObject(obj); @@ -182,7 +185,8 @@ } cleanup: zend_string_release_ex(callable, 0); - zval_ptr_dtor_str(&fci.function_name); + zval_ptr_dtor_nogc(&fci.function_name); +cleanup_no_callable: if (fci.param_count > 0) { for (i = 0; i < nargs - 1; i++) { zval_ptr_dtor(&fci.params[i]); @@ -421,24 +425,18 @@ zval child; if (node->type == XML_NAMESPACE_DECL) { - xmlNsPtr curns; - xmlNodePtr nsparent; + xmlNodePtr nsparent = node->_private; + xmlNsPtr original = (xmlNsPtr) node; - nsparent = node->_private; - curns = xmlNewNs(NULL, node->name, NULL); - if (node->children) { - curns->prefix = xmlStrdup((xmlChar *) node->children); - } - if (node->children) { - node = xmlNewDocNode(docp, NULL, (xmlChar *) node->children, node->name); - } else { - node = xmlNewDocNode(docp, NULL, (xmlChar *) "xmlns", node->name); - } - node->type = XML_NAMESPACE_DECL; - node->parent = nsparent; - node->ns = curns; + /* Make sure parent dom object exists, so we can take an extra reference. */ + zval parent_zval; /* don't destroy me, my lifetime is transfered to the fake namespace decl */ + php_dom_create_object(nsparent, &parent_zval, &intern->dom); + dom_object *parent_intern = Z_DOMOBJ_P(&parent_zval); + + node = php_dom_create_fake_namespace_decl(nsparent, original, &child, parent_intern); + } else { + php_dom_create_object(node, &child, &intern->dom); } - php_dom_create_object(node, &child, &intern->dom); add_next_index_zval(&retval, &child); } } else { diff -Nru php8.2-8.2.7/ext/exif/tests/bug78793.phpt php8.2-8.2.18/ext/exif/tests/bug78793.phpt --- php8.2-8.2.7/ext/exif/tests/bug78793.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/exif/tests/bug78793.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -4,7 +4,7 @@ exif --FILE-- @@ -1288,6 +1290,10 @@ 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); } @@ -2189,6 +2195,10 @@ zend_ffi_ctype *ctype = (zend_ffi_ctype*)object; zend_ffi_type_dtor(ctype->type); + + if (UNEXPECTED(GC_FLAGS(object) & IS_OBJ_WEAKLY_REFERENCED)) { + zend_weakrefs_notify(object); + } } /* }}} */ @@ -2415,6 +2425,10 @@ zend_hash_destroy(ffi->tags); efree(ffi->tags); } + + if (UNEXPECTED(GC_FLAGS(object) & IS_OBJ_WEAKLY_REFERENCED)) { + zend_weakrefs_notify(object); + } } /* }}} */ @@ -2423,6 +2437,10 @@ zend_ffi_cdata *cdata = (zend_ffi_cdata*)object; zend_ffi_cdata_dtor(cdata); + + if (UNEXPECTED(GC_FLAGS(object) & IS_OBJ_WEAKLY_REFERENCED)) { + zend_weakrefs_notify(object); + } } /* }}} */ @@ -3730,22 +3748,22 @@ FFI_G(symbols) = NULL; FFI_G(tags) = NULL; } + bool clean_symbols = FFI_G(symbols) == NULL; + bool clean_tags = FFI_G(tags) == NULL; FFI_G(default_type_attr) = 0; if (zend_ffi_parse_type(ZSTR_VAL(type_def), ZSTR_LEN(type_def), &dcl) == FAILURE) { zend_ffi_type_dtor(dcl.type); - if (Z_TYPE(EX(This)) != IS_OBJECT) { - if (FFI_G(tags)) { - zend_hash_destroy(FFI_G(tags)); - efree(FFI_G(tags)); - FFI_G(tags) = NULL; - } - if (FFI_G(symbols)) { - zend_hash_destroy(FFI_G(symbols)); - efree(FFI_G(symbols)); - FFI_G(symbols) = NULL; - } + if (clean_tags && FFI_G(tags)) { + zend_hash_destroy(FFI_G(tags)); + efree(FFI_G(tags)); + FFI_G(tags) = NULL; + } + if (clean_symbols && FFI_G(symbols)) { + zend_hash_destroy(FFI_G(symbols)); + efree(FFI_G(symbols)); + FFI_G(symbols) = NULL; } return; } @@ -3755,15 +3773,13 @@ is_const = 1; } - if (Z_TYPE(EX(This)) != IS_OBJECT) { - if (FFI_G(tags)) { - zend_ffi_tags_cleanup(&dcl); - } - if (FFI_G(symbols)) { - zend_hash_destroy(FFI_G(symbols)); - efree(FFI_G(symbols)); - FFI_G(symbols) = NULL; - } + if (clean_tags && FFI_G(tags)) { + zend_ffi_tags_cleanup(&dcl); + } + if (clean_symbols && FFI_G(symbols)) { + zend_hash_destroy(FFI_G(symbols)); + efree(FFI_G(symbols)); + FFI_G(symbols) = NULL; } FFI_G(symbols) = NULL; FFI_G(tags) = NULL; @@ -3874,22 +3890,22 @@ FFI_G(symbols) = NULL; FFI_G(tags) = NULL; } + bool clean_symbols = FFI_G(symbols) == NULL; + bool clean_tags = FFI_G(tags) == NULL; FFI_G(default_type_attr) = 0; if (zend_ffi_parse_type(ZSTR_VAL(type_def), ZSTR_LEN(type_def), &dcl) == FAILURE) { zend_ffi_type_dtor(dcl.type); - if (Z_TYPE(EX(This)) != IS_OBJECT) { - if (FFI_G(tags)) { - zend_hash_destroy(FFI_G(tags)); - efree(FFI_G(tags)); - FFI_G(tags) = NULL; - } - if (FFI_G(symbols)) { - zend_hash_destroy(FFI_G(symbols)); - efree(FFI_G(symbols)); - FFI_G(symbols) = NULL; - } + if (clean_tags && FFI_G(tags)) { + zend_hash_destroy(FFI_G(tags)); + efree(FFI_G(tags)); + FFI_G(tags) = NULL; + } + if (clean_symbols && FFI_G(symbols)) { + zend_hash_destroy(FFI_G(symbols)); + efree(FFI_G(symbols)); + FFI_G(symbols) = NULL; } return; } @@ -3899,15 +3915,13 @@ is_const = 1; } - if (Z_TYPE(EX(This)) != IS_OBJECT) { - if (FFI_G(tags)) { - zend_ffi_tags_cleanup(&dcl); - } - if (FFI_G(symbols)) { - zend_hash_destroy(FFI_G(symbols)); - efree(FFI_G(symbols)); - FFI_G(symbols) = NULL; - } + if (clean_tags && FFI_G(tags)) { + zend_ffi_tags_cleanup(&dcl); + } + if (clean_symbols && FFI_G(symbols)) { + zend_hash_destroy(FFI_G(symbols)); + efree(FFI_G(symbols)); + FFI_G(symbols) = NULL; } FFI_G(symbols) = NULL; FFI_G(tags) = NULL; @@ -4040,35 +4054,33 @@ FFI_G(symbols) = NULL; FFI_G(tags) = NULL; } + bool clean_symbols = FFI_G(symbols) == NULL; + bool clean_tags = FFI_G(tags) == NULL; FFI_G(default_type_attr) = 0; if (zend_ffi_parse_type(ZSTR_VAL(type_def), ZSTR_LEN(type_def), &dcl) == FAILURE) { zend_ffi_type_dtor(dcl.type); - if (Z_TYPE(EX(This)) != IS_OBJECT) { - if (FFI_G(tags)) { - zend_hash_destroy(FFI_G(tags)); - efree(FFI_G(tags)); - FFI_G(tags) = NULL; - } - if (FFI_G(symbols)) { - zend_hash_destroy(FFI_G(symbols)); - efree(FFI_G(symbols)); - FFI_G(symbols) = NULL; - } - } - return; - } - - if (Z_TYPE(EX(This)) != IS_OBJECT) { - if (FFI_G(tags)) { - zend_ffi_tags_cleanup(&dcl); + if (clean_tags && FFI_G(tags)) { + zend_hash_destroy(FFI_G(tags)); + efree(FFI_G(tags)); + FFI_G(tags) = NULL; } - if (FFI_G(symbols)) { + if (clean_symbols && FFI_G(symbols)) { zend_hash_destroy(FFI_G(symbols)); efree(FFI_G(symbols)); FFI_G(symbols) = NULL; } + return; + } + + if (clean_tags && FFI_G(tags)) { + zend_ffi_tags_cleanup(&dcl); + } + if (clean_symbols && FFI_G(symbols)) { + zend_hash_destroy(FFI_G(symbols)); + efree(FFI_G(symbols)); + FFI_G(symbols) = NULL; } FFI_G(symbols) = NULL; FFI_G(tags) = NULL; @@ -5294,6 +5306,25 @@ } /* }}} */ +/* 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) { @@ -5315,6 +5346,9 @@ 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 -Nru php8.2-8.2.7/ext/ffi/tests/cdef_new.phpt php8.2-8.2.18/ext/ffi/tests/cdef_new.phpt --- php8.2-8.2.7/ext/ffi/tests/cdef_new.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/ffi/tests/cdef_new.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,14 @@ +--TEST-- +Definitions should not leak when using FFI::cdef()->new(...) +--EXTENSIONS-- +ffi +--FILE-- +new('struct Example { uint32_t x; }'); +var_dump($struct); +?> +--EXPECT-- +object(FFI\CData:struct Example)#2 (1) { + ["x"]=> + int(0) +} diff -Nru php8.2-8.2.7/ext/ffi/tests/gh12905.phpt php8.2-8.2.18/ext/ffi/tests/gh12905.phpt --- php8.2-8.2.7/ext/ffi/tests/gh12905.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/ffi/tests/gh12905.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -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-- + + + + + + + + + diff -Nru php8.2-8.2.7/ext/ffi/tests/gh9698.phpt php8.2-8.2.18/ext/ffi/tests/gh9698.phpt --- php8.2-8.2.7/ext/ffi/tests/gh9698.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/ffi/tests/gh9698.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -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 -Nru php8.2-8.2.7/ext/ffi/tests/weak_reference_001.phpt php8.2-8.2.18/ext/ffi/tests/weak_reference_001.phpt --- php8.2-8.2.7/ext/ffi/tests/weak_reference_001.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/ffi/tests/weak_reference_001.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,17 @@ +--TEST-- +Weak reference to \FFI +--EXTENSIONS-- +ffi +--INI-- +ffi.enable=1 +--FILE-- +get() === $ffi); +unset($ffi); +var_dump($ref->get() === null); +?> +--EXPECTF-- +bool(true) +bool(true) diff -Nru php8.2-8.2.7/ext/ffi/tests/weak_reference_002.phpt php8.2-8.2.18/ext/ffi/tests/weak_reference_002.phpt --- php8.2-8.2.7/ext/ffi/tests/weak_reference_002.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/ffi/tests/weak_reference_002.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,36 @@ +--TEST-- +Weak reference to \FFI\CData +--EXTENSIONS-- +ffi +--INI-- +ffi.enable=1 +--FILE-- +get() === $cdata_value); +var_dump($ref_array->get() === $cdata_array); +var_dump($ref_free->get() === $cdata_free); + +unset($cdata_value); +unset($cdata_array); +unset($cdata_free); + +var_dump($ref_value->get() === null); +var_dump($ref_array->get() === null); +var_dump($ref_free->get() === null); +?> +--EXPECTF-- +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) diff -Nru php8.2-8.2.7/ext/ffi/tests/weak_reference_003.phpt php8.2-8.2.18/ext/ffi/tests/weak_reference_003.phpt --- php8.2-8.2.7/ext/ffi/tests/weak_reference_003.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/ffi/tests/weak_reference_003.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,17 @@ +--TEST-- +Weak reference to \FFI\CType +--EXTENSIONS-- +ffi +--INI-- +ffi.enable=1 +--FILE-- +get() === $ctype); +unset($ctype); +var_dump($ref->get() === null); +?> +--EXPECTF-- +bool(true) +bool(true) diff -Nru php8.2-8.2.7/ext/ffi/tests/weak_reference_004.phpt php8.2-8.2.18/ext/ffi/tests/weak_reference_004.phpt --- php8.2-8.2.7/ext/ffi/tests/weak_reference_004.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/ffi/tests/weak_reference_004.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,36 @@ +--TEST-- +Using FFI Types for keys of a WeakMap +--EXTENSIONS-- +ffi +--INI-- +ffi.enable=1 +--FILE-- + +--EXPECTF-- +bool(true) +bool(true) diff -Nru php8.2-8.2.7/ext/fileinfo/data_file.c php8.2-8.2.18/ext/fileinfo/data_file.c --- php8.2-8.2.7/ext/fileinfo/data_file.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/fileinfo/data_file.c 2024-04-09 18:46:23.000000000 +0000 @@ -7239,6 +7239,100 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x40, 0x32, 0x3D, 0x0E, 0x05, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, +0x3C, 0x3F, 0x78, 0x6D, 0x6C, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x3D, 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, 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, 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, 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, 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, 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, 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, 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, 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, 0x3D, 0x15, 0x11, 0x00, +0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x27, 0x22, 0x20, 0x09, 0x5D, 0x2A, 0x5B, +0x30, 0x2D, 0x39, 0x2E, 0x5D, 0x2B, 0x5B, 0x27, 0x22, 0x20, 0x09, 0x5D, 0x2A, 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, 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, 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, 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, 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, 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, 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, +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, 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, 0x3D, 0x04, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x3C, 0x73, 0x76, 0x67, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x53, 0x56, 0x47, 0x20, 0x53, 0x63, 0x61, 0x6C, 0x61, 0x62, 0x6C, 0x65, 0x20, 0x56, 0x65, 0x63, +0x74, 0x6F, 0x72, 0x20, 0x47, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x73, 0x20, 0x69, 0x6D, 0x61, +0x67, 0x65, 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, +0x69, 0x6D, 0x61, 0x67, 0x65, 0x2F, 0x73, 0x76, 0x67, 0x2B, 0x78, 0x6D, 0x6C, 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, 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, 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, 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, 0x3D, 0x07, 0x14, 0x00, +0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, +0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x67, 0x6E, 0x63, 0x2D, 0x76, 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, 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, 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, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x6E, 0x75, 0x43, 0x61, 0x73, 0x68, 0x20, +0x66, 0x69, 0x6C, 0x65, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x70, 0x70, 0x6C, 0x69, 0x63, 0x61, 0x74, +0x69, 0x6F, 0x6E, 0x2F, 0x78, 0x2D, 0x67, 0x6E, 0x75, 0x63, 0x61, 0x73, 0x68, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x3D, 0x13, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x6E, 0x74, 0x65, 0x72, 0x70, 0x6C, 0x61, 0x79, 0x20, 0x4D, 0x56, 0x45, 0x20, 0x46, 0x69, @@ -15441,7 +15535,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x3D, 0x0F, 0x05, 0x00, -0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3C, 0x3F, 0x78, 0x6D, 0x6C, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x20, 0x22, 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, @@ -15465,7 +15559,7 @@ 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, 0x40, 0x05, 0x3D, 0x0F, 0x05, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x6A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3C, 0x3F, 0x78, 0x6D, 0x6C, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x3D, 0x22, 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, @@ -15488,7 +15582,7 @@ 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, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3E, 0x01, 0x05, 0x00, -0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -15512,7 +15606,7 @@ 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, 0x02, 0x00, 0x00, 0x00, 0x3D, 0x0F, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x6E, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x6F, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x78, 0x73, 0x6C, 0x3A, 0x73, 0x74, 0x79, 0x6C, 0x65, 0x73, 0x68, 0x65, 0x65, 0x74, 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, @@ -15535,7 +15629,7 @@ 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, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3D, 0x0F, 0x14, 0x00, -0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x78, 0x73, 0x6C, 0x3A, 0x73, 0x74, 0x79, 0x6C, 0x65, 0x73, 0x68, 0x65, 0x65, 0x74, 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, @@ -15559,7 +15653,7 @@ 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, 0x40, 0x05, 0x3D, 0x0F, 0x05, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3C, 0x3F, 0x78, 0x6D, 0x6C, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x3D, 0x27, 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, @@ -15582,7 +15676,7 @@ 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, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3E, 0x01, 0x05, 0x00, -0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -15606,7 +15700,7 @@ 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, 0x02, 0x00, 0x00, 0x00, 0x3D, 0x0F, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x78, 0x73, 0x6C, 0x3A, 0x73, 0x74, 0x79, 0x6C, 0x65, 0x73, 0x68, 0x65, 0x65, 0x74, 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, @@ -15629,7 +15723,7 @@ 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, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3D, 0x0F, 0x14, 0x00, -0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x78, 0x73, 0x6C, 0x3A, 0x73, 0x74, 0x79, 0x6C, 0x65, 0x73, 0x68, 0x65, 0x65, 0x74, 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, @@ -15770,7 +15864,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x3D, 0x0F, 0x05, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3C, 0x3F, 0x78, 0x6D, 0x6C, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x3D, 0x22, 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, @@ -15794,7 +15888,7 @@ 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, 0x3D, 0x0E, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x3C, 0x21, 0x64, 0x6F, 0x63, 0x74, 0x79, 0x70, 0x65, 0x20, 0x68, 0x74, 0x6D, 0x6C, 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, @@ -15817,7 +15911,7 @@ 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, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3E, 0x01, 0x05, 0x00, -0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -15841,7 +15935,7 @@ 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, 0x40, 0x00, 0x3D, 0x0F, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3C, 0x3F, 0x78, 0x6D, 0x6C, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x3D, 0x27, 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, @@ -15864,7 +15958,7 @@ 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, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3D, 0x0E, 0x14, 0x00, -0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x3C, 0x21, 0x64, 0x6F, 0x63, 0x74, 0x79, 0x70, 0x65, 0x20, 0x68, 0x74, 0x6D, 0x6C, 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, @@ -15888,7 +15982,7 @@ 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, 0x02, 0x00, 0x00, 0x00, 0x3E, 0x01, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x24, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -15911,7 +16005,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x3D, 0x0F, 0x05, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3C, 0x3F, 0x78, 0x6D, 0x6C, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x3D, 0x22, 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, @@ -15935,7 +16029,7 @@ 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, 0x3D, 0x05, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x3C, 0x68, 0x74, 0x6D, 0x6C, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -15958,7 +16052,7 @@ 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, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3E, 0x01, 0x05, 0x00, -0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -16653,7 +16747,7 @@ 0x74, 0x61, 0x2C, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6B, 0x73, 0x75, 0x6D, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x61, 0x70, 0x70, 0x6C, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x2F, 0x78, 0x2D, 0x78, 0x7A, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -16663,7 +16757,7 @@ 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, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x01, 0x00, -0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x01, 0x00, 0x00, 0x0F, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -16687,7 +16781,7 @@ 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, 0x3D, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x0D, 0x01, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x0F, 0x01, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -16710,7 +16804,7 @@ 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, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x01, 0x00, -0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 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, 0x00, 0x00, @@ -16734,7 +16828,7 @@ 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, 0x3D, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x0F, 0x01, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -16747,7 +16841,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x61, 0x70, 0x70, 0x6C, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x2F, 0x78, 0x2D, 0x78, 0x7A, +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, 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, @@ -18965,102 +19059,8 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x3D, 0x0E, 0x05, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x3F, 0x78, 0x6D, 0x6C, 0x20, 0x76, 0x65, -0x72, 0x73, 0x69, 0x6F, 0x6E, 0x3D, 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, 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, -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, 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, 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, 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, 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, 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, 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, 0x3D, 0x15, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x5B, 0x27, 0x22, 0x20, 0x09, 0x5D, 0x2A, 0x5B, 0x30, 0x2D, 0x39, 0x2E, 0x5D, 0x2B, 0x5B, 0x27, -0x22, 0x20, 0x09, 0x5D, 0x2A, 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, 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, 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, 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, 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, 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, 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, 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, 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, 0x3D, 0x04, 0x14, 0x00, -0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, -0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x73, 0x76, 0x67, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x53, 0x56, 0x47, 0x20, 0x53, 0x63, 0x61, 0x6C, -0x61, 0x62, 0x6C, 0x65, 0x20, 0x56, 0x65, 0x63, 0x74, 0x6F, 0x72, 0x20, 0x47, 0x72, 0x61, 0x70, -0x68, 0x69, 0x63, 0x73, 0x20, 0x69, 0x6D, 0x61, 0x67, 0x65, 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, 0x69, 0x6D, 0x61, 0x67, 0x65, 0x2F, 0x73, 0x76, -0x67, 0x2B, 0x78, 0x6D, 0x6C, 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, 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, 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, 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, 0x3D, 0x07, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x3C, 0x67, 0x6E, 0x63, 0x2D, 0x76, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x47, 0x6E, 0x75, 0x43, 0x61, 0x73, 0x68, 0x20, 0x66, 0x69, 0x6C, 0x65, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x61, 0x70, 0x70, 0x6C, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x2F, 0x78, 0x2D, 0x67, 0x6E, -0x75, 0x63, 0x61, 0x73, 0x68, 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, 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, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x3D, 0x0E, 0x05, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x3C, 0x3F, 0x78, 0x6D, 0x6C, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x3D, 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, @@ -19084,7 +19084,7 @@ 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, 0x3D, 0x15, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x27, 0x22, 0x20, 0x09, 0x5D, 0x2A, 0x5B, 0x30, 0x2D, 0x39, 0x2E, 0x5D, 0x2B, 0x5B, 0x27, 0x22, 0x20, 0x09, 0x5D, 0x2A, 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, @@ -19107,7 +19107,7 @@ 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, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3D, 0x07, 0x14, 0x00, -0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x75, 0x72, 0x6C, 0x73, 0x65, 0x74, 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, @@ -19131,7 +19131,7 @@ 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, 0x20, 0x00, 0x3D, 0x0E, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x3F, 0x78, 0x6D, 0x6C, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x3D, 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, @@ -19154,7 +19154,7 @@ 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, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3D, 0x15, 0x11, 0x00, -0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x27, 0x22, 0x20, 0x09, 0x5D, 0x2A, 0x5B, 0x30, 0x2D, 0x39, 0x2E, 0x5D, 0x2B, 0x5B, 0x27, 0x22, 0x20, 0x09, 0x5D, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -19178,7 +19178,7 @@ 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, 0x02, 0x00, 0x00, 0x00, 0x3D, 0x04, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x6F, 0x73, 0x6D, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -19201,7 +19201,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x3D, 0x0E, 0x05, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8E, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x3F, 0x78, 0x6D, 0x6C, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x3D, 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, @@ -19225,7 +19225,7 @@ 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, 0x3D, 0x15, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x8F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5B, 0x27, 0x22, 0x20, 0x09, 0x5D, 0x2A, 0x5B, 0x30, 0x2D, 0x39, 0x2E, 0x5D, 0x2B, 0x5B, 0x27, 0x22, 0x20, 0x09, 0x5D, 0x2A, 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, @@ -19248,7 +19248,7 @@ 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, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3D, 0x04, 0x14, 0x00, -0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x70, 0x65, 0x66, 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, @@ -31562,7 +31562,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x3D, 0x0A, 0x05, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x06, 0x00, 0x00, 0x73, 0x4E, 0x61, 0x50, 0x70, 0x59, 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, @@ -61125,7 +61125,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x3D, 0x08, 0x05, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x70, 0x72, 0x65, 0x73, 0x73, 0x31, 0x30, 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, @@ -61149,7 +61149,7 @@ 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, 0x20, 0x00, 0x3D, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x87, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x86, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x01, 0xFF, 0x4C, 0x43, 0x55, 0xE9, 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, 0x00, 0x00, 0x00, 0x00, @@ -89161,7 +89161,7 @@ 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, 0x20, 0x00, 0x3D, 0x06, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x97, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x96, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, 0x63, 0x78, 0x4C, 0x69, 0x62, 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, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -89184,7 +89184,7 @@ 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, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3D, 0x2A, 0x05, 0x00, -0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x97, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x43, 0x6F, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x10, 0x28, 0x63, 0x29, 0x10, 0x47, 0x65, 0x6E, 0x75, 0x73, 0x10, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x70, 0x72, 0x6F, 0x67, 0x72, 0x61, 0x6D, 0x6D, 0x69, 0x6E, 0x67, 0x2C, 0x10, 0x49, 0x6E, @@ -103378,7 +103378,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x3D, 0x05, 0x05, 0x00, -0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x61, 0x66, 0x78, 0x2D, 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, @@ -122155,7 +122155,7 @@ 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, 0x20, 0x00, 0x3D, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x25, 0x01, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x50, 0x2A, 0x4D, 0x18, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -122178,7 +122178,7 @@ 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, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x78, 0x00, 0x29, 0x0B, -0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x26, 0x01, 0x00, 0x00, +0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x25, 0x01, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -166805,7 +166805,7 @@ 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, 0x20, 0x00, 0x3D, 0x04, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x15, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x14, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4C, 0x52, 0x5A, 0x49, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -166828,7 +166828,7 @@ 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, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x78, 0x00, 0x01, 0x00, -0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x01, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -166852,7 +166852,7 @@ 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, 0x10, 0x00, 0x78, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x17, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x16, 0x01, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -166875,7 +166875,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x3D, 0x00, 0x0B, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x22, 0x4D, 0x18, 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, @@ -166899,7 +166899,7 @@ 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, 0x20, 0x00, 0x3D, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x1E, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x1D, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x21, 0x4C, 0x18, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -166922,7 +166922,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x3D, 0x00, 0x0B, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x21, 0x4C, 0x18, 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, @@ -166946,7 +166946,7 @@ 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, 0x20, 0x00, 0x3D, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x3F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x3E, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0xB5, 0x2F, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 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, 0x00, 0x00, 0x00, @@ -166969,7 +166969,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x3D, 0x00, 0x0B, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0xB5, 0x2F, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 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, @@ -166993,7 +166993,7 @@ 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, 0x20, 0x00, 0x3D, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x43, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x42, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xB5, 0x2F, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 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, 0x00, 0x00, 0x00, @@ -167016,7 +167016,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x3D, 0x00, 0x0B, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0xB5, 0x2F, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 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, @@ -167040,7 +167040,7 @@ 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, 0x20, 0x00, 0x3D, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x47, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x46, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0xB5, 0x2F, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 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, 0x00, 0x00, 0x00, @@ -167063,7 +167063,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x3D, 0x00, 0x0B, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0xB5, 0x2F, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 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, @@ -167087,7 +167087,7 @@ 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, 0x3D, 0x12, 0x2E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x4B, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x4A, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x73, 0x74, 0x64, 0x2D, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x61, 0x72, 0x79, 0x2D, 0x69, 0x64, 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, @@ -167110,7 +167110,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x3D, 0x00, 0x0B, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4C, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0xB5, 0x2F, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 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, @@ -167134,7 +167134,7 @@ 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, 0x3D, 0x12, 0x2E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x4E, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x4D, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x73, 0x74, 0x64, 0x2D, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x61, 0x72, 0x79, 0x2D, 0x69, 0x64, 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, @@ -167157,7 +167157,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x3D, 0x00, 0x0B, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0xA4, 0x30, 0xEC, 0xFF, 0xFF, 0xFF, 0xFF, 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, @@ -167181,7 +167181,7 @@ 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, 0x78, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x53, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x52, 0x01, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -167204,7 +167204,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x3D, 0x04, 0x05, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5D, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x5A, 0x49, 0x50, 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, @@ -167228,7 +167228,7 @@ 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, 0x78, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x5F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x5E, 0x01, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -167251,7 +167251,7 @@ 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, 0x00, 0x00, 0x00, 0x01, 0x00, 0x10, 0x00, 0x78, 0x00, 0x01, 0x00, -0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x01, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -167275,7 +167275,7 @@ 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, 0x78, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x61, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x60, 0x01, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -167298,7 +167298,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x3D, 0x04, 0x05, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x72, 0x43, 0x01, 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, @@ -167322,7 +167322,7 @@ 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, 0x20, 0x00, 0x3D, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x66, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x65, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x54, 0x43, 0x44, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -167345,7 +167345,7 @@ 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, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x01, 0x00, -0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 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, @@ -167369,7 +167369,7 @@ 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, 0x3E, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x68, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x67, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 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, 0x00, 0x00, 0x00, @@ -167392,7 +167392,7 @@ 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, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x01, 0x00, -0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 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, @@ -167416,7 +167416,7 @@ 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, 0x3E, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x6A, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x69, 0x01, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -167439,7 +167439,7 @@ 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, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x04, 0x00, -0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6B, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6A, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 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, 0x00, 0x00, @@ -167463,7 +167463,7 @@ 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, 0x20, 0x00, 0x3D, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x6E, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x6D, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x12, 0xAA, 0x55, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -167486,7 +167486,7 @@ 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, 0x00, 0x00, 0x00, 0x01, 0x00, 0x10, 0x00, 0x78, 0x00, 0x0B, 0x00, -0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6E, 0x01, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -167510,7 +167510,7 @@ 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, 0x10, 0x00, 0x78, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x70, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x6F, 0x01, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -167533,7 +167533,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x3D, 0x04, 0x05, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8A, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x53, 0x4C, 0x49, 0x42, 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, @@ -167557,7 +167557,7 @@ 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, 0x10, 0x00, 0x78, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x8B, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x8A, 0x01, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -167580,7 +167580,7 @@ 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, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x78, 0x00, 0x0A, 0x00, -0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8B, 0x01, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -167604,7 +167604,7 @@ 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, 0x20, 0x00, 0x3D, 0x04, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x90, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x8F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x76, 0x78, 0x2D, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -167627,7 +167627,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x3D, 0x04, 0x05, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x76, 0x78, 0x31, 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, @@ -167651,7 +167651,7 @@ 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, 0x20, 0x00, 0x3D, 0x04, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x92, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x91, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x76, 0x78, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -167674,7 +167674,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x3D, 0x04, 0x05, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x93, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x76, 0x78, 0x6E, 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, @@ -229314,8 +229314,8 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x20, 0x00, 0x3D, 0x04, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x40, 0x00, 0x3D, 0x04, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x3C, 0x73, 0x76, 0x67, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -245224,7 +245224,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x3D, 0x03, 0x05, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x57, 0x43, 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, @@ -245248,7 +245248,7 @@ 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, 0x3D, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x84, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x83, 0x01, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -258384,7 +258384,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x3D, 0x1B, 0x14, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x20, 0x4E, 0x65, 0x74, 0x73, 0x63, 0x61, 0x70, 0x65, 0x20, 0x48, 0x54, 0x54, 0x50, 0x20, 0x43, 0x6F, 0x6F, 0x6B, 0x69, 0x65, 0x20, 0x46, 0x69, 0x6C, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -316288,7 +316288,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x3D, 0x0E, 0x14, 0x00, -0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x3C, 0x21, 0x64, 0x6F, 0x63, 0x74, 0x79, 0x70, 0x65, 0x20, 0x68, 0x74, 0x6D, 0x6C, 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, @@ -316523,7 +316523,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x05, 0x3D, 0x0D, 0x14, 0x00, -0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x3C, 0x21, 0x64, 0x6F, 0x63, 0x74, 0x79, 0x70, 0x65, 0x20, 0x73, 0x76, 0x67, 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, @@ -316547,7 +316547,7 @@ 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, 0x40, 0x00, 0x3D, 0x12, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x20, 0x48, 0x54, 0x54, 0x50, 0x20, 0x43, 0x6F, 0x6F, 0x6B, 0x69, 0x65, 0x20, 0x46, 0x69, 0x6C, 0x65, 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, @@ -316805,7 +316805,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x3D, 0x11, 0x14, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x20, 0x4B, 0x44, 0x45, 0x20, 0x43, 0x6F, 0x6F, 0x6B, 0x69, 0x65, 0x20, 0x46, 0x69, 0x6C, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -317463,7 +317463,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x3D, 0x05, 0x14, 0x00, -0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3C, 0x3F, 0x78, 0x6D, 0x6C, 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, @@ -317651,7 +317651,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x3D, 0x08, 0x14, 0x00, -0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3C, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3E, 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, @@ -317675,7 +317675,7 @@ 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, 0x40, 0x05, 0x3D, 0x08, 0x14, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x3C, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 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, 0x00, 0x00, 0x00, @@ -317698,7 +317698,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x3D, 0x08, 0x14, 0x00, -0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3C, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3D, 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, @@ -317980,7 +317980,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x3D, 0x07, 0x14, 0x00, -0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3C, 0x74, 0x69, 0x74, 0x6C, 0x65, 0x3E, 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, @@ -318004,7 +318004,7 @@ 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, 0x40, 0x05, 0x3D, 0x07, 0x14, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x3C, 0x74, 0x69, 0x74, 0x6C, 0x65, 0x20, 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, 0x00, 0x00, 0x00, 0x00, @@ -318027,7 +318027,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x3D, 0x07, 0x14, 0x00, -0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3C, 0x73, 0x74, 0x79, 0x6C, 0x65, 0x3E, 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, @@ -318051,7 +318051,7 @@ 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, 0x40, 0x05, 0x3D, 0x07, 0x14, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x3C, 0x73, 0x74, 0x79, 0x6C, 0x65, 0x20, 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, 0x00, 0x00, 0x00, 0x00, @@ -318074,7 +318074,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x3D, 0x07, 0x14, 0x00, -0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3C, 0x74, 0x61, 0x62, 0x6C, 0x65, 0x3E, 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, @@ -318098,7 +318098,7 @@ 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, 0x40, 0x05, 0x3D, 0x07, 0x14, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x5B, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x3C, 0x74, 0x61, 0x62, 0x6C, 0x65, 0x20, 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, 0x00, 0x00, 0x00, 0x00, @@ -326417,7 +326417,7 @@ 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, 0x40, 0x05, 0x3D, 0x06, 0x14, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3C, 0x68, 0x65, 0x61, 0x64, 0x3E, 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, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -326440,7 +326440,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x3D, 0x06, 0x14, 0x00, -0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x3C, 0x68, 0x65, 0x61, 0x64, 0x20, 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, @@ -326464,7 +326464,7 @@ 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, 0x40, 0x05, 0x3D, 0x06, 0x14, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3C, 0x68, 0x74, 0x6D, 0x6C, 0x3E, 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, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -326487,7 +326487,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x3D, 0x06, 0x14, 0x00, -0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x3C, 0x68, 0x74, 0x6D, 0x6C, 0x20, 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, @@ -329942,7 +329942,7 @@ 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, 0x40, 0x00, 0x3D, 0x09, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3C, 0x21, 0x64, 0x6F, 0x63, 0x74, 0x79, 0x70, 0x65, 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, 0x00, 0x00, @@ -330882,7 +330882,7 @@ 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, 0x40, 0x00, 0x3D, 0x08, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3C, 0x21, 0x73, 0x75, 0x62, 0x64, 0x6F, 0x63, 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, 0x00, 0x00, 0x00, @@ -334101,7 +334101,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x0A, 0x3D, 0x05, 0x14, 0x00, -0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x3C, 0x3F, 0x58, 0x4D, 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, 0x00, 0x00, 0x00, @@ -334313,7 +334313,7 @@ 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, 0x40, 0x0A, 0x3D, 0x04, 0x14, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x3C, 0x21, 0x2D, 0x2D, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -336310,7 +336310,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x78, 0x00, 0x05, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7B, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -336334,7 +336334,7 @@ 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, 0x3D, 0x00, 0x07, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x7D, 0x01, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x00, 0x00, 0x1F, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -336357,7 +336357,7 @@ 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, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x01, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7D, 0x01, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 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, 0x00, 0x00, @@ -336381,7 +336381,7 @@ 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, 0x03, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x7F, 0x01, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0x00, 0x00, 0x00, 0x00, 0x7E, 0x01, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -345851,7 +345851,7 @@ 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3D, 0x12, 0x2D, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x73, 0x74, 0x64, 0x2D, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x61, 0x72, 0x79, 0x2D, 0x69, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -345875,7 +345875,7 @@ 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, 0x10, 0x00, 0x26, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x2B, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x2A, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -345898,7 +345898,7 @@ 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, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x01, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2C, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x01, 0x00, 0x00, 0x03, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -345922,7 +345922,7 @@ 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, 0x02, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x2D, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x2C, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -345945,7 +345945,7 @@ 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, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x78, 0x00, 0x01, 0x00, -0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x01, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -345969,7 +345969,7 @@ 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, 0x02, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x2F, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x2E, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -345992,7 +345992,7 @@ 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, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x78, 0x00, 0x0A, 0x00, -0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x01, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -346016,7 +346016,7 @@ 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, 0x02, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x31, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x30, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -346039,7 +346039,7 @@ 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, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x78, 0x00, 0x0B, 0x00, -0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x01, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -346063,7 +346063,7 @@ 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, 0x10, 0x00, 0x5E, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x34, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x33, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -346086,7 +346086,7 @@ 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, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x01, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x01, 0x00, 0x00, 0x03, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -346110,7 +346110,7 @@ 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, 0x02, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x36, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x35, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -346133,7 +346133,7 @@ 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, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x78, 0x00, 0x01, 0x00, -0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x01, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -346157,7 +346157,7 @@ 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, 0x02, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x38, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x37, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -346180,7 +346180,7 @@ 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, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x78, 0x00, 0x0A, 0x00, -0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x01, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -346204,7 +346204,7 @@ 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, 0x02, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x3A, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x39, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -346227,7 +346227,7 @@ 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, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x78, 0x00, 0x0B, 0x00, -0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3B, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0x01, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, diff -Nru php8.2-8.2.7/ext/fileinfo/libmagic/ascmagic.c php8.2-8.2.18/ext/fileinfo/libmagic/ascmagic.c --- php8.2-8.2.7/ext/fileinfo/libmagic/ascmagic.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/fileinfo/libmagic/ascmagic.c 2024-04-09 18:46:23.000000000 +0000 @@ -148,8 +148,10 @@ goto done; } if ((utf8_end = encode_utf8(utf8_buf, mlen, ubuf, ulen)) - == NULL) + == NULL) { + rv = 0; goto done; + } buffer_init(&bb, b->fd, &b->st, utf8_buf, CAST(size_t, utf8_end - utf8_buf)); diff -Nru php8.2-8.2.7/ext/fileinfo/libmagic.patch php8.2-8.2.18/ext/fileinfo/libmagic.patch --- php8.2-8.2.7/ext/fileinfo/libmagic.patch 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/fileinfo/libmagic.patch 2024-04-09 18:46:23.000000000 +0000 @@ -1,6 +1,6 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c ---- libmagic.orig/apprentice.c 2021-02-22 17:51:11.000000000 -0700 -+++ libmagic/apprentice.c 2022-06-06 00:36:46.758464267 -0600 +--- libmagic.orig/apprentice.c 2021-02-23 01:51:11.000000000 +0100 ++++ libmagic/apprentice.c 2023-12-09 11:51:31.700896278 +0100 @@ -29,6 +29,8 @@ * apprentice - make one pass through /etc/magic, learning its secrets. */ @@ -944,8 +944,8 @@ m->str_flags = swap4(m->str_flags); } diff -u libmagic.orig/ascmagic.c libmagic/ascmagic.c ---- libmagic.orig/ascmagic.c 2021-02-22 17:49:06.000000000 -0700 -+++ libmagic/ascmagic.c 2021-10-24 17:03:48.529884451 -0600 +--- libmagic.orig/ascmagic.c 2021-02-23 01:49:06.000000000 +0100 ++++ libmagic/ascmagic.c 2024-02-11 00:59:23.954358532 +0100 @@ -96,7 +96,7 @@ rv = file_ascmagic_with_encoding(ms, &bb, ubuf, ulen, code, type, text); @@ -955,7 +955,7 @@ return rv; } -@@ -143,7 +143,7 @@ +@@ -143,13 +143,15 @@ /* malloc size is a conservative overestimate; could be improved, or at least realloced after conversion. */ mlen = ulen * 6; @@ -964,7 +964,16 @@ file_oomem(ms, mlen); goto done; } -@@ -330,7 +330,8 @@ + if ((utf8_end = encode_utf8(utf8_buf, mlen, ubuf, ulen)) +- == NULL) ++ == NULL) { ++ rv = 0; + goto done; ++ } + buffer_init(&bb, b->fd, &b->st, utf8_buf, + CAST(size_t, utf8_end - utf8_buf)); + +@@ -330,7 +332,8 @@ } rv = 1; done: @@ -975,8 +984,8 @@ return rv; } diff -u libmagic.orig/buffer.c libmagic/buffer.c ---- libmagic.orig/buffer.c 2021-02-22 17:49:26.000000000 -0700 -+++ libmagic/buffer.c 2021-10-24 17:03:45.681791493 -0600 +--- libmagic.orig/buffer.c 2021-02-23 01:49:26.000000000 +0100 ++++ libmagic/buffer.c 2023-12-09 11:51:31.700896278 +0100 @@ -31,19 +31,23 @@ #endif /* lint */ @@ -1031,8 +1040,8 @@ goto out; } diff -u libmagic.orig/cdf.c libmagic/cdf.c ---- libmagic.orig/cdf.c 2021-02-22 17:49:06.000000000 -0700 -+++ libmagic/cdf.c 2021-10-24 17:03:45.681791493 -0600 +--- libmagic.orig/cdf.c 2021-02-23 01:49:06.000000000 +0100 ++++ libmagic/cdf.c 2023-12-09 11:51:31.704229532 +0100 @@ -43,7 +43,17 @@ #include #endif @@ -1266,8 +1275,8 @@ #endif diff -u libmagic.orig/cdf.h libmagic/cdf.h ---- libmagic.orig/cdf.h 2021-02-22 17:49:06.000000000 -0700 -+++ libmagic/cdf.h 2021-10-24 17:03:40.741632734 -0600 +--- libmagic.orig/cdf.h 2021-02-23 01:49:06.000000000 +0100 ++++ libmagic/cdf.h 2023-12-09 11:51:31.704229532 +0100 @@ -35,10 +35,10 @@ #ifndef _H_CDF_ #define _H_CDF_ @@ -1283,8 +1292,8 @@ #ifdef __DJGPP__ #define timespec timeval diff -u libmagic.orig/cdf_time.c libmagic/cdf_time.c ---- libmagic.orig/cdf_time.c 2021-02-22 17:49:06.000000000 -0700 -+++ libmagic/cdf_time.c 2021-10-24 17:03:40.741632734 -0600 +--- libmagic.orig/cdf_time.c 2021-02-23 01:49:06.000000000 +0100 ++++ libmagic/cdf_time.c 2023-12-09 11:51:31.704229532 +0100 @@ -23,6 +23,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. @@ -1312,8 +1321,8 @@ return buf; (void)snprintf(buf, 26, "*Bad* %#16.16" INT64_T_FORMAT "x\n", diff -u libmagic.orig/compress.c libmagic/compress.c ---- libmagic.orig/compress.c 2021-02-22 17:49:07.000000000 -0700 -+++ libmagic/compress.c 2021-10-24 17:03:48.529884451 -0600 +--- libmagic.orig/compress.c 2021-02-23 01:49:07.000000000 +0100 ++++ libmagic/compress.c 2023-12-09 11:51:31.704229532 +0100 @@ -51,7 +51,7 @@ #ifndef HAVE_SIG_T typedef void (*sig_t)(int); @@ -1449,8 +1458,8 @@ #endif +#endif diff -u libmagic.orig/der.c libmagic/der.c ---- libmagic.orig/der.c 2021-02-22 17:49:06.000000000 -0700 -+++ libmagic/der.c 2021-10-24 17:03:48.529884451 -0600 +--- libmagic.orig/der.c 2021-02-23 01:49:06.000000000 +0100 ++++ libmagic/der.c 2023-12-09 11:51:31.704229532 +0100 @@ -54,7 +54,9 @@ #include "magic.h" #include "der.h" @@ -1462,8 +1471,8 @@ #include #endif diff -u libmagic.orig/elfclass.h libmagic/elfclass.h ---- libmagic.orig/elfclass.h 2021-02-22 17:49:06.000000000 -0700 -+++ libmagic/elfclass.h 2021-10-24 17:03:40.741632734 -0600 +--- libmagic.orig/elfclass.h 2021-02-23 01:49:06.000000000 +0100 ++++ libmagic/elfclass.h 2023-12-09 11:51:31.704229532 +0100 @@ -41,7 +41,7 @@ return toomany(ms, "program headers", phnum); flags |= FLAGS_IS_CORE; @@ -1492,8 +1501,8 @@ fsize, elf_getu16(swap, elfhdr.e_machine), CAST(int, elf_getu16(swap, elfhdr.e_shstrndx)), diff -u libmagic.orig/encoding.c libmagic/encoding.c ---- libmagic.orig/encoding.c 2021-02-22 17:49:06.000000000 -0700 -+++ libmagic/encoding.c 2021-10-24 17:03:48.529884451 -0600 +--- libmagic.orig/encoding.c 2021-02-23 01:49:06.000000000 +0100 ++++ libmagic/encoding.c 2023-12-09 11:51:31.704229532 +0100 @@ -98,14 +98,14 @@ nbytes = ms->encoding_max; @@ -1533,8 +1542,8 @@ if (u < 3) \ return 0; \ diff -u libmagic.orig/file.h libmagic/file.h ---- libmagic.orig/file.h 2021-02-22 17:49:06.000000000 -0700 -+++ libmagic/file.h 2021-10-24 17:03:48.529884451 -0600 +--- libmagic.orig/file.h 2021-02-23 01:49:06.000000000 +0100 ++++ libmagic/file.h 2023-12-09 11:51:31.704229532 +0100 @@ -33,17 +33,14 @@ #ifndef __file_h__ #define __file_h__ @@ -1794,8 +1803,8 @@ + #endif /* __file_h__ */ diff -u libmagic.orig/fsmagic.c libmagic/fsmagic.c ---- libmagic.orig/fsmagic.c 2021-02-22 17:49:06.000000000 -0700 -+++ libmagic/fsmagic.c 2021-10-24 17:03:45.681791493 -0600 +--- libmagic.orig/fsmagic.c 2021-02-23 01:49:06.000000000 +0100 ++++ libmagic/fsmagic.c 2023-12-09 11:51:31.704229532 +0100 @@ -66,26 +66,10 @@ # define minor(dev) ((dev) & 0xff) #endif @@ -2087,8 +2096,8 @@ #ifndef __COHERENT__ case S_IFSOCK: diff -u libmagic.orig/funcs.c libmagic/funcs.c ---- libmagic.orig/funcs.c 2021-02-22 17:49:06.000000000 -0700 -+++ libmagic/funcs.c 2021-10-24 17:03:48.529884451 -0600 +--- libmagic.orig/funcs.c 2021-02-23 01:49:06.000000000 +0100 ++++ libmagic/funcs.c 2023-12-09 11:51:31.704229532 +0100 @@ -51,6 +51,13 @@ #define SIZE_MAX ((size_t)~0) #endif @@ -2407,8 +2416,8 @@ protected char * file_strtrim(char *str) diff -u libmagic.orig/magic.c libmagic/magic.c ---- libmagic.orig/magic.c 2021-02-22 17:49:06.000000000 -0700 -+++ libmagic/magic.c 2022-06-06 00:36:46.758464267 -0600 +--- libmagic.orig/magic.c 2021-02-23 01:49:06.000000000 +0100 ++++ libmagic/magic.c 2023-12-09 11:51:31.704229532 +0100 @@ -25,11 +25,6 @@ * SUCH DAMAGE. */ @@ -2886,8 +2895,8 @@ } return file_getbuffer(ms); diff -u libmagic.orig/magic.h libmagic/magic.h ---- libmagic.orig/magic.h 2022-07-05 00:56:31.213294537 -0600 -+++ libmagic/magic.h 2021-10-24 17:03:48.529884451 -0600 +--- libmagic.orig/magic.h 2024-02-11 01:00:54.982008274 +0100 ++++ libmagic/magic.h 2023-12-09 11:51:31.704229532 +0100 @@ -126,6 +126,7 @@ const char *magic_getpath(const char *, int); @@ -2897,8 +2906,8 @@ const char *magic_buffer(magic_t, const void *, size_t); diff -u libmagic.orig/print.c libmagic/print.c ---- libmagic.orig/print.c 2021-02-22 17:49:07.000000000 -0700 -+++ libmagic/print.c 2021-10-24 17:03:45.681791493 -0600 +--- libmagic.orig/print.c 2021-02-23 01:49:07.000000000 +0100 ++++ libmagic/print.c 2023-12-09 11:51:31.704229532 +0100 @@ -28,6 +28,7 @@ /* * print.c - debugging printout routines @@ -2962,8 +2971,8 @@ if (pp == NULL) goto out; diff -u libmagic.orig/readcdf.c libmagic/readcdf.c ---- libmagic.orig/readcdf.c 2021-02-22 17:49:08.000000000 -0700 -+++ libmagic/readcdf.c 2021-10-24 17:03:45.681791493 -0600 +--- libmagic.orig/readcdf.c 2021-02-23 01:49:08.000000000 +0100 ++++ libmagic/readcdf.c 2023-12-09 11:51:31.704229532 +0100 @@ -31,7 +31,11 @@ #include @@ -3086,8 +3095,8 @@ /* If we handled it already, return */ if (i != -1) diff -u libmagic.orig/softmagic.c libmagic/softmagic.c ---- libmagic.orig/softmagic.c 2021-02-22 17:49:06.000000000 -0700 -+++ libmagic/softmagic.c 2022-07-05 00:49:26.658974406 -0600 +--- libmagic.orig/softmagic.c 2021-02-23 01:49:06.000000000 +0100 ++++ libmagic/softmagic.c 2023-12-09 11:51:31.704229532 +0100 @@ -43,6 +43,10 @@ #include #include "der.h" @@ -3537,8 +3546,8 @@ } case FILE_USE: diff -u libmagic.orig/strcasestr.c libmagic/strcasestr.c ---- libmagic.orig/strcasestr.c 2021-02-22 17:49:12.000000000 -0700 -+++ libmagic/strcasestr.c 2022-06-06 00:36:46.758464267 -0600 +--- libmagic.orig/strcasestr.c 2021-02-23 01:49:12.000000000 +0100 ++++ libmagic/strcasestr.c 2023-12-09 11:51:31.704229532 +0100 @@ -39,6 +39,8 @@ #include "file.h" diff -Nru php8.2-8.2.7/ext/fileinfo/magicdata.patch php8.2-8.2.18/ext/fileinfo/magicdata.patch --- php8.2-8.2.7/ext/fileinfo/magicdata.patch 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/fileinfo/magicdata.patch 2024-04-09 18:46:23.000000000 +0000 @@ -1,27 +1,54 @@ -diff -ur Magdir.orig/fonts Magdir/fonts ---- Magdir.orig/fonts 2021-02-23 01:49:24.000000000 +0100 -+++ Magdir/fonts 2022-09-18 14:07:14.233023271 +0200 -@@ -384,11 +384,13 @@ +diff -ur Magdir/compress Magdir.orig/compress +--- Magdir/compress 2023-07-01 16:33:17.323889842 +0200 ++++ Magdir.orig/compress 2021-03-31 01:47:28.000000000 +0200 +@@ -1,5 +1,5 @@ + #------------------------------------------------------------------------------ +-# $File: compress,v 1.81 2021/04/19 17:01:45 christos Exp $ ++# $File: compress,v 1.80 2021/03/15 17:49:24 christos Exp $ + # compress: file(1) magic for pure-compression formats (no archives) + # + # compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, etc. +@@ -265,13 +265,14 @@ + + # http://tukaani.org/xz/xz-file-format.txt + 0 ustring \xFD7zXZ\x00 XZ compressed data, checksum +-!:strength * 2 +-!:mime application/x-xz + >7 byte&0xf 0x0 NONE + >7 byte&0xf 0x1 CRC32 + >7 byte&0xf 0x4 CRC64 + >7 byte&0xf 0xa SHA-256 + ++!:strength * 2 ++!:mime application/x-xz ++ + # https://github.com/ckolivas/lrzip/blob/master/doc/magic.header.txt + 0 string LRZI LRZIP compressed data + >4 byte x - version %d +diff -ur Magdir/fonts Magdir.orig/fonts +--- Magdir/fonts 2023-07-01 16:32:41.731654699 +0200 ++++ Magdir.orig/fonts 2021-02-23 01:49:24.000000000 +0100 +@@ -384,13 +384,11 @@ # https://www.w3.org/TR/WOFF/ 0 string wOFF Web Open Font Format -+!:mime font/woff +-!:mime font/woff >0 use woff >20 beshort x \b, version %d >22 beshort x \b.%d # https://www.w3.org/TR/WOFF2/ 0 string wOF2 Web Open Font Format (Version 2) -+!:mime font/woff2 +-!:mime font/woff2 >0 use woff #>20 belong x \b, totalCompressedSize %d >24 beshort x \b, version %d -diff -ur Magdir.orig/mail.news Magdir/mail.news ---- Magdir.orig/mail.news 2021-03-31 01:47:28.000000000 +0200 -+++ Magdir/mail.news 2021-04-05 19:41:55.168556972 +0200 +diff -ur Magdir/mail.news Magdir.orig/mail.news +--- Magdir/mail.news 2023-07-01 16:32:41.731654699 +0200 ++++ Magdir.orig/mail.news 2021-03-31 01:47:28.000000000 +0200 @@ -1,5 +1,5 @@ #------------------------------------------------------------------------------ --# $File: mail.news,v 1.26 2021/03/21 14:37:03 christos Exp $ -+# $File: mail.news,v 1.27 2021/04/05 16:36:14 christos Exp $ +-# $File: mail.news,v 1.27 2021/04/05 16:36:14 christos Exp $ ++# $File: mail.news,v 1.26 2021/03/21 14:37:03 christos Exp $ # mail.news: file(1) magic for mail and news # # Unfortunately, saved netnews also has From line added in some news software. @@ -29,25 +56,45 @@ # File format spec: https://wiki.dovecot.org/Design/Dcrypt/#File_format # From: Stephen Gildea 0 string CRYPTED\003\007 Dovecot encrypted message -->9 byte xu \b, dcrypt version %d -+>9 byte x \b, dcrypt version %d -diff -ur Magdir.orig/rpm Magdir/rpm ---- Magdir.orig/rpm 2021-02-23 01:49:24.000000000 +0100 -+++ Magdir/rpm 2021-04-05 19:40:55.080911893 +0200 -@@ -29,6 +29,7 @@ +->9 byte x \b, dcrypt version %d ++>9 byte xu \b, dcrypt version %d +diff -ur Magdir/rpm Magdir.orig/rpm +--- Magdir/rpm 2023-07-01 16:32:41.731654699 +0200 ++++ Magdir.orig/rpm 2021-02-23 01:49:24.000000000 +0100 +@@ -29,7 +29,6 @@ >>8 beshort 17 SuperH >>8 beshort 18 Xtensa >>8 beshort 255 noarch -+>>10 string x %s +->>10 string x %s #delta RPM Daniel Novotny (dnovotny@redhat.com) 0 string drpm Delta RPM -diff -ur Magdir.orig/securitycerts Magdir/securitycerts ---- Magdir.orig/securitycerts 2021-02-23 01:49:24.000000000 +0100 -+++ Magdir/securitycerts 2021-04-05 19:40:55.080911893 +0200 -@@ -4,3 +4,5 @@ +diff -ur Magdir/securitycerts Magdir.orig/securitycerts +--- Magdir/securitycerts 2023-07-01 16:32:41.731654699 +0200 ++++ Magdir.orig/securitycerts 2021-02-23 01:49:24.000000000 +0100 +@@ -4,5 +4,3 @@ 0 search/1 -----BEGIN\ CERTIFICATE------ RFC1421 Security Certificate text 0 search/1 -----BEGIN\ NEW\ CERTIFICATE RFC1421 Security Certificate Signing Request text 0 belong 0xedfeedfe Sun 'jks' Java Keystore File data -+ -+0 string \0volume_key volume_key escrow packet +- +-0 string \0volume_key volume_key escrow packet +diff -ur Magdir/sgml Magdir.orig/sgml +--- Magdir/sgml 2023-08-09 16:00:55.807784619 +0000 ++++ Magdir.orig/sgml 2021-02-23 00:49:24.000000000 +0000 +@@ -3,14 +3,13 @@ + # $File: sgml,v 1.42 2020/12/12 20:01:47 christos Exp $ + # Type: SVG Vectorial Graphics + # From: Noel Torres +-0 string/bt \14 regex ['"\ \t]*[0-9.]+['"\ \t]* + >>19 search/4096 \>19 search/4096 \file( + __DIR__ . '/bug-gh11891.svg', + ), +); +?> +--EXPECT-- +string(13) "image/svg+xml" Binary files /srv/release.debian.org/tmp/PRctODJaru/php8.2-8.2.7/ext/fileinfo/tests/bug-gh11891.svg and /srv/release.debian.org/tmp/ZDJJBHbYgN/php8.2-8.2.18/ext/fileinfo/tests/bug-gh11891.svg differ diff -Nru php8.2-8.2.7/ext/fileinfo/tests/finfo_file_002.phpt php8.2-8.2.18/ext/fileinfo/tests/finfo_file_002.phpt --- php8.2-8.2.7/ext/fileinfo/tests/finfo_file_002.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/fileinfo/tests/finfo_file_002.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -45,4 +45,6 @@ string(10) "video/webm" ["%s/resources/test.woff"]=> string(9) "font/woff" + ["%s/resources/test.xz"]=> + string(16) "application/x-xz" } diff -Nru php8.2-8.2.7/ext/fileinfo/tests/gh13344.phpt php8.2-8.2.18/ext/fileinfo/tests/gh13344.phpt --- php8.2-8.2.7/ext/fileinfo/tests/gh13344.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/fileinfo/tests/gh13344.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,12 @@ +--TEST-- +GH-13344 (finfo::buffer(): Failed identify data 0:(null)) +--EXTENSIONS-- +fileinfo +--FILE-- +buffer($data); +echo $mime_type; +?> +--EXPECT-- +application/octet-stream; charset=utf-32le diff -Nru php8.2-8.2.7/ext/fileinfo/tests/magic php8.2-8.2.18/ext/fileinfo/tests/magic --- php8.2-8.2.7/ext/fileinfo/tests/magic 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/fileinfo/tests/magic 2024-04-09 18:46:23.000000000 +0000 @@ -7439,7 +7439,7 @@ 0 string msc Message Sequence Chart (chart) 0 string submsc Message Sequence Chart (subchart) #------------------------------------------------------------------------------ -# $File: compress,v 1.80 2021/03/15 17:49:24 christos Exp $ +# $File: compress,v 1.81 2021/04/19 17:01:45 christos Exp $ # compress: file(1) magic for pure-compression formats (no archives) # # compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, etc. @@ -7705,14 +7705,13 @@ # http://tukaani.org/xz/xz-file-format.txt 0 ustring \xFD7zXZ\x00 XZ compressed data, checksum +!:strength * 2 +!:mime application/x-xz >7 byte&0xf 0x0 NONE >7 byte&0xf 0x1 CRC32 >7 byte&0xf 0x4 CRC64 >7 byte&0xf 0xa SHA-256 -!:strength * 2 -!:mime application/x-xz - # https://github.com/ckolivas/lrzip/blob/master/doc/magic.header.txt 0 string LRZI LRZIP compressed data >4 byte x - version %d @@ -30299,13 +30298,14 @@ # $File: sgml,v 1.42 2020/12/12 20:01:47 christos Exp $ # Type: SVG Vectorial Graphics # From: Noel Torres -0 string \14 regex ['"\ \t]*[0-9.]+['"\ \t]* >>19 search/4096 \>19 search/4096 \7 byte&0xf 0x0 NONE >7 byte&0xf 0x1 CRC32 >7 byte&0xf 0x4 CRC64 >7 byte&0xf 0xa SHA-256 -!:strength * 2 -!:mime application/x-xz - # https://github.com/ckolivas/lrzip/blob/master/doc/magic.header.txt 0 string LRZI LRZIP compressed data >4 byte x - version %d @@ -30299,13 +30298,14 @@ # $File: sgml,v 1.42 2020/12/12 20:01:47 christos Exp $ # Type: SVG Vectorial Graphics # From: Noel Torres -0 string \14 regex ['"\ \t]*[0-9.]+['"\ \t]* >>19 search/4096 \>19 search/4096 \ +--EXTENSIONS-- +filter --FILE-- +--EXTENSIONS-- +filter --FILE-- $callback, 'flags' => FILTER_REQUIRE_SCALAR]); +} +var_dump(test('test')); +var_dump(test(['test'])); +?> +--EXPECT-- +string(4) "test" +bool(false) diff -Nru php8.2-8.2.7/ext/ftp/ftp.c php8.2-8.2.18/ext/ftp/ftp.c --- php8.2-8.2.7/ext/ftp/ftp.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/ftp/ftp.c 2024-04-09 18:46:23.000000000 +0000 @@ -167,6 +167,11 @@ if (ftp == NULL) { return NULL; } +#ifdef HAVE_FTP_SSL + if (ftp->last_ssl_session) { + SSL_SESSION_free(ftp->last_ssl_session); + } +#endif if (ftp->data) { data_close(ftp, ftp->data); } @@ -229,6 +234,22 @@ } /* }}} */ +#ifdef HAVE_FTP_SSL +static int ftp_ssl_new_session_cb(SSL *ssl, SSL_SESSION *sess) +{ + ftpbuf_t *ftp = SSL_get_app_data(ssl); + + /* Technically there can be multiple sessions per connection, but we only care about the most recent one. */ + if (ftp->last_ssl_session) { + SSL_SESSION_free(ftp->last_ssl_session); + } + ftp->last_ssl_session = SSL_get1_session(ssl); + + /* Return 0 as we are not using OpenSSL's session cache. */ + return 0; +} +#endif + /* {{{ ftp_login */ int ftp_login(ftpbuf_t *ftp, const char *user, const size_t user_len, const char *pass, const size_t pass_len) @@ -279,10 +300,13 @@ #endif SSL_CTX_set_options(ctx, ssl_ctx_options); - /* allow SSL to re-use sessions */ - SSL_CTX_set_session_cache_mode(ctx, SSL_SESS_CACHE_BOTH); + /* Allow SSL to re-use sessions. + * We're relying on our own session storage as only at most one session will ever be active per FTP connection. */ + SSL_CTX_set_session_cache_mode(ctx, SSL_SESS_CACHE_BOTH | SSL_SESS_CACHE_NO_INTERNAL); + SSL_CTX_sess_set_new_cb(ctx, ftp_ssl_new_session_cb); ftp->ssl_handle = SSL_new(ctx); + SSL_set_app_data(ftp->ssl_handle, ftp); /* Needed for ftp_ssl_new_session_cb */ SSL_CTX_free(ctx); if (ftp->ssl_handle == NULL) { @@ -1789,7 +1813,7 @@ } /* get the session from the control connection so we can re-use it */ - session = SSL_get_session(ftp->ssl_handle); + session = ftp->last_ssl_session; if (session == NULL) { php_error_docref(NULL, E_WARNING, "data_accept: failed to retrieve the existing SSL session"); SSL_free(data->ssl_handle); @@ -1797,6 +1821,7 @@ } /* and set it on the data connection */ + SSL_set_app_data(data->ssl_handle, ftp); /* Needed for ftp_ssl_new_session_cb */ res = SSL_set_session(data->ssl_handle, session); if (res == 0) { php_error_docref(NULL, E_WARNING, "data_accept: failed to set the existing SSL session"); @@ -2063,6 +2088,15 @@ return PHP_FTP_FAILED; } + if (ftp->data != NULL) { + /* If there is a transfer in action, abort it. + * If we don't, we get an invalid state and memory leaks when the new connection gets opened. */ + data_close(ftp, ftp->data); + if (!ftp_getresp(ftp) || (ftp->resp != 226 && ftp->resp != 250)) { + goto bail; + } + } + if (!ftp_type(ftp, type)) { goto bail; } diff -Nru php8.2-8.2.7/ext/ftp/ftp.h php8.2-8.2.18/ext/ftp/ftp.h --- php8.2-8.2.7/ext/ftp/ftp.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/ftp/ftp.h 2024-04-09 18:46:23.000000000 +0000 @@ -82,6 +82,7 @@ int old_ssl; /* old mode = forced data encryption */ SSL *ssl_handle; /* handle for control connection */ int ssl_active; /* ssl active on control conn */ + SSL_SESSION *last_ssl_session; /* last negotiated session */ #endif } ftpbuf_t; diff -Nru php8.2-8.2.7/ext/ftp/tests/gh10562.phpt php8.2-8.2.18/ext/ftp/tests/gh10562.phpt --- php8.2-8.2.7/ext/ftp/tests/gh10562.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/ftp/tests/gh10562.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,40 @@ +--TEST-- +GH-10562 (Memory leak with consecutive ftp_nb_fget) +--EXTENSIONS-- +ftp +pcntl +--FILE-- + +--CLEAN-- + +--EXPECT-- +bool(true) +bool(true) +BINARYFooBar +For sale: baby shoes, never worn. diff -Nru php8.2-8.2.7/ext/gd/config.m4 php8.2-8.2.18/ext/gd/config.m4 --- php8.2-8.2.7/ext/gd/config.m4 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/gd/config.m4 2024-04-09 18:46:23.000000000 +0000 @@ -138,15 +138,63 @@ fi ]) +dnl Build and run a program to determine if GD has support for the given +dnl format. The first argument is the proper-noun-capitalized name of the +dnl format -- basically the word Foo in gdImageCreateFromFoo -- such as +dnl Png. If support for format Foo exists, the second argument (the name +dnl of a constant) will be defined to 1. The reason for this charade is +dnl that gd defines "junk" versions of each gdImageCreateFromFoo function +dnl even when it does not support the Foo format. Those junk functions +dnl display a warning but eventually return normally, making a simple link +dnl or run test insufficient. +AC_DEFUN([PHP_GD_CHECK_FORMAT],[ + old_LIBS="${LIBS}" + LIBS="${LIBS} ${GD_SHARED_LIBADD}" + old_CFLAGS="${CFLAGS}" + CFLAGS="${CFLAGS} ${GDLIB_CFLAGS}" + AC_MSG_CHECKING([for working gdImageCreateFrom$1 in libgd]) + AC_LANG_PUSH([C]) + AC_RUN_IFELSE([AC_LANG_SOURCE([ +#include +#include +#include + +/* A custom gdErrorMethod */ +void exit1(int priority, const char *format, va_list args) { + _exit(1); +} + +/* Override the default gd_error_method with one that + actually causes the program to return an error. */ +int main(int argc, char** argv) { + m4_if([$1],[Xpm], + [char* f = "test.xpm"], + [FILE* f = NULL]); + gdSetErrorMethod(exit1); + gdImagePtr p = gdImageCreateFrom$1(f); + return 0; +}])],[ + AC_MSG_RESULT([yes]) + AC_DEFINE($2, 1, [Does gdImageCreateFrom$1 work?]) + ],[ + AC_MSG_RESULT([no]) + ],[ + AC_MSG_RESULT([no]) + ]) + AC_LANG_POP([C]) + CFLAGS="${old_CFLAGS}" + LIBS="${old_LIBS}" +]) + AC_DEFUN([PHP_GD_CHECK_VERSION],[ - PHP_CHECK_LIBRARY(gd, gdImageCreateFromPng, [AC_DEFINE(HAVE_GD_PNG, 1, [ ])], [], [ $GD_SHARED_LIBADD ]) - PHP_CHECK_LIBRARY(gd, gdImageCreateFromAvif, [AC_DEFINE(HAVE_GD_AVIF, 1, [ ])], [], [ $GD_SHARED_LIBADD ]) - PHP_CHECK_LIBRARY(gd, gdImageCreateFromWebp, [AC_DEFINE(HAVE_GD_WEBP, 1, [ ])], [], [ $GD_SHARED_LIBADD ]) - PHP_CHECK_LIBRARY(gd, gdImageCreateFromJpeg, [AC_DEFINE(HAVE_GD_JPG, 1, [ ])], [], [ $GD_SHARED_LIBADD ]) - PHP_CHECK_LIBRARY(gd, gdImageCreateFromXpm, [AC_DEFINE(HAVE_GD_XPM, 1, [ ])], [], [ $GD_SHARED_LIBADD ]) - PHP_CHECK_LIBRARY(gd, gdImageCreateFromBmp, [AC_DEFINE(HAVE_GD_BMP, 1, [ ])], [], [ $GD_SHARED_LIBADD ]) - PHP_CHECK_LIBRARY(gd, gdImageCreateFromTga, [AC_DEFINE(HAVE_GD_TGA, 1, [ ])], [], [ $GD_SHARED_LIBADD ]) - PHP_CHECK_LIBRARY(gd, gdImageStringFT, [AC_DEFINE(HAVE_GD_FREETYPE, 1, [ ])], [], [ $GD_SHARED_LIBADD ]) + PHP_GD_CHECK_FORMAT([Png], [HAVE_GD_PNG]) + PHP_GD_CHECK_FORMAT([Avif], [HAVE_GD_AVIF]) + PHP_GD_CHECK_FORMAT([Webp], [HAVE_GD_WEBP]) + PHP_GD_CHECK_FORMAT([Jpeg], [HAVE_GD_JPG]) + PHP_GD_CHECK_FORMAT([Xpm], [HAVE_GD_XPM]) + PHP_GD_CHECK_FORMAT([Bmp], [HAVE_GD_BMP]) + PHP_GD_CHECK_FORMAT([Tga], [HAVE_GD_TGA]) + PHP_CHECK_LIBRARY(gd, gdFontCacheShutdown, [AC_DEFINE(HAVE_GD_FREETYPE, 1, [ ])], [], [ $GD_SHARED_LIBADD ]) PHP_CHECK_LIBRARY(gd, gdVersionString, [AC_DEFINE(HAVE_GD_LIBVERSION, 1, [ ])], [], [ $GD_SHARED_LIBADD ]) PHP_CHECK_LIBRARY(gd, gdImageGetInterpolationMethod, [AC_DEFINE(HAVE_GD_GET_INTERPOLATION, 1, [ ])], [], [ $GD_SHARED_LIBADD ]) ]) @@ -194,7 +242,7 @@ PHP_TEST_BUILD(foobar, [], [ AC_MSG_ERROR([GD build test failed. Please check the config.log for details.]) - ], [ $GD_SHARED_LIBADD ], [char foobar () {}]) + ], [ $GD_SHARED_LIBADD ], [char foobar (void) {}]) else extra_sources="gd_compat.c" diff -Nru php8.2-8.2.7/ext/gd/gd.c php8.2-8.2.18/ext/gd/gd.c --- php8.2-8.2.7/ext/gd/gd.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/gd/gd.c 2024-04-09 18:46:23.000000000 +0000 @@ -2681,8 +2681,8 @@ */ static void php_imagefontsize(INTERNAL_FUNCTION_PARAMETERS, int arg) { - zend_object *font_obj; - zend_long font_int; + zend_object *font_obj = NULL; + zend_long font_int = 0; gdFontPtr font; ZEND_PARSE_PARAMETERS_START(1, 1) @@ -2749,9 +2749,8 @@ gdImagePtr im; int ch = 0, col, x, y, i, l = 0; unsigned char *str = NULL; - zend_object *font_obj; - zend_long font_int; - gdFontPtr font; + zend_object *font_obj = NULL; + zend_long font_int = 0; ZEND_PARSE_PARAMETERS_START(6, 6) Z_PARAM_OBJECT_OF_CLASS(IM, gd_image_ce) @@ -2776,7 +2775,7 @@ y = Y; x = X; - font = php_find_gd_font(font_obj, font_int); + gdFontPtr font = php_find_gd_font(font_obj, font_int); switch (mode) { case 0: diff -Nru php8.2-8.2.7/ext/gd/libgd/gd_rotate.c php8.2-8.2.18/ext/gd/libgd/gd_rotate.c --- php8.2-8.2.7/ext/gd/libgd/gd_rotate.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/gd/libgd/gd_rotate.c 2024-04-09 18:46:23.000000000 +0000 @@ -216,7 +216,7 @@ if (dst != NULL) { int old_blendmode = dst->alphaBlendingFlag; dst->alphaBlendingFlag = 0; - + dst->saveAlphaFlag = 1; dst->transparent = src->transparent; gdImagePaletteCopy (dst, src); @@ -263,7 +263,7 @@ if (dst != NULL) { int old_blendmode = dst->alphaBlendingFlag; dst->alphaBlendingFlag = 0; - + dst->saveAlphaFlag = 1; dst->transparent = src->transparent; gdImagePaletteCopy (dst, src); @@ -311,7 +311,7 @@ if (dst != NULL) { int old_blendmode = dst->alphaBlendingFlag; dst->alphaBlendingFlag = 0; - + dst->saveAlphaFlag = 1; dst->transparent = src->transparent; gdImagePaletteCopy (dst, src); diff -Nru php8.2-8.2.7/ext/gd/libgd/gdft.c php8.2-8.2.18/ext/gd/libgd/gdft.c --- php8.2-8.2.7/ext/gd/libgd/gdft.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/gd/libgd/gdft.c 2024-04-09 18:46:23.000000000 +0000 @@ -401,7 +401,17 @@ #ifdef NETWARE if (*name == '/' || (name[0] != 0 && strstr(name, ":/"))) { #else - if (*name == '/' || (name[0] != 0 && name[1] == ':' && (name[2] == '/' || name[2] == '\\'))) { + /* Actual length doesn't matter, just the minimum does up to length 2. */ + unsigned int min_length = 0; + if (name[0] != '\0') { + if (name[1] != '\0') { + min_length = 2; + } else { + min_length = 1; + } + } + ZEND_IGNORE_VALUE(min_length); /* On Posix systems this may be unused */ + if (IS_ABSOLUTE_PATH(name, min_length)) { #endif snprintf(fullname, sizeof(fullname) - 1, "%s", name); if (access(fullname, R_OK) == 0) { diff -Nru php8.2-8.2.7/ext/gd/tests/bug38212-mb.phpt php8.2-8.2.18/ext/gd/tests/bug38212-mb.phpt --- php8.2-8.2.7/ext/gd/tests/bug38212-mb.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/gd/tests/bug38212-mb.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -2,6 +2,12 @@ Bug #38212 (Seg Fault on invalid imagecreatefromgd2part() parameters) --EXTENSIONS-- gd +--SKIPIF-- +=')) { + die("skip test requires GD 2.3.2 or older"); + } +?> --FILE-- =')) { + die("skip test requires GD 2.3.2 or older"); + } +?> --FILE-- --EXPECTF-- -gd-png: fatal libpng error: Read Error: truncated data -gd-png error: setjmp returns error condition 2 -Warning: imagecreatefrompng(): v%sbug39780.png" is not a valid PNG file in /%s on line %d +Warning: imagecreatefrompng(): gd-png: fatal libpng error: Read Error: truncated data%win %s on line %d + +Warning: imagecreatefrompng(): gd-png error: setjmp returns error condition %d%win %s on line %d + +Warning: imagecreatefrompng(): "%sbug39780.png" is not a valid PNG file in %s on line %d bool(false) diff -Nru php8.2-8.2.7/ext/gd/tests/bug41442.phpt php8.2-8.2.18/ext/gd/tests/bug41442.phpt --- php8.2-8.2.7/ext/gd/tests/bug41442.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/gd/tests/bug41442.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -4,6 +4,10 @@ gd --SKIPIF-- =')) { + die("skip test requires GD 2.3.2 or older"); + } + if (!function_exists("imagegd2")) { die("skip GD2 support unavailable"); } diff -Nru php8.2-8.2.7/ext/gd/tests/bug45799.phpt php8.2-8.2.18/ext/gd/tests/bug45799.phpt --- php8.2-8.2.7/ext/gd/tests/bug45799.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/gd/tests/bug45799.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -9,4 +9,4 @@ imagedestroy($img); ?> --EXPECTF-- -Warning: imagepng(): gd-png error: no colors in palette in %s on line %d +Warning: imagepng(): gd-png error: no colors in palette%win %s on line %d diff -Nru php8.2-8.2.7/ext/gd/tests/bug66356.phpt php8.2-8.2.18/ext/gd/tests/bug66356.phpt --- php8.2-8.2.7/ext/gd/tests/bug66356.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/gd/tests/bug66356.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -38,7 +38,7 @@ [height] => 10 ) -Warning: imagecrop(): One parameter to a memory allocation multiplication is negative or zero, failing operation gracefully +Warning: imagecrop(): %cne parameter to a memory allocation multiplication is negative or zero, failing operation gracefully in %s on line %d bool(false) object(GdImage)#2 (0) { @@ -46,6 +46,6 @@ object(GdImage)#2 (0) { } -Warning: imagecrop(): Product of memory allocation multiplication would exceed INT_MAX, failing operation gracefully +Warning: imagecrop(): %croduct of memory allocation multiplication would exceed INT_MAX, failing operation gracefully in %s on line %d bool(false) diff -Nru php8.2-8.2.7/ext/gd/tests/bug71912-mb.phpt php8.2-8.2.18/ext/gd/tests/bug71912-mb.phpt --- php8.2-8.2.7/ext/gd/tests/bug71912-mb.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/gd/tests/bug71912-mb.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -4,6 +4,14 @@ gd --SKIPIF-- =')) { + die("skip test requires GD 2.3.2 or older"); + } + } if(!function_exists('imagecreatefromgd2')) die('skip imagecreatefromgd2() not available'); ?> --FILE-- diff -Nru php8.2-8.2.7/ext/gd/tests/bug71912.phpt php8.2-8.2.18/ext/gd/tests/bug71912.phpt --- php8.2-8.2.7/ext/gd/tests/bug71912.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/gd/tests/bug71912.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -4,8 +4,13 @@ gd --SKIPIF-- =')) { + die("skip test requires GD 2.3.2 or older"); + } } if(!function_exists('imagecreatefromgd2')) die('skip imagecreatefromgd2() not available'); ?> diff -Nru php8.2-8.2.7/ext/gd/tests/bug72339.phpt php8.2-8.2.18/ext/gd/tests/bug72339.phpt --- php8.2-8.2.7/ext/gd/tests/bug72339.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/gd/tests/bug72339.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -5,8 +5,14 @@ --SKIPIF-- =')) { + die("skip test requires GD 2.3.2 or older"); + } } ?> --FILE-- diff -Nru php8.2-8.2.7/ext/gd/tests/bug73155.phpt php8.2-8.2.18/ext/gd/tests/bug73155.phpt --- php8.2-8.2.7/ext/gd/tests/bug73155.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/gd/tests/bug73155.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -2,6 +2,12 @@ Bug #73155 (imagegd2() writes wrong chunk sizes on boundaries) --EXTENSIONS-- gd +--SKIPIF-- +=')) { + die("skip test requires GD 2.3.2 or older"); + } +?> --FILE-- =')) { + die("skip test requires GD 2.3.2 or older"); + } +?> --FILE-- =')) { + die("skip test requires GD 2.3.2 or older"); + } +?> --FILE-- =')) { + die("skip test requires GD 2.3.2 or older"); + } +?> --FILE-- =')) { + die("skip test requires GD 2.3.2 or older"); + } +?> --FILE-- =')) { + die("skip test requires GD 2.3.2 or older"); + } +?> --FILE-- --EXPECTF-- -Warning: imagescale():%S Product of memory allocation multiplication would exceed INT_MAX, failing operation gracefully +Warning: imagescale():%S %croduct of memory allocation multiplication would exceed INT_MAX, failing operation gracefully in %s on line %d bool(false) diff -Nru php8.2-8.2.7/ext/gd/tests/bug77479.phpt php8.2-8.2.18/ext/gd/tests/bug77479.phpt --- php8.2-8.2.7/ext/gd/tests/bug77479.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/gd/tests/bug77479.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -15,10 +15,10 @@ imagewbmp($im, __DIR__ . '/77479.wbmp'); ?> --EXPECTF-- -Warning: imagewbmp():%S Product of memory allocation multiplication would exceed INT_MAX, failing operation gracefully +Warning: imagewbmp():%S %croduct of memory allocation multiplication would exceed INT_MAX, failing operation gracefully in %s on line %d -Warning: imagewbmp(): Could not create WBMP in %s on line %d +Warning: imagewbmp(): Could not create WBMP%win %s on line %d --CLEAN-- --EXPECTF-- -Warning: imagecreatefromxbm(): Invalid XBM in %s on line %d +Warning: imagecreatefromxbm(): %cnvalid XBM in %s on line %d Warning: imagecreatefromxbm(): "%s" is not a valid XBM file in %s on line %d bool(false) diff -Nru php8.2-8.2.7/ext/gd/tests/bug79945.phpt php8.2-8.2.18/ext/gd/tests/bug79945.phpt --- php8.2-8.2.7/ext/gd/tests/bug79945.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/gd/tests/bug79945.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,22 @@ +--TEST-- +Bug #79945 (using php wrappers in imagecreatefrompng causes segmentation fault) +--EXTENSIONS-- +gd +--SKIPIF-- + +--FILE-- + +--CLEAN-- +--EXPECTF-- + +Warning: imagecreatefrompng(): "php://filter/read=convert.base64-encode/resource=%s" is not a valid PNG file in %s on line %d diff -Nru php8.2-8.2.7/ext/gd/tests/crafted_gd2.phpt php8.2-8.2.18/ext/gd/tests/crafted_gd2.phpt --- php8.2-8.2.7/ext/gd/tests/crafted_gd2.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/gd/tests/crafted_gd2.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -2,6 +2,12 @@ Test max colors for a gd image. --EXTENSIONS-- gd +--SKIPIF-- +=')) { + die("skip test requires GD 2.3.2 or older"); + } +?> --FILE-- =')) { + die("skip test requires GD 2.3.2 or older"); + } if (!function_exists('imagecreatefromgd2')) die("skip gd extension not available\n"); ?> --FILE-- diff -Nru php8.2-8.2.7/ext/gd/tests/createfromwbmp2_extern.phpt php8.2-8.2.18/ext/gd/tests/createfromwbmp2_extern.phpt --- php8.2-8.2.7/ext/gd/tests/createfromwbmp2_extern.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/gd/tests/createfromwbmp2_extern.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -43,6 +43,6 @@ unlink($filename); ?> --EXPECTF-- -gd warning: Product of memory allocation multiplication would exceed INT_MAX, failing operation gracefully +Warning: imagecreatefromwbmp(): %croduct of memory allocation multiplication would exceed INT_MAX, failing operation gracefully%win %s on line %d Warning: imagecreatefromwbmp(): "%s_tmp.wbmp" is not a valid WBMP file in %s on line %d diff -Nru php8.2-8.2.7/ext/gd/tests/gh10344.phpt php8.2-8.2.18/ext/gd/tests/gh10344.phpt --- php8.2-8.2.7/ext/gd/tests/gh10344.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/gd/tests/gh10344.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,28 @@ +--TEST-- +GH-10344 (imagettfbbox(): Could not find/open font UNC path) +--EXTENSIONS-- +gd +--SKIPIF-- + +--FILE-- + +--EXPECT-- +int(8) diff -Nru php8.2-8.2.7/ext/gd/tests/gh10614.phpt php8.2-8.2.18/ext/gd/tests/gh10614.phpt --- php8.2-8.2.7/ext/gd/tests/gh10614.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/gd/tests/gh10614.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,93 @@ +--TEST-- +GH-10614 (imagerotate will turn the picture all black, when rotated 90) +--EXTENSIONS-- +gd +--SKIPIF-- +=')) die("skip test requires GD 2.3.4 or older"); +?> +--FILE-- + +--EXPECT-- +--- Angle 0 --- +string(1) "0" +string(1) "0" +string(1) "0" +string(1) "0" +string(1) "0" +string(1) "0" +string(1) "0" +string(1) "0" +string(8) "7f000000" +string(8) "7f000000" +string(8) "7f000000" +string(8) "7f000000" +string(8) "7f000000" +string(8) "7f000000" +string(8) "7f000000" +string(8) "7f000000" +--- Angle 90 --- +string(8) "7f000000" +string(8) "7f000000" +string(1) "0" +string(1) "0" +string(8) "7f000000" +string(8) "7f000000" +string(1) "0" +string(1) "0" +string(8) "7f000000" +string(8) "7f000000" +string(1) "0" +string(1) "0" +string(8) "7f000000" +string(8) "7f000000" +string(1) "0" +string(1) "0" +--- Angle 180 --- +string(8) "7f000000" +string(8) "7f000000" +string(8) "7f000000" +string(8) "7f000000" +string(8) "7f000000" +string(8) "7f000000" +string(8) "7f000000" +string(8) "7f000000" +string(1) "0" +string(1) "0" +string(1) "0" +string(1) "0" +string(1) "0" +string(1) "0" +string(1) "0" +string(1) "0" +--- Angle 270 --- +string(1) "0" +string(1) "0" +string(8) "7f000000" +string(8) "7f000000" +string(1) "0" +string(1) "0" +string(8) "7f000000" +string(8) "7f000000" +string(1) "0" +string(1) "0" +string(8) "7f000000" +string(8) "7f000000" +string(1) "0" +string(1) "0" +string(8) "7f000000" +string(8) "7f000000" Binary files /srv/release.debian.org/tmp/PRctODJaru/php8.2-8.2.7/ext/gd/tests/gh10614.png and /srv/release.debian.org/tmp/ZDJJBHbYgN/php8.2-8.2.18/ext/gd/tests/gh10614.png differ Binary files /srv/release.debian.org/tmp/PRctODJaru/php8.2-8.2.7/ext/gd/tests/gh13082.gdf and /srv/release.debian.org/tmp/ZDJJBHbYgN/php8.2-8.2.18/ext/gd/tests/gh13082.gdf differ diff -Nru php8.2-8.2.7/ext/gd/tests/gh13082.phpt php8.2-8.2.18/ext/gd/tests/gh13082.phpt --- php8.2-8.2.7/ext/gd/tests/gh13082.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/gd/tests/gh13082.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,18 @@ +--TEST-- +GH-13082 - imagefontwidth/height unexpectedly throwing an exception on a valid GdFont object. +--EXTENSIONS-- +gd +--SKIPIF-- + +--FILE-- + +--EXPECT-- +int(12) +int(20) diff -Nru php8.2-8.2.7/ext/gd/tests/gif2gd.phpt php8.2-8.2.18/ext/gd/tests/gif2gd.phpt --- php8.2-8.2.7/ext/gd/tests/gif2gd.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/gd/tests/gif2gd.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -4,6 +4,10 @@ gd --SKIPIF-- =')) { + die("skip test requires GD 2.3.2 or older"); + } + if (!function_exists("imagecreatefromgif")) { die("skip gif read support unavailable"); } diff -Nru php8.2-8.2.7/ext/gd/tests/imagegd_truecolor.phpt php8.2-8.2.18/ext/gd/tests/imagegd_truecolor.phpt --- php8.2-8.2.7/ext/gd/tests/imagegd_truecolor.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/gd/tests/imagegd_truecolor.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -2,6 +2,12 @@ imagegd() writes truecolor images without palette conversion --EXTENSIONS-- gd +--SKIPIF-- +=')) { + die("skip test requires GD 2.3.2 or older"); + } +?> --FILE-- =')) { + die("skip test requires GD 2.3.2 or older"); + } + if (!function_exists("imagecreatefromjpeg") || !function_exists("imagejpeg")) { die("skip jpeg support unavailable"); } diff -Nru php8.2-8.2.7/ext/gd/tests/jpg2gd.phpt php8.2-8.2.18/ext/gd/tests/jpg2gd.phpt --- php8.2-8.2.7/ext/gd/tests/jpg2gd.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/gd/tests/jpg2gd.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -4,6 +4,10 @@ gd --SKIPIF-- =')) { + die("skip test requires GD 2.3.2 or older"); + } + if (!function_exists("imagecreatefromjpeg") || !function_exists("imagejpeg")) { die("skip jpeg support unavailable"); } diff -Nru php8.2-8.2.7/ext/gd/tests/libgd00086_extern.phpt php8.2-8.2.18/ext/gd/tests/libgd00086_extern.phpt --- php8.2-8.2.7/ext/gd/tests/libgd00086_extern.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/gd/tests/libgd00086_extern.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -13,8 +13,9 @@ var_dump($im); ?> --EXPECTF-- -gd-png: fatal libpng error: Read Error: truncated data -gd-png error: setjmp returns error condition 1 +Warning: imagecreatefrompng(): gd-png: fatal libpng error: Read Error: truncated data%win %s on line %d + +Warning: imagecreatefrompng(): gd-png error: setjmp returns error condition %d%win %s on line %d Warning: imagecreatefrompng(): "%slibgd00086.png" is not a valid PNG file in %s on line %d bool(false) diff -Nru php8.2-8.2.7/ext/gd/tests/png2gd.phpt php8.2-8.2.18/ext/gd/tests/png2gd.phpt --- php8.2-8.2.7/ext/gd/tests/png2gd.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/gd/tests/png2gd.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -4,6 +4,10 @@ gd --SKIPIF-- =')) { + die("skip test requires GD 2.3.2 or older"); + } + if (!function_exists("imagecreatefrompng") || !function_exists("imagepng")) { die("skip png support unavailable"); } diff -Nru php8.2-8.2.7/ext/gd/tests/xpm2gd.phpt php8.2-8.2.18/ext/gd/tests/xpm2gd.phpt --- php8.2-8.2.7/ext/gd/tests/xpm2gd.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/gd/tests/xpm2gd.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -4,6 +4,10 @@ gd --SKIPIF-- =')) { + die("skip test requires GD 2.3.2 or older"); + } + if (!function_exists("imagecreatefromxpm")) { die("skip xpm read support unavailable"); } diff -Nru php8.2-8.2.7/ext/gettext/gettext.c php8.2-8.2.18/ext/gettext/gettext.c --- php8.2-8.2.7/ext/gettext/gettext.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/gettext/gettext.c 2024-04-09 18:46:23.000000000 +0000 @@ -23,6 +23,7 @@ #ifdef HAVE_LIBINTL #include +#include #include "ext/standard/info.h" #include "php_gettext.h" #include "gettext_arginfo.h" @@ -146,6 +147,9 @@ PHP_GETTEXT_DOMAIN_LENGTH_CHECK(1, ZSTR_LEN(domain)) PHP_GETTEXT_LENGTH_CHECK(2, ZSTR_LEN(msgid)) + if (category == LC_ALL) { + RETURN_STR_COPY(msgid); + } msgstr = dcgettext(ZSTR_VAL(domain), ZSTR_VAL(msgid), category); @@ -260,6 +264,9 @@ PHP_GETTEXT_DOMAIN_LENGTH_CHECK(1, domain_len) PHP_GETTEXT_LENGTH_CHECK(2, msgid1_len) PHP_GETTEXT_LENGTH_CHECK(3, msgid2_len) + if (category == LC_ALL) { + RETURN_STRING(msgid1); + } msgstr = dcngettext(domain, msgid1, msgid2, count, category); diff -Nru php8.2-8.2.7/ext/gettext/tests/dcgettext_lcall.phpt php8.2-8.2.18/ext/gettext/tests/dcgettext_lcall.phpt --- php8.2-8.2.7/ext/gettext/tests/dcgettext_lcall.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/gettext/tests/dcgettext_lcall.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,12 @@ +--TEST-- +dcgettext with LC_ALL is undefined behavior. +--EXTENSIONS-- +gettext +--FILE-- + +--EXPECT-- +string(4) "item" +string(4) "item" diff -Nru php8.2-8.2.7/ext/gettext/tests/dcngettext.phpt php8.2-8.2.18/ext/gettext/tests/dcngettext.phpt --- php8.2-8.2.7/ext/gettext/tests/dcngettext.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/gettext/tests/dcngettext.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -11,10 +11,10 @@ var_dump(dcngettext(1,1,1,1,1)); var_dump(dcngettext("test","test","test",1,1)); -var_dump(dcngettext("test","test","test",0,0)); +var_dump(dcngettext("test","test","test",0,1)); var_dump(dcngettext("test","test","test",-1,-1)); var_dump(dcngettext("","","",1,1)); -var_dump(dcngettext("","","",0,0)); +var_dump(dcngettext("","","",0,1)); echo "Done\n"; ?> diff -Nru php8.2-8.2.7/ext/hash/hash.c php8.2-8.2.18/ext/hash/hash.c --- php8.2-8.2.7/ext/hash/hash.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/hash/hash.c 2024-04-09 18:46:23.000000000 +0000 @@ -681,7 +681,7 @@ #define PHP_HASHCONTEXT_VERIFY(hash) { \ if (!hash->context) { \ - zend_argument_type_error(1, "must be a valid Hash Context resource"); \ + zend_argument_type_error(1, "must be a valid, non-finalized HashContext"); \ RETURN_THROWS(); \ } \ } @@ -838,11 +838,15 @@ PHP_FUNCTION(hash_copy) { zval *zhash; + php_hashcontext_object *context; if (zend_parse_parameters(ZEND_NUM_ARGS(), "O", &zhash, php_hashcontext_ce) == FAILURE) { RETURN_THROWS(); } + context = php_hashcontext_from_object(Z_OBJ_P(zhash)); + PHP_HASHCONTEXT_VERIFY(context); + RETVAL_OBJ(Z_OBJ_HANDLER_P(zhash, clone_obj)(Z_OBJ_P(zhash))); if (php_hashcontext_from_object(Z_OBJ_P(return_value))->context == NULL) { @@ -993,7 +997,7 @@ bool raw_output = 0; const php_hash_ops *ops; void *context; - HashTable *args; + HashTable *args = NULL; if (zend_parse_parameters(ZEND_NUM_ARGS(), "Sssl|lbh", &algo, &pass, &pass_len, &salt, &salt_len, &iterations, &length, &raw_output, &args) == FAILURE) { RETURN_THROWS(); @@ -1395,6 +1399,11 @@ zend_object *znew = php_hashcontext_create(zobj->ce); php_hashcontext_object *newobj = php_hashcontext_from_object(znew); + if (!oldobj->context) { + zend_throw_exception(zend_ce_value_error, "Cannot clone a finalized HashContext", 0); + return znew; + } + zend_objects_clone_members(znew, zobj); newobj->ops = oldobj->ops; diff -Nru php8.2-8.2.7/ext/hash/hash.stub.php php8.2-8.2.18/ext/hash/hash.stub.php --- php8.2-8.2.7/ext/hash/hash.stub.php 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/hash/hash.stub.php 2024-04-09 18:46:23.000000000 +0000 @@ -58,7 +58,7 @@ /** * @refcount 1 */ -function hash_pbkdf2(string $algo, #[\SensitiveParameter] string $password, string $salt, int $iterations, int $length = 0, bool $binary = false): string {} +function hash_pbkdf2(string $algo, #[\SensitiveParameter] string $password, string $salt, int $iterations, int $length = 0, bool $binary = false, array $options = []): string {} function hash_equals(#[\SensitiveParameter] string $known_string, #[\SensitiveParameter] string $user_string): bool {} diff -Nru php8.2-8.2.7/ext/hash/hash_adler32.c php8.2-8.2.18/ext/hash/hash_adler32.c --- php8.2-8.2.7/ext/hash/hash_adler32.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/hash/hash_adler32.c 2024-04-09 18:46:23.000000000 +0000 @@ -25,11 +25,11 @@ 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 -Nru php8.2-8.2.7/ext/hash/hash_arginfo.h php8.2-8.2.18/ext/hash/hash_arginfo.h --- php8.2-8.2.7/ext/hash/hash_arginfo.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/hash/hash_arginfo.h 2024-04-09 18:46:23.000000000 +0000 @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: 7168b9b3d1422d4f8ff9270c5de2f42988a55811 */ + * Stub hash: ebad728f6a02164a847b0f29d215d6aa6214488d */ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_hash, 0, 2, IS_STRING, 0) ZEND_ARG_TYPE_INFO(0, algo, IS_STRING, 0) @@ -74,6 +74,7 @@ ZEND_ARG_TYPE_INFO(0, iterations, IS_LONG, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, length, IS_LONG, 0, "0") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, binary, _IS_BOOL, 0, "false") + ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_ARRAY, 0, "[]") ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_hash_equals, 0, 2, _IS_BOOL, 0) diff -Nru php8.2-8.2.7/ext/hash/hash_haval.c php8.2-8.2.18/ext/hash/hash_haval.c --- php8.2-8.2.7/ext/hash/hash_haval.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/hash/hash_haval.c 2024-04-09 18:46:23.000000000 +0000 @@ -280,7 +280,8 @@ /* {{{ 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 @@ 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 -Nru php8.2-8.2.7/ext/hash/hash_md.c php8.2-8.2.18/ext/hash/hash_md.c --- php8.2-8.2.7/ext/hash/hash_md.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/hash/hash_md.c 2024-04-09 18:46:23.000000000 +0000 @@ -204,7 +204,8 @@ */ 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 @@ 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 -Nru php8.2-8.2.7/ext/hash/hash_ripemd.c php8.2-8.2.18/ext/hash/hash_ripemd.c --- php8.2-8.2.7/ext/hash/hash_ripemd.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/hash/hash_ripemd.c 2024-04-09 18:46:23.000000000 +0000 @@ -271,7 +271,8 @@ */ 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 @@ 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 @@ */ 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 @@ 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 @@ */ 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 @@ 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 @@ */ 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 @@ 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 -Nru php8.2-8.2.7/ext/hash/hash_sha.c php8.2-8.2.18/ext/hash/hash_sha.c --- php8.2-8.2.7/ext/hash/hash_sha.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/hash/hash_sha.c 2024-04-09 18:46:23.000000000 +0000 @@ -222,7 +222,8 @@ */ 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 @@ 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_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 @@ 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 @@ */ 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,8 @@ 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; @@ -666,7 +670,8 @@ */ 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 +680,8 @@ 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; diff -Nru php8.2-8.2.7/ext/hash/tests/gh12186_1.phpt php8.2-8.2.18/ext/hash/tests/gh12186_1.phpt --- php8.2-8.2.7/ext/hash/tests/gh12186_1.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/hash/tests/gh12186_1.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,17 @@ +--TEST-- +Hash: bug #12186 - segfault in hash_copy() on a finalized context +--FILE-- +getMessage() . "\n"; +} + +?> +--EXPECTF-- +hash_copy(): Argument #1 ($context) must be a valid, non-finalized HashContext diff -Nru php8.2-8.2.7/ext/hash/tests/gh12186_2.phpt php8.2-8.2.18/ext/hash/tests/gh12186_2.phpt --- php8.2-8.2.7/ext/hash/tests/gh12186_2.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/hash/tests/gh12186_2.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,17 @@ +--TEST-- +Hash: bug #12186 - segfault when cloning a finalized context +--FILE-- +getMessage() . "\n"; +} + +?> +--EXPECTF-- +Cannot clone a finalized HashContext diff -Nru php8.2-8.2.7/ext/hash/tests/reuse.phpt php8.2-8.2.18/ext/hash/tests/reuse.phpt --- php8.2-8.2.7/ext/hash/tests/reuse.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/hash/tests/reuse.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -14,4 +14,4 @@ ?> --EXPECT-- -hash_update(): Argument #1 ($context) must be a valid Hash Context resource +hash_update(): Argument #1 ($context) must be a valid, non-finalized HashContext diff -Nru php8.2-8.2.7/ext/iconv/config.m4 php8.2-8.2.18/ext/iconv/config.m4 --- php8.2-8.2.7/ext/iconv/config.m4 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/iconv/config.m4 2024-04-09 18:46:23.000000000 +0000 @@ -30,7 +30,7 @@ AC_MSG_CHECKING([if using GNU libiconv]) AC_RUN_IFELSE([AC_LANG_SOURCE([[ #include -int main() { +int main(void) { printf("%d", _libiconv_version); return 0; } @@ -90,7 +90,7 @@ #include #include -int main() { +int main(void) { iconv_t cd; cd = iconv_open( "*blahblah*", "*blahblahblah*" ); if (cd == (iconv_t)(-1)) { @@ -117,7 +117,7 @@ #include #include -int main() { +int main(void) { iconv_t cd = iconv_open( "UTF-8//IGNORE", "UTF-8" ); if(cd == (iconv_t)-1) { return 1; diff -Nru php8.2-8.2.7/ext/iconv/iconv.c php8.2-8.2.18/ext/iconv/iconv.c --- php8.2-8.2.7/ext/iconv/iconv.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/iconv/iconv.c 2024-04-09 18:46:23.000000000 +0000 @@ -44,6 +44,14 @@ #undef iconv #endif +#if defined(__NetBSD__) +// unfortunately, netbsd has still the old non posix conformant signature +// libiconv tends to match the eventual system's iconv too. +#define ICONV_CONST const +#else +#define ICONV_CONST +#endif + #include "zend_smart_str.h" #include "ext/standard/base64.h" #include "ext/standard/quot_print.h" @@ -360,7 +368,7 @@ out_p = ZSTR_VAL((d)->s) + ZSTR_LEN((d)->s); - if (iconv(cd, (char **)&in_p, &in_left, (char **) &out_p, &out_left) == (size_t)-1) { + if (iconv(cd, (ICONV_CONST char **)&in_p, &in_left, (char **) &out_p, &out_left) == (size_t)-1) { switch (errno) { case EINVAL: return PHP_ICONV_ERR_ILLEGAL_CHAR; @@ -456,7 +464,7 @@ out_p = ZSTR_VAL(out_buf); while (in_left > 0) { - result = iconv(cd, (char **) &in_p, &in_left, (char **) &out_p, &out_left); + result = iconv(cd, (ICONV_CONST char **) &in_p, &in_left, (char **) &out_p, &out_left); out_size = bsz - out_left; if (result == (size_t)(-1)) { if (ignore_ilseq && errno == EILSEQ) { @@ -576,7 +584,7 @@ more = in_left > 0; - iconv(cd, more ? (char **)&in_p : NULL, more ? &in_left : NULL, (char **) &out_p, &out_left); + iconv(cd, more ? (ICONV_CONST char **)&in_p : NULL, more ? &in_left : NULL, (char **) &out_p, &out_left); if (out_left == sizeof(buf)) { break; } else { @@ -683,7 +691,7 @@ more = in_left > 0 && len > 0; - iconv(cd1, more ? (char **)&in_p : NULL, more ? &in_left : NULL, (char **) &out_p, &out_left); + iconv(cd1, more ? (ICONV_CONST char **)&in_p : NULL, more ? &in_left : NULL, (char **) &out_p, &out_left); if (out_left == sizeof(buf)) { break; } @@ -805,7 +813,7 @@ more = in_left > 0; - iconv_ret = iconv(cd, more ? (char **)&in_p : NULL, more ? &in_left : NULL, (char **) &out_p, &out_left); + iconv_ret = iconv(cd, more ? (ICONV_CONST char **)&in_p : NULL, more ? &in_left : NULL, (char **) &out_p, &out_left); if (out_left == sizeof(buf)) { break; } @@ -1012,7 +1020,7 @@ out_left = out_size - out_reserved; - if (iconv(cd, (char **)&in_p, &in_left, (char **) &out_p, &out_left) == (size_t)-1) { + if (iconv(cd, (ICONV_CONST char **)&in_p, &in_left, (char **) &out_p, &out_left) == (size_t)-1) { switch (errno) { case EINVAL: err = PHP_ICONV_ERR_ILLEGAL_CHAR; @@ -1096,7 +1104,7 @@ out_p = buf; out_left = out_size; - if (iconv(cd, (char **)&in_p, &in_left, (char **) &out_p, &out_left) == (size_t)-1) { + if (iconv(cd, (ICONV_CONST char **)&in_p, &in_left, (char **) &out_p, &out_left) == (size_t)-1) { switch (errno) { case EINVAL: err = PHP_ICONV_ERR_ILLEGAL_CHAR; @@ -2365,7 +2373,7 @@ tcnt = self->stub_len; while (tcnt > 0) { - if (iconv(self->cd, &pt, &tcnt, &pd, &ocnt) == (size_t)-1) { + if (iconv(self->cd, (ICONV_CONST char **)&pt, &tcnt, &pd, &ocnt) == (size_t)-1) { switch (errno) { case EILSEQ: php_error_docref(NULL, E_WARNING, "iconv stream filter (\"%s\"=>\"%s\"): invalid multibyte sequence", self->from_charset, self->to_charset); @@ -2431,7 +2439,7 @@ while (icnt > 0) { if ((ps == NULL ? iconv(self->cd, NULL, NULL, &pd, &ocnt): - iconv(self->cd, (char **)&ps, &icnt, &pd, &ocnt)) == (size_t)-1) { + iconv(self->cd, (ICONV_CONST char **)&ps, &icnt, &pd, &ocnt)) == (size_t)-1) { switch (errno) { case EILSEQ: php_error_docref(NULL, E_WARNING, "iconv stream filter (\"%s\"=>\"%s\"): invalid multibyte sequence", self->from_charset, self->to_charset); diff -Nru php8.2-8.2.7/ext/imap/tests/bug77020.phpt php8.2-8.2.18/ext/imap/tests/bug77020.phpt --- php8.2-8.2.7/ext/imap/tests/bug77020.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/imap/tests/bug77020.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -2,8 +2,13 @@ Bug #77020 (null pointer dereference in imap_mail) --EXTENSIONS-- imap +--INI-- +sendmail_path="echo >/dev/null" --FILE-- diff -Nru php8.2-8.2.7/ext/intl/dateformat/dateformat_create.cpp php8.2-8.2.18/ext/intl/dateformat/dateformat_create.cpp --- php8.2-8.2.7/ext/intl/dateformat/dateformat_create.cpp 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/intl/dateformat/dateformat_create.cpp 2024-04-09 18:46:23.000000000 +0000 @@ -99,7 +99,11 @@ } if (!INTL_UDATE_FMT_OK(time_type)) { intl_error_set(NULL, U_ILLEGAL_ARGUMENT_ERROR, "datefmt_create: invalid time format style", 0); -return FAILURE; + return FAILURE; + } + if (date_type == UDAT_PATTERN && time_type != UDAT_PATTERN) { + intl_error_set(NULL, U_ILLEGAL_ARGUMENT_ERROR, "datefmt_create: time format must be UDAT_PATTERN if date format is UDAT_PATTERN", 0); + return FAILURE; } INTL_CHECK_LOCALE_LEN_OR_FAILURE(locale_len); @@ -107,6 +111,10 @@ locale_str = (char *) intl_locale_get_default(); } locale = Locale::createFromName(locale_str); + /* get*Name accessors being set does not preclude being bogus */ + if (locale.isBogus() || ((locale_len == 1 && locale_str[0] != 'C') || (locale_len > 1 && strlen(locale.getISO3Language()) == 0))) { + goto error; + } /* process calendar */ if (datefmt_process_calendar_arg(calendar_obj, calendar_long, calendar_is_null, locale, "datefmt_create", diff -Nru php8.2-8.2.7/ext/intl/msgformat/msgformat_format.c php8.2-8.2.18/ext/intl/msgformat/msgformat_format.c --- php8.2-8.2.7/ext/intl/msgformat/msgformat_format.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/intl/msgformat/msgformat_format.c 2024-04-09 18:46:23.000000000 +0000 @@ -98,7 +98,7 @@ intl_convert_utf8_to_utf16(&spattern, &spattern_len, pattern, pattern_len, &INTL_DATA_ERROR_CODE(mfo)); if( U_FAILURE(INTL_DATA_ERROR_CODE((mfo))) ) { - intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR, + intl_error_set(/* intl_error* */ NULL, U_ILLEGAL_ARGUMENT_ERROR, "msgfmt_format_message: error converting pattern to UTF-16", 0 ); RETURN_FALSE; } @@ -113,7 +113,7 @@ #ifdef MSG_FORMAT_QUOTE_APOS if(msgformat_fix_quotes(&spattern, &spattern_len, &INTL_DATA_ERROR_CODE(mfo)) != SUCCESS) { - intl_error_set( NULL, U_INVALID_FORMAT_ERROR, + intl_error_set(/* intl_error* */ NULL, U_INVALID_FORMAT_ERROR, "msgfmt_format_message: error converting pattern to quote-friendly format", 0 ); RETURN_FALSE; } @@ -125,21 +125,26 @@ efree(spattern); } - if (INTL_DATA_ERROR_CODE( mfo ) == U_PATTERN_SYNTAX_ERROR) { - char *msg = NULL; - smart_str parse_error_str; - parse_error_str = intl_parse_error_to_string( &parse_error ); - spprintf( &msg, 0, "pattern syntax error (%s)", parse_error_str.s? ZSTR_VAL(parse_error_str.s) : "unknown parser error" ); - smart_str_free( &parse_error_str ); - - intl_error_set_code( NULL, INTL_DATA_ERROR_CODE( mfo ) ); - intl_errors_set_custom_msg( INTL_DATA_ERROR_P( mfo ), msg, 1 ); - - efree( msg ); + /* Cannot use INTL_METHOD_CHECK_STATUS() as we need to free the message object formatter */ + if (U_FAILURE(INTL_DATA_ERROR_CODE(mfo))) { + if (INTL_DATA_ERROR_CODE( mfo ) == U_PATTERN_SYNTAX_ERROR) { + char *msg = NULL; + smart_str parse_error_str; + parse_error_str = intl_parse_error_to_string( &parse_error ); + spprintf( &msg, 0, "pattern syntax error (%s)", parse_error_str.s? ZSTR_VAL(parse_error_str.s) : "unknown parser error" ); + smart_str_free( &parse_error_str ); + + /* Pass NULL to intl_error* parameter to store message in global Intl error msg stack */ + intl_error_set_code(/* intl_error* */ NULL, INTL_DATA_ERROR_CODE( mfo ) ); + intl_errors_set_custom_msg(/* intl_error* */ NULL, msg, 1 ); + + efree( msg ); + } else { + intl_errors_set_custom_msg(/* intl_error* */ NULL, "Creating message formatter failed", 0 ); + } + umsg_close(MSG_FORMAT_OBJECT(mfo)); RETURN_FALSE; - } - - INTL_METHOD_CHECK_STATUS(mfo, "Creating message formatter failed"); + } msgfmt_do_format(mfo, args, return_value); diff -Nru php8.2-8.2.7/ext/intl/tests/bug69398-icu74.1.phpt php8.2-8.2.18/ext/intl/tests/bug69398-icu74.1.phpt --- php8.2-8.2.7/ext/intl/tests/bug69398-icu74.1.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/intl/tests/bug69398-icu74.1.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,19 @@ +--TEST-- +IntlDateFormatter::formatObject(): returns wrong value when time style is NONE. +--EXTENSIONS-- +intl +--SKIPIF-- + +--FILE-- +setTime($millitimestamp); +echo IntlDateFormatter::formatObject($date, array(IntlDateFormatter::SHORT, IntlDateFormatter::NONE), 'vi_VN'), "\n"; +echo IntlDateFormatter::formatObject ($date, array(IntlDateFormatter::SHORT, IntlDateFormatter::NONE), 'ko_KR'), "\n"; +?> +--EXPECT-- +4/4/15 +15. 4. 4. diff -Nru php8.2-8.2.7/ext/intl/tests/bug69398.phpt php8.2-8.2.18/ext/intl/tests/bug69398.phpt --- php8.2-8.2.7/ext/intl/tests/bug69398.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/intl/tests/bug69398.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -3,7 +3,10 @@ --EXTENSIONS-- intl --SKIPIF-- -= 51.1.2'); ?> += 0) die('skip for ICU >= 74.1'); +?> --FILE-- = 0 && version_compare(INTL_ICU_VERSION, '74.1') < 0) { + die('skip Broken for ICU >= 73.1 and < 74.1, see https://github.com/php/php-src/issues/11128'); +} +?> --FILE-- diff -Nru php8.2-8.2.7/ext/intl/tests/gh10647.phpt php8.2-8.2.18/ext/intl/tests/gh10647.phpt --- php8.2-8.2.7/ext/intl/tests/gh10647.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/intl/tests/gh10647.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -1,9 +1,7 @@ --TEST-- Bug GH-10647 (Spoofchecker::isSuspicious $errorCode always null) ---SKIPIF-- - +--EXTENSIONS-- +intl --FILE-- +--EXPECTF-- +Warning: MessageFormatter::formatMessage(): pattern syntax error (parse error at offset 6, after "some {", before or at "wrong.format}") in %s on line %d +bool(false) + +Warning: msgfmt_format_message(): pattern syntax error (parse error at offset 6, after "some {", before or at "wrong.format}") in %s on line %d +bool(false) diff -Nru php8.2-8.2.7/ext/intl/tests/gh12020.phpt php8.2-8.2.18/ext/intl/tests/gh12020.phpt --- php8.2-8.2.7/ext/intl/tests/gh12020.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/intl/tests/gh12020.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,22 @@ +--TEST-- +GitHub #12020 intl_get_error_message() broken after MessageFormatter::formatMessage() fails +--EXTENSIONS-- +intl +--FILE-- + +--EXPECT-- +bool(false) +string(128) "pattern syntax error (parse error at offset 19, after " message with {", before or at "invalid format}"): U_PATTERN_SYNTAX_ERROR" +bool(false) +string(116) "pattern syntax error (parse error at offset 6, after "some {", before or at "wrong.format}"): U_PATTERN_SYNTAX_ERROR" +bool(false) +string(128) "pattern syntax error (parse error at offset 19, after " message with {", before or at "invalid format}"): U_PATTERN_SYNTAX_ERROR" +bool(false) +string(116) "pattern syntax error (parse error at offset 6, after "some {", before or at "wrong.format}"): U_PATTERN_SYNTAX_ERROR" diff -Nru php8.2-8.2.7/ext/intl/tests/gh12243.phpt php8.2-8.2.18/ext/intl/tests/gh12243.phpt --- php8.2-8.2.7/ext/intl/tests/gh12243.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/intl/tests/gh12243.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,24 @@ +--TEST-- +GitHub #12043 segfault with IntlDateFormatter::dateType where it equals to UDAT_PATTERN (icu 50) but +IntldateFormatter::timeType needs to be set as such. +--EXTENSIONS-- +intl +--FILE-- +getTimezone(), + ); +} catch (\IntlException $e) { + echo $e->getMessage(); +} + +--EXPECT-- +datefmt_create: time format must be UDAT_PATTERN if date format is UDAT_PATTERN: U_ILLEGAL_ARGUMENT_ERROR diff -Nru php8.2-8.2.7/ext/intl/tests/gh12282.phpt php8.2-8.2.18/ext/intl/tests/gh12282.phpt --- php8.2-8.2.7/ext/intl/tests/gh12282.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/intl/tests/gh12282.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,22 @@ +--TEST-- +GitHub #12282 IntlDateFormatter::locale with invalid value. +--EXTENSIONS-- +intl +--FILE-- +getLocale(ULOC_VALID_LOCALE)); +--EXPECTF-- +string(%d) "%s" diff -Nru php8.2-8.2.7/ext/intl/tests/gh8364.phpt php8.2-8.2.18/ext/intl/tests/gh8364.phpt --- php8.2-8.2.7/ext/intl/tests/gh8364.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/intl/tests/gh8364.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -1,9 +1,7 @@ --TEST-- Bug GH-8364 (msgfmt_format $values may not support references) ---SKIPIF-- - +--EXTENSIONS-- +intl --FILE-- +--EXTENSIONS-- +intl --FILE-- = 21200 +static void _php_list_set_error_structure(const xmlError *error, const char *msg) +#else +static void _php_list_set_error_structure(xmlError *error, const char *msg) +#endif { xmlError error_copy; int ret; @@ -725,7 +729,11 @@ va_end(args); } +#if LIBXML_VERSION >= 21200 +PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, const xmlError *error) +#else PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, xmlErrorPtr error) +#endif { _php_list_set_error_structure(error, NULL); @@ -957,11 +965,9 @@ /* {{{ Retrieve last error from libxml */ PHP_FUNCTION(libxml_get_last_error) { - xmlErrorPtr error; - ZEND_PARSE_PARAMETERS_NONE(); - error = xmlGetLastError(); + const xmlError *error = xmlGetLastError(); if (error) { object_init_ex(return_value, libxmlerror_class_entry); diff -Nru php8.2-8.2.7/ext/libxml/php_libxml.h php8.2-8.2.18/ext/libxml/php_libxml.h --- php8.2-8.2.7/ext/libxml/php_libxml.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/libxml/php_libxml.h 2024-04-09 18:46:23.000000000 +0000 @@ -35,6 +35,7 @@ #include "zend_smart_str.h" #include +#include #define LIBXML_SAVE_NOEMPTYTAG 1<<2 @@ -118,6 +119,63 @@ 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; \ + xmlDoValidityCheckingDefaultValue = 0; \ + 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); \ + 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); \ + 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. */ +static zend_always_inline void php_libxml_sanitize_parse_ctxt_options(xmlParserCtxtPtr ctxt) +{ + ctxt->loadsubset = 0; + ctxt->validate = 0; + ctxt->pedantic = 0; + ctxt->replaceEntities = 0; + ctxt->linenumbers = 0; + ctxt->keepBlanks = 1; + ctxt->options = 0; +} + #else /* HAVE_LIBXML */ #define libxml_module_ptr NULL #endif diff -Nru php8.2-8.2.7/ext/libxml/tests/libxml_entity_loading_disabled_by_default.phpt php8.2-8.2.18/ext/libxml/tests/libxml_entity_loading_disabled_by_default.phpt --- php8.2-8.2.7/ext/libxml/tests/libxml_entity_loading_disabled_by_default.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/libxml/tests/libxml_entity_loading_disabled_by_default.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -3,6 +3,8 @@ --EXTENSIONS-- libxml dom +xml +simplexml --FILE-- |string|int|false + * @return array|string|int|false|null * @refcount 1 */ -function mb_get_info(string $type = "all"): array|string|int|false {} +function mb_get_info(string $type = "all"): array|string|int|false|null {} function mb_check_encoding(array|string|null $value = null, ?string $encoding = null): bool {} diff -Nru php8.2-8.2.7/ext/mbstring/mbstring_arginfo.h php8.2-8.2.18/ext/mbstring/mbstring_arginfo.h --- php8.2-8.2.7/ext/mbstring/mbstring_arginfo.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/mbstring/mbstring_arginfo.h 2024-04-09 18:46:23.000000000 +0000 @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: 0c9ac8888b8332557f7098cfb9d259757af8b3c6 */ + * Stub hash: 131af756402aecb88d2265f2a3d25aa5c66a7185 */ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_mb_language, 0, 0, MAY_BE_STRING|MAY_BE_BOOL) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, language, IS_STRING, 1, "null") @@ -177,7 +177,7 @@ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, additional_params, IS_STRING, 1, "null") ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_mb_get_info, 0, 0, MAY_BE_ARRAY|MAY_BE_STRING|MAY_BE_LONG|MAY_BE_FALSE) +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_mb_get_info, 0, 0, MAY_BE_ARRAY|MAY_BE_STRING|MAY_BE_LONG|MAY_BE_FALSE|MAY_BE_NULL) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, type, IS_STRING, 0, "\"all\"") ZEND_END_ARG_INFO() diff -Nru php8.2-8.2.7/ext/mbstring/tests/data/BIG5.txt php8.2-8.2.18/ext/mbstring/tests/data/BIG5.txt --- php8.2-8.2.7/ext/mbstring/tests/data/BIG5.txt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/mbstring/tests/data/BIG5.txt 2024-04-09 18:46:23.000000000 +0000 @@ -1,35 +1,26 @@ +# BIG5.TXT +# Date: 2015-12-02 23:52:00 GMT [KW] +# © 2015 Unicode®, Inc. +# For terms of use, see http://www.unicode.org/terms_of_use.html # # Name: BIG5 to Unicode table (complete) # Unicode version: 1.1 -# Table version: 0.0d3 +# Table version: 2.0 # Table format: Format A -# Date: 11 February 1994 -# Authors: Glenn Adams -# John H. Jenkins -# -# Copyright (c) 1991-1994 Unicode, Inc. All Rights reserved. -# -# This file is provided as-is by Unicode, Inc. (The Unicode Consortium). -# No claims are made as to fitness for any particular purpose. No -# warranties of any kind are expressed or implied. The recipient -# agrees to determine applicability of information provided. If this -# file has been provided on magnetic media by Unicode, Inc., the sole -# remedy for any claim will be exchange of defective media within 90 -# days of receipt. -# -# Recipient is granted the right to make copies in any form for -# internal distribution and to freely use the information supplied -# in the creation of products supporting Unicode. Unicode, Inc. -# specifically excludes the right to re-distribute this file directly -# to third parties or other organizations whether for profit or not. +# Date: 2011 October 14 (header updated: 2015 December 02) # # General notes: # -# This table contains the data Metis and Taligent currently have on how -# BIG5 characters map into Unicode. +# +# This table contains one set of mappings from BIG5 into Unicode. +# Note that these data are *possible* mappings only and may not be the +# same as those used by actual products, nor may they be the best suited +# for all uses. For more information on the mappings between various code +# pages incorporating the repertoire of BIG5 and Unicode, consult the +# VENDORS mapping data. # # WARNING! It is currently impossible to provide round-trip compatibility -# between BIG5 and Unicode. +# between BIG5 and Unicode. # # A number of characters are not currently mapped because # of conflicts with other mappings. They are as follows: @@ -46,45 +37,58 @@ # # We currently map all of these characters to U+FFFD REPLACEMENT CHARACTER. # It is also possible to map these characters to their duplicates, or to -# the user zone. -# +# the user zone. +# # Notes: # # 1. In addition to the above, there is some uncertainty about the # mappings in the range C6A1 - C8FE, and F9DD - F9FE. The ETEN -# version of BIG5 organizes the former range differently, and adds -# additional characters in the latter range. The correct mappings -# these ranges need to be determined. +# version of BIG5 organizes the former range differently, and adds +# additional characters in the latter range. The correct mappings +# these ranges need to be determined. # # 2. There is an uncertainty in the mapping of the Big Five character -# 0xA3BC. This character occurs within the Big Five block of tone marks -# for bopomofo and is intended to be the tone mark for the first tone in -# Mandarin Chinese. We have selected the mapping U+02C9 MODIFIER LETTER -# MACRON (Mandarin Chinese first tone) to reflect this semantic. -# However, because bopomofo uses the absense of a tone mark to indicate -# the first Mandarin tone, most implementations of Big Five represent -# this character with a blank space, and so a mapping such as U+2003 EM SPACE -# might be preferred. -# -# +# 0xA3BC. This character occurs within the Big Five block of tone marks +# for bopomofo and is intended to be the tone mark for the first tone in +# Mandarin Chinese. We have selected the mapping U+02C9 MODIFIER LETTER +# MACRON (Mandarin Chinese first tone) to reflect this semantic. +# However, because bopomofo uses the absense of a tone mark to indicate +# the first Mandarin tone, most implementations of Big Five represent +# this character with a blank space, and so a mapping such as U+2003 EM +# SPACE might be preferred. # # Format: Three tab-separated columns # Column #1 is the BIG5 code (in hex as 0xXXXX) # Column #2 is the Unicode (in hex as 0xXXXX) # Column #3 is the Unicode name (follows a comment sign, '#') -# The official names for Unicode characters U+4E00 -# to U+9FA5, inclusive, is "CJK UNIFIED IDEOGRAPH-XXXX", -# where XXXX is the code point. Including all these -# names in this file increases its size substantially -# and needlessly. The token "" is used for the -# name of these characters. If necessary, it can be -# expanded algorithmically by a parser or editor. +# The official names for Unicode characters U+4E00 +# to U+9FA5, inclusive, is "CJK UNIFIED IDEOGRAPH-XXXX", +# where XXXX is the code point. Including all these +# names in this file increases its size substantially +# and needlessly. The token "" is used for the +# name of these characters. If necessary, it can be +# expanded algorithmically by a parser or editor. # # The entries are in BIG5 order # -# Any comments or problems, contact +# Revision History: +# +# [v2.0, 2015 December 02] +# updates to copyright notice and terms of use +# no changes to character mappings +# +# [v1.0, 2011 October 14] +# Updated terms of use to current wording. +# Updated contact information. +# No changes to the mapping data. +# +# [v0.0d3, 11 February 1994] +# First release. # +# Use the Unicode reporting form +# for any questions or comments or to report errors in the data. # +# Manually added mapping of lower ASCII characters 0x0 0x0 0x1 0x1 0x2 0x2 @@ -239,6 +243,7 @@ 0xA157 0xFE31 # PRESENTATION FORM FOR VERTICAL EM DASH 0xA158 0x2014 # EM DASH 0xA159 0xFE33 # PRESENTATION FORM FOR VERTICAL LOW LINE +0xA15A 0xFFFD # *** NO MAPPING *** 0xA15B 0xFE34 # PRESENTATION FORM FOR VERTICAL WAVY LOW LINE 0xA15C 0xFE4F # WAVY LOW LINE 0xA15D 0xFF08 # FULLWIDTH LEFT PARENTHESIS @@ -309,7 +314,9 @@ 0xA1C0 0x32A3 # CIRCLED IDEOGRAPH CORRECT 0xA1C1 0x2105 # CARE OF 0xA1C2 0x203E # OVERLINE +0xA1C3 0xFFFD # *** NO MAPPING *** 0xA1C4 0xFF3F # FULLWIDTH LOW LINE +0xA1C5 0xFFFD # *** NO MAPPING *** 0xA1C6 0xFE49 # DASHED OVERLINE 0xA1C7 0xFE4A # CENTRELINE OVERLINE 0xA1C8 0xFE4D # DASHED LOW LINE @@ -366,6 +373,8 @@ 0xA1FB 0x2198 # SOUTH EAST ARROW 0xA1FC 0x2225 # PARALLEL TO 0xA1FD 0x2223 # DIVIDES +0xA1FE 0xFFFD # *** NO MAPPING *** +0xA240 0xFFFD # *** NO MAPPING *** 0xA241 0xFF0F # FULLWIDTH SOLIDUS 0xA242 0xFF3C # FULLWIDTH REVERSE SOLIDUS 0xA243 0xFF04 # FULLWIDTH DOLLAR SIGN @@ -471,7 +480,9 @@ 0xA2C9 0x3027 # HANGZHOU NUMERAL SEVEN 0xA2CA 0x3028 # HANGZHOU NUMERAL EIGHT 0xA2CB 0x3029 # HANGZHOU NUMERAL NINE +0xA2CC 0xFFFD # *** NO MAPPING *** 0xA2CD 0x5344 # +0xA2CE 0xFFFD # *** NO MAPPING *** 0xA2CF 0xFF21 # FULLWIDTH LATIN CAPITAL LETTER A 0xA2D0 0xFF22 # FULLWIDTH LATIN CAPITAL LETTER B 0xA2D1 0xFF23 # FULLWIDTH LATIN CAPITAL LETTER C @@ -13916,7 +13927,7 @@ 0xF9D3 0x9F7E # 0xF9D4 0x9F49 # 0xF9D5 0x9F98 # -# The following ETEN extensions are copied from CP950.txt: +# The following ETEN extensions are copied from CP950.txt (https://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT): 0xF9D6 0x7881 #CJK UNIFIED IDEOGRAPH 0xF9D7 0x92B9 #CJK UNIFIED IDEOGRAPH 0xF9D8 0x88CF #CJK UNIFIED IDEOGRAPH diff -Nru php8.2-8.2.7/ext/mbstring/tests/data/JISX0201.txt php8.2-8.2.18/ext/mbstring/tests/data/JISX0201.txt --- php8.2-8.2.7/ext/mbstring/tests/data/JISX0201.txt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/mbstring/tests/data/JISX0201.txt 2024-04-09 18:46:23.000000000 +0000 @@ -1,33 +1,24 @@ +# JIS0201.TXT +# Date: 2015-12-02 23:49:00 GMT [KW] +# © 2015 Unicode®, Inc. +# For terms of use, see http://www.unicode.org/terms_of_use.html # # Name: JIS X 0201 (1976) to Unicode 1.1 Table # Unicode version: 1.1 -# Table version: 0.9 +# Table version: 2.0 # Table format: Format A -# Date: 8 March 1994 -# Authors: Glenn Adams -# John H. Jenkins -# -# Copyright (c) 1991-1994 Unicode, Inc. All Rights reserved. -# -# This file is provided as-is by Unicode, Inc. (The Unicode Consortium). -# No claims are made as to fitness for any particular purpose. No -# warranties of any kind are expressed or implied. The recipient -# agrees to determine applicability of information provided. If this -# file has been provided on magnetic media by Unicode, Inc., the sole -# remedy for any claim will be exchange of defective media within 90 -# days of receipt. -# -# Recipient is granted the right to make copies in any form for -# internal distribution and to freely use the information supplied -# in the creation of products supporting Unicode. Unicode, Inc. -# specifically excludes the right to re-distribute this file directly -# to third parties or other organizations whether for profit or not. +# Date: 2011 October 14 (header updated: 2015 December 02) # # General notes: # -# This table contains the data the Unicode Consortium has on how -# single-byte JIS X 0201 characters map into Unicode 1.1 -# (ISO/IEC 10646:1-1993 UCS-2). +# +# This table contains one set of mappings from JIS X 0201 into Unicode. +# Note that these data are *possible* mappings only and may not be the +# same as those used by actual products, nor may they be the best suited +# for all uses. For more information on the mappings between various code +# pages incorporating the repertoire of JIS X 0201 and Unicode, consult the +# VENDORS mapping data. +# # # Format: Three tab-separated columns # Column #1 is the shift JIS code (in hex as 0xXX) @@ -36,11 +27,22 @@ # # The entries are in JIS order # -# These mappings are provisional, pending definition of -# official mappings by Japanese standards bodies. +# Revision History: +# +# [v2.0, 2015 December 02] +# updates to copyright notice and terms of use +# no changes to character mappings +# +# [v1.0, 2011 October 14] +# Updated terms of use to current wording. +# Updated contact information. +# No changes to the mapping data. # -# Any comments or problems, contact +# [v0.9, 8 March 1994] +# First release. # +# Use the Unicode reporting form +# for any questions or comments or to report errors in the data. # 0x20 0x0020 # SPACE 0x21 0x0021 # EXCLAMATION MARK diff -Nru php8.2-8.2.7/ext/mbstring/tests/data/JISX0212.txt php8.2-8.2.18/ext/mbstring/tests/data/JISX0212.txt --- php8.2-8.2.7/ext/mbstring/tests/data/JISX0212.txt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/mbstring/tests/data/JISX0212.txt 2024-04-09 18:46:23.000000000 +0000 @@ -1,44 +1,36 @@ +# JIS0212.TXT +# Date: 2015-12-02 23:51:00 GMT [KW] +# © 2015 Unicode®, Inc. +# For terms of use, see http://www.unicode.org/terms_of_use.html # # Name: JIS X 0212 (1990) to Unicode # Unicode version: 1.1 -# Table version: 0.9 +# Table version: 2.0 # Table format: Format A -# Date: 8 March 1994 -# Authors: Glenn Adams -# John H. Jenkins -# -# Copyright (c) 1991-1994 Unicode, Inc. All Rights reserved. -# -# This file is provided as-is by Unicode, Inc. (The Unicode Consortium). -# No claims are made as to fitness for any particular purpose. No -# warranties of any kind are expressed or implied. The recipient -# agrees to determine applicability of information provided. If this -# file has been provided on magnetic media by Unicode, Inc., the sole -# remedy for any claim will be exchange of defective media within 90 -# days of receipt. -# -# Recipient is granted the right to make copies in any form for -# internal distribution and to freely use the information supplied -# in the creation of products supporting Unicode. Unicode, Inc. -# specifically excludes the right to re-distribute this file directly -# to third parties or other organizations whether for profit or not. +# Date: 2011 October 14 (header updated: 2015 December 02) # # General notes: # -# This table contains the data the Unicode Consortium has on how -# JIS X 0212 (1983) characters map into Unicode. +# +# This table contains one set of mappings from JIS X 0212 into Unicode. +# Note that these data are *possible* mappings only and may not be the +# same as those used by actual products, nor may they be the best suited +# for all uses. For more information on the mappings between various code +# pages incorporating the repertoire of JIS X 0212 and Unicode, consult the +# VENDORS mapping data. +# # # Format: Three tab-separated columns # Column #1 is the JIS X 0212 code (in hex as 0xXXXX) # Column #2 is the Unicode (in hex as 0xXXXX) # Column #3 the Unicode name (follows a comment sign, '#') -# The official names for Unicode characters U+4E00 -# to U+9FA5, inclusive, is "CJK UNIFIED IDEOGRAPH-XXXX", -# where XXXX is the code point. Including all these -# names in this file increases its size substantially -# and needlessly. The token "" is used for the -# name of these characters. If necessary, it can be -# expanded algorithmically by a parser or editor. +# The official names for Unicode characters U+4E00 +# to U+9FA5, inclusive, is "CJK UNIFIED IDEOGRAPH-XXXX", +# where XXXX is the code point. Including all these +# names in this file increases its size substantially +# and needlessly. The token "" is used for the +# name of these characters. If necessary, it can be +# expanded algorithmically by a parser or editor. # # The entries are in JIS X 0212 order # @@ -51,17 +43,11 @@ # the kuten form. For example, 0x2121 -> 0x0101 -> 0101; # 0x6D63 -> 0x4D43 -> 7767 # -# The kanji mappings are a normative part of ISO/IEC 10646. The -# non-kanji mappings are provisional, pending definition of -# official mappings by Japanese standards bodies -# -# Any comments or problems, contact -# # Notes: # # 1. JIS X 0212 apparently unified the following two symbols # into a single character at 0x2922: -# +# # LATIN CAPITAL LETTER D WITH STROKE # LATIN CAPITAL LETTER ETH # @@ -72,6 +58,23 @@ # Consequently, in the Unicode mapping, 0x2922 is treated as # LATIN CAPITAL LETTER D WITH STROKE. # +# Revision History: +# +# [v2.0, 2015 December 02] +# updates to copyright notice and terms of use +# no changes to character mappings +# +# [v1.0, 2011 October 14] +# Updated terms of use to current wording. +# Updated contact information. +# No changes to the mapping data. +# +# [v0.9, 8 March 1994] +# First release. +# +# Use the Unicode reporting form +# for any questions or comments or to report errors in the data. +# 0x222F 0x02D8 # BREVE 0x2230 0x02C7 # CARON (Mandarin Chinese third tone) 0x2231 0x00B8 # CEDILLA diff -Nru php8.2-8.2.7/ext/mbstring/tests/data/KSX1001.txt php8.2-8.2.18/ext/mbstring/tests/data/KSX1001.txt --- php8.2-8.2.7/ext/mbstring/tests/data/KSX1001.txt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/mbstring/tests/data/KSX1001.txt 2024-04-09 18:46:23.000000000 +0000 @@ -1,11 +1,12 @@ # # Name: Unified Hangul (KS X 1001) to Unicode table # Unicode version: 2.0 -# Table version: 1.0 +# Table version: 1.1 # Table format: Format A -# Date: 08/16/99 +# Date: 2011 October 14 # Authors: Jungshik Shin at jshin@pantheon.yale.edu -# General notes: none +# +# Copyright (c) 1999-2011 Unicode, Inc. All Rights reserved. # # This file is provided as-is by Unicode, Inc. (The Unicode Consortium). # No claims are made as to fitness for any particular purpose. No @@ -15,11 +16,13 @@ # remedy for any claim will be exchange of defective media within 90 # days of receipt. # -# Recipient is granted the right to make copies in any form for -# internal distribution and to freely use the information supplied -# in the creation of products supporting Unicode. Unicode, Inc. -# specifically excludes the right to re-distribute this file directly -# to third parties or other organizations whether for profit or not. +# Unicode, Inc. hereby grants the right to freely use the information +# supplied in this file in the creation of products supporting the +# Unicode Standard, and to make copies of this file in any form for +# internal or external distribution as long as this notice remains +# attached. +# +# General notes: # # What is enclosed below is the mapping between KS X 1001(KS C 5601-1987 # and Unicode 2.0. It's automatically generated from KSC5601.TXT @@ -63,6 +66,19 @@ # first subtract 0x2020. Then # the high and low bytes correspond to the row(Hang) and the column(Yol), # respectively +# +# Revision History: +# +# [v1.1, 2011 October 14] +# Updated terms of use to current wording. +# Updated contact information. +# No changes to the mapping data. +# +# [v1.0, 08/16/99] +# First release. +# +# Use the Unicode reporting form +# for any questions or comments or to report errors in the data. # 0x2121 0x3000 # IDEOGRAPHIC SPACE 0x2122 0x3001 # IDEOGRAPHIC COMMA diff -Nru php8.2-8.2.7/ext/mbstring/tests/encoding_tests.inc php8.2-8.2.18/ext/mbstring/tests/encoding_tests.inc --- php8.2-8.2.7/ext/mbstring/tests/encoding_tests.inc 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/mbstring/tests/encoding_tests.inc 2024-04-09 18:46:23.000000000 +0000 @@ -14,6 +14,10 @@ if ($line[0] == '#') continue; if (sscanf($line, "0x%x\t0x%x", $char, $codepoint) == 2) { + // Skip codepoints that do not have a mapping (e.g. in BIG5.txt) + if ($codepoint === 0xFFFD) { + continue; + } $codepoint = $utf32 ? pack('N', $codepoint) : pack('n', $codepoint); if ($char == PHP_INT_MAX) { // We may be on a 32-bit machine and testing a text encoding with 4-byte codes diff -Nru php8.2-8.2.7/ext/mbstring/tests/gh8086.phpt php8.2-8.2.18/ext/mbstring/tests/gh8086.phpt --- php8.2-8.2.7/ext/mbstring/tests/gh8086.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/mbstring/tests/gh8086.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -1,9 +1,7 @@ --TEST-- GH-8086 (mb_send_mail() function not working correctly in PHP 8.x) ---SKIPIF-- - +--EXTENSIONS-- +mbstring --INI-- sendmail_path={MAIL:{PWD}/gh8086.eml} mail.mixed_lf_and_crlf=on diff -Nru php8.2-8.2.7/ext/mbstring/tests/mb_get_info_http_input.phpt php8.2-8.2.18/ext/mbstring/tests/mb_get_info_http_input.phpt --- php8.2-8.2.7/ext/mbstring/tests/mb_get_info_http_input.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/mbstring/tests/mb_get_info_http_input.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,10 @@ +--TEST-- +mb_get_info("http_input") can return null +--EXTENSIONS-- +mbstring +--FILE-- + +--EXPECT-- +NULL diff -Nru php8.2-8.2.7/ext/mbstring/tests/mb_strlen.phpt php8.2-8.2.18/ext/mbstring/tests/mb_strlen.phpt --- php8.2-8.2.7/ext/mbstring/tests/mb_strlen.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/mbstring/tests/mb_strlen.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -35,6 +35,11 @@ print mb_strlen("\x80\xA1", 'SJIS') . "\n"; print mb_strlen("abc\xFD\xFE\xFF", 'SJIS') . "\n"; +echo "== CP932 ==\n"; +print mb_strlen("\x80\xA1", "CP932") . "\n"; +// 0xFD, 0xFE, 0xFF is reserved. +print mb_strlen("abc\xFD\xFE\xFF", 'CP932') . "\n"; + echo "== MacJapanese ==\n"; print mb_strlen("\x80\xA1", 'MacJapanese') . "\n"; print mb_strlen("abc\xFD\xFE\xFF", 'MacJapanese') . "\n"; @@ -91,6 +96,9 @@ -- Testing illegal bytes 0x80,0xFD-FF -- 2 6 +== CP932 == +2 +5 == MacJapanese == 2 6 diff -Nru php8.2-8.2.7/ext/mysqli/tests/bug34810.phpt php8.2-8.2.18/ext/mysqli/tests/bug34810.phpt --- php8.2-8.2.7/ext/mysqli/tests/bug34810.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/mysqli/tests/bug34810.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -84,7 +84,7 @@ ["host_info"]=> string(%d) "%s" ["info"]=> - NULL + %s ["insert_id"]=> int(0) ["server_info"]=> diff -Nru php8.2-8.2.7/ext/mysqli/tests/gh11438.phpt php8.2-8.2.18/ext/mysqli/tests/gh11438.phpt --- php8.2-8.2.7/ext/mysqli/tests/gh11438.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/mysqli/tests/gh11438.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,88 @@ +--TEST-- +GH-11438 (mysqlnd fails to authenticate with sha256_password accounts using passwords longer than 19 characters) +--EXTENSIONS-- +mysqli +--SKIPIF-- +query("SHOW PLUGINS"))) { + die(sprintf("skip [%d] %s\n", $link->errno, $link->error)); +} + +$found = false; +while ($row = $res->fetch_assoc()) { + if (($row['Name'] == 'sha256_password') && ($row['Status'] == 'ACTIVE')) { + $found = true; + break; + } +} +if (!$found) + die("skip SHA-256 server plugin unavailable"); + +// Ignore errors because this variable exists only in MySQL 5.6 and 5.7 +$link->query("SET @@session.old_passwords=2"); + +$link->query('DROP USER shatest'); +$link->query("DROP USER shatest@localhost"); + +if (!$link->query('CREATE USER shatest@"%" IDENTIFIED WITH sha256_password') || + !$link->query('CREATE USER shatest@"localhost" IDENTIFIED WITH sha256_password')) { + die(sprintf("skip CREATE USER failed [%d] %s", $link->errno, $link->error)); +} + +// Password of length 52, more than twice the length of the scramble data to ensure scramble is repeated correctly +if (!$link->query('SET PASSWORD FOR shatest@"%" = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"') || + !$link->query('SET PASSWORD FOR shatest@"localhost" = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"')) { + die(sprintf("skip SET PASSWORD failed [%d] %s", $link->errno, $link->error)); +} + +echo "nocache"; +?> +--FILE-- +connect_errno) { + printf("[001] [%d] %s\n", $link->connect_errno, $link->connect_error); +} else { + if (!$res = $link->query("SELECT USER()")) + printf("[002] [%d] %s\n", $link->errno, $link->error); + + if (!$row = mysqli_fetch_assoc($res)) { + printf("[003] [%d] %s\n", $link->errno, $link->error); + } + + if (!is_string($row['USER()']) || !str_starts_with($row['USER()'], 'shatest')) { + printf("[004] Expecting 1 got %s/'%s'", gettype($row['USER()']), $row['USER()']); + } +} + +print "done!"; +?> +--CLEAN-- +query('DROP USER shatest'); +$link->query('DROP USER shatest@localhost'); +?> +--EXPECTF-- +done! diff -Nru php8.2-8.2.7/ext/mysqli/tests/gh11550.phpt php8.2-8.2.18/ext/mysqli/tests/gh11550.phpt --- php8.2-8.2.7/ext/mysqli/tests/gh11550.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/mysqli/tests/gh11550.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,70 @@ +--TEST-- +Bug GH-11550 (MySQL Statement has a empty query result when the response field has changed, also Segmentation fault) +--EXTENSIONS-- +mysqli +--SKIPIF-- + +--FILE-- +query(<<<'SQL' +CREATE TABLE `test_gh11550` ( + `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, + `name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`id`) USING BTREE, + INDEX `name`(`name`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; +SQL); +$link->query(<<<'SQL' +INSERT INTO `test_gh11550` (`name`) VALUES ('test1'); +SQL); + +$stmt = $link->prepare('select * from test_gh11550'); +var_dump('mysqli-1:', $stmt->execute(), $stmt->get_result()->fetch_all()); + +$link->query(<<<'SQL' +ALTER TABLE `test_gh11550` +ADD COLUMN `a` varchar(255) NOT NULL DEFAULT ''; +SQL); + +var_dump('mysqli-2:', $stmt->execute(), $stmt->get_result()->fetch_all()); +echo 'Done'; +?> +--CLEAN-- +query('DROP TABLE IF EXISTS test_gh11550'); +?> +--EXPECT-- +string(9) "mysqli-1:" +bool(true) +array(1) { + [0]=> + array(2) { + [0]=> + int(1) + [1]=> + string(5) "test1" + } +} +string(9) "mysqli-2:" +bool(true) +array(1) { + [0]=> + array(3) { + [0]=> + int(1) + [1]=> + string(5) "test1" + [2]=> + string(0) "" + } +} +Done diff -Nru php8.2-8.2.7/ext/mysqli/tests/gh12107.phpt php8.2-8.2.18/ext/mysqli/tests/gh12107.phpt --- php8.2-8.2.7/ext/mysqli/tests/gh12107.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/mysqli/tests/gh12107.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,59 @@ +--TEST-- +GH-12107 (When running a stored procedure (that returns a result set) twice, PHP crashes) +--EXTENSIONS-- +mysqli +--SKIPIF-- + +--FILE-- +query($sql); + +echo "Start or run 1\n"; +$stmt = $mysqli->prepare("call `gh12107`()"); +$stmt->execute(); +$stmt->bind_result($output); +var_dump($stmt->fetch()); +var_dump($output); +unset($output); +echo "End of run 1\n"; + +echo "Start or run 2\n"; +$stmt->execute(); +$stmt->bind_result($output); +var_dump($stmt->fetch()); +var_dump($output); +echo "End of run 2\n"; + +?> +--CLEAN-- + +--EXPECT-- +Start or run 1 +bool(true) +string(11) "hello world" +End of run 1 +Start or run 2 +bool(true) +string(11) "hello world" +End of run 2 diff -Nru php8.2-8.2.7/ext/mysqli/tests/gh8978.phpt php8.2-8.2.18/ext/mysqli/tests/gh8978.phpt --- php8.2-8.2.7/ext/mysqli/tests/gh8978.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/mysqli/tests/gh8978.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,29 @@ +--TEST-- +Bug GH-8267 (Invalid error message when connection via SSL fails) +--EXTENSIONS-- +mysqli +--SKIPIF-- + +--FILE-- +getMessage()."\n"; +} + +echo 'done!'; +?> +--EXPECTF-- +Warning: failed loading cafile stream: `x509.ca' in %s +Cannot connect to MySQL using SSL +done! diff -Nru php8.2-8.2.7/ext/mysqlnd/mysqlnd_auth.c php8.2-8.2.18/ext/mysqlnd/mysqlnd_auth.c --- php8.2-8.2.7/ext/mysqlnd/mysqlnd_auth.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/mysqlnd/mysqlnd_auth.c 2024-04-09 18:46:23.000000000 +0000 @@ -912,9 +912,12 @@ if (conn->vio->data->ssl) { DBG_INF("simple clear text under SSL"); /* clear text under SSL */ - *auth_data_len = passwd_len; - ret = malloc(passwd_len); + /* NUL termination byte required: https://dev.mysql.com/doc/dev/mysql-server/latest/page_protocol_connection_phase_authentication_methods_clear_text_password.html + * (this is similar to bug #78680, but now as GH-11440) */ + *auth_data_len = passwd_len + 1; + ret = malloc(passwd_len + 1); memcpy(ret, passwd, passwd_len); + ret[passwd_len] = '\0'; } else { *auth_data_len = 0; server_public_key = mysqlnd_sha256_get_rsa_key(conn, session_options, pfc_data); @@ -924,7 +927,10 @@ char *xor_str = do_alloca(passwd_len + 1, use_heap); memcpy(xor_str, passwd, passwd_len); xor_str[passwd_len] = '\0'; - mysqlnd_xor_string(xor_str, passwd_len, (char *) auth_plugin_data, auth_plugin_data_len); + /* https://dev.mysql.com/doc/dev/mysql-server/latest/page_caching_sha2_authentication_exchanges.html + * This tells us that the nonce is 20 (==SCRAMBLE_LENGTH) bytes long. + * In a 5.5+ server we might get additional scramble data in php_mysqlnd_greet_read, not used by this authentication method. */ + mysqlnd_xor_string(xor_str, passwd_len, (char *) auth_plugin_data, SCRAMBLE_LENGTH); ret = mysqlnd_sha256_public_encrypt(conn, server_public_key, passwd_len, auth_data_len, xor_str); free_alloca(xor_str, use_heap); } diff -Nru php8.2-8.2.7/ext/mysqlnd/mysqlnd_charset.c php8.2-8.2.18/ext/mysqlnd/mysqlnd_charset.c --- php8.2-8.2.7/ext/mysqlnd/mysqlnd_charset.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/mysqlnd/mysqlnd_charset.c 2024-04-09 18:46:23.000000000 +0000 @@ -270,7 +270,7 @@ } if (valid_eucjpms_ss3(start[0]) && (end - start) > 2 && valid_eucjpms(start[1]) && valid_eucjpms(start[2])) { - return 2; + return 3; } return 0; } diff -Nru php8.2-8.2.7/ext/mysqlnd/mysqlnd_charset.h php8.2-8.2.18/ext/mysqlnd/mysqlnd_charset.h --- php8.2-8.2.7/ext/mysqlnd/mysqlnd_charset.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/mysqlnd/mysqlnd_charset.h 2024-04-09 18:46:23.000000000 +0000 @@ -19,6 +19,9 @@ #ifndef MYSQLND_CHARSET_H #define MYSQLND_CHARSET_H +#define MYSQLND_UTF8_MB3_DEFAULT_ID 33 +#define MYSQLND_UTF8_MB4_DEFAULT_ID 45 + PHPAPI zend_ulong mysqlnd_cset_escape_quotes(const MYSQLND_CHARSET * const charset, char * newstr, const char * escapestr, const size_t escapestr_len); diff -Nru php8.2-8.2.7/ext/mysqlnd/mysqlnd_commands.c php8.2-8.2.18/ext/mysqlnd/mysqlnd_commands.c --- php8.2-8.2.7/ext/mysqlnd/mysqlnd_commands.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/mysqlnd/mysqlnd_commands.c 2024-04-09 18:46:23.000000000 +0000 @@ -22,6 +22,7 @@ #include "mysqlnd_auth.h" #include "mysqlnd_wireprotocol.h" #include "mysqlnd_debug.h" +#include "mysqlnd_charset.h" /* {{{ mysqlnd_command::set_option */ @@ -571,6 +572,8 @@ conn->vio->data->m.set_client_option(conn->vio, MYSQL_OPT_SSL_VERIFY_SERVER_CERT, (const char *) &verify); if (FAIL == conn->vio->data->m.enable_ssl(conn->vio)) { + SET_CONNECTION_STATE(&conn->state, CONN_QUIT_SENT); + SET_CLIENT_ERROR(conn->error_info, CR_CONNECTION_ERROR, UNKNOWN_SQLSTATE, "Cannot connect to MySQL using SSL"); goto end; } } @@ -640,13 +643,12 @@ conn->protocol_version = greet_packet.protocol_version; conn->server_version = mnd_pestrdup(greet_packet.server_version, conn->persistent); - conn->greet_charset = mysqlnd_find_charset_nr(greet_packet.charset_no); - if (!conn->greet_charset) { - char * msg; - mnd_sprintf(&msg, 0, "Server sent charset (%d) unknown to the client. Please, report to the developers", greet_packet.charset_no); - SET_CLIENT_ERROR(conn->error_info, CR_NOT_IMPLEMENTED, UNKNOWN_SQLSTATE, msg); - mnd_sprintf_free(msg); - goto err; + const MYSQLND_CHARSET *read_charset = mysqlnd_find_charset_nr(greet_packet.charset_no); + if (!read_charset) { + greet_packet.charset_no = conn->m->get_server_version(conn) >= 50500 ? MYSQLND_UTF8_MB4_DEFAULT_ID : MYSQLND_UTF8_MB3_DEFAULT_ID; + conn->greet_charset = mysqlnd_find_charset_nr(greet_packet.charset_no); + } else { + conn->greet_charset = read_charset; } conn->server_capabilities = greet_packet.server_capabilities; diff -Nru php8.2-8.2.7/ext/mysqlnd/mysqlnd_connection.c php8.2-8.2.18/ext/mysqlnd/mysqlnd_connection.c --- php8.2-8.2.7/ext/mysqlnd/mysqlnd_connection.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/mysqlnd/mysqlnd_connection.c 2024-04-09 18:46:23.000000000 +0000 @@ -289,7 +289,7 @@ mysqlnd_set_persistent_string(&conn->unix_socket, NULL, 0, pers); DBG_INF_FMT("scheme=%s", conn->scheme.s); mysqlnd_set_persistent_string(&conn->scheme, NULL, 0, pers); - + if (conn->server_version) { mnd_pefree(conn->server_version, pers); conn->server_version = NULL; @@ -725,19 +725,20 @@ DBG_RETURN(PASS); } err: - if (transport.s) { - mnd_sprintf_free(transport.s); - transport.s = NULL; - } - - DBG_ERR_FMT("[%u] %.128s (trying to connect via %s)", conn->error_info->error_no, conn->error_info->error, conn->scheme.s); + DBG_ERR_FMT("[%u] %.128s (trying to connect via %s)", conn->error_info->error_no, conn->error_info->error, transport.s ? transport.s : conn->scheme.s); if (!conn->error_info->error_no) { + /* There was an unknown error if the connection failed but we have no error number */ char * msg; - mnd_sprintf(&msg, 0, "%s (trying to connect via %s)",conn->error_info->error, conn->scheme.s); + mnd_sprintf(&msg, 0, "Unknown error while trying to connect via %s", transport.s ? transport.s : conn->scheme.s); SET_CLIENT_ERROR(conn->error_info, CR_CONNECTION_ERROR, UNKNOWN_SQLSTATE, msg); mnd_sprintf_free(msg); } + if (transport.s) { + mnd_sprintf_free(transport.s); + transport.s = NULL; + } + conn->m->free_contents(conn); MYSQLND_INC_CONN_STATISTIC(conn->stats, STAT_CONNECT_FAILURE); DBG_RETURN(FAIL); diff -Nru php8.2-8.2.7/ext/mysqlnd/mysqlnd_protocol_frame_codec.c php8.2-8.2.18/ext/mysqlnd/mysqlnd_protocol_frame_codec.c --- php8.2-8.2.7/ext/mysqlnd/mysqlnd_protocol_frame_codec.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/mysqlnd/mysqlnd_protocol_frame_codec.c 2024-04-09 18:46:23.000000000 +0000 @@ -202,6 +202,7 @@ if (bytes_sent <= 0) { DBG_ERR_FMT("Can't %zu send bytes", count); SET_CLIENT_ERROR(error_info, CR_SERVER_GONE_ERROR, UNKNOWN_SQLSTATE, mysqlnd_server_gone); + bytes_sent = 0; // the return type is unsigned and 0 represents an error condition } DBG_RETURN(bytes_sent); } diff -Nru php8.2-8.2.7/ext/mysqlnd/mysqlnd_ps.c php8.2-8.2.18/ext/mysqlnd/mysqlnd_ps.c --- php8.2-8.2.7/ext/mysqlnd/mysqlnd_ps.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/mysqlnd/mysqlnd_ps.c 2024-04-09 18:46:23.000000000 +0000 @@ -652,8 +652,11 @@ Executed, but the user hasn't started to fetch This will clean also the metadata, but after the EXECUTE call we will have it again. + stmt->result may be freed and nullified by free_stmt_result, transitively called from flush. */ - stmt->result->m.free_result_buffers(stmt->result); + if (stmt->result) { + stmt->result->m.free_result_buffers(stmt->result); + } stmt->state = MYSQLND_STMT_PREPARED; } else if (stmt->state < MYSQLND_STMT_PREPARED) { diff -Nru php8.2-8.2.7/ext/mysqlnd/mysqlnd_result.c php8.2-8.2.18/ext/mysqlnd/mysqlnd_result.c --- php8.2-8.2.7/ext/mysqlnd/mysqlnd_result.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/mysqlnd/mysqlnd_result.c 2024-04-09 18:46:23.000000000 +0000 @@ -286,8 +286,12 @@ COM_STMT_EXECUTE (even if it is not necessary), so either this or previous branch always works. */ + if (rset_header.field_count != stmt->result->field_count) { + stmt->result->m.free_result(stmt->result, TRUE); + stmt->result = conn->m->result_init(rset_header.field_count); + } + result = stmt->result; } - result = stmt->result; } if (!result) { SET_OOM_ERROR(conn->error_info); @@ -342,8 +346,8 @@ } MYSQLND_INC_CONN_STATISTIC(conn->stats, statistic); } + PACKET_FREE(&fields_eof); } while (0); - PACKET_FREE(&fields_eof); break; /* switch break */ } } while (0); @@ -731,8 +735,8 @@ UPSERT_STATUS_GET_SERVER_STATUS(conn->upsert_status)); free_end: PACKET_FREE(&row_packet); + DBG_INF_FMT("rows=%llu", (unsigned long long)set->row_count); end: - DBG_INF_FMT("rows=%llu", (unsigned long long)result->stored_data->row_count); DBG_RETURN(ret); } /* }}} */ diff -Nru php8.2-8.2.7/ext/mysqlnd/mysqlnd_vio.c php8.2-8.2.18/ext/mysqlnd/mysqlnd_vio.c --- php8.2-8.2.7/ext/mysqlnd/mysqlnd_vio.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/mysqlnd/mysqlnd_vio.c 2024-04-09 18:46:23.000000000 +0000 @@ -569,7 +569,6 @@ php_stream_xport_crypto_enable(net_stream, 1) < 0) { DBG_ERR("Cannot connect to MySQL by using SSL"); - php_error_docref(NULL, E_WARNING, "Cannot connect to MySQL by using SSL"); DBG_RETURN(FAIL); } net->data->ssl = TRUE; diff -Nru php8.2-8.2.7/ext/mysqlnd/mysqlnd_wireprotocol.c php8.2-8.2.18/ext/mysqlnd/mysqlnd_wireprotocol.c --- php8.2-8.2.7/ext/mysqlnd/mysqlnd_wireprotocol.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/mysqlnd/mysqlnd_wireprotocol.c 2024-04-09 18:46:23.000000000 +0000 @@ -2488,8 +2488,10 @@ payload_decoder_factory->m.init_ok_packet(&ok_response); DBG_ENTER("mysqlnd_protocol::send_command_handle_OK"); if (FAIL == (ret = PACKET_READ(payload_decoder_factory->conn, &ok_response))) { - DBG_INF("Error while reading OK packet"); - SET_CLIENT_ERROR(error_info, CR_MALFORMED_PACKET, UNKNOWN_SQLSTATE, "Malformed packet"); + if (error_info->error_no != CR_SERVER_GONE_ERROR) { + DBG_INF("Error while reading OK packet"); + SET_CLIENT_ERROR(error_info, CR_MALFORMED_PACKET, UNKNOWN_SQLSTATE, "Malformed packet"); + } goto end; } DBG_INF_FMT("OK from server"); diff -Nru php8.2-8.2.7/ext/mysqlnd/php_mysqlnd.c php8.2-8.2.18/ext/mysqlnd/php_mysqlnd.c --- php8.2-8.2.7/ext/mysqlnd/php_mysqlnd.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/mysqlnd/php_mysqlnd.c 2024-04-09 18:46:23.000000000 +0000 @@ -15,6 +15,9 @@ +----------------------------------------------------------------------+ */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif #include "php.h" #include "mysqlnd.h" #include "mysqlnd_priv.h" diff -Nru php8.2-8.2.7/ext/oci8/LICENSE php8.2-8.2.18/ext/oci8/LICENSE --- php8.2-8.2.7/ext/oci8/LICENSE 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/oci8/LICENSE 2024-04-09 18:46:23.000000000 +0000 @@ -1,6 +1,6 @@ -------------------------------------------------------------------- The PHP License, version 3.01 -Copyright (c) 1999 - 2022 The PHP Group. All rights reserved. +Copyright (c) 1999 - 2024 The PHP Group. All rights reserved. -------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without diff -Nru php8.2-8.2.7/ext/odbc/odbc.stub.php php8.2-8.2.18/ext/odbc/odbc.stub.php --- php8.2-8.2.7/ext/odbc/odbc.stub.php 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/odbc/odbc.stub.php 2024-04-09 18:46:23.000000000 +0000 @@ -334,7 +334,7 @@ #ifdef HAVE_SQLDATASOURCES /** @param resource $odbc */ -function odbc_data_source($odbc, int $fetch_type): array|false {} +function odbc_data_source($odbc, int $fetch_type): array|null|false {} #endif /** diff -Nru php8.2-8.2.7/ext/odbc/odbc_arginfo.h php8.2-8.2.18/ext/odbc/odbc_arginfo.h --- php8.2-8.2.7/ext/odbc/odbc_arginfo.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/odbc/odbc_arginfo.h 2024-04-09 18:46:23.000000000 +0000 @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: 64fbf9feef2929640a5e8615df6a085c504b7914 */ + * Stub hash: c7d91d30503ac09c8610ce86846c36123b87f62a */ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_odbc_close_all, 0, 0, IS_VOID, 0) ZEND_END_ARG_INFO() @@ -29,7 +29,7 @@ ZEND_END_ARG_INFO() #if defined(HAVE_SQLDATASOURCES) -ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_odbc_data_source, 0, 2, MAY_BE_ARRAY|MAY_BE_FALSE) +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_odbc_data_source, 0, 2, MAY_BE_ARRAY|MAY_BE_NULL|MAY_BE_FALSE) ZEND_ARG_INFO(0, odbc) ZEND_ARG_TYPE_INFO(0, fetch_type, IS_LONG, 0) ZEND_END_ARG_INFO() diff -Nru php8.2-8.2.7/ext/odbc/php_odbc.c php8.2-8.2.18/ext/odbc/php_odbc.c --- php8.2-8.2.7/ext/odbc/php_odbc.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/odbc/php_odbc.c 2024-04-09 18:46:23.000000000 +0000 @@ -168,7 +168,13 @@ 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)--; + } } /* }}} */ @@ -675,12 +681,14 @@ /* }}} */ /* {{{ _close_pconn_with_res */ -static int _close_pconn_with_res(zend_resource *le, zend_resource *res) +static int _close_pconn_with_res(zval *zv, void *p) { - if (le->type == le_pconn && (((odbc_connection *)(le->ptr))->res == res)){ - return 1; - }else{ - return 0; + zend_resource *le = Z_RES_P(zv); + zend_resource *res = (zend_resource*)p; + if (le->type == le_pconn && (((odbc_connection *)(le->ptr))->res == res)) { + return ZEND_HASH_APPLY_REMOVE; + } else { + return ZEND_HASH_APPLY_KEEP; } } /* }}} */ @@ -759,7 +767,7 @@ zend_list_close(p); /* Delete the persistent connection */ zend_hash_apply_with_argument(&EG(persistent_list), - (apply_func_arg_t) _close_pconn_with_res, (void *)p); + _close_pconn_with_res, (void *)p); } } } ZEND_HASH_FOREACH_END(); @@ -845,6 +853,7 @@ break; default: odbc_sql_error(conn, result->stmt, "SQLPrepare"); + efree(result); RETURN_FALSE; } @@ -2191,7 +2200,7 @@ } } - if (ODBCG(allow_persistent) <= 0) { + if (!ODBCG(allow_persistent)) { persistent = 0; } @@ -2329,7 +2338,7 @@ zend_list_close(Z_RES_P(pv_conn)); if(is_pconn){ - zend_hash_apply_with_argument(&EG(persistent_list), (apply_func_arg_t) _close_pconn_with_res, (void *) Z_RES_P(pv_conn)); + zend_hash_apply_with_argument(&EG(persistent_list), _close_pconn_with_res, (void *) Z_RES_P(pv_conn)); } } /* }}} */ diff -Nru php8.2-8.2.7/ext/odbc/tests/config.inc php8.2-8.2.18/ext/odbc/tests/config.inc --- php8.2-8.2.7/ext/odbc/tests/config.inc 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/odbc/tests/config.inc 2024-04-09 18:46:23.000000000 +0000 @@ -1,8 +1,5 @@ +--FILE-- + +--EXPECT-- +string(22) "PHP odbc_pconnect test" +string(22) "PHP odbc_pconnect test" +NULL diff -Nru php8.2-8.2.7/ext/opcache/ZendAccelerator.c php8.2-8.2.18/ext/opcache/ZendAccelerator.c --- php8.2-8.2.7/ext/opcache/ZendAccelerator.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/ZendAccelerator.c 2024-04-09 18:46:23.000000000 +0000 @@ -390,6 +390,10 @@ #ifdef ZEND_WIN32 accel_deactivate_sub(); #else + if (lock_file == -1) { + return; + } + struct flock mem_usage_unlock_all; mem_usage_unlock_all.l_type = F_UNLCK; @@ -1395,6 +1399,7 @@ { zend_string *realpath; zend_persistent_script *persistent_script; + zend_bool file_found = true; if (!ZCG(accelerator_enabled) || accelerator_shm_read_lock() != SUCCESS) { return FAILURE; @@ -1403,7 +1408,10 @@ realpath = accelerator_orig_zend_resolve_path(filename); if (!realpath) { - return FAILURE; + //file could have been deleted, but we still need to invalidate it. + //so instead of failing, just use the provided filename for the lookup + realpath = zend_string_copy(filename); + file_found = false; } if (ZCG(accel_directives).file_cache) { @@ -1428,12 +1436,13 @@ file_handle.opened_path = NULL; zend_destroy_file_handle(&file_handle); + file_found = true; } accelerator_shm_read_unlock(); zend_string_release_ex(realpath, 0); - return SUCCESS; + return file_found ? SUCCESS : FAILURE; } static zend_string* accel_new_interned_key(zend_string *key) @@ -2854,7 +2863,7 @@ zend_shared_alloc_lock(); if (ZCG(accel_directives).interned_strings_buffer) { - accel_shared_globals_size = ZCG(accel_directives).interned_strings_buffer * 1024 * 1024; + accel_shared_globals_size = sizeof(zend_accel_shared_globals) + ZCG(accel_directives).interned_strings_buffer * 1024 * 1024; } else { /* Make sure there is always at least one interned string hash slot, * so the table can be queried unconditionally. */ @@ -2863,10 +2872,10 @@ accel_shared_globals = zend_shared_alloc(accel_shared_globals_size); if (!accel_shared_globals) { + zend_shared_alloc_unlock(); zend_accel_error_noreturn(ACCEL_LOG_FATAL, "Insufficient shared memory for interned strings buffer! (tried to allocate %zu bytes)", accel_shared_globals_size); - zend_shared_alloc_unlock(); return FAILURE; } memset(accel_shared_globals, 0, sizeof(zend_accel_shared_globals)); @@ -2895,7 +2904,7 @@ ZCSG(interned_strings).top = ZCSG(interned_strings).start; ZCSG(interned_strings).end = - (zend_string*)((char*)accel_shared_globals + + (zend_string*)((char*)(accel_shared_globals + 1) + /* table data is stored after accel_shared_globals */ ZCG(accel_directives).interned_strings_buffer * 1024 * 1024); ZCSG(interned_strings).saved_top = NULL; @@ -3269,6 +3278,11 @@ || zend_jit_startup(ZSMMG(reserved), jit_size, reattached) != SUCCESS) { JIT_G(enabled) = false; JIT_G(on) = false; + /* The JIT is implicitly disabled with opcache.jit_buffer_size=0, so we don't want to + * emit a warning here. */ + if (JIT_G(buffer_size) != 0) { + zend_accel_error(ACCEL_LOG_WARNING, "Could not enable JIT!"); + } } } #endif @@ -4740,6 +4754,8 @@ SIGG(check) = false; #endif php_request_shutdown(NULL); /* calls zend_shared_alloc_unlock(); */ + EG(class_table) = NULL; + EG(function_table) = NULL; PG(report_memleaks) = orig_report_memleaks; } else { zend_shared_alloc_unlock(); diff -Nru php8.2-8.2.7/ext/opcache/config.m4 php8.2-8.2.18/ext/opcache/config.m4 --- php8.2-8.2.7/ext/opcache/config.m4 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/config.m4 2024-04-09 18:46:23.000000000 +0000 @@ -29,13 +29,17 @@ if test "$PHP_OPCACHE_JIT" = "yes"; then case $host_cpu in - i[[34567]]86*|x86*|aarch64) + i[[34567]]86*|x86*|aarch64|amd64) ;; *) AC_MSG_WARN([JIT not supported by host architecture]) PHP_OPCACHE_JIT=no ;; esac + if test "$host_vendor" = "apple" && test "$host_cpu" = "aarch64" && test "$PHP_THREAD_SAFETY" = "yes"; then + AC_MSG_WARN([JIT not supported on Apple Silicon with ZTS]) + PHP_OPCACHE_JIT=no + fi fi if test "$PHP_OPCACHE_JIT" = "yes"; then @@ -48,7 +52,8 @@ DASM_FLAGS="-D X64APPLE=1 -D X64=1" DASM_ARCH="x86" ;; - x86_64*) + *x86_64*|amd64-*-freebsd*) + IR_TARGET=IR_TARGET_X64 DASM_FLAGS="-D X64=1" DASM_ARCH="x86" ;; @@ -116,7 +121,7 @@ #include #include -int main() { +int main(void) { pid_t pid; int status; int ipc_id; @@ -195,7 +200,7 @@ # define MAP_FAILED ((void*)-1) #endif -int main() { +int main(void) { pid_t pid; int status; char *shm; @@ -257,7 +262,7 @@ # define MAP_FAILED ((void*)-1) #endif -int main() { +int main(void) { pid_t pid; int status; int fd; diff -Nru php8.2-8.2.7/ext/opcache/jit/zend_jit.c php8.2-8.2.18/ext/opcache/jit/zend_jit.c --- php8.2-8.2.7/ext/opcache/jit/zend_jit.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/jit/zend_jit.c 2024-04-09 18:46:23.000000000 +0000 @@ -655,7 +655,11 @@ return info; } else if (on_this) { if (ce == info->ce) { - return info; + if (ce == op_array->scope) { + return info; + } else { + return NULL; + } } else if ((info->flags & ZEND_ACC_PROTECTED) && instanceof_function_slow(ce, info->ce)) { return info; @@ -5036,7 +5040,7 @@ ZEND_EXT_API void zend_jit_shutdown(void) { - if (JIT_G(debug) & ZEND_JIT_DEBUG_SIZE) { + if (JIT_G(debug) & ZEND_JIT_DEBUG_SIZE && dasm_ptr != NULL) { fprintf(stderr, "\nJIT memory usage: %td\n", (ptrdiff_t)((char*)*dasm_ptr - (char*)dasm_buf)); } @@ -5092,7 +5096,7 @@ ZEND_EXT_API void zend_jit_deactivate(void) { - if (zend_jit_profile_counter) { + if (zend_jit_profile_counter && !CG(unclean_shutdown)) { zend_class_entry *ce; zend_shared_alloc_lock(); @@ -5110,9 +5114,9 @@ zend_jit_protect(); SHM_PROTECT(); zend_shared_alloc_unlock(); - - zend_jit_profile_counter = 0; } + + zend_jit_profile_counter = 0; } static void zend_jit_restart_preloaded_op_array(zend_op_array *op_array) diff -Nru php8.2-8.2.7/ext/opcache/jit/zend_jit_arm64.dasc php8.2-8.2.18/ext/opcache/jit/zend_jit_arm64.dasc --- php8.2-8.2.7/ext/opcache/jit/zend_jit_arm64.dasc 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/jit/zend_jit_arm64.dasc 2024-04-09 18:46:23.000000000 +0000 @@ -2023,39 +2023,10 @@ static int zend_jit_undefined_offset_stub(dasm_State **Dst) { |->undefined_offset: -#ifdef __APPLE__ - | stp x29, x30, [sp, # -16]! - | mov x29, sp -#endif - | //sub r4, 8 - | ldr REG0, EX->opline - | ldr REG1w, OP:REG0->result.var - | add REG1, REG1, FP - | SET_Z_TYPE_INFO REG1, IS_NULL, TMP1w - | ldrb REG1w, OP:REG0->op2_type - | cmp REG1w, #IS_CONST - | bne >2 - | ldrsw REG1, OP:REG0->op2.constant - | add REG0, REG0, REG1 - | b >3 - |2: - | ldr REG0w, OP:REG0->op2.var - | add REG0, REG0, FP - |3: - | mov CARG1, #E_WARNING - | LOAD_ADDR CARG2, "Undefined array key " ZEND_LONG_FMT - | ldr CARG3, [REG0] -#ifdef __APPLE__ - | str CARG3, [sp, #-16]! - | EXT_CALL zend_error, REG0 - | add sp, sp, #16 - | ldp x29, x30, [sp], #16 - | ret -#else - | EXT_JMP zend_error, REG0 // tail call - | //add r4, 8 // stack alignment - | //ret -#endif + || if (!GCC_GLOBAL_REGS) { + | mov FCARG1x, FP + || } + | EXT_JMP zend_jit_undefined_long_key, REG0 return 1; } @@ -2072,40 +2043,10 @@ static int zend_jit_undefined_index_stub(dasm_State **Dst) { |->undefined_index: -#ifdef __APPLE__ - | stp x29, x30, [sp, # -16]! - | mov x29, sp -#endif - | //sub r4, 8 - | ldr REG0, EX->opline - | ldr REG1w, OP:REG0->result.var - | add REG1, REG1, FP - | SET_Z_TYPE_INFO REG1, IS_NULL, TMP1w - | ldrb REG1w, OP:REG0->op2_type - | cmp REG1w, #IS_CONST - | bne >2 - | ldrsw REG1, OP:REG0->op2.constant - | add REG0, REG0, REG1 - | b >3 - |2: - | ldr REG0w, OP:REG0->op2.var - | add REG0, REG0, FP - |3: - | mov CARG1, #E_WARNING - | LOAD_ADDR CARG2, "Undefined array key \"%s\"" - | ldr CARG3, [REG0] - | add CARG3, CARG3, #offsetof(zend_string, val) -#ifdef __APPLE__ - | str CARG3, [sp, #-16]! - | EXT_CALL zend_error, REG0 - | add sp, sp, #16 - | ldp x29, x30, [sp], #16 - | ret -#else - | EXT_JMP zend_error, REG0 // tail call - | //add r4, 8 - | //ret -#endif + || if (!GCC_GLOBAL_REGS) { + | mov FCARG1x, FP + || } + | EXT_JMP zend_jit_undefined_string_key, REG0 return 1; } @@ -11825,7 +11766,7 @@ | 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 @@ -11852,12 +11793,12 @@ | 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 @@ -14428,8 +14369,6 @@ if (exit_addr) { if (exit_opcode == ZEND_JMP) { | b &exit_addr - } else { - | b >3 } } else { | b =>target_label @@ -14887,6 +14826,7 @@ if (opline->op1_type != IS_VAR || (opline-1)->result_type != IS_VAR || (opline-1)->result.var != opline->op1.var || + (opline-1)->op1_type == IS_VAR || (opline-1)->op2_type == IS_VAR || (opline-1)->op2_type == IS_TMP_VAR) { | GET_ZVAL_PTR FCARG1x, var_addr, TMP1 diff -Nru php8.2-8.2.7/ext/opcache/jit/zend_jit_disasm.c php8.2-8.2.18/ext/opcache/jit/zend_jit_disasm.c --- php8.2-8.2.7/ext/opcache/jit/zend_jit_disasm.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/jit/zend_jit_disasm.c 2024-04-09 18:46:23.000000000 +0000 @@ -655,6 +655,8 @@ REGISTER_HELPER(zend_jit_vm_stack_free_args_helper); REGISTER_HELPER(zend_jit_copy_extra_args_helper); REGISTER_HELPER(zend_jit_deprecated_helper); + REGISTER_HELPER(zend_jit_undefined_long_key); + REGISTER_HELPER(zend_jit_undefined_string_key); REGISTER_HELPER(zend_jit_assign_const_to_typed_ref); REGISTER_HELPER(zend_jit_assign_tmp_to_typed_ref); REGISTER_HELPER(zend_jit_assign_var_to_typed_ref); diff -Nru php8.2-8.2.7/ext/opcache/jit/zend_jit_gdb.c php8.2-8.2.18/ext/opcache/jit/zend_jit_gdb.c --- php8.2-8.2.7/ext/opcache/jit/zend_jit_gdb.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/jit/zend_jit_gdb.c 2024-04-09 18:46:23.000000000 +0000 @@ -397,6 +397,7 @@ DUV(DW_FORM_data4); DB(0); DB(0); + DB(0); ctx->p = p; } diff -Nru php8.2-8.2.7/ext/opcache/jit/zend_jit_helpers.c php8.2-8.2.18/ext/opcache/jit/zend_jit_helpers.c --- php8.2-8.2.7/ext/opcache/jit/zend_jit_helpers.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/jit/zend_jit_helpers.c 2024-04-09 18:46:23.000000000 +0000 @@ -1106,6 +1106,9 @@ } else { offset = Z_LVAL_P(dim); } + if (UNEXPECTED(EG(exception) != NULL)) { + return ZSTR_EMPTY_ALLOC(); + } return zend_jit_fetch_dim_str_offset(str, offset); } @@ -1135,7 +1138,8 @@ goto try_string_offset; default: zend_jit_illegal_string_offset(dim); - break; + ZVAL_NULL(result); + return; } offset = zval_get_long_func(dim, /* is_strict */ false); @@ -1587,7 +1591,9 @@ } zval_ptr_dtor(&res); } else { - zend_error(E_WARNING, "Attempt to assign property of non-object"); + /* Exception is thrown in this case */ + GC_DELREF(obj); + return; } if (UNEXPECTED(GC_DELREF(obj) == 0)) { zend_objects_store_del(obj); @@ -1933,7 +1939,7 @@ if (EXPECTED(retval)) { intptr_t idx = (char*)retval - (char*)zobj->properties->arData; CACHE_PTR_EX(cache_slot + 1, (void*)ZEND_ENCODE_DYN_PROP_OFFSET(idx)); - ZVAL_COPY(result, retval); + ZVAL_COPY_DEREF(result, retval); return; } } diff -Nru php8.2-8.2.7/ext/opcache/jit/zend_jit_internal.h php8.2-8.2.18/ext/opcache/jit/zend_jit_internal.h --- php8.2-8.2.7/ext/opcache/jit/zend_jit_internal.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/jit/zend_jit_internal.h 2024-04-09 18:46:23.000000000 +0000 @@ -328,6 +328,8 @@ void ZEND_FASTCALL zend_jit_copy_extra_args_helper(EXECUTE_DATA_D); bool ZEND_FASTCALL zend_jit_deprecated_helper(OPLINE_D); +void ZEND_FASTCALL zend_jit_undefined_long_key(EXECUTE_DATA_D); +void ZEND_FASTCALL zend_jit_undefined_string_key(EXECUTE_DATA_D); zend_constant* ZEND_FASTCALL zend_jit_get_constant(const zval *key, uint32_t flags); zend_constant* ZEND_FASTCALL zend_jit_check_constant(const zval *key); @@ -602,6 +604,8 @@ uint32_t call_level; uint32_t _info; int used_stack; + int old_checked_stack; + int old_peek_checked_stack; zend_jit_trace_stack stack[1]; }; diff -Nru php8.2-8.2.7/ext/opcache/jit/zend_jit_trace.c php8.2-8.2.18/ext/opcache/jit/zend_jit_trace.c --- php8.2-8.2.7/ext/opcache/jit/zend_jit_trace.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/jit/zend_jit_trace.c 2024-04-09 18:46:23.000000000 +0000 @@ -1062,6 +1062,7 @@ case ZEND_DO_ICALL: case ZEND_DO_UCALL: case ZEND_DO_FCALL_BY_NAME: + case ZEND_CALLABLE_CONVERT: call_level++; break; } @@ -2723,15 +2724,15 @@ ZEND_ASSERT(ssa->var_info != NULL); start = do_alloca(sizeof(int) * ssa->vars_count * 2 + - ZEND_MM_ALIGNED_SIZE(sizeof(uint8_t) * ssa->vars_count) + - ZEND_MM_ALIGNED_SIZE(sizeof(zend_op_array*) * ssa->vars_count), + ZEND_MM_ALIGNED_SIZE(sizeof(uint8_t) * ssa->vars_count), use_heap); if (!start) { return NULL; } end = start + ssa->vars_count; flags = (uint8_t*)(end + ssa->vars_count); - vars_op_array = (const zend_op_array**)(flags + ZEND_MM_ALIGNED_SIZE(sizeof(uint8_t) * ssa->vars_count)); + checkpoint = zend_arena_checkpoint(CG(arena)); + vars_op_array = zend_arena_calloc(&CG(arena), ssa->vars_count, sizeof(zend_op_array*)); memset(start, -1, sizeof(int) * ssa->vars_count * 2); memset(flags, 0, sizeof(uint8_t) * ssa->vars_count); @@ -3126,10 +3127,10 @@ if (!count) { free_alloca(start, use_heap); + zend_arena_release(&CG(arena), checkpoint); return NULL; } - checkpoint = zend_arena_checkpoint(CG(arena)); intervals = zend_arena_calloc(&CG(arena), ssa->vars_count, sizeof(zend_lifetime_interval)); memset(intervals, 0, sizeof(zend_lifetime_interval*) * ssa->vars_count); list = zend_arena_alloc(&CG(arena), sizeof(zend_lifetime_interval) * count); @@ -4945,14 +4946,11 @@ } op2_addr = OP2_REG_ADDR(); op2_info = OP2_INFO(); - if (ra - && ssa_op->op2_def >= 0 - && (!ssa->vars[ssa_op->op2_def].no_val - || (zend_jit_trace_type_to_info(STACK_MEM_TYPE(stack, EX_VAR_TO_NUM(opline->op2.var))) & MAY_BE_ANY) != - (op2_info & MAY_BE_ANY))) { - op2_def_addr = OP2_DEF_REG_ADDR(); - } else { + + if (ssa_op->op2_def < 0 || (Z_MODE(op2_addr) == IS_REG && ssa->vars[ssa_op->op2_def].no_val)) { op2_def_addr = op2_addr; + } else { + op2_def_addr = OP2_DEF_REG_ADDR(); } CHECK_OP2_TRACE_TYPE(); op1_info = OP1_INFO(); @@ -5035,6 +5033,21 @@ zend_may_throw_ex(opline, ssa_op, op_array, ssa, op1_info, op2_info))) { goto jit_failure; } + if (ssa_op->op2_def > 0 + && Z_MODE(op2_addr) == IS_REG + && ssa->vars[ssa_op->op2_def].no_val) { + uint8_t type = (op2_info & MAY_BE_LONG) ? IS_LONG : IS_DOUBLE; + uint32_t var_num = EX_VAR_TO_NUM(opline->op2.var); + + if (STACK_MEM_TYPE(stack, var_num) != type + && ssa->vars[ssa_op->op2_def].use_chain < 0 + && !ssa->vars[ssa_op->op2_def].phi_use_chain) { + if (!zend_jit_store_var_type(&dasm_state, var_num, type)) { + return 0; + } + SET_STACK_TYPE(stack, var_num, type, 1); + } + } if (opline->op2_type == IS_CV && ssa_op->op2_def >= 0 && ssa->vars[ssa_op->op2_def].alias == NO_ALIAS) { @@ -5048,19 +5061,16 @@ ZEND_FALLTHROUGH; case ZEND_QM_ASSIGN: op1_addr = OP1_REG_ADDR(); - if (ra - && ssa_op->op1_def >= 0 - && !ssa->vars[ssa_op->op1_def].no_val) { - op1_def_addr = OP1_DEF_REG_ADDR(); - } else { + if (ssa_op->op1_def < 0 || (Z_MODE(op1_addr) == IS_REG && ssa->vars[ssa_op->op1_def].no_val)) { op1_def_addr = op1_addr; + } else { + op1_def_addr = OP1_DEF_REG_ADDR(); } op1_info = OP1_INFO(); CHECK_OP1_TRACE_TYPE(); res_info = RES_INFO(); res_use_info = zend_jit_trace_type_to_info( - STACK_MEM_TYPE(stack, EX_VAR_TO_NUM(opline->result.var))) - & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE); + STACK_MEM_TYPE(stack, EX_VAR_TO_NUM(opline->result.var))); res_addr = RES_REG_ADDR(); if (Z_MODE(res_addr) != IS_REG && STACK_TYPE(stack, EX_VAR_TO_NUM(opline->result.var)) != @@ -5073,6 +5083,21 @@ res_use_info, res_info, res_addr)) { goto jit_failure; } + if (ssa_op->op1_def > 0 + && Z_MODE(op1_addr) == IS_REG + && ssa->vars[ssa_op->op1_def].no_val) { + uint8_t type = (op1_info & MAY_BE_LONG) ? IS_LONG : IS_DOUBLE; + uint32_t var_num = EX_VAR_TO_NUM(opline->op1.var); + + if (STACK_MEM_TYPE(stack, var_num) != type + && ssa->vars[ssa_op->op1_def].use_chain < 0 + && !ssa->vars[ssa_op->op1_def].phi_use_chain) { + if (!zend_jit_store_var_type(&dasm_state, var_num, type)) { + return 0; + } + SET_STACK_TYPE(stack, var_num, type, 1); + } + } if (opline->op1_type == IS_CV && ssa_op->op1_def >= 0 && ssa->vars[ssa_op->op1_def].alias == NO_ALIAS) { @@ -5144,12 +5169,10 @@ break; } op1_addr = OP1_REG_ADDR(); - if (ra - && ssa_op->op1_def >= 0 - && !ssa->vars[ssa_op->op1_def].no_val) { - op1_def_addr = OP1_DEF_REG_ADDR(); - } else { + if (ssa_op->op1_def < 0 || (Z_MODE(op1_addr) == IS_REG && ssa->vars[ssa_op->op1_def].no_val)) { op1_def_addr = op1_addr; + } else { + op1_def_addr = OP1_DEF_REG_ADDR(); } op1_info = OP1_INFO(); CHECK_OP1_TRACE_TYPE(); @@ -5157,6 +5180,21 @@ op1_info, op1_addr, op1_def_addr)) { goto jit_failure; } + if (ssa_op->op1_def > 0 + && Z_MODE(op1_addr) == IS_REG + && ssa->vars[ssa_op->op1_def].no_val) { + uint8_t type = (op1_info & MAY_BE_LONG) ? IS_LONG : IS_DOUBLE; + uint32_t var_num = EX_VAR_TO_NUM(opline->op1.var); + + if (STACK_MEM_TYPE(stack, var_num) != type + && ssa->vars[ssa_op->op1_def].use_chain < 0 + && !ssa->vars[ssa_op->op1_def].phi_use_chain) { + if (!zend_jit_store_var_type(&dasm_state, var_num, type)) { + return 0; + } + SET_STACK_TYPE(stack, var_num, type, 1); + } + } if (opline->op1_type == IS_CV && ssa_op->op1_def >= 0 && ssa->vars[ssa_op->op1_def].alias == NO_ALIAS) { @@ -6202,6 +6240,7 @@ case ZEND_DO_ICALL: case ZEND_DO_UCALL: case ZEND_DO_FCALL_BY_NAME: + case ZEND_CALLABLE_CONVERT: frame->call_level--; } @@ -6297,7 +6336,7 @@ } } if (ssa_op->op1_def >= 0 - && (opline->opcode != ZEND_QM_ASSIGN + && ((opline->opcode != ZEND_QM_ASSIGN && opline->opcode != ZEND_CAST) || opline->result_type != IS_CV || opline->result.var != opline->op1.var)) { zend_uchar type = IS_UNKNOWN; @@ -6326,7 +6365,14 @@ SET_STACK_TYPE(stack, EX_VAR_TO_NUM(opline->op1.var), type, (gen_handler || type == IS_UNKNOWN || !ra || (!ra[ssa_op->op1_def] && - (opline->opcode == ZEND_ASSIGN || !ssa->vars[ssa_op->op1_def].no_val)))); + !(ssa->vars[ssa_op->op1_def].no_val && + Z_MODE(OP1_REG_ADDR()) == IS_REG && + (opline->opcode == ZEND_QM_ASSIGN || + opline->opcode == ZEND_SEND_VAR || + opline->opcode == ZEND_SEND_VAR_EX || + opline->opcode == ZEND_SEND_VAR_NO_REF || + opline->opcode == ZEND_SEND_VAR_NO_REF_EX || + opline->opcode == ZEND_SEND_FUNC_ARG))))); if (type != IS_UNKNOWN) { ssa->var_info[ssa_op->op1_def].type &= ~MAY_BE_GUARD; if (ra && ra[ssa_op->op1_def]) { @@ -6372,7 +6418,10 @@ } SET_STACK_TYPE(stack, EX_VAR_TO_NUM(opline->op2.var), type, (gen_handler || type == IS_UNKNOWN || !ra || - (!ra[ssa_op->op2_def] /*&& !ssa->vars[ssa_op->op2_def].no_val*/))); + (!ra[ssa_op->op2_def] && + !(ssa->vars[ssa_op->op2_def].no_val && + Z_MODE(OP2_REG_ADDR()) == IS_REG && + opline->opcode == ZEND_ASSIGN)))); if (type != IS_UNKNOWN) { ssa->var_info[ssa_op->op2_def].type &= ~MAY_BE_GUARD; if (ra && ra[ssa_op->op2_def]) { @@ -6578,7 +6627,8 @@ op_array_ssa = &jit_extension->func_info.ssa; top = frame; if (frame->prev) { - checked_stack -= frame->used_stack; + checked_stack = frame->old_checked_stack; + peek_checked_stack = frame->old_peek_checked_stack; frame = frame->prev; stack = frame->stack; ZEND_ASSERT(&frame->func->op_array == op_array); @@ -6751,24 +6801,40 @@ } } } + call->old_checked_stack = checked_stack; + call->old_peek_checked_stack = peek_checked_stack; if (p->info & ZEND_JIT_TRACE_FAKE_INIT_CALL) { frame->call_level++; - call->used_stack = 0; + call->used_stack = checked_stack = peek_checked_stack = 0; } else { if (p->func) { call->used_stack = zend_vm_calc_used_stack(init_opline->extended_value, (zend_function*)p->func); } else { call->used_stack = (ZEND_CALL_FRAME_SLOT + init_opline->extended_value) * sizeof(zval); } - checked_stack += call->used_stack; - if (checked_stack > peek_checked_stack) { - peek_checked_stack = checked_stack; + switch (init_opline->opcode) { + case ZEND_INIT_FCALL: + case ZEND_INIT_FCALL_BY_NAME: + case ZEND_INIT_NS_FCALL_BY_NAME: + case ZEND_INIT_METHOD_CALL: + case ZEND_INIT_DYNAMIC_CALL: + //case ZEND_INIT_STATIC_METHOD_CALL: + //case ZEND_INIT_USER_CALL: + //case ZEND_NEW: + checked_stack += call->used_stack; + if (checked_stack > peek_checked_stack) { + peek_checked_stack = checked_stack; + } + break; + default: + checked_stack = peek_checked_stack = 0; } } } else if (p->op == ZEND_JIT_TRACE_DO_ICALL) { call = frame->call; if (call) { - checked_stack -= call->used_stack; + checked_stack = call->old_checked_stack; + peek_checked_stack = call->old_peek_checked_stack; top = call; frame->call = call->prev; } @@ -6823,7 +6889,8 @@ if (!(t->flags & ZEND_JIT_TRACE_USES_INITIAL_IP) || (ra && zend_jit_trace_stack_needs_deoptimization(stack, op_array->last_var + op_array->T))) { - uint32_t exit_point = zend_jit_trace_get_exit_point(opline, ZEND_JIT_EXIT_TO_VM); + /* Deoptimize to the first instruction of the loop */ + uint32_t exit_point = zend_jit_trace_get_exit_point(trace_buffer[1].opline, ZEND_JIT_EXIT_TO_VM); timeout_exit_addr = zend_jit_trace_get_exit_addr(exit_point); if (!timeout_exit_addr) { @@ -6838,9 +6905,30 @@ } } else if (p->stop == ZEND_JIT_TRACE_STOP_LINK || p->stop == ZEND_JIT_TRACE_STOP_INTERPRETER) { - if (!zend_jit_trace_deoptimization(&dasm_state, 0, NULL, - stack, op_array->last_var + op_array->T, NULL, NULL, NULL, 0)) { - goto jit_failure; + if (ra + && (p-1)->op != ZEND_JIT_TRACE_ENTER + && (p-1)->op != ZEND_JIT_TRACE_BACK + && opline->opcode != ZEND_DO_UCALL + && opline->opcode != ZEND_DO_FCALL + && opline->opcode != ZEND_DO_FCALL_BY_NAME + && opline->opcode != ZEND_INCLUDE_OR_EVAL) { + if (!zend_jit_trace_deoptimization(&dasm_state, 0, NULL, + stack, op_array->last_var + op_array->T, NULL, NULL, NULL, 0)) { + goto jit_failure; + } + for (i = 0; i < op_array->last_var; i++) { + int8_t reg = STACK_REG(stack, i); + uint8_t type = STACK_TYPE(stack, i); + + if (reg == ZREG_NONE + && type != IS_UNKNOWN + && type != STACK_MEM_TYPE(stack, i)) { + if (!zend_jit_store_var_type(&dasm_state, i, type)) { + return 0; + } + SET_STACK_TYPE(stack, i, type, 1); + } + } } if (p->stop == ZEND_JIT_TRACE_STOP_LINK) { const void *timeout_exit_addr = NULL; @@ -7175,8 +7263,6 @@ uint32_t i; jit_extension = (zend_jit_op_array_trace_extension*)ZEND_FUNC_INFO(op_array); - zend_shared_alloc_lock(); - SHM_UNPROTECT(); for (i = 0; i < op_array->last; i++) { /* Opline with Jit-ed code handler is skipped. */ if (jit_extension->trace_info[i].trace_flags & @@ -7188,8 +7274,6 @@ op_array->opcodes[i].handler = jit_extension->trace_info[i].orig_handler; } } - SHM_PROTECT(); - zend_shared_alloc_unlock(); } /* Get the tracing op_array. */ @@ -7228,6 +7312,9 @@ /* Get all scripts which are accelerated by JIT */ static void zend_jit_stop_counter_handlers(void) { + zend_shared_alloc_lock(); + /* mprotect has an extreme overhead, avoid calls to it for every function. */ + SHM_UNPROTECT(); for (uint32_t i = 0; i < ZCSG(hash).max_num_entries; i++) { zend_accel_hash_entry *cache_entry; for (cache_entry = ZCSG(hash).hash_table[i]; cache_entry; cache_entry = cache_entry->next) { @@ -7237,6 +7324,8 @@ zend_jit_stop_persistent_script(script); } } + SHM_PROTECT(); + zend_shared_alloc_unlock(); } static void zend_jit_blacklist_root_trace(const zend_op *opline, size_t offset) diff -Nru php8.2-8.2.7/ext/opcache/jit/zend_jit_vm_helpers.c php8.2-8.2.18/ext/opcache/jit/zend_jit_vm_helpers.c --- php8.2-8.2.7/ext/opcache/jit/zend_jit_vm_helpers.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/jit/zend_jit_vm_helpers.c 2024-04-09 18:46:23.000000000 +0000 @@ -199,6 +199,43 @@ return 1; } +void ZEND_FASTCALL zend_jit_undefined_long_key(EXECUTE_DATA_D) +{ + const zend_op *opline = EX(opline); + zval *result = EX_VAR(opline->result.var); + zval *dim; + + if (opline->op2_type == IS_CONST) { + dim = RT_CONSTANT(opline, opline->op2); + } else { + dim = EX_VAR(opline->op2.var); + } + 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) +{ + const zend_op *opline = EX(opline); + zval *result = EX_VAR(opline->result.var); + zval *dim; + zend_ulong lval; + + if (opline->op2_type == IS_CONST) { + dim = RT_CONSTANT(opline, opline->op2); + } else { + dim = EX_VAR(opline->op2.var); + } + ZEND_ASSERT(Z_TYPE_P(dim) == IS_STRING); + if (ZEND_HANDLE_NUMERIC(Z_STR_P(dim), lval)) { + zend_error(E_WARNING, "Undefined array key " ZEND_LONG_FMT, lval); + } 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) { zend_op_array *op_array = (zend_op_array*)EX(func); @@ -606,6 +643,16 @@ return ZEND_JIT_TRACE_STOP_EXCEPTION; } + trace_flags = ZEND_OP_TRACE_INFO(opline, offset)->trace_flags; + if (trace_flags & ZEND_JIT_TRACE_UNSUPPORTED) { + TRACE_END(ZEND_JIT_TRACE_END, ZEND_JIT_TRACE_STOP_NOT_SUPPORTED, opline); +#ifdef HAVE_GCC_GLOBAL_REGS + execute_data = save_execute_data; + opline = save_opline; +#endif + return ZEND_JIT_TRACE_STOP_NOT_SUPPORTED; + } + if (prev_call) { int ret = zend_jit_trace_record_fake_init_call(prev_call, trace_buffer, idx, is_megamorphic); if (ret < 0) { diff -Nru php8.2-8.2.7/ext/opcache/jit/zend_jit_x86.dasc php8.2-8.2.18/ext/opcache/jit/zend_jit_x86.dasc --- php8.2-8.2.7/ext/opcache/jit/zend_jit_x86.dasc 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/jit/zend_jit_x86.dasc 2024-04-09 18:46:23.000000000 +0000 @@ -1966,50 +1966,10 @@ static int zend_jit_undefined_offset_stub(dasm_State **Dst) { |->undefined_offset: - |.if X64WIN - | sub r4, 0x28 - |.elif X64 - | sub r4, 8 - |.else - | sub r4, 12 - |.endif - | mov r0, EX->opline - | mov ecx, dword OP:r0->result.var - | cmp byte OP:r0->op2_type, IS_CONST - | SET_Z_TYPE_INFO FP + r1, IS_NULL - | jne >2 - |.if X64 - | movsxd r1, dword OP:r0->op2.constant - | add r0, r1 - |.else - | mov r0, aword OP:r0->op2.zv - |.endif - | jmp >3 - |2: - | mov eax, dword OP:r0->op2.var - | add r0, FP - |3: - |.if X64WIN - | mov CARG1, E_WARNING - | LOAD_ADDR CARG2, "Undefined array key " ZEND_LONG_FMT - | mov CARG3, aword [r0] - | EXT_CALL zend_error, r0 - | add r4, 0x28 // stack alignment - |.elif X64 - | mov CARG1, E_WARNING - | LOAD_ADDR CARG2, "Undefined array key " ZEND_LONG_FMT - | mov CARG3, aword [r0] - | EXT_CALL zend_error, r0 - | add r4, 8 // stack alignment - |.else - | sub r4, 4 - | push aword [r0] - | push "Undefined array key " ZEND_LONG_FMT - | push E_WARNING - | EXT_CALL zend_error, r0 - | add r4, 28 - |.endif - | ret + || if (!GCC_GLOBAL_REGS) { + | mov FCARG1a, FP + || } + | EXT_JMP zend_jit_undefined_long_key, r0 return 1; } @@ -2026,54 +1986,10 @@ static int zend_jit_undefined_index_stub(dasm_State **Dst) { |->undefined_index: - |.if X64WIN - | sub r4, 0x28 - |.elif X64 - | sub r4, 8 - |.else - | sub r4, 12 - |.endif - | mov r0, EX->opline - | mov ecx, dword OP:r0->result.var - | cmp byte OP:r0->op2_type, IS_CONST - | SET_Z_TYPE_INFO FP + r1, IS_NULL - | jne >2 - |.if X64 - | movsxd r1, dword OP:r0->op2.constant - | add r0, r1 - |.else - | mov r0, aword OP:r0->op2.zv - |.endif - | jmp >3 - |2: - | mov eax, dword OP:r0->op2.var - | add r0, FP - |3: - |.if X64WIN - | mov CARG1, E_WARNING - | LOAD_ADDR CARG2, "Undefined array key \"%s\"" - | mov CARG3, aword [r0] - | add CARG3, offsetof(zend_string, val) - | EXT_CALL zend_error, r0 - | add r4, 0x28 - |.elif X64 - | mov CARG1, E_WARNING - | LOAD_ADDR CARG2, "Undefined array key \"%s\"" - | mov CARG3, aword [r0] - | add CARG3, offsetof(zend_string, val) - | EXT_CALL zend_error, r0 - | add r4, 8 - |.else - | sub r4, 4 - | mov r0, aword [r0] - | add r0, offsetof(zend_string, val) - | push r0 - | push "Undefined array key \"%s\"" - | push E_WARNING - | EXT_CALL zend_error, r0 - | add r4, 28 - |.endif - | ret + || if (!GCC_GLOBAL_REGS) { + | mov FCARG1a, FP + || } + | EXT_JMP zend_jit_undefined_string_key, r0 return 1; } @@ -2985,6 +2901,14 @@ asm ("movq _tsrm_ls_cache@gottpoff(%%rip),%0" : "=r" (ret)); tsrm_ls_cache_tcb_offset = ret; +#elif defined(__MUSL__) + size_t *ti; + + __asm__( + "leaq _tsrm_ls_cache@tlsgd(%%rip), %0\n" + : "=a" (ti)); + tsrm_tls_offset = ti[1]; + tsrm_tls_index = ti[0] * 8; #else size_t *ti; @@ -4391,6 +4315,7 @@ uint32_t res_use_info, int may_overflow) { + bool must_set_cflags = 0; bool same_ops = zend_jit_same_addr(op1_addr, op2_addr); zend_reg result_reg; zend_reg tmp_reg = ZREG_R0; @@ -4413,10 +4338,39 @@ tmp_reg = ZREG_FCARG1; } + if (may_overflow) { + must_set_cflags = 1; + } else { + const zend_op *next_opline = opline + 1; + + if (next_opline->opcode == ZEND_IS_EQUAL || + next_opline->opcode == ZEND_IS_NOT_EQUAL || + next_opline->opcode == ZEND_IS_SMALLER || + next_opline->opcode == ZEND_IS_SMALLER_OR_EQUAL || + next_opline->opcode == ZEND_CASE || + next_opline->opcode == ZEND_IS_IDENTICAL || + next_opline->opcode == ZEND_IS_NOT_IDENTICAL || + next_opline->opcode == ZEND_CASE_STRICT) { + if (next_opline->op1_type == IS_CONST + && Z_TYPE_P(RT_CONSTANT(next_opline, next_opline->op1)) == IS_LONG + && Z_LVAL_P(RT_CONSTANT(next_opline, next_opline->op1)) == 0 + && next_opline->op2_type == opline->result_type + && next_opline->op2.var == opline->result.var) { + must_set_cflags = 1; + } else if (next_opline->op2_type == IS_CONST + && Z_TYPE_P(RT_CONSTANT(next_opline, next_opline->op2)) == IS_LONG + && Z_LVAL_P(RT_CONSTANT(next_opline, next_opline->op2)) == 0 + && next_opline->op2_type == opline->result_type + && next_opline->op2.var == opline->result.var) { + must_set_cflags = 1; + } + } + } + if (opcode == ZEND_MUL && Z_MODE(op2_addr) == IS_CONST_ZVAL && Z_LVAL_P(Z_ZV(op2_addr)) == 2) { - if (Z_MODE(op1_addr) == IS_REG && !may_overflow) { + if (Z_MODE(op1_addr) == IS_REG && !must_set_cflags) { | lea Ra(result_reg), [Ra(Z_REG(op1_addr))+Ra(Z_REG(op1_addr))] } else { | GET_ZVAL_LVAL result_reg, op1_addr @@ -4424,7 +4378,7 @@ } } else if (opcode == ZEND_MUL && Z_MODE(op2_addr) == IS_CONST_ZVAL && - !may_overflow && + !must_set_cflags && Z_LVAL_P(Z_ZV(op2_addr)) > 0 && zend_long_is_power_of_two(Z_LVAL_P(Z_ZV(op2_addr)))) { | GET_ZVAL_LVAL result_reg, op1_addr @@ -4432,7 +4386,7 @@ } else if (opcode == ZEND_MUL && Z_MODE(op1_addr) == IS_CONST_ZVAL && Z_LVAL_P(Z_ZV(op1_addr)) == 2) { - if (Z_MODE(op2_addr) == IS_REG && !may_overflow) { + if (Z_MODE(op2_addr) == IS_REG && !must_set_cflags) { | lea Ra(result_reg), [Ra(Z_REG(op2_addr))+Ra(Z_REG(op2_addr))] } else { | GET_ZVAL_LVAL result_reg, op2_addr @@ -4440,7 +4394,7 @@ } } else if (opcode == ZEND_MUL && Z_MODE(op1_addr) == IS_CONST_ZVAL && - !may_overflow && + !must_set_cflags && Z_LVAL_P(Z_ZV(op1_addr)) > 0 && zend_long_is_power_of_two(Z_LVAL_P(Z_ZV(op1_addr)))) { | GET_ZVAL_LVAL result_reg, op2_addr @@ -4451,19 +4405,19 @@ | GET_ZVAL_LVAL result_reg, op1_addr | shr Ra(result_reg), zend_long_floor_log2(Z_LVAL_P(Z_ZV(op2_addr))) } else if (opcode == ZEND_ADD && - !may_overflow && + !must_set_cflags && Z_MODE(op1_addr) == IS_REG && Z_MODE(op2_addr) == IS_CONST_ZVAL && IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) { | lea Ra(result_reg), [Ra(Z_REG(op1_addr))+Z_LVAL_P(Z_ZV(op2_addr))] } else if (opcode == ZEND_ADD && - !may_overflow && + !must_set_cflags && Z_MODE(op2_addr) == IS_REG && Z_MODE(op1_addr) == IS_CONST_ZVAL && IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) { | lea Ra(result_reg), [Ra(Z_REG(op2_addr))+Z_LVAL_P(Z_ZV(op1_addr))] } else if (opcode == ZEND_SUB && - !may_overflow && + !must_set_cflags && Z_MODE(op1_addr) == IS_REG && Z_MODE(op2_addr) == IS_CONST_ZVAL && IS_SIGNED_32BIT(-Z_LVAL_P(Z_ZV(op2_addr)))) { @@ -4480,8 +4434,14 @@ } else { zend_reg tmp_reg; - if (Z_MODE(res_addr) == IS_MEM_ZVAL && Z_REG(res_addr) == ZREG_R0) { - tmp_reg = ZREG_R1; + if (Z_MODE(res_addr) == IS_MEM_ZVAL) { + if (Z_REG(res_addr) != ZREG_R0 && result_reg != ZREG_R0) { + tmp_reg = ZREG_R0; + } else if (Z_REG(res_addr) != ZREG_R1 && result_reg != ZREG_R1) { + tmp_reg = ZREG_R1; + } else { + tmp_reg = ZREG_R2; + } } else if (result_reg != ZREG_R0) { tmp_reg = ZREG_R0; } else { @@ -5141,7 +5101,7 @@ result_reg = ZREG_R0; } else { /* ASSIGN_DIM_OP */ - if (sizeof(void*) == 4 + if (ZREG_FCARG1 == ZREG_RCX && (opcode == ZEND_SL || opcode == ZEND_SR) && Z_MODE(op2_addr) != IS_CONST_ZVAL) { result_reg = ZREG_R2; @@ -5349,8 +5309,16 @@ } else { zend_reg tmp_reg; - if (Z_MODE(res_addr) == IS_MEM_ZVAL && Z_REG(res_addr) == ZREG_R0) { - tmp_reg = ZREG_R1; + if (Z_MODE(res_addr) == IS_MEM_ZVAL) { + if (Z_REG(res_addr) != ZREG_R0 && result_reg != ZREG_R0) { + tmp_reg = ZREG_R0; + } else if (Z_REG(res_addr) != ZREG_R1 && result_reg != ZREG_R1) { + tmp_reg = ZREG_R1; + } else { + tmp_reg = ZREG_R2; + } + } else if (Z_MODE(res_addr) == IS_MEM_ZVAL && Z_REG(res_addr) == ZREG_R1) { + tmp_reg = ZREG_R0; } else if (result_reg != ZREG_R0) { tmp_reg = ZREG_R0; } else { @@ -12576,7 +12544,7 @@ | 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 @@ -12603,12 +12571,12 @@ | 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 @@ -15366,8 +15334,6 @@ if (exit_addr) { if (exit_opcode == ZEND_JMP) { | jmp &exit_addr - } else { - | jmp >3 } } else { | jmp =>target_label @@ -15827,6 +15793,7 @@ if (opline->op1_type != IS_VAR || (opline-1)->result_type != IS_VAR || (opline-1)->result.var != opline->op1.var || + (opline-1)->op1_type == IS_VAR || (opline-1)->op2_type == IS_VAR || (opline-1)->op2_type == IS_TMP_VAR) { | GET_ZVAL_PTR FCARG1a, var_addr diff -Nru php8.2-8.2.7/ext/opcache/shared_alloc_mmap.c php8.2-8.2.18/ext/opcache/shared_alloc_mmap.c --- php8.2-8.2.7/ext/opcache/shared_alloc_mmap.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/shared_alloc_mmap.c 2024-04-09 18:46:23.000000000 +0000 @@ -45,11 +45,11 @@ # 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; - uintptr_t last_free_addr = 0; + uintptr_t last_free_addr = huge_page_size; uintptr_t last_candidate = (uintptr_t)MAP_FAILED; uintptr_t start, end, text_start = 0; #if defined(__linux__) @@ -62,6 +62,18 @@ } 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 @@ } } 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__) @@ -166,10 +180,7 @@ #ifdef PROT_MAX flags |= PROT_MAX(PROT_READ | PROT_WRITE | PROT_EXEC); #endif -#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 diff -Nru php8.2-8.2.7/ext/opcache/tests/bug68104.phpt php8.2-8.2.18/ext/opcache/tests/bug68104.phpt --- php8.2-8.2.7/ext/opcache/tests/bug68104.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/bug68104.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -8,6 +8,10 @@ disable_functions=dl --EXTENSIONS-- opcache +--SKIPIF-- + --FILE-- +--FILE-- +getCases()[0]->getValue()); +var_dump($x->getCases()[0]->getBackingValue()); +var_dump($x->getCase('FIRST')->getValue()); +var_dump($x->getCase('FIRST')->getBackingValue()); +?> +--EXPECT-- +enum(ExampleEnum::FIRST) +string(4) "AAAb" +enum(ExampleEnum::FIRST) +string(4) "AAAb" diff -Nru php8.2-8.2.7/ext/opcache/tests/gh11715.phpt php8.2-8.2.18/ext/opcache/tests/gh11715.phpt --- php8.2-8.2.7/ext/opcache/tests/gh11715.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/gh11715.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,19 @@ +--TEST-- +GH-11715 (opcache.interned_strings_buffer either has no effect or opcache_get_status() / phpinfo() is wrong) +--EXTENSIONS-- +opcache +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +opcache.interned_strings_buffer=16 +--FILE-- + +--EXPECT-- +int(16777216) +int(16777216) diff -Nru php8.2-8.2.7/ext/opcache/tests/gh13712.phpt php8.2-8.2.18/ext/opcache/tests/gh13712.phpt --- php8.2-8.2.7/ext/opcache/tests/gh13712.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/gh13712.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,23 @@ +--TEST-- +GH-13712 (Segmentation fault for enabled observers when calling trait method of internal trait when opcache is loaded) +--EXTENSIONS-- +opcache +zend_test +--INI-- +zend_test.observer.enabled=1 +opcache.enable=1 +opcache.enable_cli=1 +--FILE-- +testMethod()); +?> +--EXPECTF-- + + + +bool(true) diff -Nru php8.2-8.2.7/ext/opcache/tests/jit/assign_dim_017.phpt php8.2-8.2.18/ext/opcache/tests/jit/assign_dim_017.phpt --- php8.2-8.2.7/ext/opcache/tests/jit/assign_dim_017.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/jit/assign_dim_017.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,20 @@ +--TEST-- +JIT ASSIGN_DIM: 017 +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +opcache.file_update_protection=0 +opcache.jit_buffer_size=1M +--FILE-- + +DONE +--EXPECT-- +DONE \ No newline at end of file diff -Nru php8.2-8.2.7/ext/opcache/tests/jit/assign_static_prop_op_001.phpt php8.2-8.2.18/ext/opcache/tests/jit/assign_static_prop_op_001.phpt --- php8.2-8.2.7/ext/opcache/tests/jit/assign_static_prop_op_001.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/jit/assign_static_prop_op_001.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -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" diff -Nru php8.2-8.2.7/ext/opcache/tests/jit/bind_global_001.phpt php8.2-8.2.18/ext/opcache/tests/jit/bind_global_001.phpt --- php8.2-8.2.7/ext/opcache/tests/jit/bind_global_001.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/jit/bind_global_001.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -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 diff -Nru php8.2-8.2.7/ext/opcache/tests/jit/bug80426.phpt php8.2-8.2.18/ext/opcache/tests/jit/bug80426.phpt --- php8.2-8.2.7/ext/opcache/tests/jit/bug80426.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/jit/bug80426.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -9,7 +9,7 @@ opcache zend_test --SKIPIF-- - + --FILE-- >= $split; + if (!$overflow) { + $remaining -= $split; + $overflow = $split <= $remaining ? 0 : $split - $remaining; + + if (!$remaining) { + $i++; + $remaining = 31; + $overflow = 0; + } + } elseif (++$i != $len) { + $tempmask = (1 << $overflow) - 1; + $digit |= ($val[$i] & $tempmask) << $remaining; + $val[$i] >>= $overflow; + $remaining = 31 - $overflow; + $overflow = $split <= $remaining ? 0 : $split - $remaining; + } + + $vals[] = $digit; + } + + while ($vals[count($vals) - 1] == 0) { + unset($vals[count($vals) - 1]); + } + + return array_reverse($vals); +} +?> +--EXPECT-- +48207660 +48207660 +48207660 +48207660 diff -Nru php8.2-8.2.7/ext/opcache/tests/jit/gh12262.phpt php8.2-8.2.18/ext/opcache/tests/jit/gh12262.phpt --- php8.2-8.2.7/ext/opcache/tests/jit/gh12262.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/jit/gh12262.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,43 @@ +--TEST-- +GH-12262: Tracing JIT assertion crash when using phpstan +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +opcache.file_update_protection=0 +opcache.jit_hot_func=2 +--FILE-- +value === $type->value; + } +} +class C1 extends C { + use T; + public function __construct(private int $value) { + } +} +class C2 extends C { + use T; + public function __construct(private string $value) { + } +} +$x = new C1(1); +var_dump($x->equal($x)); +var_dump($x->equal($x)); +var_dump($x->equal($x)); + +$a = new C2("aaa"); +var_dump($a->equal($a)); +var_dump($a->equal($a)); +var_dump($a->equal($a)); +?> +--EXPECT-- +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) diff -Nru php8.2-8.2.7/ext/opcache/tests/jit/gh12380.phpt php8.2-8.2.18/ext/opcache/tests/jit/gh12380.phpt --- php8.2-8.2.7/ext/opcache/tests/jit/gh12380.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/jit/gh12380.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,62 @@ +--TEST-- +GH-12380: JIT+private array property access inside closure accesses private property in child class +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +opcache.file_update_protection=0 +opcache.jit_buffer_size=1M +opcache.protect_memory=1 +opcache.jit=tracing +opcache.jit_hot_loop=1 +opcache.jit_hot_func=1 +opcache.jit_hot_return=1 +opcache.jit_hot_side_exit=1 +--EXTENSIONS-- +opcache +--FILE-- +v); + (function (): void { + var_dump($this->v); + })(); + } +} + +final class b extends a { + private int $v = 0; +} +$a = new b; + +for ($i = 0; $i < 10; $i++) { + $a->test(); +} + +?> +--EXPECT-- +int(1) +int(1) +int(1) +int(1) +int(1) +int(1) +int(1) +int(1) +int(1) +int(1) +int(1) +int(1) +int(1) +int(1) +int(1) +int(1) +int(1) +int(1) +int(1) +int(1) diff -Nru php8.2-8.2.7/ext/opcache/tests/jit/gh12382.phpt php8.2-8.2.18/ext/opcache/tests/jit/gh12382.phpt --- php8.2-8.2.7/ext/opcache/tests/jit/gh12382.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/jit/gh12382.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,39 @@ +--TEST-- +GH-12382: JIT Index invalid or out of range error +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +--FILE-- += 0 + && 0 === $array[$y][$x - 1] + ) + ) { + } + } + } +} + +$matrix = SplFixedArray::fromArray( + array_map( + fn (array $arr): SplFixedArray => SplFixedArray::fromArray($arr), + [[1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, ], [1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, ], [1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, ], [1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, ], [1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, ], [1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, ], [1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, ], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ], [0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, ], [0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, ], [0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, ], [1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, ], [1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, ], [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, ], [1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, ], [1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, ], [1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, ], [1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, ], [1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, ], [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, ], [1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, ], ] + ) +); + +applyMaskPenaltyRule3($matrix); +applyMaskPenaltyRule3($matrix); +?> +DONE +--EXPECT-- +DONE diff -Nru php8.2-8.2.7/ext/opcache/tests/jit/gh12428.phpt php8.2-8.2.18/ext/opcache/tests/jit/gh12428.phpt --- php8.2-8.2.7/ext/opcache/tests/jit/gh12428.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/jit/gh12428.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,22 @@ +--TEST-- +GH-12428: Assertion with function/tracing JIT +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +--FILE-- +a; + $value->a ?? null; + } +} + +validate((object) []); +validate((object) []); +validate((object) ['b' => 0]); +?> +DONE +--EXPECT-- +DONE diff -Nru php8.2-8.2.7/ext/opcache/tests/jit/gh12481.phpt php8.2-8.2.18/ext/opcache/tests/jit/gh12481.phpt --- php8.2-8.2.7/ext/opcache/tests/jit/gh12481.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/jit/gh12481.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,23 @@ +--TEST-- +GH-12481: PHP crash on Windows 64-bit with JIT enabled +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +--SKIPIF-- + +--FILE-- + +DONE +--EXPECTF-- +DONE diff -Nru php8.2-8.2.7/ext/opcache/tests/jit/gh12482.phpt php8.2-8.2.18/ext/opcache/tests/jit/gh12482.phpt --- php8.2-8.2.7/ext/opcache/tests/jit/gh12482.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/jit/gh12482.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,57 @@ +--TEST-- +GH-12482: Invalid type inference +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +opcache.jit_hot_func=2 +--FILE-- +x = 42; + return $cloned; + } +} +class A { + use T; + public $a = 1; + public $b = 2; + public $c = 3; + public $x = 4; +} +class B { + use T; + public $x = 5; +} +$a = new A; +var_dump($a->foo()); +var_dump($a->foo()); +$b = new B; +var_dump($b->foo()); +?> +--EXPECT-- +object(A)#2 (4) { + ["a"]=> + int(1) + ["b"]=> + int(2) + ["c"]=> + int(3) + ["x"]=> + int(42) +} +object(A)#2 (4) { + ["a"]=> + int(1) + ["b"]=> + int(2) + ["c"]=> + int(3) + ["x"]=> + int(42) +} +object(B)#3 (1) { + ["x"]=> + int(42) +} diff -Nru php8.2-8.2.7/ext/opcache/tests/jit/gh12509.phpt php8.2-8.2.18/ext/opcache/tests/jit/gh12509.phpt --- php8.2-8.2.7/ext/opcache/tests/jit/gh12509.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/jit/gh12509.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,28 @@ +--TEST-- +GH-12509: JIT assertion when running php-parser tests +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +--FILE-- + +--EXPECT-- +array(3) { + [1]=> + int(1) + [2]=> + int(2) + [3]=> + int(3) +} \ No newline at end of file diff -Nru php8.2-8.2.7/ext/opcache/tests/jit/gh12512.phpt php8.2-8.2.18/ext/opcache/tests/jit/gh12512.phpt --- php8.2-8.2.7/ext/opcache/tests/jit/gh12512.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/jit/gh12512.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,41 @@ +--TEST-- +GH-12512: missing type store +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +--FILE-- + $val) { + if ($val === 2) { + unset($a[$key]); + } + } + return $ret; +} + +function foo($a, bool $b): bool { + if ($b) return true; + $n2 = count($a); + do { + $n = $n2; + $res = bar($a); + $n2 = count($a); + } while ($res === null && $n !== $n2); + + if ($res === null && $n === 0) { + return false; + } + return true; +} + +$a = [1,'a'=>5]; +bar($a); +foo([1,'a'=>5], true); +foo([1,'a'=>5], false); +foo([2,'a'=>5], false); +?> +DONE +--EXPECT-- +DONE diff -Nru php8.2-8.2.7/ext/opcache/tests/jit/gh12512_2.phpt php8.2-8.2.18/ext/opcache/tests/jit/gh12512_2.phpt --- php8.2-8.2.7/ext/opcache/tests/jit/gh12512_2.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/jit/gh12512_2.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,44 @@ +--TEST-- +GH-12512: missing type store +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +--FILE-- + $y; + } + if ($exit) { + return $n; + } + } + + return $n; +} +var_dump(foo([1,2,3,4,5,6,7,8], 1)); +var_dump(foo([1,2,3,4,5,6,7,8], 1)); +var_dump(foo([1,2,3,4,5,6,7,8], 0)); +?> +DONE +--EXPECT-- +int(0) +int(0) +int(0) +DONE diff -Nru php8.2-8.2.7/ext/opcache/tests/jit/gh12527.phpt php8.2-8.2.18/ext/opcache/tests/jit/gh12527.phpt --- php8.2-8.2.7/ext/opcache/tests/jit/gh12527.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/jit/gh12527.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,28 @@ +--TEST-- +GH-12527: Incorrect hash/packed inference +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +--FILE-- + $val) { + if (!$val) { + $a2["bad"][] = $key; + } else { + $a2[0][] = $key; + } + } + foreach ($a2 as $key => $val) { + var_dump($key); + } +} +foo([1, 2, 3]); +foo([1, 2, 3]); +foo([0, 0]); +?> +--EXPECT-- +int(0) +int(0) +string(3) "bad" diff -Nru php8.2-8.2.7/ext/opcache/tests/jit/gh12723-A.phpt php8.2-8.2.18/ext/opcache/tests/jit/gh12723-A.phpt --- php8.2-8.2.7/ext/opcache/tests/jit/gh12723-A.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/jit/gh12723-A.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,20 @@ +--TEST-- +GH-12723: Function JIT emits "Uninitialized string offset" warning at the same time as invalid offset Error +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +--FILE-- +getMessage(), "\n"; +} + +?> +--EXPECT-- +Cannot access offset of type array on string diff -Nru php8.2-8.2.7/ext/opcache/tests/jit/gh12723-B.phpt php8.2-8.2.18/ext/opcache/tests/jit/gh12723-B.phpt --- php8.2-8.2.7/ext/opcache/tests/jit/gh12723-B.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/jit/gh12723-B.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,19 @@ +--TEST-- +GH-12723: JIT emits "Attempt to assign property of non-object" warning at the same time as Error is being thrown +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +--FILE-- +getMessage(), "\n"; +} + +?> +--EXPECT-- +Cannot use object of type stdClass as array diff -Nru php8.2-8.2.7/ext/opcache/tests/jit/gh12748.phpt php8.2-8.2.18/ext/opcache/tests/jit/gh12748.phpt --- php8.2-8.2.7/ext/opcache/tests/jit/gh12748.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/jit/gh12748.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,35 @@ +--TEST-- +GH-12748: Function JIT emits "could not convert to int" warning at the same time as invalid offset Error +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +--FILE-- +getMessage(), "\n"; +} +try { + echo "empty():\n"; + var_dump(empty($container[new stdClass()])); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +try { + echo "Coalesce():\n"; + var_dump($container[new stdClass()] ?? 'default'); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} +?> +--EXPECT-- +isset(): +bool(false) +empty(): +bool(true) +Coalesce(): +Cannot access offset of type stdClass on string diff -Nru php8.2-8.2.7/ext/opcache/tests/jit/gh12812.phpt php8.2-8.2.18/ext/opcache/tests/jit/gh12812.phpt --- php8.2-8.2.7/ext/opcache/tests/jit/gh12812.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/jit/gh12812.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,29 @@ +--TEST-- +GH-12812: JIT: Integer string in variable used as offset produces wrong undefined array key warning +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +--FILE-- +getMessage(), "\n"; +} +try { + var_dump($container[$dimension]); +} catch (\Throwable $e) { + echo $e->getMessage(), "\n"; +} + +?> +--EXPECTF-- +Warning: Undefined array key 7 in %s on line %d +NULL + +Warning: Undefined array key 7 in %s on line %d +NULL diff -Nru php8.2-8.2.7/ext/opcache/tests/jit/gh13232.phpt php8.2-8.2.18/ext/opcache/tests/jit/gh13232.phpt --- php8.2-8.2.7/ext/opcache/tests/jit/gh13232.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/jit/gh13232.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,13 @@ +--TEST-- +GH-13232 (Segmentation fault will be reported when JIT is off but JIT_debug is still on) +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +opcache.jit=disable +opcache.jit_debug=0xfffff +--FILE-- + +--EXPECT-- +Done diff -Nru php8.2-8.2.7/ext/opcache/tests/jit/init_fcall_003.phpt php8.2-8.2.18/ext/opcache/tests/jit/init_fcall_003.phpt --- php8.2-8.2.7/ext/opcache/tests/jit/init_fcall_003.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/jit/init_fcall_003.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -11,6 +11,8 @@ opcache.jit_hot_func=127 opcache.jit_hot_return=8 opcache.jit_hot_side_exit=8 +--EXTENSIONS-- +opcache --FILE-- +--EXPECT-- +int(0) +int(3) +int(3) +NULL diff -Nru php8.2-8.2.7/ext/opcache/tests/jit/qm_assign_004.phpt php8.2-8.2.18/ext/opcache/tests/jit/qm_assign_004.phpt --- php8.2-8.2.7/ext/opcache/tests/jit/qm_assign_004.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/jit/qm_assign_004.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,39 @@ +--TEST-- +JIT QM_ASSIGN: 004 missing type store +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +opcache.file_update_protection=0 +opcache.jit_buffer_size=1M +--FILE-- + +DONE +--EXPECT-- +array(2) { + [0]=> + string(0) "" + [1]=> + string(0) "" +} +array(2) { + [0]=> + string(0) "" + [1]=> + string(0) "" +} +DONE diff -Nru php8.2-8.2.7/ext/opcache/tests/jit_warning_with_zero_buffer.phpt php8.2-8.2.18/ext/opcache/tests/jit_warning_with_zero_buffer.phpt --- php8.2-8.2.7/ext/opcache/tests/jit_warning_with_zero_buffer.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/jit_warning_with_zero_buffer.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,16 @@ +--TEST-- +JIT should not emit warning with opcache.jit_buffer_size=0 +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +opcache.jit=tracing +opcache.jit_buffer_size=0 +opcache.log_verbosity_level=2 +--EXTENSIONS-- +opcache +--FILE-- + +--EXPECT-- +bool(false) diff -Nru php8.2-8.2.7/ext/opcache/tests/opcache_invalidate_deleted_file.phpt php8.2-8.2.18/ext/opcache/tests/opcache_invalidate_deleted_file.phpt --- php8.2-8.2.7/ext/opcache/tests/opcache_invalidate_deleted_file.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/opcache_invalidate_deleted_file.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,27 @@ +--TEST-- +opcache_invalidate() should invalidate deleted file +--EXTENSIONS-- +opcache +--INI-- +opcache.enable_cli=1 +opcache.validate_timestamps=0 +--FILE-- + +--EXPECT-- +int(42) +int(42) +bool(true) +bool(false) diff -Nru php8.2-8.2.7/ext/opcache/tests/opt/block_pass_004.phpt php8.2-8.2.18/ext/opcache/tests/opt/block_pass_004.phpt --- php8.2-8.2.7/ext/opcache/tests/opt/block_pass_004.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/opt/block_pass_004.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,16 @@ +--TEST-- +Block Pass 004: Inorrect QM_ASSIGN elimination +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +opcache.optimization_level=-1 +--EXTENSIONS-- +opcache +--FILE-- +y; +?> +DONE +--EXPECTF-- +Warning: Attempt to read property "y" on int in %sblock_pass_004.php on line 2 +DONE diff -Nru php8.2-8.2.7/ext/opcache/tests/opt/block_pass_005.phpt php8.2-8.2.18/ext/opcache/tests/opt/block_pass_005.phpt --- php8.2-8.2.7/ext/opcache/tests/opt/block_pass_005.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/opt/block_pass_005.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,17 @@ +--TEST-- +Block Pass 005: Inorrect QM_ASSIGN elimination +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +opcache.optimization_level=-1 +--EXTENSIONS-- +opcache +--FILE-- +y; +?> +--EXPECTF-- +Fatal error: Uncaught Error: Undefined constant "y" in %sblock_pass_005.php:2 +Stack trace: +#0 {main} + thrown in %sblock_pass_005.php on line 2 diff -Nru php8.2-8.2.7/ext/opcache/tests/opt/block_pass_006.phpt php8.2-8.2.18/ext/opcache/tests/opt/block_pass_006.phpt --- php8.2-8.2.7/ext/opcache/tests/opt/block_pass_006.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/opt/block_pass_006.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,15 @@ +--TEST-- +Block Pass 006: Inorrect QM_ASSIGN elimination +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +opcache.optimization_level=-1 +--FILE-- +''}){} +?> +--EXPECTF-- +Fatal error: Uncaught Error: Undefined constant "c" in %sblock_pass_006.php:2 +Stack trace: +#0 {main} + thrown in %sblock_pass_006.php on line 2 diff -Nru php8.2-8.2.7/ext/opcache/tests/opt/dce_014.phpt php8.2-8.2.18/ext/opcache/tests/opt/dce_014.phpt --- php8.2-8.2.7/ext/opcache/tests/opt/dce_014.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/opt/dce_014.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,12 @@ +--TEST-- +DCE may remove FREE after FETCH_LIST_W +--FILE-- + +DONE +--EXPECT-- +DONE diff -Nru php8.2-8.2.7/ext/opcache/tests/opt/gh10008.phpt php8.2-8.2.18/ext/opcache/tests/opt/gh10008.phpt --- php8.2-8.2.7/ext/opcache/tests/opt/gh10008.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/opt/gh10008.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,26 @@ +--TEST-- +GH-10008: Narrowing occurred during type inference of ZEND_ADD_ARRAY_ELEMENT +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +--EXTENSIONS-- +opcache +--FILE-- + $bool_or_int, $string_key => 123]; + } + + $bool_or_int = 0; + } +} +?> +DONE +--EXPECT-- +DONE diff -Nru php8.2-8.2.7/ext/opcache/tests/opt/inference_022.phpt php8.2-8.2.18/ext/opcache/tests/opt/inference_022.phpt --- php8.2-8.2.7/ext/opcache/tests/opt/inference_022.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/opt/inference_022.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,17 @@ +--TEST-- +Type inference 022: FETCH_DIM_W +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +opcache.optimization_level=-1 +--FILE-- + +DONE +--EXPECT-- +DONE diff -Nru php8.2-8.2.7/ext/opcache/tests/opt/inference_023.phpt php8.2-8.2.18/ext/opcache/tests/opt/inference_023.phpt --- php8.2-8.2.7/ext/opcache/tests/opt/inference_023.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/opt/inference_023.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,24 @@ +--TEST-- +Type inference 023: FETCH_DIM_W +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +opcache.optimization_level=-1 +--FILE-- += 0) { + $a[$n]->x = 2; + } + $n++; + $a[$n] = new stdClass(); + $a[$n]->x = 1; + } +} +?> +DONE +--EXPECT-- +DONE diff -Nru php8.2-8.2.7/ext/opcache/tests/opt/inference_024.phpt php8.2-8.2.18/ext/opcache/tests/opt/inference_024.phpt --- php8.2-8.2.7/ext/opcache/tests/opt/inference_024.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/opt/inference_024.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,23 @@ +--TEST-- +Type inference 024: FETCH_DIM_W +--INI-- +opcache.enable=1 +opcache.enable_cli=1 +opcache.optimization_level=-1 +--FILE-- + +DONE +--EXPECT-- +DONE diff -Nru php8.2-8.2.7/ext/opcache/tests/preload_gh10914.inc php8.2-8.2.18/ext/opcache/tests/preload_gh10914.inc --- php8.2-8.2.7/ext/opcache/tests/preload_gh10914.inc 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/tests/preload_gh10914.inc 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,5 @@ + ZEND_LONG_MAX / (1024 * 1024))) { - *p = ZEND_LONG_MAX; + *p = ZEND_LONG_MAX & ~(1024 * 1024 - 1); } else { *p = memsize * (1024 * 1024); } @@ -507,7 +507,7 @@ snprintf(buf, sizeof(buf), "%zu", ZSMMG(wasted_shared_memory)); php_info_print_table_row(2, "Wasted memory", buf); if (ZCSG(interned_strings).start && ZCSG(interned_strings).end) { - snprintf(buf, sizeof(buf), "%zu", (size_t)((char*)ZCSG(interned_strings).top - (char*)ZCSG(interned_strings).start)); + snprintf(buf, sizeof(buf), "%zu", (size_t)((char*)ZCSG(interned_strings).top - (char*)(accel_shared_globals + 1))); php_info_print_table_row(2, "Interned Strings Used memory", buf); snprintf(buf, sizeof(buf), "%zu", (size_t)((char*)ZCSG(interned_strings).end - (char*)ZCSG(interned_strings).top)); php_info_print_table_row(2, "Interned Strings Free memory", buf); @@ -648,8 +648,8 @@ zval interned_strings_usage; array_init(&interned_strings_usage); - add_assoc_long(&interned_strings_usage, "buffer_size", (char*)ZCSG(interned_strings).end - (char*)ZCSG(interned_strings).start); - add_assoc_long(&interned_strings_usage, "used_memory", (char*)ZCSG(interned_strings).top - (char*)ZCSG(interned_strings).start); + add_assoc_long(&interned_strings_usage, "buffer_size", (char*)ZCSG(interned_strings).end - (char*)(accel_shared_globals + 1)); + add_assoc_long(&interned_strings_usage, "used_memory", (char*)ZCSG(interned_strings).top - (char*)(accel_shared_globals + 1)); add_assoc_long(&interned_strings_usage, "free_memory", (char*)ZCSG(interned_strings).end - (char*)ZCSG(interned_strings).top); add_assoc_long(&interned_strings_usage, "number_of_strings", ZCSG(interned_strings).nNumOfElements); add_assoc_zval(return_value, "interned_strings_usage", &interned_strings_usage); diff -Nru php8.2-8.2.7/ext/opcache/zend_file_cache.c php8.2-8.2.18/ext/opcache/zend_file_cache.c --- php8.2-8.2.7/ext/opcache/zend_file_cache.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/zend_file_cache.c 2024-04-09 18:46:23.000000000 +0000 @@ -882,6 +882,8 @@ ZEND_MAP_PTR_INIT(ce->static_members_table, NULL); ZEND_MAP_PTR_INIT(ce->mutable_data, NULL); + + ce->inheritance_cache = NULL; } static void zend_file_cache_serialize_warnings( @@ -1860,6 +1862,7 @@ if (!file_cache_only && !ZCSG(restart_in_progress) && + !ZCSG(restart_pending) && !ZSMMG(memory_exhausted) && accelerator_shm_read_lock() == SUCCESS) { /* exclusive lock */ diff -Nru php8.2-8.2.7/ext/opcache/zend_persist.c php8.2-8.2.18/ext/opcache/zend_persist.c --- php8.2-8.2.7/ext/opcache/zend_persist.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/zend_persist.c 2024-04-09 18:46:23.000000000 +0000 @@ -726,7 +726,7 @@ } // Real dynamically created internal functions like enum methods must have their own run_time_cache pointer. They're always on the same scope as their defining class. // However, copies - as caused by inheritance of internal methods - must retain the original run_time_cache pointer, shared with the source function. - if (!op_array->scope || op_array->scope == ce) { + if (!op_array->scope || (op_array->scope == ce && !(op_array->fn_flags & ZEND_ACC_TRAIT_CLONE))) { ZEND_MAP_PTR_NEW(op_array->run_time_cache); } } diff -Nru php8.2-8.2.7/ext/opcache/zend_shared_alloc.c php8.2-8.2.18/ext/opcache/zend_shared_alloc.c --- php8.2-8.2.7/ext/opcache/zend_shared_alloc.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/zend_shared_alloc.c 2024-04-09 18:46:23.000000000 +0000 @@ -52,7 +52,7 @@ #ifdef ZTS static MUTEX_T zts_lock; #endif -int lock_file; +int lock_file = -1; static char lockfile_name[MAXPATHLEN]; #endif @@ -180,8 +180,8 @@ res = zend_shared_alloc_try(he, requested_size, &ZSMMG(shared_segments), &ZSMMG(shared_segments_count), &error_in); if (res) { /* this model works! */ + break; } - break; } } } @@ -192,6 +192,7 @@ } #if ENABLE_FILE_CACHE_FALLBACK if (ALLOC_FALLBACK == res) { + smm_shared_globals = NULL; return ALLOC_FALLBACK; } #endif @@ -217,6 +218,7 @@ } #if ENABLE_FILE_CACHE_FALLBACK if (ALLOC_FALLBACK == res) { + smm_shared_globals = NULL; return ALLOC_FALLBACK; } #endif @@ -251,7 +253,7 @@ free(ZSMMG(shared_segments)); ZSMMG(shared_segments) = tmp_shared_segments; - ZSMMG(shared_memory_state).positions = (int *)zend_shared_alloc(sizeof(int) * ZSMMG(shared_segments_count)); + ZSMMG(shared_memory_state).positions = (size_t *)zend_shared_alloc(sizeof(size_t) * ZSMMG(shared_segments_count)); if (!ZSMMG(shared_memory_state).positions) { zend_accel_error_noreturn(ACCEL_LOG_FATAL, "Insufficient shared memory!"); return ALLOC_FAILURE; diff -Nru php8.2-8.2.7/ext/opcache/zend_shared_alloc.h php8.2-8.2.18/ext/opcache/zend_shared_alloc.h --- php8.2-8.2.7/ext/opcache/zend_shared_alloc.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/opcache/zend_shared_alloc.h 2024-04-09 18:46:23.000000000 +0000 @@ -95,7 +95,7 @@ } zend_shared_memory_handler_entry; typedef struct _zend_shared_memory_state { - int *positions; /* current positions for each segment */ + size_t *positions; /* current positions for each segment */ size_t shared_free; /* amount of free shared memory */ } zend_shared_memory_state; diff -Nru php8.2-8.2.7/ext/openssl/openssl.c php8.2-8.2.18/ext/openssl/openssl.c --- php8.2-8.2.7/ext/openssl/openssl.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/openssl/openssl.c 2024-04-09 18:46:23.000000000 +0000 @@ -61,7 +61,7 @@ #include #endif -#if OPENSSL_VERSION_NUMBER < 0x10100000L && !defined(OPENSSL_NO_ENGINE) +#if (OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)) && !defined(OPENSSL_NO_ENGINE) #include #endif @@ -3154,6 +3154,7 @@ 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 @@ 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 @@ if (csr_str) { X509_REQ_free(csr); } - if (cert_str && cert) { + if (cert_str && cert && cert != new_cert) { X509_free(cert); } } @@ -5266,7 +5268,7 @@ signersfilename, signersfilename_len, 3, PHP_OPENSSL_BIO_MODE_W(PKCS7_BINARY)); if (certout) { int i; - signers = PKCS7_get0_signers(p7, NULL, (int)flags); + signers = PKCS7_get0_signers(p7, others, (int)flags); if (signers != NULL) { for (i = 0; i < sk_X509_num(signers); i++) { @@ -5784,12 +5786,15 @@ goto clean_exit; } if (sigfile && (flags & CMS_DETACHED)) { - sigbio = php_openssl_bio_new_file(sigfile, sigfile_len, 1, PHP_OPENSSL_BIO_MODE_R(flags)); if (encoding == ENCODING_SMIME) { php_error_docref(NULL, E_WARNING, "Detached signatures not possible with S/MIME encoding"); goto clean_exit; } + sigbio = php_openssl_bio_new_file(sigfile, sigfile_len, 1, PHP_OPENSSL_BIO_MODE_R(flags)); + if (sigbio == NULL) { + goto clean_exit; + } } else { sigbio = in; /* non-detached signature */ } diff -Nru php8.2-8.2.7/ext/openssl/tests/CertificateGenerator.inc php8.2-8.2.18/ext/openssl/tests/CertificateGenerator.inc --- php8.2-8.2.7/ext/openssl/tests/CertificateGenerator.inc 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/openssl/tests/CertificateGenerator.inc 2024-04-09 18:46:23.000000000 +0000 @@ -85,8 +85,8 @@ openssl_x509_export_to_file($this->ca, $file); } - public function saveNewCertAndKey( - $commonNameForCert, $certFile, $keyFile, $keyLength = null, $subjectAltName = null + private function generateCertAndKey( + $commonNameForCert, $file, $keyLength = null, $subjectAltName = null ) { $dn = [ 'countryName' => 'BY', @@ -117,51 +117,53 @@ basicConstraints = CA:FALSE $subjectAltNameConfig CONFIG; - $configFile = $certFile . '.cnf'; + $configFile = $file . '.cnf'; file_put_contents($configFile, $configCode); - try { - $config = [ - 'config' => $configFile, - 'req_extensions' => 'v3_req', - 'x509_extensions' => 'usr_cert', - ]; - - $this->lastKey = self::generateKey($keyLength); - $csr = openssl_csr_new($dn, $this->lastKey, $config); - $this->lastCert = openssl_csr_sign( - $csr, - $this->ca, - $this->caKey, - /* days */ 2, - $config, - ); - if (!$this->lastCert) { - throw new Exception('Failed to create certificate'); - } - - $certText = ''; - openssl_x509_export($this->lastCert, $certText); - - $keyText = ''; - openssl_pkey_export($this->lastKey, $keyText, null, $config); - - if ($certFile === $keyFile) { - file_put_contents($certFile, $certText . PHP_EOL . $keyText); - } else { - file_put_contents($certFile, $certText); - file_put_contents($keyFile, $keyText); - } - } finally { - unlink($configFile); - } - } + $config = [ + 'config' => $configFile, + 'req_extensions' => 'v3_req', + 'x509_extensions' => 'usr_cert', + ]; + + $this->lastKey = self::generateKey($keyLength); + $csr = openssl_csr_new($dn, $this->lastKey, $config); + $this->lastCert = openssl_csr_sign( + $csr, + $this->ca, + $this->caKey, + /* days */ 2, + $config, + ); + return $config; + } public function saveNewCertAsFileWithKey( $commonNameForCert, $file, $keyLength = null, $subjectAltName = null ) { - $this->saveNewCertAndKey($commonNameForCert, $file, $file, $keyLength, $subjectAltName); + $config = $this->generateCertAndKey($commonNameForCert, $file, $keyLength, $subjectAltName); + + $certText = ''; + openssl_x509_export($this->lastCert, $certText); + + $keyText = ''; + openssl_pkey_export($this->lastKey, $keyText, null, $config); + + file_put_contents($file, $certText . PHP_EOL . $keyText); + + unlink($config['config']); + } + + public function saveNewCertAndKey( + $commonNameForCert, $certFile, $keyFile, $keyLength = null, $subjectAltName = null + ) { + $config = $this->generateCertAndKey($commonNameForCert, $certFile, $keyLength, $subjectAltName); + + openssl_x509_export_to_file($this->lastCert, $certFile); + openssl_pkey_export_to_file($this->lastKey, $keyFile, null, $config); + + unlink($config['config']); } public function getCertDigest($algo) diff -Nru php8.2-8.2.7/ext/openssl/tests/bug50293.phpt php8.2-8.2.18/ext/openssl/tests/bug50293.phpt --- php8.2-8.2.7/ext/openssl/tests/bug50293.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/openssl/tests/bug50293.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -1,9 +1,7 @@ --TEST-- Bug #50293 (Several openssl functions ignore the VCWD) ---SKIPIF-- - +--EXTENSIONS-- +openssl --FILE-- saveCaCert($cacertFile); +$certificateGenerator->saveNewCertAndKey('bug50713', $certFile, $keyFile, 1024); + +var_dump(openssl_pkcs7_sign($inFile, $outFile, 'file://' . $certFile, 'file://' . $keyFile, [], PKCS7_NOCERTS)); +var_dump(openssl_pkcs7_verify($outFile, 0, $signersFile, [$cacertFile], $certFile)); +var_dump(strlen(file_get_contents($signersFile)) > 0); +?> +--CLEAN-- + +--EXPECT-- +bool(true) +bool(true) +bool(true) diff -Nru php8.2-8.2.7/ext/openssl/tests/gh12489.phpt php8.2-8.2.18/ext/openssl/tests/gh12489.phpt --- php8.2-8.2.7/ext/openssl/tests/gh12489.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/openssl/tests/gh12489.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,36 @@ +--TEST-- +GH-12489: Missing sigbio creation checking in openssl_cms_verify +--EXTENSIONS-- +openssl +--FILE-- + "test@test", "Subject" => "testing openssl_cms_sign()"); +$headers = array("test@test", "testing openssl_cms_sign()"); + +var_dump(openssl_cms_sign($infile, $outfile, openssl_x509_read($single_cert), $privkey, $headers, + OPENSSL_CMS_DETACHED|OPENSSL_CMS_BINARY,OPENSSL_ENCODING_PEM)); +ini_set('open_basedir', __DIR__); +var_dump(openssl_cms_verify($infile,OPENSSL_CMS_NOVERIFY|OPENSSL_CMS_DETACHED|OPENSSL_CMS_BINARY, + NULL, array(), NULL, $vout, NULL, "../test.cms", OPENSSL_ENCODING_PEM)); +var_dump(openssl_error_string()); +?> +--CLEAN-- + +--EXPECTF-- +bool(true) + +Warning: openssl_cms_verify(): open_basedir restriction in effect. File(%s) is not within the allowed path(s): (%s) in %s on line %d +bool(false) +bool(false) diff -Nru php8.2-8.2.7/ext/openssl/tests/gh9339.phpt php8.2-8.2.18/ext/openssl/tests/gh9339.phpt --- php8.2-8.2.7/ext/openssl/tests/gh9339.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/openssl/tests/gh9339.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -1,9 +1,7 @@ --TEST-- GH-9339: oid_file path check warning contains uninitialized path ---SKIPIF-- - +--EXTENSIONS-- +openssl --FILE-- = 0x30000000) die('skip For OpenSSL < 3.0'); ?> +--XFAIL-- --FILE-- = 3.0'); ?> +--XFAIL-- --FILE-- +--FILE-- + [ + 'local_cert' => '%s', + ]]); + + $server = stream_socket_server($serverUri, $errno, $errstr, $serverFlags, $serverCtx); + phpt_notify(); + + @stream_socket_accept($server, 1); + @stream_socket_accept($server, 1); +CODE; +$serverCode = sprintf($serverCode, $certFile); + +$clientCode = <<<'CODE' + $serverUri = "ssl://[::1]:64324"; + $clientFlags = STREAM_CLIENT_CONNECT; + $clientCtx = stream_context_create(['ssl' => [ + 'verify_peer' => false, + ]]); + + phpt_wait(); + + stream_context_set_option($clientCtx, 'ssl', 'peer_name', '2001:db8:85a3:8d3:1319:8a2e:370:7348'); + var_dump(stream_socket_client($serverUri, $errno, $errstr, 1, $clientFlags, $clientCtx)); + + stream_context_set_option($clientCtx, 'ssl', 'peer_name', '2001:db8:85a3:8d3:1319:8a2e:370:7349'); + var_dump(stream_socket_client($serverUri, $errno, $errstr, 1, $clientFlags, $clientCtx)); +CODE; + +include 'CertificateGenerator.inc'; +$certificateGenerator = new CertificateGenerator(); +$certificateGenerator->saveNewCertAsFileWithKey(null, $certFile, null, $san); + +include 'ServerClientTestCase.inc'; +ServerClientTestCase::getInstance()->run($clientCode, $serverCode); +?> +--CLEAN-- + +--EXPECTF-- +resource(%d) of type (stream) + +Warning: stream_socket_client(): Unable to locate peer certificate CN in %s on line %d + +Warning: stream_socket_client(): Failed to enable crypto in %s on line %d + +Warning: stream_socket_client(): Unable to connect to ssl://[::1]:64324 (Unknown error) in %s on line %d +bool(false) diff -Nru php8.2-8.2.7/ext/openssl/xp_ssl.c php8.2-8.2.18/ext/openssl/xp_ssl.c --- php8.2-8.2.7/ext/openssl/xp_ssl.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/openssl/xp_ssl.c 2024-04-09 18:46:23.000000000 +0000 @@ -39,6 +39,7 @@ #ifdef PHP_WIN32 #include "win32/winutil.h" #include "win32/time.h" +#include #include /* These are from Wincrypt.h, they conflict with OpenSSL */ #undef X509_NAME @@ -50,6 +51,10 @@ # define MSG_DONTWAIT 0 #endif +#ifdef HAVE_ARPA_INET_H +#include +#endif + /* Flags for determining allowed stream crypto methods */ #define STREAM_CRYPTO_IS_CLIENT (1<<0) #define STREAM_CRYPTO_METHOD_SSLv2 (1<<1) @@ -125,6 +130,24 @@ #define PHP_X509_NAME_ENTRY_TO_UTF8(ne, i, out) \ ASN1_STRING_to_UTF8(&out, X509_NAME_ENTRY_get_data(X509_NAME_get_entry(ne, i))) +#if defined(HAVE_IPV6) && defined(HAVE_INET_PTON) +/* Used for IPv6 Address peer verification */ +#define EXPAND_IPV6_ADDRESS(_str, _bytes) \ + do { \ + snprintf(_str, 40, "%X:%X:%X:%X:%X:%X:%X:%X", \ + _bytes[0] << 8 | _bytes[1], \ + _bytes[2] << 8 | _bytes[3], \ + _bytes[4] << 8 | _bytes[5], \ + _bytes[6] << 8 | _bytes[7], \ + _bytes[8] << 8 | _bytes[9], \ + _bytes[10] << 8 | _bytes[11], \ + _bytes[12] << 8 | _bytes[13], \ + _bytes[14] << 8 | _bytes[15] \ + ); \ + } while(0) +#define HAVE_IPV6_SAN 1 +#endif + #if PHP_OPENSSL_API_VERSION < 0x10100 static RSA *php_openssl_tmp_rsa_cb(SSL *s, int is_export, int keylength); #endif @@ -436,6 +459,19 @@ GENERAL_NAMES *alt_names = X509_get_ext_d2i(peer, NID_subject_alt_name, 0, 0); int alt_name_count = sk_GENERAL_NAME_num(alt_names); +#ifdef HAVE_IPV6_SAN + /* detect if subject name is an IPv6 address and expand once if required */ + char subject_name_ipv6_expanded[40]; + unsigned char ipv6[16]; + bool subject_name_is_ipv6 = false; + subject_name_ipv6_expanded[0] = 0; + + if (inet_pton(AF_INET6, subject_name, &ipv6)) { + EXPAND_IPV6_ADDRESS(subject_name_ipv6_expanded, ipv6); + subject_name_is_ipv6 = true; + } +#endif + for (i = 0; i < alt_name_count; i++) { GENERAL_NAME *san = sk_GENERAL_NAME_value(alt_names, i); @@ -474,10 +510,17 @@ return 1; } } - /* No, we aren't bothering to check IPv6 addresses. Why? - * Because IP SAN names are officially deprecated and are - * not allowed by CAs starting in 2015. Deal with it. - */ +#ifdef HAVE_IPV6_SAN + else if (san->d.ip->length == 16 && subject_name_is_ipv6) { + ipbuffer[0] = 0; + EXPAND_IPV6_ADDRESS(ipbuffer, san->d.iPAddress->data); + if (strcasecmp((const char*)subject_name_ipv6_expanded, (const char*)ipbuffer) == 0) { + sk_GENERAL_NAME_pop_free(alt_names, GENERAL_NAME_free); + + return 1; + } + } +#endif } } diff -Nru php8.2-8.2.7/ext/pcntl/pcntl.c php8.2-8.2.18/ext/pcntl/pcntl.c --- php8.2-8.2.7/ext/pcntl/pcntl.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/pcntl/pcntl.c 2024-04-09 18:46:23.000000000 +0000 @@ -1048,9 +1048,7 @@ static void pcntl_signal_handler(int signo) #endif { - struct php_pcntl_pending_signal *psig; - - psig = PCNTL_G(spares); + struct php_pcntl_pending_signal *psig = PCNTL_G(spares); if (!psig) { /* oops, too many signals for us to track, so we'll forget about this one */ return; diff -Nru php8.2-8.2.7/ext/pcntl/tests/pcntl_getpriority_basic.phpt php8.2-8.2.18/ext/pcntl/tests/pcntl_getpriority_basic.phpt --- php8.2-8.2.7/ext/pcntl/tests/pcntl_getpriority_basic.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/pcntl/tests/pcntl_getpriority_basic.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -16,4 +16,4 @@ var_dump(pcntl_getpriority()); ?> --EXPECTF-- -int(%d) +int(%i) diff -Nru php8.2-8.2.7/ext/pcntl/tests/waiting_on_sigchild_pcntl_wait.phpt php8.2-8.2.18/ext/pcntl/tests/waiting_on_sigchild_pcntl_wait.phpt --- php8.2-8.2.7/ext/pcntl/tests/waiting_on_sigchild_pcntl_wait.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/pcntl/tests/waiting_on_sigchild_pcntl_wait.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,45 @@ +--TEST-- +Waiting on SIGCHLD with a pcntl_wait() loop +--EXTENSIONS-- +pcntl +--SKIPIF-- + +--FILE-- + 0) { + echo "SIGCHLD\n"; + unset($processes[$pid]); + } +}, false); + +for ($i = 0; $i <= 5; $i++) { + // Sleeping ensures we get to add the process to the list before the signal is invoked. + $process = proc_open('sleep 1', [], $pipes); + $pid = proc_get_status($process)['pid']; + $processes[$pid] = $process; +} + +$iters = 50; +while (!empty($processes) && $iters > 0) { + usleep(100_000); + $iters--; +} + +var_dump(empty($processes)); +?> +--EXPECT-- +SIGCHLD +SIGCHLD +SIGCHLD +SIGCHLD +SIGCHLD +SIGCHLD +bool(true) diff -Nru php8.2-8.2.7/ext/pcre/pcre2lib/pcre2_jit_compile.c php8.2-8.2.18/ext/pcre/pcre2lib/pcre2_jit_compile.c --- php8.2-8.2.7/ext/pcre/pcre2lib/pcre2_jit_compile.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/pcre/pcre2lib/pcre2_jit_compile.c 2024-04-09 18:46:23.000000000 +0000 @@ -11517,19 +11517,19 @@ } } else if (exact == 1) - { compile_char1_matchingpath(common, type, cc, &backtrack->topbacktracks, TRUE); - if (early_fail_type == type_fail_range) - { - OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), early_fail_ptr); - OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), early_fail_ptr + (int)sizeof(sljit_sw)); - OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, TMP2, 0); - OP2(SLJIT_SUB, TMP2, 0, STR_PTR, 0, TMP2, 0); - add_jump(compiler, &backtrack->topbacktracks, CMP(SLJIT_LESS_EQUAL, TMP2, 0, TMP1, 0)); +if (early_fail_type == type_fail_range) + { + /* Range end first, followed by range start. */ + OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), early_fail_ptr); + OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), early_fail_ptr + (int)sizeof(sljit_sw)); + OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, TMP2, 0); + OP2(SLJIT_SUB, TMP2, 0, STR_PTR, 0, TMP2, 0); + add_jump(compiler, &backtrack->topbacktracks, CMP(SLJIT_LESS_EQUAL, TMP2, 0, TMP1, 0)); - OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), early_fail_ptr + (int)sizeof(sljit_sw), STR_PTR, 0); - } + OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), early_fail_ptr, STR_PTR, 0); + OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), early_fail_ptr + (int)sizeof(sljit_sw), STR_PTR, 0); } switch(opcode) diff -Nru php8.2-8.2.7/ext/pcre/pcre2lib/pcre2_match.c php8.2-8.2.18/ext/pcre/pcre2lib/pcre2_match.c --- php8.2-8.2.7/ext/pcre/pcre2lib/pcre2_match.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/pcre/pcre2lib/pcre2_match.c 2024-04-09 18:46:23.000000000 +0000 @@ -5833,7 +5833,7 @@ { P = (heapframe *)((char *)N - frame_size); memcpy((char *)F + offsetof(heapframe, ovector), P->ovector, - P->offset_top * sizeof(PCRE2_SIZE)); + Foffset_top * sizeof(PCRE2_SIZE)); Foffset_top = P->offset_top; Fcapture_last = P->capture_last; Fcurrent_recurse = P->current_recurse; diff -Nru php8.2-8.2.7/ext/pcre/php_pcre.c php8.2-8.2.18/ext/pcre/php_pcre.c --- php8.2-8.2.7/ext/pcre/php_pcre.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/pcre/php_pcre.c 2024-04-09 18:46:23.000000000 +0000 @@ -2425,6 +2425,10 @@ zend_argument_type_error(1, "must contain only valid callbacks"); goto error; } + if (!str_idx_regex) { + zend_argument_type_error(1, "must contain only string patterns as keys"); + goto error; + } ZVAL_COPY_VALUE(&fci.function_name, replace); diff -Nru php8.2-8.2.7/ext/pcre/tests/gh11374.phpt php8.2-8.2.18/ext/pcre/tests/gh11374.phpt --- php8.2-8.2.7/ext/pcre/tests/gh11374.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/pcre/tests/gh11374.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,66 @@ +--TEST-- +GH-11374 (PCRE regular expression without JIT enabled gives different result) +--EXTENSIONS-- +zend_test +--SKIPIF-- + +--FILE-- + + (?: + (?:\{ (?&types) \}) + | (a) + ) + (\*?) + ) +'; + +ini_set('pcre.jit', '0'); +$res = preg_match('{^' . $regex . '$}x', '{a}', $matches, PREG_OFFSET_CAPTURE); +ini_set('pcre.jit', '1'); +// regex must be different to prevent regex cache, so just add 2nd "x" modifier +$res2 = preg_match('{^' . $regex . '$}xx', '{a}', $matches2, PREG_OFFSET_CAPTURE); + +var_dump($matches === $matches2); +print_r($matches); + +?> +--EXPECT-- +bool(true) +Array +( + [0] => Array + ( + [0] => {a} + [1] => 0 + ) + + [types] => Array + ( + [0] => {a} + [1] => 0 + ) + + [1] => Array + ( + [0] => {a} + [1] => 0 + ) + + [2] => Array + ( + [0] => + [1] => -1 + ) + + [3] => Array + ( + [0] => + [1] => 3 + ) + +) diff -Nru php8.2-8.2.7/ext/pcre/tests/gh11956.phpt php8.2-8.2.18/ext/pcre/tests/gh11956.phpt --- php8.2-8.2.7/ext/pcre/tests/gh11956.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/pcre/tests/gh11956.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,16 @@ +--TEST-- +GH-11956 (PCRE regular expressions with JIT enabled gives different result) +--INI-- +pcre.jit=1 +--FILE-- +/', '
', $matches ); +var_dump($matches); +?> +--EXPECT-- +array(2) { + [0]=> + string(20) "
" + [1]=> + string(2) "di" +} diff -Nru php8.2-8.2.7/ext/pcre/tests/preg_replace_callback_array_numeric_index_error.phpt php8.2-8.2.18/ext/pcre/tests/preg_replace_callback_array_numeric_index_error.phpt --- php8.2-8.2.7/ext/pcre/tests/preg_replace_callback_array_numeric_index_error.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/pcre/tests/preg_replace_callback_array_numeric_index_error.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,15 @@ +--TEST-- +preg_replace_callback_array() invalid pattern +--FILE-- + function () {}], + 'a', +); +?> +--EXPECTF-- +Fatal error: Uncaught TypeError: preg_replace_callback_array(): Argument #1 ($pattern) must contain only string patterns as keys in %s:%d +Stack trace: +#0 %s(%d): preg_replace_callback_array(Array, 'a') +#1 {main} + thrown in %s on line %d diff -Nru php8.2-8.2.7/ext/pdo/pdo_dbh.c php8.2-8.2.18/ext/pdo/pdo_dbh.c --- php8.2-8.2.7/ext/pdo/pdo_dbh.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/pdo/pdo_dbh.c 2024-04-09 18:46:23.000000000 +0000 @@ -795,6 +795,9 @@ return false; } dbh->stringify = bval; + if (dbh->methods->set_attribute) { + dbh->methods->set_attribute(dbh, attr, value); + } return true; case PDO_ATTR_STATEMENT_CLASS: { @@ -927,8 +930,13 @@ 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 -Nru php8.2-8.2.7/ext/pdo/pdo_stmt.c php8.2-8.2.18/ext/pdo/pdo_stmt.c --- php8.2-8.2.7/ext/pdo/pdo_stmt.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/pdo/pdo_stmt.c 2024-04-09 18:46:23.000000000 +0000 @@ -2257,74 +2257,84 @@ /* }}} */ /* {{{ overloaded handlers for PDORow class (used by PDO_FETCH_LAZY) */ - -static zval *row_prop_read(zend_object *object, zend_string *name, int type, void **cache_slot, zval *rv) +static zval *row_read_column_name(pdo_stmt_t *stmt, zend_string *name, zval *rv) { - pdo_row_t *row = (pdo_row_t *)object; - pdo_stmt_t *stmt = row->stmt; - int colno = -1; - zend_long lval; - ZEND_ASSERT(stmt); - - ZVAL_NULL(rv); - if (zend_string_equals_literal(name, "queryString")) { - return zend_std_read_property(&stmt->std, name, type, cache_slot, rv); - } else if (is_numeric_string(ZSTR_VAL(name), ZSTR_LEN(name), &lval, NULL, 0) == IS_LONG) { - if (lval >= 0 && lval < stmt->column_count) { - fetch_value(stmt, rv, lval, NULL); - } - } else { - /* TODO: replace this with a hash of available column names to column - * numbers */ - for (colno = 0; colno < stmt->column_count; colno++) { - if (zend_string_equals(stmt->columns[colno].name, name)) { - fetch_value(stmt, rv, colno, NULL); - return rv; - } + /* TODO: replace this with a hash of available column names to column numbers */ + for (int colno = 0; colno < stmt->column_count; colno++) { + if (zend_string_equals(stmt->columns[colno].name, name)) { + fetch_value(stmt, rv, colno, NULL); + return rv; } } + return NULL; +} - return rv; +static zval *row_read_column_number(pdo_stmt_t *stmt, zend_long column, zval *rv) +{ + if (column >= 0 && column < stmt->column_count) { + fetch_value(stmt, rv, column, NULL); + return rv; + } + return NULL; } -static zval *row_dim_read(zend_object *object, zval *member, int type, zval *rv) +static zval *row_prop_read(zend_object *object, zend_string *name, int type, void **cache_slot, zval *rv) { pdo_row_t *row = (pdo_row_t *)object; pdo_stmt_t *stmt = row->stmt; - int colno = -1; zend_long lval; + zval *retval; ZEND_ASSERT(stmt); ZVAL_NULL(rv); - if (Z_TYPE_P(member) == IS_LONG) { - if (Z_LVAL_P(member) >= 0 && Z_LVAL_P(member) < stmt->column_count) { - fetch_value(stmt, rv, Z_LVAL_P(member), NULL); - } - } else if (Z_TYPE_P(member) == IS_STRING - && is_numeric_string(Z_STRVAL_P(member), Z_STRLEN_P(member), &lval, NULL, 0) == IS_LONG) { - if (lval >= 0 && lval < stmt->column_count) { - fetch_value(stmt, rv, lval, NULL); - } + if (zend_string_equals_literal(name, "queryString")) { + return zend_std_read_property(&stmt->std, name, type, cache_slot, rv); + } else if (is_numeric_str_function(name, &lval, /* dval */ NULL) == IS_LONG) { + retval = row_read_column_number(stmt, lval, rv); } else { - if (!try_convert_to_string(member)) { - return &EG(uninitialized_zval); - } - - if (zend_string_equals_literal(Z_STR_P(member), "queryString")) { - return zend_std_read_property(&stmt->std, Z_STR_P(member), type, NULL, rv); - } - - /* TODO: replace this with a hash of available column names to column - * numbers */ - for (colno = 0; colno < stmt->column_count; colno++) { - if (zend_string_equals(stmt->columns[colno].name, Z_STR_P(member))) { - fetch_value(stmt, rv, colno, NULL); - return rv; - } + retval = row_read_column_name(stmt, name, rv); + } + if (UNEXPECTED(!retval)) { + // TODO throw an error on master + //if (type != BP_VAR_IS) { + // if (is_numeric) { + // zend_value_error("Invalid column index"); + // } else { + // zend_throw_error(NULL, "No column named \"%s\" exists", ZSTR_VAL(name)); + // } + //} + //return &EG(uninitialized_zval); + ZVAL_NULL(rv); + return rv; + } + return retval; +} + +static zval *row_dim_read(zend_object *object, zval *offset, int type, zval *rv) +{ + if (UNEXPECTED(!offset)) { + zend_throw_error(NULL, "Cannot append to PDORow offset"); + return NULL; + } + if (Z_TYPE_P(offset) == IS_LONG) { + pdo_row_t *row = (pdo_row_t *)object; + pdo_stmt_t *stmt = row->stmt; + ZEND_ASSERT(stmt); + + ZVAL_NULL(rv); + if (Z_LVAL_P(offset) >= 0 && Z_LVAL_P(offset) < stmt->column_count) { + fetch_value(stmt, rv, Z_LVAL_P(offset), NULL); } + return rv; + } else { + zend_string *member = zval_try_get_string(offset); + if (!member) { + return NULL; + } + zval *result = row_prop_read(object, member, type, NULL, rv); + zend_string_release_ex(member, false); + return result; } - - return rv; } static zval *row_prop_write(zend_object *object, zend_string *name, zval *value, void **cache_slot) @@ -2335,75 +2345,67 @@ static void row_dim_write(zend_object *object, zval *member, zval *value) { - zend_throw_error(NULL, "Cannot write to PDORow offset"); + if (!member) { + zend_throw_error(NULL, "Cannot append to PDORow offset"); + } else { + zend_throw_error(NULL, "Cannot write to PDORow offset"); + } } static int row_prop_exists(zend_object *object, zend_string *name, int check_empty, void **cache_slot) { pdo_row_t *row = (pdo_row_t *)object; pdo_stmt_t *stmt = row->stmt; - int colno = -1; zend_long lval; + zval tmp_val; + zval *retval = NULL; ZEND_ASSERT(stmt); - if (is_numeric_string(ZSTR_VAL(name), ZSTR_LEN(name), &lval, NULL, 0) == IS_LONG) { - return lval >=0 && lval < stmt->column_count; + if (is_numeric_str_function(name, &lval, /* dval */ NULL) == IS_LONG) { + retval = row_read_column_number(stmt, lval, &tmp_val); + } else { + retval = row_read_column_name(stmt, name, &tmp_val); } - /* TODO: replace this with a hash of available column names to column - * numbers */ - for (colno = 0; colno < stmt->column_count; colno++) { - if (zend_string_equals(stmt->columns[colno].name, name)) { - int res; - zval val; - - fetch_value(stmt, &val, colno, NULL); - res = check_empty ? i_zend_is_true(&val) : Z_TYPE(val) != IS_NULL; - zval_ptr_dtor_nogc(&val); - - return res; - } + if (!retval) { + return false; } - - return 0; + ZEND_ASSERT(retval == &tmp_val); + int res = check_empty ? i_zend_is_true(retval) : Z_TYPE(tmp_val) != IS_NULL; + zval_ptr_dtor_nogc(retval); + return res; } -static int row_dim_exists(zend_object *object, zval *member, int check_empty) +static int row_dim_exists(zend_object *object, zval *offset, int check_empty) { - pdo_row_t *row = (pdo_row_t *)object; - pdo_stmt_t *stmt = row->stmt; - int colno = -1; - zend_long lval; - ZEND_ASSERT(stmt); + if (Z_TYPE_P(offset) == IS_LONG) { + pdo_row_t *row = (pdo_row_t *)object; + pdo_stmt_t *stmt = row->stmt; + ZEND_ASSERT(stmt); + zend_long column = Z_LVAL_P(offset); - if (Z_TYPE_P(member) == IS_LONG) { - return Z_LVAL_P(member) >= 0 && Z_LVAL_P(member) < stmt->column_count; - } else if (Z_TYPE_P(member) == IS_STRING) { - if (is_numeric_string(Z_STRVAL_P(member), Z_STRLEN_P(member), &lval, NULL, 0) == IS_LONG) { - return lval >=0 && lval < stmt->column_count; + if (!check_empty) { + return column >= 0 && column < stmt->column_count; } + + zval tmp_val; + zval *retval = row_read_column_number(stmt, column, &tmp_val); + if (!retval) { + return false; + } + ZEND_ASSERT(retval == &tmp_val); + int res = check_empty ? i_zend_is_true(retval) : Z_TYPE(tmp_val) != IS_NULL; + zval_ptr_dtor_nogc(retval); + return res; } else { - if (!try_convert_to_string(member)) { + zend_string *member = zval_try_get_string(offset); + if (!member) { return 0; } + int result = row_prop_exists(object, member, check_empty, NULL); + zend_string_release_ex(member, false); + return result; } - - /* TODO: replace this with a hash of available column names to column - * numbers */ - for (colno = 0; colno < stmt->column_count; colno++) { - if (zend_string_equals(stmt->columns[colno].name, Z_STR_P(member))) { - int res; - zval val; - - fetch_value(stmt, &val, colno, NULL); - res = check_empty ? i_zend_is_true(&val) : Z_TYPE(val) != IS_NULL; - zval_ptr_dtor_nogc(&val); - - return res; - } - } - - return 0; } static void row_prop_delete(zend_object *object, zend_string *offset, void **cache_slot) diff -Nru php8.2-8.2.7/ext/pdo/tests/gh8626.phpt php8.2-8.2.18/ext/pdo/tests/gh8626.phpt --- php8.2-8.2.7/ext/pdo/tests/gh8626.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/pdo/tests/gh8626.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -1,8 +1,9 @@ --TEST-- GH-8626: PDOStatement->execute() failed, then execute successfully, errorInfo() information is incorrect +--EXTENSIONS-- +pdo --SKIPIF-- +--FILE-- +exec('CREATE TABLE ' . TABLE_NAME .' (id int, name varchar(10))'); +$db->exec('INSERT INTO ' . TABLE_NAME .' VALUES (23, \'0\')'); + +$stmt = $db->prepare('SELECT id, name FROM ' . TABLE_NAME); +$stmt->execute(); +$result = $stmt->fetch(PDO::FETCH_LAZY); + +var_dump($result); +var_dump(get_parent_class($result)); + +foreach ([0, "0", "id", "name", 1] as $offset) { + echo 'Offset: ', var_export($offset), PHP_EOL; + $offsetRef = &$offset; + + echo 'Dimension:', PHP_EOL; + echo 'Isset:', PHP_EOL; + var_dump(isset($result[$offset])); + var_dump(isset($result[$offsetRef])); + echo 'Empty:', PHP_EOL; + var_dump(empty($result[$offset])); + var_dump(empty($result[$offsetRef])); + echo 'Null coalesce:', PHP_EOL; + var_dump($result[$offset] ?? "default"); + var_dump($result[$offsetRef] ?? "default"); + echo 'Read:', PHP_EOL; + var_dump($result[$offset]); + var_dump($result[$offsetRef]); + echo 'Property:', PHP_EOL; + echo 'Isset:', PHP_EOL; + var_dump(isset($result->{$offset})); + var_dump(isset($result->{$offsetRef})); + echo 'Empty:', PHP_EOL; + var_dump(empty($result->{$offset})); + var_dump(empty($result->{$offsetRef})); + echo 'Null coalesce:', PHP_EOL; + var_dump($result->{$offset} ?? "default"); + var_dump($result->{$offsetRef} ?? "default"); + echo 'Read:', PHP_EOL; + var_dump($result->{$offset}); + var_dump($result->{$offsetRef}); +} + +echo 'Errors:', PHP_EOL; +try { + $result[0] = 1; +} catch (Error $e) { + echo $e->getMessage(), "\n"; +} +try { + $result[] = 1; +} catch (Error $e) { + echo $e->getMessage(), "\n"; +} +try { + $refResult = &$result[0]; +} catch (Error $e) { + echo $e->getMessage(), "\n"; +} +try { + $refResult = &$result[]; +} catch (Error $e) { + echo $e->getMessage(), "\n"; +} +try { + unset($result[0]); +} catch (Error $e) { + echo $e->getMessage(), "\n"; +} +try { + $result->foo = 1; +} catch (Error $e) { + echo $e->getMessage(), "\n"; +} +try { + unset($result->foo); +} catch (Error $e) { + echo $e->getMessage(), "\n"; +} + +?> +--CLEAN-- +setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT); + +const TABLE_NAME = 'test_pdo_35_pdo_row'; +$db->exec("DROP TABLE " . TABLE_NAME); +?> +--EXPECTF-- +object(PDORow)#3 (3) { + ["queryString"]=> + string(40) "SELECT id, name FROM test_pdo_35_pdo_row" + ["id"]=> + string(2) "23" + ["name"]=> + string(1) "0" +} +bool(false) +Offset: 0 +Dimension: +Isset: +bool(true) +bool(true) +Empty: +bool(false) +bool(false) +Null coalesce: +string(2) "23" +string(2) "23" +Read: +string(2) "23" +string(2) "23" +Property: +Isset: +bool(true) +bool(true) +Empty: +bool(false) +bool(false) +Null coalesce: +string(2) "23" +string(2) "23" +Read: +string(2) "23" +string(2) "23" +Offset: '0' +Dimension: +Isset: +bool(true) +bool(true) +Empty: +bool(false) +bool(false) +Null coalesce: +string(2) "23" +string(2) "23" +Read: +string(2) "23" +string(2) "23" +Property: +Isset: +bool(true) +bool(true) +Empty: +bool(false) +bool(false) +Null coalesce: +string(2) "23" +string(2) "23" +Read: +string(2) "23" +string(2) "23" +Offset: 'id' +Dimension: +Isset: +bool(true) +bool(true) +Empty: +bool(false) +bool(false) +Null coalesce: +string(2) "23" +string(2) "23" +Read: +string(2) "23" +string(2) "23" +Property: +Isset: +bool(true) +bool(true) +Empty: +bool(false) +bool(false) +Null coalesce: +string(2) "23" +string(2) "23" +Read: +string(2) "23" +string(2) "23" +Offset: 'name' +Dimension: +Isset: +bool(true) +bool(true) +Empty: +bool(true) +bool(true) +Null coalesce: +string(1) "0" +string(1) "0" +Read: +string(1) "0" +string(1) "0" +Property: +Isset: +bool(true) +bool(true) +Empty: +bool(true) +bool(true) +Null coalesce: +string(1) "0" +string(1) "0" +Read: +string(1) "0" +string(1) "0" +Offset: 1 +Dimension: +Isset: +bool(true) +bool(true) +Empty: +bool(true) +bool(true) +Null coalesce: +string(1) "0" +string(1) "0" +Read: +string(1) "0" +string(1) "0" +Property: +Isset: +bool(true) +bool(true) +Empty: +bool(true) +bool(true) +Null coalesce: +string(1) "0" +string(1) "0" +Read: +string(1) "0" +string(1) "0" +Errors: +Cannot write to PDORow offset +Cannot append to PDORow offset + +Notice: Indirect modification of overloaded element of PDORow has no effect in %s on line %d +Cannot append to PDORow offset +Cannot unset PDORow offset +Cannot write to PDORow property +Cannot unset PDORow property diff -Nru php8.2-8.2.7/ext/pdo_firebird/firebird_statement.c php8.2-8.2.18/ext/pdo_firebird/firebird_statement.c --- php8.2-8.2.7/ext/pdo_firebird/firebird_statement.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/pdo_firebird/firebird_statement.c 2024-04-09 18:46:23.000000000 +0000 @@ -51,6 +51,11 @@ READ_AND_RETURN_USING_MEMCPY(double, sqldata); } +static zend_always_inline float get_float_from_sqldata(const ISC_SCHAR *sqldata) +{ + READ_AND_RETURN_USING_MEMCPY(float, sqldata); +} + static zend_always_inline ISC_TIMESTAMP get_isc_timestamp_from_sqldata(const ISC_SCHAR *sqldata) { READ_AND_RETURN_USING_MEMCPY(ISC_TIMESTAMP, sqldata); @@ -459,11 +464,11 @@ break; case SQL_FLOAT: /* TODO: Why is this not returned as the native type? */ - ZVAL_STR(result, zend_strpprintf(0, "%F", *(float*)var->sqldata)); + ZVAL_STR(result, zend_strpprintf_unchecked(0, "%.8H", get_float_from_sqldata(var->sqldata))); break; case SQL_DOUBLE: /* TODO: Why is this not returned as the native type? */ - ZVAL_STR(result, zend_strpprintf(0, "%F", get_double_from_sqldata(var->sqldata))); + ZVAL_STR(result, zend_strpprintf_unchecked(0, "%.16H", get_double_from_sqldata(var->sqldata))); break; #ifdef SQL_BOOLEAN case SQL_BOOLEAN: diff -Nru php8.2-8.2.7/ext/pdo_firebird/tests/gh10908.phpt php8.2-8.2.18/ext/pdo_firebird/tests/gh10908.phpt --- php8.2-8.2.7/ext/pdo_firebird/tests/gh10908.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/pdo_firebird/tests/gh10908.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -79,8 +79,8 @@ Array ( - [DBL] => 1.000000 - [0] => 1.000000 + [DBL] => 1 + [0] => 1 ) Array @@ -103,10 +103,10 @@ [1] => ABC [NUM] => 12.340 [2] => 12.340 - [DBL] => 1.000000 - [3] => 1.000000 - [FLT] => 2.000000 - [4] => 2.000000 + [DBL] => 1 + [3] => 1 + [FLT] => 2 + [4] => 2 [TS] => 2023-03-24 17:39:00 [5] => 2023-03-24 17:39:00 [MYDATE] => 2023-03-24 diff -Nru php8.2-8.2.7/ext/pdo_firebird/tests/gh13119.phpt php8.2-8.2.18/ext/pdo_firebird/tests/gh13119.phpt --- php8.2-8.2.7/ext/pdo_firebird/tests/gh13119.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/pdo_firebird/tests/gh13119.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,77 @@ +--TEST-- +GH-13119 (float, double value is incorrect) +--EXTENSIONS-- +pdo_firebird +--SKIPIF-- + +--XLEAK-- +A bug in firebird causes a memory leak when calling `isc_attach_database()`. +See https://github.com/FirebirdSQL/firebird/issues/7849 +--FILE-- +exec('CREATE TABLE gh13119 (f_val FLOAT, d_val DOUBLE PRECISION)'); + +$dbh->exec('INSERT INTO gh13119 VALUES (0.1, 0.1)'); +$dbh->exec('INSERT INTO gh13119 VALUES (0.0000000000000001, 0.0000000000000001)'); +$dbh->exec('INSERT INTO gh13119 VALUES (12.000000, 12.00000000000000)'); +$dbh->exec('INSERT INTO gh13119 VALUES (12.000001, 12.00000000000001)'); +$dbh->exec('INSERT INTO gh13119 VALUES (12.345678, 12.34567890123456)'); +$dbh->exec('INSERT INTO gh13119 VALUES (0.0000000000000000012345678, 0.000000000000000001234567890123456)'); + +$stmt = $dbh->query('select * from gh13119'); +var_dump($stmt->fetchAll(PDO::FETCH_ASSOC)); +?> +--CLEAN-- +exec('DROP TABLE gh13119'); +unset($dbh); +?> +--EXPECT-- +array(6) { + [0]=> + array(2) { + ["F_VAL"]=> + string(3) "0.1" + ["D_VAL"]=> + string(3) "0.1" + } + [1]=> + array(2) { + ["F_VAL"]=> + string(7) "1.0E-16" + ["D_VAL"]=> + string(7) "1.0E-16" + } + [2]=> + array(2) { + ["F_VAL"]=> + string(2) "12" + ["D_VAL"]=> + string(2) "12" + } + [3]=> + array(2) { + ["F_VAL"]=> + string(9) "12.000001" + ["D_VAL"]=> + string(17) "12.00000000000001" + } + [4]=> + array(2) { + ["F_VAL"]=> + string(9) "12.345678" + ["D_VAL"]=> + string(17) "12.34567890123456" + } + [5]=> + array(2) { + ["F_VAL"]=> + string(13) "1.2345678E-18" + ["D_VAL"]=> + string(21) "1.234567890123456E-18" + } +} diff -Nru php8.2-8.2.7/ext/pdo_mysql/mysql_driver.c php8.2-8.2.18/ext/pdo_mysql/mysql_driver.c --- php8.2-8.2.7/ext/pdo_mysql/mysql_driver.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/pdo_mysql/mysql_driver.c 2024-04-09 18:46:23.000000000 +0000 @@ -417,7 +417,7 @@ switch (attr) { case PDO_ATTR_AUTOCOMMIT: if (!pdo_get_bool_param(&bval, val)) { - return false; + PDO_DBG_RETURN(false); } /* ignore if the new value equals the old one */ if (dbh->auto_commit ^ bval) { @@ -437,7 +437,7 @@ case PDO_MYSQL_ATTR_USE_BUFFERED_QUERY: if (!pdo_get_bool_param(&bval, val)) { - return false; + PDO_DBG_RETURN(false); } /* ignore if the new value equals the old one */ ((pdo_mysql_db_handle *)dbh->driver_data)->buffered = bval; @@ -446,7 +446,7 @@ case PDO_MYSQL_ATTR_DIRECT_QUERY: case PDO_ATTR_EMULATE_PREPARES: if (!pdo_get_bool_param(&bval, val)) { - return false; + PDO_DBG_RETURN(false); } /* ignore if the new value equals the old one */ ((pdo_mysql_db_handle *)dbh->driver_data)->emulate_prepare = bval; @@ -454,12 +454,24 @@ case PDO_ATTR_FETCH_TABLE_NAMES: if (!pdo_get_bool_param(&bval, val)) { - return false; + PDO_DBG_RETURN(false); } ((pdo_mysql_db_handle *)dbh->driver_data)->fetch_table_names = bval; PDO_DBG_RETURN(true); -#ifndef PDO_USE_MYSQLND +#ifdef PDO_USE_MYSQLND + case PDO_ATTR_STRINGIFY_FETCHES: + if (!pdo_get_bool_param(&bval, val)) { + PDO_DBG_RETURN(false); + } + unsigned int int_and_float_native = !bval; + pdo_mysql_db_handle *H = (pdo_mysql_db_handle *)dbh->driver_data; + if (mysql_options(H->server, MYSQLND_OPT_INT_AND_FLOAT_NATIVE, (const char *) &int_and_float_native)) { + pdo_mysql_error(dbh); + PDO_DBG_RETURN(false); + } + PDO_DBG_RETURN(true); +#else case PDO_MYSQL_ATTR_MAX_BUFFER_SIZE: if (!pdo_get_long_param(&lval, val)) { PDO_DBG_RETURN(false); @@ -891,7 +903,7 @@ } #ifdef PDO_USE_MYSQLND - unsigned int int_and_float_native = 1; + unsigned int int_and_float_native = !pdo_attr_lval(driver_options, PDO_ATTR_STRINGIFY_FETCHES, dbh->stringify); if (mysql_options(H->server, MYSQLND_OPT_INT_AND_FLOAT_NATIVE, (const char *) &int_and_float_native)) { pdo_mysql_error(dbh); goto cleanup; diff -Nru php8.2-8.2.7/ext/pdo_mysql/tests/bug68371.phpt php8.2-8.2.18/ext/pdo_mysql/tests/bug68371.phpt --- php8.2-8.2.7/ext/pdo_mysql/tests/bug68371.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/pdo_mysql/tests/bug68371.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -96,6 +96,6 @@ ERR ERR string(5) "mysql" -ERR +bool(false) ERR int(4) diff -Nru php8.2-8.2.7/ext/pdo_mysql/tests/gh-11587.phpt php8.2-8.2.18/ext/pdo_mysql/tests/gh-11587.phpt --- php8.2-8.2.7/ext/pdo_mysql/tests/gh-11587.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/pdo_mysql/tests/gh-11587.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,163 @@ +--TEST-- +GH-11587 PHP8.1: Fixed the condition for result set values to be of native type, making it compatible with previous versions. #11622 +--EXTENSIONS-- +pdo_mysql +--SKIPIF-- + +--FILE-- +exec('DROP TABLE IF EXISTS test'); + +$createTestTable = <<exec($createTestTable); + +$insertTestTable = <<exec($insertTestTable); + +echo "PDO::ATTR_EMULATE_PREPARES = true, PDO::ATTR_STRINGIFY_FETCHES = true\n"; +$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, true); +$db->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, true); +$results = $db->query('SELECT * FROM test'); +foreach ($results as $result) { + var_dump($result); +} + +echo "\n"; + +echo "PDO::ATTR_EMULATE_PREPARES = true, PDO::ATTR_STRINGIFY_FETCHES = false\n"; +$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, true); +$db->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false); +$results = $db->query('SELECT * FROM test'); +foreach ($results as $result) { + var_dump($result); +} + +echo "\n"; + +echo "PDO::ATTR_EMULATE_PREPARES = false, PDO::ATTR_STRINGIFY_FETCHES = true\n"; +$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); +$db->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, true); +$results = $db->query('SELECT * FROM test'); +foreach ($results as $result) { + var_dump($result); +} + +echo "\n"; + +echo "PDO::ATTR_EMULATE_PREPARES = false, PDO::ATTR_STRINGIFY_FETCHES = false\n"; +$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); +$db->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false); +$results = $db->query('SELECT * FROM test'); +foreach ($results as $result) { + var_dump($result); +} + +echo "\n"; + +echo 'done!'; +?> +--CLEAN-- + +--EXPECT-- +PDO::ATTR_EMULATE_PREPARES = true, PDO::ATTR_STRINGIFY_FETCHES = true +array(8) { + ["id"]=> + string(1) "1" + [0]=> + string(1) "1" + ["float_col"]=> + string(4) "2.60" + [1]=> + string(4) "2.60" + ["double_col"]=> + string(4) "3.60" + [2]=> + string(4) "3.60" + ["decimal_col"]=> + string(4) "4.60" + [3]=> + string(4) "4.60" +} + +PDO::ATTR_EMULATE_PREPARES = true, PDO::ATTR_STRINGIFY_FETCHES = false +array(8) { + ["id"]=> + int(1) + [0]=> + int(1) + ["float_col"]=> + float(2.6) + [1]=> + float(2.6) + ["double_col"]=> + float(3.6) + [2]=> + float(3.6) + ["decimal_col"]=> + string(4) "4.60" + [3]=> + string(4) "4.60" +} + +PDO::ATTR_EMULATE_PREPARES = false, PDO::ATTR_STRINGIFY_FETCHES = true +array(8) { + ["id"]=> + string(1) "1" + [0]=> + string(1) "1" + ["float_col"]=> + string(3) "2.6" + [1]=> + string(3) "2.6" + ["double_col"]=> + string(3) "3.6" + [2]=> + string(3) "3.6" + ["decimal_col"]=> + string(4) "4.60" + [3]=> + string(4) "4.60" +} + +PDO::ATTR_EMULATE_PREPARES = false, PDO::ATTR_STRINGIFY_FETCHES = false +array(8) { + ["id"]=> + int(1) + [0]=> + int(1) + ["float_col"]=> + float(2.6) + [1]=> + float(2.6) + ["double_col"]=> + float(3.6) + [2]=> + float(3.6) + ["decimal_col"]=> + string(4) "4.60" + [3]=> + string(4) "4.60" +} + +done! diff -Nru php8.2-8.2.7/ext/pdo_mysql/tests/gh11550.phpt php8.2-8.2.18/ext/pdo_mysql/tests/gh11550.phpt --- php8.2-8.2.7/ext/pdo_mysql/tests/gh11550.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/pdo_mysql/tests/gh11550.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,84 @@ +--TEST-- +Bug GH-11550 (MySQL Statement has a empty query result when the response field has changed, also Segmentation fault) +--EXTENSIONS-- +pdo +pdo_mysql +--SKIPIF-- + +--FILE-- +setAttribute(PDO::ATTR_STRINGIFY_FETCHES, true); + +$pdo->exec(<<<'SQL' +CREATE TABLE `test_gh11550` ( + `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, + `name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + PRIMARY KEY (`id`) USING BTREE, + INDEX `name`(`name`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; +SQL); +$pdo->exec(<<<'SQL' +INSERT INTO `test_gh11550` (`name`) VALUES ('test1'); +SQL); + +$stmt = $pdo->prepare('select * from test_gh11550'); +var_dump('PDO-1:', $stmt->execute(), $stmt->fetchAll()); + +$stmt->closeCursor(); // Optional. Segmentation fault (core dumped) + +$pdo->exec(<<<'SQL' +ALTER TABLE `test_gh11550` +ADD COLUMN `a` varchar(255) NOT NULL DEFAULT ''; +SQL); + +var_dump('PDO-2:', $stmt->execute(), $stmt->fetchAll()); +echo 'Done'; +?> +--CLEAN-- +query('DROP TABLE IF EXISTS test_gh11550'); +?> +--EXPECT-- +string(6) "PDO-1:" +bool(true) +array(1) { + [0]=> + array(4) { + ["id"]=> + string(1) "1" + [0]=> + string(1) "1" + ["name"]=> + string(5) "test1" + [1]=> + string(5) "test1" + } +} +string(6) "PDO-2:" +bool(true) +array(1) { + [0]=> + array(6) { + ["id"]=> + string(1) "1" + [0]=> + string(1) "1" + ["name"]=> + string(5) "test1" + [1]=> + string(5) "test1" + ["a"]=> + string(0) "" + [2]=> + string(0) "" + } +} +Done diff -Nru php8.2-8.2.7/ext/pdo_mysql/tests/pdo_mysql___construct.phpt php8.2-8.2.18/ext/pdo_mysql/tests/pdo_mysql___construct.phpt --- php8.2-8.2.7/ext/pdo_mysql/tests/pdo_mysql___construct.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/pdo_mysql/tests/pdo_mysql___construct.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -6,7 +6,7 @@ --FILE-- 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"; @@ -386,7 +410,9 @@ 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 -Nru php8.2-8.2.7/ext/pdo_odbc/tests/autocommit.phpt php8.2-8.2.18/ext/pdo_odbc/tests/autocommit.phpt --- php8.2-8.2.7/ext/pdo_odbc/tests/autocommit.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/pdo_odbc/tests/autocommit.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -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 -Nru php8.2-8.2.7/ext/pdo_odbc/tests/autocommit_change_mode.phpt php8.2-8.2.18/ext/pdo_odbc/tests/autocommit_change_mode.phpt --- php8.2-8.2.7/ext/pdo_odbc/tests/autocommit_change_mode.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/pdo_odbc/tests/autocommit_change_mode.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,135 @@ +--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); +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"; + +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) { + var_dump($db->getAttribute(PDO::ATTR_AUTOCOMMIT)); + echo $e->getMessage()."\n\n"; +} + +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"; +} + +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) { + var_dump($db->getAttribute(PDO::ATTR_AUTOCOMMIT)); + echo $e->getMessage()."\n\n"; +} + +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"; +} + +echo "end transaction\n"; +$db->rollback(); +echo "\n"; + +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 +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 + +done! diff -Nru php8.2-8.2.7/ext/pdo_pgsql/pgsql_driver.stub.php php8.2-8.2.18/ext/pdo_pgsql/pgsql_driver.stub.php --- php8.2-8.2.7/ext/pdo_pgsql/pgsql_driver.stub.php 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/pdo_pgsql/pgsql_driver.stub.php 2024-04-09 18:46:23.000000000 +0000 @@ -29,7 +29,7 @@ public function pgsqlLOBUnlink(string $oid): bool {} /** @tentative-return-type */ - public function pgsqlGetNotify(int $fetchMode = PDO::FETCH_USE_DEFAULT, int $timeoutMilliseconds = 0): array|false {} + public function pgsqlGetNotify(int $fetchMode = PDO::FETCH_DEFAULT, int $timeoutMilliseconds = 0): array|false {} /** @tentative-return-type */ public function pgsqlGetPid(): int {} diff -Nru php8.2-8.2.7/ext/pdo_pgsql/pgsql_driver_arginfo.h php8.2-8.2.18/ext/pdo_pgsql/pgsql_driver_arginfo.h --- php8.2-8.2.7/ext/pdo_pgsql/pgsql_driver_arginfo.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/pdo_pgsql/pgsql_driver_arginfo.h 2024-04-09 18:46:23.000000000 +0000 @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: b30fa6327876dc1090ee5397253c935e4566a8fe */ + * Stub hash: 9bb79af98dbb7c171fd9533aeabece4937a06cd2 */ ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_PDO_PGSql_Ext_pgsqlCopyFromArray, 0, 2, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, tableName, IS_STRING, 0) @@ -39,7 +39,7 @@ ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_MASK_EX(arginfo_class_PDO_PGSql_Ext_pgsqlGetNotify, 0, 0, MAY_BE_ARRAY|MAY_BE_FALSE) - ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, fetchMode, IS_LONG, 0, "PDO::FETCH_USE_DEFAULT") + ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, fetchMode, IS_LONG, 0, "PDO::FETCH_DEFAULT") ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, timeoutMilliseconds, IS_LONG, 0, "0") ZEND_END_ARG_INFO() diff -Nru php8.2-8.2.7/ext/pdo_pgsql/tests/bug68371.phpt php8.2-8.2.18/ext/pdo_pgsql/tests/bug68371.phpt --- php8.2-8.2.7/ext/pdo_pgsql/tests/bug68371.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/pdo_pgsql/tests/bug68371.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -95,6 +95,6 @@ ERR ERR string(5) "pgsql" -ERR +bool(true) ERR int(4) diff -Nru php8.2-8.2.7/ext/pdo_pgsql/tests/gh7723.phpt php8.2-8.2.18/ext/pdo_pgsql/tests/gh7723.phpt --- php8.2-8.2.7/ext/pdo_pgsql/tests/gh7723.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/pdo_pgsql/tests/gh7723.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -1,8 +1,10 @@ --TEST-- GitHub #7723 (Fix error message allocation of PDO PgSQL) +--EXTENSIONS-- +pdo +pdo_pgsql --SKIPIF-- query('PRAGMA compile_options')->fetchAll(PDO::FETCH_COLUMN); +if(!in_array('ENABLE_COLUMN_METADATA', $options, true)) + die("skip sqlite3 must be compiled with SQLITE_ENABLE_COLUMN_METADATA"); +?> --FILE-- exec('CREATE TABLE test (id int)'); -$db->exec('INSERT INTO test VALUES (23)'); - -$stmt = $db->prepare('SELECT id FROM test'); -$stmt->execute(); -$result = $stmt->fetch(PDO::FETCH_LAZY); - -echo get_class($result), "\n"; -var_dump(get_parent_class($result)); - -try { - $result->foo = 1; -} catch (Error $e) { - echo $e->getMessage(), "\n"; -} -try { - $result[0] = 1; -} catch (Error $e) { - echo $e->getMessage(), "\n"; -} -try { - unset($result->foo); -} catch (Error $e) { - echo $e->getMessage(), "\n"; -} -try { - unset($result[0]); -} catch (Error $e) { - echo $e->getMessage(), "\n"; -} - -?> ---EXPECT-- -PDORow -bool(false) -Cannot write to PDORow property -Cannot write to PDORow offset -Cannot unset PDORow property -Cannot unset PDORow offset diff -Nru php8.2-8.2.7/ext/pgsql/pgsql.c php8.2-8.2.18/ext/pgsql/pgsql.c --- php8.2-8.2.7/ext/pgsql/pgsql.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/pgsql/pgsql.c 2024-04-09 18:46:23.000000000 +0000 @@ -175,6 +175,7 @@ PQclear(res); } if (!link->persistent) { + PQuntrace(link->conn); PQfinish(link->conn); } PGG(num_links)--; @@ -313,8 +314,14 @@ 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; } @@ -404,7 +411,7 @@ 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() @@ -1281,7 +1288,7 @@ params = (char **)safe_emalloc(sizeof(char *), num_params, 0); ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(pv_param_arr), tmp) { - + ZVAL_DEREF(tmp); if (Z_TYPE_P(tmp) == IS_NULL) { params[i] = NULL; } else { @@ -2185,7 +2192,7 @@ PGconn *pgsql; pgsql_link_handle *link; - if (zend_parse_parameters(ZEND_NUM_ARGS(), "|r!", &pgsql_link) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS(), "|O!", &pgsql_link, pgsql_link_ce) == FAILURE) { RETURN_THROWS(); } @@ -3646,7 +3653,7 @@ params = (char **)safe_emalloc(sizeof(char *), num_params, 0); ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(pv_param_arr), tmp) { - + ZVAL_DEREF(tmp); if (Z_TYPE_P(tmp) == IS_NULL) { params[i] = NULL; } else { @@ -3813,7 +3820,7 @@ params = (char **)safe_emalloc(sizeof(char *), num_params, 0); ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(pv_param_arr), tmp) { - + ZVAL_DEREF(tmp); if (Z_TYPE_P(tmp) == IS_NULL) { params[i] = NULL; } else { diff -Nru php8.2-8.2.7/ext/pgsql/php_pgsql.h php8.2-8.2.18/ext/pgsql/php_pgsql.h --- php8.2-8.2.7/ext/pgsql/php_pgsql.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/pgsql/php_pgsql.h 2024-04-09 18:46:23.000000000 +0000 @@ -184,9 +184,10 @@ 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; diff -Nru php8.2-8.2.7/ext/pgsql/tests/gh12763.phpt php8.2-8.2.18/ext/pgsql/tests/gh12763.phpt --- php8.2-8.2.7/ext/pgsql/tests/gh12763.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/pgsql/tests/gh12763.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,23 @@ +--TEST-- +Bug #GH12763 (pg_untrace(): Argument #1 ($connection) must be of type resource or null, PgSql\Connection given) +--EXTENSIONS-- +pgsql +--SKIPIF-- + +--FILE-- + +--EXPECT-- +OK diff -Nru php8.2-8.2.7/ext/pgsql/tests/gh13354.phpt php8.2-8.2.18/ext/pgsql/tests/gh13354.phpt --- php8.2-8.2.7/ext/pgsql/tests/gh13354.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/pgsql/tests/gh13354.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,80 @@ +--TEST-- +GH-13354 (null-by-reference handling in pg_execute, pg_send_query_params, pg_send_execute) +--EXTENSIONS-- +pgsql +--SKIPIF-- + +--FILE-- + +--EXPECT-- +pg_execute, null value: t +pg_execute, null value by reference: t +pg_query_params, null value: t +pg_query_params, null value by reference: t +pg_send_query_params, null value: t +pg_send_query_params, null value by reference: t +pg_send_execute, null value: t +pg_send_execute, null value by reference: t diff -Nru php8.2-8.2.7/ext/pgsql/tests/pg_trace.phpt php8.2-8.2.18/ext/pgsql/tests/pg_trace.phpt --- php8.2-8.2.7/ext/pgsql/tests/pg_trace.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/pgsql/tests/pg_trace.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,20 @@ +--TEST-- +pg_trace +--EXTENSIONS-- +pgsql +--SKIPIF-- + +--FILE-- + +--EXPECTF-- +bool(true) diff -Nru php8.2-8.2.7/ext/phar/Makefile.frag php8.2-8.2.18/ext/phar/Makefile.frag --- php8.2-8.2.7/ext/phar/Makefile.frag 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/phar/Makefile.frag 2024-04-09 18:46:23.000000000 +0000 @@ -35,7 +35,7 @@ $(builddir)/phar.php: $(srcdir)/build_precommand.php $(srcdir)/phar/*.inc $(srcdir)/phar/*.php $(SAPI_CLI_PATH) -@(echo "Generating phar.php"; \ - if [ $(TEST_PHP_EXECUTABLE_RES) -ne 1 ]; then \ + if [ "$(TEST_PHP_EXECUTABLE_RES)" != 1 ]; then \ $(PHP_PHARCMD_EXECUTABLE) $(PHP_PHARCMD_SETTINGS) $(srcdir)/build_precommand.php > $(builddir)/phar.php; \ else \ echo "Skipping phar.php generating during cross compilation"; \ @@ -43,7 +43,7 @@ $(builddir)/phar.phar: $(builddir)/phar.php $(builddir)/phar/phar.inc $(srcdir)/phar/*.inc $(srcdir)/phar/*.php $(SAPI_CLI_PATH) -@(echo "Generating phar.phar"; \ - if [ $(TEST_PHP_EXECUTABLE_RES) -ne 1 ]; then \ + if [ "$(TEST_PHP_EXECUTABLE_RES)" != 1 ]; then \ rm -f $(builddir)/phar.phar; \ rm -f $(srcdir)/phar.phar; \ $(PHP_PHARCMD_EXECUTABLE) $(PHP_PHARCMD_SETTINGS) $(builddir)/phar.php pack -f $(builddir)/phar.phar -a pharcommand -c auto -x \\.svn -p 0 -s $(srcdir)/phar/phar.php -h sha1 -b "$(PHP_PHARCMD_BANG)" $(srcdir)/phar/; \ @@ -53,7 +53,7 @@ fi) install-pharcmd: pharcmd - @(if [ $(TEST_PHP_EXECUTABLE_RES) -ne 1 ]; then \ + @(if [ "$(TEST_PHP_EXECUTABLE_RES)" != 1 ]; then \ $(mkinstalldirs) $(INSTALL_ROOT)$(bindir); \ $(INSTALL) $(builddir)/phar.phar $(INSTALL_ROOT)$(bindir)/$(program_prefix)phar$(program_suffix).phar; \ rm -f $(INSTALL_ROOT)$(bindir)/$(program_prefix)phar$(program_suffix); \ diff -Nru php8.2-8.2.7/ext/phar/dirstream.c php8.2-8.2.18/ext/phar/dirstream.c --- php8.2-8.2.7/ext/phar/dirstream.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/phar/dirstream.c 2024-04-09 18:46:23.000000000 +0000 @@ -89,25 +89,28 @@ */ static ssize_t phar_dir_read(php_stream *stream, char *buf, size_t count) /* {{{ */ { - size_t to_read; HashTable *data = (HashTable *)stream->abstract; zend_string *str_key; zend_ulong unused; + if (count != sizeof(php_stream_dirent)) { + return -1; + } + if (HASH_KEY_NON_EXISTENT == zend_hash_get_current_key(data, &str_key, &unused)) { return 0; } zend_hash_move_forward(data); - to_read = MIN(ZSTR_LEN(str_key), count); - if (to_read == 0 || count < ZSTR_LEN(str_key)) { + php_stream_dirent *dirent = (php_stream_dirent *) buf; + + if (sizeof(dirent->d_name) <= ZSTR_LEN(str_key)) { return 0; } - memset(buf, 0, sizeof(php_stream_dirent)); - memcpy(((php_stream_dirent *) buf)->d_name, ZSTR_VAL(str_key), to_read); - ((php_stream_dirent *) buf)->d_name[to_read + 1] = '\0'; + memset(dirent, 0, sizeof(php_stream_dirent)); + PHP_STRLCPY(dirent->d_name, ZSTR_VAL(str_key), sizeof(dirent->d_name), ZSTR_LEN(str_key)); return sizeof(php_stream_dirent); } diff -Nru php8.2-8.2.7/ext/phar/phar.1.in php8.2-8.2.18/ext/phar/phar.1.in --- php8.2-8.2.7/ext/phar/phar.1.in 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/phar/phar.1.in 2024-04-09 18:46:23.000000000 +0000 @@ -1,4 +1,4 @@ -.TH PHAR 1 "2022" "The PHP Group" "User Commands" +.TH PHAR 1 "2024" "The PHP Group" "User Commands" .SH NAME phar, phar.phar \- PHAR (PHP archive) command line tool .SH SYNOPSIS diff -Nru php8.2-8.2.7/ext/phar/phar_object.c php8.2-8.2.18/ext/phar/phar_object.c --- php8.2-8.2.7/ext/phar/phar_object.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/phar/phar_object.c 2024-04-09 18:46:23.000000000 +0000 @@ -599,7 +599,8 @@ if ((sapi_mod_name_len == sizeof("cgi-fcgi") - 1 && !strncmp(sapi_module.name, "cgi-fcgi", sizeof("cgi-fcgi") - 1)) || (sapi_mod_name_len == sizeof("fpm-fcgi") - 1 && !strncmp(sapi_module.name, "fpm-fcgi", sizeof("fpm-fcgi") - 1)) - || (sapi_mod_name_len == sizeof("cgi") - 1 && !strncmp(sapi_module.name, "cgi", sizeof("cgi") - 1))) { + || (sapi_mod_name_len == sizeof("cgi") - 1 && !strncmp(sapi_module.name, "cgi", sizeof("cgi") - 1)) + || (sapi_mod_name_len == sizeof("litespeed") - 1 && !strncmp(sapi_module.name, "litespeed", sizeof("litespeed") - 1))) { if (Z_TYPE(PG(http_globals)[TRACK_VARS_SERVER]) != IS_UNDEF) { HashTable *_server = Z_ARRVAL(PG(http_globals)[TRACK_VARS_SERVER]); diff -Nru php8.2-8.2.7/ext/phar/stream.c php8.2-8.2.18/ext/phar/stream.c --- php8.2-8.2.7/ext/phar/stream.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/phar/stream.c 2024-04-09 18:46:23.000000000 +0000 @@ -254,6 +254,17 @@ 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 @@ 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 -Nru php8.2-8.2.7/ext/phar/tests/GHSA-jqcx-ccgc-xwhv.phpt php8.2-8.2.18/ext/phar/tests/GHSA-jqcx-ccgc-xwhv.phpt --- php8.2-8.2.7/ext/phar/tests/GHSA-jqcx-ccgc-xwhv.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/phar/tests/GHSA-jqcx-ccgc-xwhv.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,27 @@ +--TEST-- +GHSA-jqcx-ccgc-xwhv (Buffer overflow and overread in phar_dir_read()) +--EXTENSIONS-- +phar +--INI-- +phar.readonly=0 +--FILE-- +startBuffering(); +$phar->addFromString(str_repeat('A', PHP_MAXPATHLEN - 1), 'This is the content of file 1.'); +$phar->addFromString(str_repeat('B', PHP_MAXPATHLEN - 1).'C', 'This is the content of file 2.'); +$phar->stopBuffering(); + +$handle = opendir('phar://' . __DIR__ . '/GHSA-jqcx-ccgc-xwhv.phar'); +var_dump(strlen(readdir($handle))); +// Must not be a string of length PHP_MAXPATHLEN+1 +var_dump(readdir($handle)); +closedir($handle); +?> +--CLEAN-- + +--EXPECTF-- +int(%d) +bool(false) diff -Nru php8.2-8.2.7/ext/phar/tests/bug77432.phpt php8.2-8.2.18/ext/phar/tests/bug77432.phpt --- php8.2-8.2.7/ext/phar/tests/bug77432.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/phar/tests/bug77432.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,48 @@ +--TEST-- +Bug #77432 (Segmentation fault on including phar file) +--EXTENSIONS-- +phar +--INI-- +opcache.enable=0 +error_reporting=-1 +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=%s) in %s on line %d diff -Nru php8.2-8.2.7/ext/phar/tests/bug81211.phpt php8.2-8.2.18/ext/phar/tests/bug81211.phpt --- php8.2-8.2.7/ext/phar/tests/bug81211.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/phar/tests/bug81211.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -1,8 +1,9 @@ --TEST-- Bug #81211 (Symlinks are followed when creating PHAR archive) +--EXTENSIONS-- +phar --SKIPIF-- extractTo(__DIR__ . '/out_gh13037/'); +echo file_get_contents(__DIR__ . '/out_gh13037/test'); +?> +--CLEAN-- + +--EXPECT-- +hello diff -Nru php8.2-8.2.7/ext/phar/util.c php8.2-8.2.18/ext/phar/util.c --- php8.2-8.2.7/ext/phar/util.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/phar/util.c 2024-04-09 18:46:23.000000000 +0000 @@ -1599,7 +1599,9 @@ php_stream_seek(fp, 0, SEEK_SET); while (read_size && (len = php_stream_read(fp, (char*)buf, read_size)) > 0) { - EVP_VerifyUpdate (md_ctx, buf, len); + if (UNEXPECTED(EVP_VerifyUpdate (md_ctx, buf, len) == 0)) { + goto failure; + } read_len -= (zend_off_t)len; if (read_len < read_size) { @@ -1608,6 +1610,7 @@ } if (EVP_VerifyFinal(md_ctx, (unsigned char *)sig, sig_len, key) != 1) { + failure: /* 1: signature verified, 0: signature does not match, -1: failed signature operation */ EVP_PKEY_free(key); EVP_MD_CTX_destroy(md_ctx); diff -Nru php8.2-8.2.7/ext/phar/zip.c php8.2-8.2.18/ext/phar/zip.c --- php8.2-8.2.7/ext/phar/zip.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/phar/zip.c 2024-04-09 18:46:23.000000000 +0000 @@ -386,8 +386,6 @@ entry.timestamp = phar_zip_d2u_time(zipentry.timestamp, zipentry.datestamp); entry.flags = PHAR_ENT_PERM_DEF_FILE; entry.header_offset = PHAR_GET_32(zipentry.offset); - entry.offset = entry.offset_abs = PHAR_GET_32(zipentry.offset) + sizeof(phar_zip_file_header) + PHAR_GET_16(zipentry.filename_len) + - PHAR_GET_16(zipentry.extra_len); if (PHAR_GET_16(zipentry.flags) & PHAR_ZIP_FLAG_ENCRYPTED) { PHAR_ZIP_FAIL("Cannot process encrypted zip files"); @@ -417,6 +415,42 @@ entry.is_dir = 0; } + phar_zip_file_header local; /* Warning: only filled in when the entry is not a directory! */ + if (!entry.is_dir) { + /* A file has a central directory entry, and a local file header. Both of these contain the filename + * and the extra field data. However, at least the extra field data does not have to match between the two! + * This happens for example for the "Extended Timestamp extra field" where the local header has 2 extra fields + * in comparison to the central header. So we have to use the local header to find the right offset to the file + * contents, otherwise we're reading some garbage bytes before reading the actual file contents. */ + zend_off_t current_central_dir_pos = php_stream_tell(fp); + + php_stream_seek(fp, entry.header_offset, SEEK_SET); + if (sizeof(local) != php_stream_read(fp, (char *) &local, sizeof(local))) { + pefree(entry.filename, entry.is_persistent); + PHAR_ZIP_FAIL("phar error: internal corruption (cannot read local file header)"); + } + php_stream_seek(fp, current_central_dir_pos, SEEK_SET); + + /* verify local header + * Note: normally I'd check the crc32, and file sizes too here, but that breaks tests zip/bug48791.phpt & zip/odt.phpt, + * suggesting that something may be wrong with those files or the assumption doesn't hold. Anyway, the other checks + * _are_ performed for the alias file as was done in the past too. */ + if (entry.filename_len != PHAR_GET_16(local.filename_len)) { + pefree(entry.filename, entry.is_persistent); + PHAR_ZIP_FAIL("phar error: internal corruption (local file header does not match central directory)"); + } + + entry.offset = entry.offset_abs = entry.header_offset + + sizeof(phar_zip_file_header) + + entry.filename_len + + PHAR_GET_16(local.extra_len); + } else { + entry.offset = entry.offset_abs = entry.header_offset + + sizeof(phar_zip_file_header) + + entry.filename_len + + PHAR_GET_16(zipentry.extra_len); + } + if (entry.filename_len == sizeof(".phar/signature.bin")-1 && !strncmp(entry.filename, ".phar/signature.bin", sizeof(".phar/signature.bin")-1)) { size_t read; php_stream *sigfile; @@ -445,7 +479,7 @@ if (metadata) { php_stream_write(sigfile, metadata, PHAR_GET_16(locator.comment_len)); } - php_stream_seek(fp, sizeof(phar_zip_file_header) + entry.header_offset + entry.filename_len + PHAR_GET_16(zipentry.extra_len), SEEK_SET); + php_stream_seek(fp, entry.offset, SEEK_SET); sig = (char *) emalloc(entry.uncompressed_filesize); read = php_stream_read(fp, sig, entry.uncompressed_filesize); if (read != entry.uncompressed_filesize || read <= 8) { @@ -563,28 +597,17 @@ if (!actual_alias && entry.filename_len == sizeof(".phar/alias.txt")-1 && !strncmp(entry.filename, ".phar/alias.txt", sizeof(".phar/alias.txt")-1)) { php_stream_filter *filter; - zend_off_t saveloc; - /* verify local file header */ - phar_zip_file_header local; /* archive alias found */ - saveloc = php_stream_tell(fp); - php_stream_seek(fp, PHAR_GET_32(zipentry.offset), SEEK_SET); - - if (sizeof(local) != php_stream_read(fp, (char *) &local, sizeof(local))) { - pefree(entry.filename, entry.is_persistent); - PHAR_ZIP_FAIL("phar error: internal corruption of zip-based phar (cannot read local file header for alias)"); - } /* verify local header */ - if (entry.filename_len != PHAR_GET_16(local.filename_len) || entry.crc32 != PHAR_GET_32(local.crc32) || entry.uncompressed_filesize != PHAR_GET_32(local.uncompsize) || entry.compressed_filesize != PHAR_GET_32(local.compsize)) { + ZEND_ASSERT(!entry.is_dir); + if (entry.crc32 != PHAR_GET_32(local.crc32) || entry.uncompressed_filesize != PHAR_GET_32(local.uncompsize) || entry.compressed_filesize != PHAR_GET_32(local.compsize)) { pefree(entry.filename, entry.is_persistent); PHAR_ZIP_FAIL("phar error: internal corruption of zip-based phar (local header of alias does not match central directory)"); } - /* construct actual offset to file start - local extra_len can be different from central extra_len */ - entry.offset = entry.offset_abs = - sizeof(local) + entry.header_offset + PHAR_GET_16(local.filename_len) + PHAR_GET_16(local.extra_len); + zend_off_t restore_pos = php_stream_tell(fp); php_stream_seek(fp, entry.offset, SEEK_SET); /* these next lines should be for php < 5.2.6 after 5.3 filters are fixed */ fp->writepos = 0; @@ -680,7 +703,7 @@ } /* return to central directory parsing */ - php_stream_seek(fp, saveloc, SEEK_SET); + php_stream_seek(fp, restore_pos, SEEK_SET); } phar_set_inode(&entry); diff -Nru php8.2-8.2.7/ext/random/random.c php8.2-8.2.18/ext/random/random.c --- php8.2-8.2.7/ext/random/random.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/random/random.c 2024-04-09 18:46:23.000000000 +0000 @@ -334,6 +334,7 @@ php_random_status *status = RANDOM_G(mt19937); if (!RANDOM_G(mt19937_seeded)) { + ((php_random_status_state_mt19937 *)status->state)->mode = MT_RAND_MT19937; php_random_mt19937_seed_default(status->state); RANDOM_G(mt19937_seeded) = true; } @@ -688,7 +689,13 @@ Z_PARAM_LONG(mode) ZEND_PARSE_PARAMETERS_END(); - state->mode = mode; + switch (mode) { + case MT_RAND_PHP: + state->mode = MT_RAND_PHP; + break; + default: + state->mode = MT_RAND_MT19937; + } if (ZEND_NUM_ARGS() == 0) { php_random_mt19937_seed_default(status->state); diff -Nru php8.2-8.2.7/ext/random/tests/01_functions/mt_srand_unknown_mode.phpt php8.2-8.2.18/ext/random/tests/01_functions/mt_srand_unknown_mode.phpt --- php8.2-8.2.7/ext/random/tests/01_functions/mt_srand_unknown_mode.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/random/tests/01_functions/mt_srand_unknown_mode.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,22 @@ +--TEST-- +mt_srand(): Test unknown modes +--FILE-- + +--EXPECT-- +int(895547922) +int(1244335972) +int(895547922) +int(895547922) diff -Nru php8.2-8.2.7/ext/random/tests/03_randomizer/engine_unsafe_biased.phpt php8.2-8.2.18/ext/random/tests/03_randomizer/engine_unsafe_biased.phpt --- php8.2-8.2.7/ext/random/tests/03_randomizer/engine_unsafe_biased.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/random/tests/03_randomizer/engine_unsafe_biased.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -44,6 +44,18 @@ } try { + var_dump(randomizer()->pickArrayKeys(range(1, 1234), 1)); +} catch (Random\BrokenRandomEngineError $e) { + echo $e->getMessage(), PHP_EOL; +} + +try { + var_dump(randomizer()->pickArrayKeys(range(1, 1234), 10)); +} catch (Random\BrokenRandomEngineError $e) { + echo $e->getMessage(), PHP_EOL; +} + +try { var_dump(randomizer()->shuffleBytes('foobar')); } catch (Random\BrokenRandomEngineError $e) { echo $e->getMessage(), PHP_EOL; @@ -56,3 +68,5 @@ string(2) "ff" Failed to generate an acceptable random number in 50 attempts Failed to generate an acceptable random number in 50 attempts +Failed to generate an acceptable random number in 50 attempts +Failed to generate an acceptable random number in 50 attempts diff -Nru php8.2-8.2.7/ext/random/tests/03_randomizer/engine_unsafe_empty_string.phpt php8.2-8.2.18/ext/random/tests/03_randomizer/engine_unsafe_empty_string.phpt --- php8.2-8.2.7/ext/random/tests/03_randomizer/engine_unsafe_empty_string.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/random/tests/03_randomizer/engine_unsafe_empty_string.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -44,6 +44,18 @@ } try { + var_dump(randomizer()->pickArrayKeys(range(1, 1234), 1)); +} catch (Random\BrokenRandomEngineError $e) { + echo $e->getMessage(), PHP_EOL; +} + +try { + var_dump(randomizer()->pickArrayKeys(range(1, 1234), 10)); +} catch (Random\BrokenRandomEngineError $e) { + echo $e->getMessage(), PHP_EOL; +} + +try { var_dump(randomizer()->shuffleBytes('foobar')); } catch (Random\BrokenRandomEngineError $e) { echo $e->getMessage(), PHP_EOL; @@ -54,5 +66,7 @@ A random engine must return a non-empty string A random engine must return a non-empty string A random engine must return a non-empty string +A random engine must return a non-empty string +A random engine must return a non-empty string A random engine must return a non-empty string A random engine must return a non-empty string diff -Nru php8.2-8.2.7/ext/random/tests/03_randomizer/engine_unsafe_nul.phpt php8.2-8.2.18/ext/random/tests/03_randomizer/engine_unsafe_nul.phpt --- php8.2-8.2.7/ext/random/tests/03_randomizer/engine_unsafe_nul.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/random/tests/03_randomizer/engine_unsafe_nul.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,322 @@ +--TEST-- +Random: Randomizer: Nul engines are correctly handled +--FILE-- +getInt(0, 1234)); +} catch (Random\BrokenRandomEngineError $e) { + echo $e->getMessage(), PHP_EOL; +} + +try { + var_dump(randomizer()->nextInt()); +} catch (Random\BrokenRandomEngineError $e) { + echo $e->getMessage(), PHP_EOL; +} + +try { + var_dump(bin2hex(randomizer()->getBytes(1))); +} catch (Random\BrokenRandomEngineError $e) { + echo $e->getMessage(), PHP_EOL; +} + +try { + var_dump(randomizer()->shuffleArray(range(1, 123))); +} catch (Random\BrokenRandomEngineError $e) { + echo $e->getMessage(), PHP_EOL; +} + +try { + var_dump(randomizer()->pickArrayKeys(range(1, 123), 1)); +} catch (Random\BrokenRandomEngineError $e) { + echo $e->getMessage(), PHP_EOL; +} + +try { + var_dump(randomizer()->pickArrayKeys(range(1, 123), 10)); +} catch (Random\BrokenRandomEngineError $e) { + echo $e->getMessage(), PHP_EOL; +} + +try { + var_dump(randomizer()->shuffleBytes('foobar')); +} catch (Random\BrokenRandomEngineError $e) { + echo $e->getMessage(), PHP_EOL; +} + +?> +--EXPECTF-- +int(0) +int(0) +string(2) "00" +array(123) { + [0]=> + int(2) + [1]=> + int(3) + [2]=> + int(4) + [3]=> + int(5) + [4]=> + int(6) + [5]=> + int(7) + [6]=> + int(8) + [7]=> + int(9) + [8]=> + int(10) + [9]=> + int(11) + [10]=> + int(12) + [11]=> + int(13) + [12]=> + int(14) + [13]=> + int(15) + [14]=> + int(16) + [15]=> + int(17) + [16]=> + int(18) + [17]=> + int(19) + [18]=> + int(20) + [19]=> + int(21) + [20]=> + int(22) + [21]=> + int(23) + [22]=> + int(24) + [23]=> + int(25) + [24]=> + int(26) + [25]=> + int(27) + [26]=> + int(28) + [27]=> + int(29) + [28]=> + int(30) + [29]=> + int(31) + [30]=> + int(32) + [31]=> + int(33) + [32]=> + int(34) + [33]=> + int(35) + [34]=> + int(36) + [35]=> + int(37) + [36]=> + int(38) + [37]=> + int(39) + [38]=> + int(40) + [39]=> + int(41) + [40]=> + int(42) + [41]=> + int(43) + [42]=> + int(44) + [43]=> + int(45) + [44]=> + int(46) + [45]=> + int(47) + [46]=> + int(48) + [47]=> + int(49) + [48]=> + int(50) + [49]=> + int(51) + [50]=> + int(52) + [51]=> + int(53) + [52]=> + int(54) + [53]=> + int(55) + [54]=> + int(56) + [55]=> + int(57) + [56]=> + int(58) + [57]=> + int(59) + [58]=> + int(60) + [59]=> + int(61) + [60]=> + int(62) + [61]=> + int(63) + [62]=> + int(64) + [63]=> + int(65) + [64]=> + int(66) + [65]=> + int(67) + [66]=> + int(68) + [67]=> + int(69) + [68]=> + int(70) + [69]=> + int(71) + [70]=> + int(72) + [71]=> + int(73) + [72]=> + int(74) + [73]=> + int(75) + [74]=> + int(76) + [75]=> + int(77) + [76]=> + int(78) + [77]=> + int(79) + [78]=> + int(80) + [79]=> + int(81) + [80]=> + int(82) + [81]=> + int(83) + [82]=> + int(84) + [83]=> + int(85) + [84]=> + int(86) + [85]=> + int(87) + [86]=> + int(88) + [87]=> + int(89) + [88]=> + int(90) + [89]=> + int(91) + [90]=> + int(92) + [91]=> + int(93) + [92]=> + int(94) + [93]=> + int(95) + [94]=> + int(96) + [95]=> + int(97) + [96]=> + int(98) + [97]=> + int(99) + [98]=> + int(100) + [99]=> + int(101) + [100]=> + int(102) + [101]=> + int(103) + [102]=> + int(104) + [103]=> + int(105) + [104]=> + int(106) + [105]=> + int(107) + [106]=> + int(108) + [107]=> + int(109) + [108]=> + int(110) + [109]=> + int(111) + [110]=> + int(112) + [111]=> + int(113) + [112]=> + int(114) + [113]=> + int(115) + [114]=> + int(116) + [115]=> + int(117) + [116]=> + int(118) + [117]=> + int(119) + [118]=> + int(120) + [119]=> + int(121) + [120]=> + int(122) + [121]=> + int(123) + [122]=> + int(1) +} +array(1) { + [0]=> + int(0) +} +Failed to generate an acceptable random number in 50 attempts +string(6) "oobarf" diff -Nru php8.2-8.2.7/ext/readline/tests/bug77812-readline.phpt php8.2-8.2.18/ext/readline/tests/bug77812-readline.phpt --- php8.2-8.2.7/ext/readline/tests/bug77812-readline.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/readline/tests/bug77812-readline.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -13,7 +13,6 @@ $ini = getenv('TEST_PHP_EXTRA_ARGS'); $descriptorspec = [['pipe', 'r'], STDOUT, STDERR]; $proc = proc_open("$php $ini -a", $descriptorspec, $pipes); -var_dump($proc); fwrite($pipes[0], "echo << --EXPECTF-- -resource(%d) of type (process) Interactive shell php > echo <<ce; ZEND_ASSERT(class->ce_flags & ZEND_ACC_ENUM); @@ -6863,7 +6864,7 @@ GET_REFLECTION_OBJECT_PTR(ce); - zend_class_constant *constant = zend_hash_find_ptr(&ce->constants_table, name); + zend_class_constant *constant = zend_hash_find_ptr(CE_CONSTANTS_TABLE(ce), name); if (constant == NULL) { zend_throw_exception_ex(reflection_exception_ptr, 0, "Case %s::%s does not exist", ZSTR_VAL(ce->name), ZSTR_VAL(name)); RETURN_THROWS(); @@ -6890,7 +6891,7 @@ GET_REFLECTION_OBJECT_PTR(ce); array_init(return_value); - ZEND_HASH_MAP_FOREACH_STR_KEY_PTR(&ce->constants_table, name, constant) { + ZEND_HASH_MAP_FOREACH_STR_KEY_PTR(CE_CONSTANTS_TABLE(ce), name, constant) { if (ZEND_CLASS_CONST_FLAGS(constant) & ZEND_CLASS_CONST_IS_CASE) { zval class_const; reflection_enum_case_factory(ce, name, constant, &class_const); diff -Nru php8.2-8.2.7/ext/reflection/tests/016.phpt php8.2-8.2.18/ext/reflection/tests/016.phpt --- php8.2-8.2.7/ext/reflection/tests/016.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/reflection/tests/016.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -1,15 +1,17 @@ --TEST-- ReflectionExtension::getDependencies() --EXTENSIONS-- -xml +dom --FILE-- getDependencies(); var_dump($deps); ?> --EXPECT-- -array(1) { +array(2) { ["libxml"]=> string(8) "Required" + ["domxml"]=> + string(9) "Conflicts" } diff -Nru php8.2-8.2.7/ext/reflection/tests/ReflectionFiber_bug_gh11121_1.phpt php8.2-8.2.18/ext/reflection/tests/ReflectionFiber_bug_gh11121_1.phpt --- php8.2-8.2.7/ext/reflection/tests/ReflectionFiber_bug_gh11121_1.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/reflection/tests/ReflectionFiber_bug_gh11121_1.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,62 @@ +--TEST-- +GH-11121: Segfault when using ReflectionFiber +--FILE-- +getTrace()); + }))->start(); +} + +$f = new Fiber(function() { f(); max(...[1,2,3,4,5,6,7,8,9,10,11,12]); g(); }); +$f->start(); +$f->resume(); + +?> +--EXPECTF-- +array(3) { + [0]=> + array(7) { + ["file"]=> + string(%d) "%sReflectionFiber_bug_gh11121_1.php" + ["line"]=> + int(10) + ["function"]=> + string(5) "start" + ["class"]=> + string(5) "Fiber" + ["object"]=> + object(Fiber)#3 (0) { + } + ["type"]=> + string(2) "->" + ["args"]=> + array(0) { + } + } + [1]=> + array(4) { + ["file"]=> + string(%d) "%sReflectionFiber_bug_gh11121_1.php" + ["line"]=> + int(13) + ["function"]=> + string(1) "g" + ["args"]=> + array(0) { + } + } + [2]=> + array(2) { + ["function"]=> + string(9) "{closure}" + ["args"]=> + array(0) { + } + } +} diff -Nru php8.2-8.2.7/ext/reflection/tests/ReflectionFiber_bug_gh11121_2.phpt php8.2-8.2.18/ext/reflection/tests/ReflectionFiber_bug_gh11121_2.phpt --- php8.2-8.2.7/ext/reflection/tests/ReflectionFiber_bug_gh11121_2.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/reflection/tests/ReflectionFiber_bug_gh11121_2.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,63 @@ +--TEST-- +GH-11121: Segfault when using ReflectionFiber +--FILE-- +getTrace()); + }))->start(); +} + +$f = new Fiber(function() { f(); g(); }); +$f->start(); +$f->resume(); + +?> +--EXPECTF-- +array(3) { + [0]=> + array(7) { + ["file"]=> + string(%d) "%sReflectionFiber_bug_gh11121_2.php" + ["line"]=> + int(11) + ["function"]=> + string(5) "start" + ["class"]=> + string(5) "Fiber" + ["object"]=> + object(Fiber)#3 (0) { + } + ["type"]=> + string(2) "->" + ["args"]=> + array(0) { + } + } + [1]=> + array(4) { + ["file"]=> + string(%d) "%sReflectionFiber_bug_gh11121_2.php" + ["line"]=> + int(14) + ["function"]=> + string(1) "g" + ["args"]=> + array(0) { + } + } + [2]=> + array(2) { + ["function"]=> + string(9) "{closure}" + ["args"]=> + array(0) { + } + } +} diff -Nru php8.2-8.2.7/ext/reflection/tests/gh11937_1.inc php8.2-8.2.18/ext/reflection/tests/gh11937_1.inc --- php8.2-8.2.7/ext/reflection/tests/gh11937_1.inc 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/reflection/tests/gh11937_1.inc 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,13 @@ +getAttributes('Attr')[0]; + +?> +--EXPECT-- +array(2) { + [0]=> + enum(TestEnum::One) + [1]=> + enum(TestEnum::Two) +} +Attribute [ Attr ] { + - Arguments [1] { + Argument #0 [ new \Foo(TestEnum::CASES) ] + } +} diff -Nru php8.2-8.2.7/ext/reflection/tests/gh11937_2.inc php8.2-8.2.18/ext/reflection/tests/gh11937_2.inc --- php8.2-8.2.7/ext/reflection/tests/gh11937_2.inc 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/reflection/tests/gh11937_2.inc 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,4 @@ +getAttributes('Attr')[0]; + +?> +--EXPECT-- +array(1) { + [0]=> + object(Foo)#1 (0) { + } +} +Attribute [ Attr ] { + - Arguments [1] { + Argument #0 [ FOOS ] + } +} diff -Nru php8.2-8.2.7/ext/session/session.c php8.2-8.2.18/ext/session/session.c --- php8.2-8.2.7/ext/session/session.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/session/session.c 2024-04-09 18:46:23.000000000 +0000 @@ -246,19 +246,30 @@ } /* }}} */ +static ZEND_COLD void php_session_cancel_decode(void) +{ + php_session_destroy(); + php_session_track_init(); + php_error_docref(NULL, E_WARNING, "Failed to decode session object. Session has been destroyed"); +} + static zend_result php_session_decode(zend_string *data) /* {{{ */ { if (!PS(serializer)) { php_error_docref(NULL, E_WARNING, "Unknown session.serialize_handler. Failed to decode session object"); return FAILURE; } - if (PS(serializer)->decode(ZSTR_VAL(data), ZSTR_LEN(data)) == FAILURE) { - php_session_destroy(); - php_session_track_init(); - php_error_docref(NULL, E_WARNING, "Failed to decode session object. Session has been destroyed"); - return FAILURE; - } - return SUCCESS; + zend_result result = SUCCESS; + zend_try { + if (PS(serializer)->decode(ZSTR_VAL(data), ZSTR_LEN(data)) == FAILURE) { + php_session_cancel_decode(); + result = FAILURE; + } + } zend_catch { + php_session_cancel_decode(); + zend_bailout(); + } zend_end_try(); + return result; } /* }}} */ @@ -1489,7 +1500,7 @@ { zval *ppid; zval *data; - char *p, *value; + char *value; size_t lensess; switch (PS(session_status)) { @@ -1558,21 +1569,6 @@ ppid2sid(ppid); } } - /* Check the REQUEST_URI symbol for a string of the form - * '=' to allow URLs of the form - * http://yoursite/=/script.php */ - if (!PS(id) && zend_is_auto_global(ZSTR_KNOWN(ZEND_STR_AUTOGLOBAL_SERVER)) == SUCCESS && - (data = zend_hash_str_find(Z_ARRVAL(PG(http_globals)[TRACK_VARS_SERVER]), "REQUEST_URI", sizeof("REQUEST_URI") - 1)) && - Z_TYPE_P(data) == IS_STRING && - (p = strstr(Z_STRVAL_P(data), PS(session_name))) && - p[lensess] == '=' - ) { - char *q; - p += lensess + 1; - if ((q = strpbrk(p, "/?\\"))) { - PS(id) = zend_string_init(p, q - p, 0); - } - } /* Check whether the current request was referred to by * an external site which invalidates the previously found id. */ if (PS(id) && PS(extern_referer_chk)[0] != '\0' && diff -Nru php8.2-8.2.7/ext/session/tests/gh12504.phpt php8.2-8.2.18/ext/session/tests/gh12504.phpt --- php8.2-8.2.7/ext/session/tests/gh12504.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/session/tests/gh12504.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,62 @@ +--TEST-- +GH-12504 (Corrupted session written when there's a fatal error in autoloader) +--EXTENSIONS-- +session +--FILE-- + +--EXPECTF-- +Fatal error: Default value for property of type int may not be null. Use the nullable type ?int to allow null default value in %s on line %d + +Warning: Unknown: Failed to decode session object. Session has been destroyed in Unknown on line 0 +In shutdown function +array(0) { +} diff -Nru php8.2-8.2.7/ext/session/tests/gh13680.phpt php8.2-8.2.18/ext/session/tests/gh13680.phpt --- php8.2-8.2.7/ext/session/tests/gh13680.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/session/tests/gh13680.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,25 @@ +--TEST-- +GH-13680 (Segfault with session_decode and compilation error) +--EXTENSIONS-- +session +--SKIPIF-- + +--INI-- +session.use_cookies=0 +session.use_strict_mode=0 +session.cache_limiter= +session.serialize_handler=php_serialize +session.save_handler=files +error_reporting=E_ALL +--FILE-- + +--EXPECTF-- +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s on line %d + +Fatal error: Could not check compatibility between Test::createFromFormat($format, $datetime, $timezone = null): Wrong and DateTime::createFromFormat(string $format, string $datetime, ?DateTimeZone $timezone = null): DateTime|false, because class Wrong is not available in %s on line %d diff -Nru php8.2-8.2.7/ext/simplexml/simplexml.c php8.2-8.2.18/ext/simplexml/simplexml.c --- php8.2-8.2.7/ext/simplexml/simplexml.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/simplexml/simplexml.c 2024-04-09 18:46:23.000000000 +0000 @@ -45,6 +45,7 @@ static php_sxe_object* php_sxe_object_new(zend_class_entry *ce, zend_function *fptr_count); static xmlNodePtr php_sxe_reset_iterator(php_sxe_object *sxe, int use_data); +static xmlNodePtr php_sxe_reset_iterator_no_clear_iter_data(php_sxe_object *sxe, int use_data); static xmlNodePtr php_sxe_iterator_fetch(php_sxe_object *sxe, xmlNodePtr node, int use_data); static void php_sxe_iterator_dtor(zend_object_iterator *iter); static int php_sxe_iterator_valid(zend_object_iterator *iter); @@ -77,23 +78,14 @@ } /* }}} */ -static xmlNodePtr php_sxe_get_first_node(php_sxe_object *sxe, xmlNodePtr node) /* {{{ */ +static xmlNodePtr php_sxe_get_first_node(php_sxe_object *sxe, xmlNodePtr node) { - php_sxe_object *intern; - xmlNodePtr retnode = NULL; - if (sxe && sxe->iter.type != SXE_ITER_NONE) { - php_sxe_reset_iterator(sxe, 1); - if (!Z_ISUNDEF(sxe->iter.data)) { - intern = Z_SXEOBJ_P(&sxe->iter.data); - GET_NODE(intern, retnode) - } - return retnode; + return php_sxe_reset_iterator(sxe, 1); } else { return node; } } -/* }}} */ static inline int match_ns(php_sxe_object *sxe, xmlNodePtr node, xmlChar *name, int prefix) /* {{{ */ { @@ -644,6 +636,9 @@ 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) { @@ -1186,6 +1181,12 @@ sxe_properties_add(rv, name, namelen, &value); } next_iter: + if (UNEXPECTED(node->type == XML_ENTITY_DECL)) { + /* Entity decls are linked together via the next pointer. + * The only way to get to an entity decl is via an entity reference in the document. + * If we then continue iterating, we'll end up in the DTD. Even worse, if the entities reference each other we'll infinite loop. */ + break; + } if (use_iter) { node = php_sxe_iterator_fetch(sxe, node->next, 0); } else { @@ -1322,7 +1323,7 @@ for (i = 0; i < result->nodeNr; ++i) { nodeptr = result->nodeTab[i]; - if (nodeptr->type == XML_TEXT_NODE || nodeptr->type == XML_ELEMENT_NODE || nodeptr->type == XML_ATTRIBUTE_NODE) { + if (nodeptr->type == XML_TEXT_NODE || nodeptr->type == XML_ELEMENT_NODE || nodeptr->type == XML_ATTRIBUTE_NODE || nodeptr->type == XML_PI_NODE || nodeptr->type == XML_COMMENT_NODE) { /** * Detect the case where the last selector is text(), simplexml * always accesses the text() child by default, therefore we assign @@ -1837,6 +1838,7 @@ { php_sxe_object *sxe; xmlChar *contents = NULL; + bool free_contents = true; xmlNodePtr node; zend_result rv; @@ -1867,13 +1869,16 @@ if (sxe->node && sxe->node->node) { if (sxe->node->node->children) { contents = xmlNodeListGetString((xmlDocPtr) sxe->document->ptr, sxe->node->node->children, 1); + } else if (sxe->node->node->type == XML_COMMENT_NODE || sxe->node->node->type == XML_PI_NODE) { + contents = sxe->node->node->content; + free_contents = false; } } } rv = cast_object(writeobj, type, (char *)contents); - if (contents) { + if (contents && free_contents) { xmlFree(contents); } @@ -2262,7 +2267,9 @@ RETURN_THROWS(); } + PHP_LIBXML_SANITIZE_GLOBALS(read_file); docp = xmlReadFile(filename, NULL, (int)options); + PHP_LIBXML_RESTORE_GLOBALS(read_file); if (!docp) { RETURN_FALSE; @@ -2315,7 +2322,9 @@ RETURN_THROWS(); } + PHP_LIBXML_SANITIZE_GLOBALS(read_memory); docp = xmlReadMemory(data, (int)data_len, NULL, NULL, (int)options); + PHP_LIBXML_RESTORE_GLOBALS(read_memory); if (!docp) { RETURN_FALSE; @@ -2364,7 +2373,9 @@ RETURN_THROWS(); } + PHP_LIBXML_SANITIZE_GLOBALS(read_file_or_memory); docp = is_url ? xmlReadFile(data, NULL, (int)options) : xmlReadMemory(data, (int)data_len, NULL, NULL, (int)options); + PHP_LIBXML_RESTORE_GLOBALS(read_file_or_memory); if (!docp) { ((php_libxml_node_object *)sxe)->document = NULL; @@ -2444,15 +2455,9 @@ } /* }}} */ -static xmlNodePtr php_sxe_reset_iterator(php_sxe_object *sxe, int use_data) /* {{{ */ +static xmlNodePtr php_sxe_reset_iterator_no_clear_iter_data(php_sxe_object *sxe, int use_data) { xmlNodePtr node; - - if (!Z_ISUNDEF(sxe->iter.data)) { - zval_ptr_dtor(&sxe->iter.data); - ZVAL_UNDEF(&sxe->iter.data); - } - GET_NODE(sxe, node) if (node) { @@ -2465,10 +2470,23 @@ case SXE_ITER_ATTRLIST: node = (xmlNodePtr) node->properties; } + if (use_data) { + ZEND_ASSERT(Z_ISUNDEF(sxe->iter.data)); + } return php_sxe_iterator_fetch(sxe, node, use_data); } return NULL; } + +static xmlNodePtr php_sxe_reset_iterator(php_sxe_object *sxe, int use_data) /* {{{ */ +{ + if (!Z_ISUNDEF(sxe->iter.data)) { + zval_ptr_dtor(&sxe->iter.data); + ZVAL_UNDEF(&sxe->iter.data); + } + + return php_sxe_reset_iterator_no_clear_iter_data(sxe, use_data); +} /* }}} */ zend_object_iterator *php_sxe_get_iterator(zend_class_entry *ce, zval *object, int by_ref) /* {{{ */ diff -Nru php8.2-8.2.7/ext/simplexml/tests/bug12170.phpt php8.2-8.2.18/ext/simplexml/tests/bug12170.phpt --- php8.2-8.2.7/ext/simplexml/tests/bug12170.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/simplexml/tests/bug12170.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,52 @@ +--TEST-- +Bug GH-12170 (Can't use xpath with comments in SimpleXML) +--EXTENSIONS-- +simplexml +--FILE-- + + + text node + + + +XML; + +$sxe = simplexml_load_string($xml); + +var_dump( + $sxe->xpath('//bar') +); + +foreach ($sxe->xpath('//comment()') as $comment) { + var_dump($comment->getName()); + var_dump($comment->asXML()); +} + +?> +--EXPECT-- +array(3) { + [0]=> + object(SimpleXMLElement)#2 (1) { + [0]=> + string(9) "text node" + } + [1]=> + object(SimpleXMLElement)#3 (1) { + ["comment"]=> + object(SimpleXMLElement)#5 (0) { + } + } + [2]=> + object(SimpleXMLElement)#4 (1) { + ["comment"]=> + object(SimpleXMLElement)#5 (0) { + } + } +} +string(7) "comment" +string(12) "" +string(7) "comment" +string(12) "" diff -Nru php8.2-8.2.7/ext/simplexml/tests/bug52751.phpt php8.2-8.2.18/ext/simplexml/tests/bug52751.phpt --- php8.2-8.2.7/ext/simplexml/tests/bug52751.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/simplexml/tests/bug52751.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,58 @@ +--TEST-- +Bug #52751 (XPath processing-instruction() function is not supported) +--EXTENSIONS-- +simplexml +--FILE-- + + + text node + + + +XML; + +$sxe = simplexml_load_string($xml); + +var_dump( + $sxe->xpath('//bar') +); + +var_dump( + $sxe->xpath('//processing-instruction(\'baz\')') +); + +foreach ($sxe->xpath('//processing-instruction()') as $pi) { + var_dump($pi->getName()); +} + +?> +--EXPECT-- +array(3) { + [0]=> + object(SimpleXMLElement)#2 (1) { + [0]=> + string(9) "text node" + } + [1]=> + object(SimpleXMLElement)#3 (1) { + ["baz"]=> + object(SimpleXMLElement)#5 (0) { + } + } + [2]=> + object(SimpleXMLElement)#4 (1) { + ["foo"]=> + object(SimpleXMLElement)#5 (0) { + } + } +} +array(1) { + [0]=> + object(SimpleXMLElement)#4 (0) { + } +} +string(3) "baz" +string(3) "foo" diff -Nru php8.2-8.2.7/ext/simplexml/tests/get_prop_address_not_initialized.phpt php8.2-8.2.18/ext/simplexml/tests/get_prop_address_not_initialized.phpt --- php8.2-8.2.7/ext/simplexml/tests/get_prop_address_not_initialized.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/simplexml/tests/get_prop_address_not_initialized.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -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 diff -Nru php8.2-8.2.7/ext/simplexml/tests/gh12167.phpt php8.2-8.2.18/ext/simplexml/tests/gh12167.phpt --- php8.2-8.2.7/ext/simplexml/tests/gh12167.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/simplexml/tests/gh12167.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,23 @@ +--TEST-- +GH-12167 (Unable to get processing instruction contents in SimpleXML) +--EXTENSIONS-- +simplexml +--FILE-- + + + + +XML; + +$sxe = simplexml_load_string($xml); + +var_dump($sxe->xpath("//processing-instruction()")[0]->getName()); +var_dump((string) $sxe->xpath("//processing-instruction()")[0]); + +?> +--EXPECT-- +string(3) "foo" +string(12) "pi contents " diff -Nru php8.2-8.2.7/ext/simplexml/tests/gh12169.phpt php8.2-8.2.18/ext/simplexml/tests/gh12169.phpt --- php8.2-8.2.7/ext/simplexml/tests/gh12169.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/simplexml/tests/gh12169.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,23 @@ +--TEST-- +GH-12169 (Unable to get comment contents in SimpleXML) +--EXTENSIONS-- +simplexml +--FILE-- + + + + +XML; + +$sxe = simplexml_load_string($xml); + +var_dump($sxe->xpath("//comment()")[0]->getName()); +var_dump((string) $sxe->xpath("//comment()")[0]); + +?> +--EXPECT-- +string(7) "comment" +string(18) " comment contents " diff -Nru php8.2-8.2.7/ext/simplexml/tests/gh12223.phpt php8.2-8.2.18/ext/simplexml/tests/gh12223.phpt --- php8.2-8.2.7/ext/simplexml/tests/gh12223.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/simplexml/tests/gh12223.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,67 @@ +--TEST-- +GH-12223: Entity reference produces infinite loop in var_dump/print_r +--EXTENSIONS-- +simplexml +--FILE-- + + + + +]> +&c; +XML; + +$sxe = simplexml_load_string($xml); + +var_dump($sxe); +print_r($sxe); + +?> +--EXPECT-- +object(SimpleXMLElement)#1 (1) { + ["c"]=> + object(SimpleXMLElement)#2 (1) { + ["c"]=> + object(SimpleXMLElement)#3 (1) { + ["b"]=> + object(SimpleXMLElement)#4 (1) { + ["b"]=> + object(SimpleXMLElement)#5 (1) { + ["a"]=> + object(SimpleXMLElement)#6 (1) { + ["a"]=> + string(9) "something" + } + } + } + } + } +} +SimpleXMLElement Object +( + [c] => SimpleXMLElement Object + ( + [c] => SimpleXMLElement Object + ( + [b] => SimpleXMLElement Object + ( + [b] => SimpleXMLElement Object + ( + [a] => SimpleXMLElement Object + ( + [a] => something + ) + + ) + + ) + + ) + + ) + +) diff -Nru php8.2-8.2.7/ext/simplexml/tests/libxml_global_state_entity_loader_bypass.phpt php8.2-8.2.18/ext/simplexml/tests/libxml_global_state_entity_loader_bypass.phpt --- php8.2-8.2.7/ext/simplexml/tests/libxml_global_state_entity_loader_bypass.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/simplexml/tests/libxml_global_state_entity_loader_bypass.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,38 @@ +--TEST-- +GHSA-3qrf-m4j2-pcrr (libxml global state entity loader bypass) +--EXTENSIONS-- +libxml +simplexml +zend_test +--SKIPIF-- + +--FILE-- + %bork;]>"; + +libxml_use_internal_errors(true); +zend_test_override_libxml_global_state(); + +echo "--- String test ---\n"; +simplexml_load_string($xml); +echo "--- Constructor test ---\n"; +new SimpleXMLElement($xml); +echo "--- File test ---\n"; +file_put_contents("libxml_global_state_entity_loader_bypass.tmp", $xml); +simplexml_load_file("libxml_global_state_entity_loader_bypass.tmp"); + +echo "Done\n"; + +?> +--CLEAN-- + +--EXPECT-- +--- String test --- +--- Constructor test --- +--- File test --- +Done diff -Nru php8.2-8.2.7/ext/soap/php_encoding.c php8.2-8.2.18/ext/soap/php_encoding.c --- php8.2-8.2.7/ext/soap/php_encoding.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/soap/php_encoding.c 2024-04-09 18:46:23.000000000 +0000 @@ -1561,10 +1561,12 @@ if (Z_TYPE_P(prop) != IS_ARRAY) { /* Convert into array */ array_init(&arr); - Z_ADDREF_P(prop); + Z_TRY_ADDREF_P(prop); add_next_index_zval(&arr, prop); set_zval_property(ret, (char*)trav->name, &arr); prop = &arr; + } else { + SEPARATE_ARRAY(prop); } /* Add array element */ add_next_index_zval(prop, &tmpVal); diff -Nru php8.2-8.2.7/ext/soap/php_schema.c php8.2-8.2.18/ext/soap/php_schema.c --- php8.2-8.2.7/ext/soap/php_schema.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/soap/php_schema.c 2024-04-09 18:46:23.000000000 +0000 @@ -2261,17 +2261,23 @@ schema_content_model_fixup(ctx, type->model); } if (type->attributes) { - zend_string *str_key; - zend_ulong index; + HashPosition pos; + zend_hash_internal_pointer_reset_ex(type->attributes, &pos); - ZEND_HASH_FOREACH_KEY_PTR(type->attributes, index, str_key, attr) { - if (str_key) { + while ((attr = zend_hash_get_current_data_ptr_ex(type->attributes, &pos)) != NULL) { + zend_string *str_key; + zend_ulong index; + + if (zend_hash_get_current_key_ex(type->attributes, &str_key, &index, &pos) == HASH_KEY_IS_STRING) { schema_attribute_fixup(ctx, attr); + zend_result result = zend_hash_move_forward_ex(type->attributes, &pos); + ZEND_ASSERT(result == SUCCESS); } else { schema_attributegroup_fixup(ctx, attr, type->attributes); - zend_hash_index_del(type->attributes, index); + zend_result result = zend_hash_index_del(type->attributes, index); + ZEND_ASSERT(result == SUCCESS); } - } ZEND_HASH_FOREACH_END(); + } } } diff -Nru php8.2-8.2.7/ext/soap/php_sdl.c php8.2-8.2.18/ext/soap/php_sdl.c --- php8.2-8.2.7/ext/soap/php_sdl.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/soap/php_sdl.c 2024-04-09 18:46:23.000000000 +0000 @@ -22,6 +22,7 @@ #include "ext/standard/md5.h" #include "zend_virtual_cwd.h" +#include "main/php_open_temporary_file.h" #include #include @@ -154,7 +155,7 @@ } if (sdl->encoders == NULL) { sdl->encoders = pemalloc(sizeof(HashTable), sdl->is_persistent); - zend_hash_init(sdl->encoders, 0, NULL, delete_encoder, sdl->is_persistent); + zend_hash_init(sdl->encoders, 0, NULL, sdl->is_persistent ? delete_encoder_persistent : delete_encoder, sdl->is_persistent); } zend_hash_str_update_ptr(sdl->encoders, nscat, len, new_enc); enc = new_enc; @@ -331,7 +332,7 @@ sdl_restore_uri_credentials(ctx); if (!wsdl) { - xmlErrorPtr xmlErrorPtr = xmlGetLastError(); + const xmlError *xmlErrorPtr = xmlGetLastError(); if (xmlErrorPtr) { soap_error2(E_ERROR, "Parsing WSDL: Couldn't load from '%s' : %s", struri, xmlErrorPtr->message); @@ -1536,7 +1537,7 @@ return ht; } -static sdlPtr get_sdl_from_cache(const char *fn, const char *uri, time_t t, time_t *cached) +static sdlPtr get_sdl_from_cache(const char *fn, const char *uri, size_t uri_len, time_t t, time_t *cached) { sdlPtr sdl; time_t old_t; @@ -1583,7 +1584,7 @@ *cached = old_t; WSDL_CACHE_GET_INT(i, &in); - if (i == 0 && strncmp(in, uri, i) != 0) { + if (i != uri_len || strncmp(in, uri, i) != 0) { unlink(fn); efree(buf); return NULL; @@ -2119,7 +2120,10 @@ HashTable tmp_bindings; HashTable tmp_functions; - f = open(fn,O_CREAT|O_WRONLY|O_EXCL|O_BINARY,S_IREAD|S_IWRITE); + /* To avoid race conditions, we first create a temporary file and then rename it atomically + * at the end of the function. (see bug #66150) */ + zend_string *temp_file_path; + f = php_open_temporary_fd_ex(SOAP_GLOBAL(cache_dir), "tmp.wsdl.", &temp_file_path, PHP_TMP_FILE_SILENT); if (f < 0) {return;} @@ -2371,13 +2375,23 @@ } ZEND_HASH_FOREACH_END(); } - php_ignore_value(write(f, ZSTR_VAL(buf.s), ZSTR_LEN(buf.s))); + bool valid_file = write(f, ZSTR_VAL(buf.s), ZSTR_LEN(buf.s)) == ZSTR_LEN(buf.s); close(f); + + /* Make sure that incomplete files (e.g. due to disk space issues, see bug #66150) are not utilised. */ + if (valid_file) { + /* This is allowed to fail, this means that another process was raced to create the file. */ + if (VCWD_RENAME(ZSTR_VAL(temp_file_path), fn) < 0) { + VCWD_UNLINK(ZSTR_VAL(temp_file_path)); + } + } + smart_str_free(&buf); zend_hash_destroy(&tmp_functions); zend_hash_destroy(&tmp_bindings); zend_hash_destroy(&tmp_encoders); zend_hash_destroy(&tmp_types); + zend_string_release_ex(temp_file_path, false); } @@ -3232,7 +3246,7 @@ } memcpy(key+len,md5str,sizeof(md5str)); - if ((sdl = get_sdl_from_cache(key, uri, t-SOAP_GLOBAL(cache_ttl), &cached)) != NULL) { + if ((sdl = get_sdl_from_cache(key, uri, uri_len, t-SOAP_GLOBAL(cache_ttl), &cached)) != NULL) { t = cached; efree(key); goto cache_in_memory; @@ -3243,6 +3257,9 @@ tmp = Z_CLIENT_STREAM_CONTEXT_P(this_ptr); if (Z_TYPE_P(tmp) == IS_RESOURCE) { context = php_stream_context_from_zval(tmp, 0); + /* Share a reference with new_context down below. + * For new contexts, the reference is only in new_context so that doesn't need extra refcounting. */ + GC_ADDREF(context->res); } tmp = Z_CLIENT_USER_AGENT_P(this_ptr); @@ -3309,7 +3326,7 @@ } if (context) { - php_stream_context_to_zval(context, &new_context); + ZVAL_RES(&new_context, context->res); php_libxml_switch_context(&new_context, &orig_context); } diff -Nru php8.2-8.2.7/ext/soap/php_xml.c php8.2-8.2.18/ext/soap/php_xml.c --- php8.2-8.2.7/ext/soap/php_xml.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/soap/php_xml.c 2024-04-09 18:46:23.000000000 +0000 @@ -91,6 +91,7 @@ if (ctxt) { bool old; + php_libxml_sanitize_parse_ctxt_options(ctxt); ctxt->keepBlanks = 0; ctxt->sax->ignorableWhitespace = soap_ignorableWhitespace; ctxt->sax->comment = soap_Comment; @@ -139,6 +140,7 @@ if (ctxt) { bool old; + php_libxml_sanitize_parse_ctxt_options(ctxt); ctxt->sax->ignorableWhitespace = soap_ignorableWhitespace; ctxt->sax->comment = soap_Comment; ctxt->sax->warning = NULL; diff -Nru php8.2-8.2.7/ext/soap/tests/bug71610.phpt php8.2-8.2.18/ext/soap/tests/bug71610.phpt --- php8.2-8.2.7/ext/soap/tests/bug71610.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/soap/tests/bug71610.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -8,7 +8,7 @@ ?> --FILE-- blahblah(); } catch(SoapFault $e) { diff -Nru php8.2-8.2.7/ext/soap/tests/bug75306.phpt php8.2-8.2.18/ext/soap/tests/bug75306.phpt --- php8.2-8.2.7/ext/soap/tests/bug75306.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/soap/tests/bug75306.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,20 @@ +--TEST-- +Bug #75306 (Memleak in SoapClient) +--EXTENSIONS-- +soap +--FILE-- + WSDL_CACHE_NONE); +// Need a warm-up for globals +for ($i = 0; $i < 10; $i++) { + $client = new SoapClient(__DIR__ . "/test.wsdl", $options); +} +$usage = memory_get_usage(); +for ($i = 0; $i < 10; $i++) { + $client = new SoapClient(__DIR__ . "/test.wsdl", $options); +} +$usage_delta = memory_get_usage() - $usage; +var_dump($usage_delta); +?> +--EXPECT-- +int(0) diff -Nru php8.2-8.2.7/ext/soap/tests/bugs/segfault_assertion_props.phpt php8.2-8.2.18/ext/soap/tests/bugs/segfault_assertion_props.phpt --- php8.2-8.2.7/ext/soap/tests/bugs/segfault_assertion_props.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/soap/tests/bugs/segfault_assertion_props.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,51 @@ +--TEST-- +Segfault and assertion failure with refcounted props and arrays +--INI-- +soap.wsdl_cache_enabled=0 +--EXTENSIONS-- +soap +--FILE-- + + + + Hello + World + + +EOF; + } +} + +trait A { + public $a = [self::class . 'a']; + public $b = self::class . 'b'; +} + +class DummyClass { + use A; +} + +$client = new TestSoapClient(__DIR__."/../classmap.wsdl", ['classmap' => ['Struct' => 'DummyClass']]); +var_dump($client->dotest2("???")); +?> +--EXPECT-- +object(DummyClass)#2 (2) { + ["a"]=> + array(2) { + [0]=> + string(11) "DummyClassa" + [1]=> + string(5) "Hello" + } + ["b"]=> + array(2) { + [0]=> + string(11) "DummyClassb" + [1]=> + string(5) "World" + } +} diff -Nru php8.2-8.2.7/ext/soap/tests/gh12392.phpt php8.2-8.2.18/ext/soap/tests/gh12392.phpt --- php8.2-8.2.7/ext/soap/tests/gh12392.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/soap/tests/gh12392.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,28 @@ +--TEST-- +GH-12392 (Segmentation fault on SoapClient::__getTypes) +--EXTENSIONS-- +soap +--FILE-- + WSDL_CACHE_NONE]); +echo 'Client created!' . "\n"; + +$types = $client->__getTypes(); +echo 'Got types!' . "\n"; + +var_dump($types); + +?> +--EXPECT-- +Client created! +Got types! +array(1) { + [0]=> + string(62) "struct dummy { + string foo; + string a; + string b; + string c; +}" +} diff -Nru php8.2-8.2.7/ext/soap/tests/gh12392.wsdl php8.2-8.2.18/ext/soap/tests/gh12392.wsdl --- php8.2-8.2.7/ext/soap/tests/gh12392.wsdl 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/soap/tests/gh12392.wsdl 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru php8.2-8.2.7/ext/sockets/sockets.c php8.2-8.2.18/ext/sockets/sockets.c --- php8.2-8.2.7/ext/sockets/sockets.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/sockets/sockets.c 2024-04-09 18:46:23.000000000 +0000 @@ -917,7 +917,7 @@ PHP_FUNCTION(socket_getsockname) { zval *arg1, *addr, *port = NULL; - php_sockaddr_storage sa_storage; + php_sockaddr_storage sa_storage = {0}; php_socket *php_sock; struct sockaddr *sa; struct sockaddr_in *sin; @@ -994,7 +994,7 @@ PHP_FUNCTION(socket_getpeername) { zval *arg1, *arg2, *arg3 = NULL; - php_sockaddr_storage sa_storage; + php_sockaddr_storage sa_storage = {0}; php_socket *php_sock; struct sockaddr *sa; struct sockaddr_in *sin; @@ -2202,7 +2202,7 @@ php_socket *socket; php_stream *stream = NULL; php_netstream_data_t *stream_data; - char *protocol = NULL; + const char *protocol = NULL; size_t protocollen = 0; if (zend_parse_parameters(ZEND_NUM_ARGS(), "O", &zsocket, socket_ce) == FAILURE) { @@ -2238,12 +2238,12 @@ if (protoid == IPPROTO_TCP) #endif { - protocol = "tcp"; - protocollen = 3; + protocol = "tcp://"; + protocollen = sizeof("tcp://") - 1; } } else if (protoid == SOCK_DGRAM) { - protocol = "udp"; - protocollen = 3; + protocol = "udp://"; + protocollen = sizeof("udp://") - 1; } #ifdef PF_UNIX } else if (socket->type == PF_UNIX) { @@ -2253,11 +2253,11 @@ getsockopt(socket->bsd_socket, SOL_SOCKET, SO_TYPE, (char *) &type, &typelen); if (type == SOCK_STREAM) { - protocol = "unix"; - protocollen = 4; + protocol = "unix://"; + protocollen = sizeof("unix://") - 1; } else if (type == SOCK_DGRAM) { - protocol = "udg"; - protocollen = 3; + protocol = "udg://"; + protocollen = sizeof("udg://") - 1; } #endif } diff -Nru php8.2-8.2.7/ext/sockets/tests/bug_export_stream_type.phpt php8.2-8.2.18/ext/sockets/tests/bug_export_stream_type.phpt --- php8.2-8.2.7/ext/sockets/tests/bug_export_stream_type.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/sockets/tests/bug_export_stream_type.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,12 @@ +--TEST-- +Bug - socket_export_stream() with wrong protocol +--EXTENSIONS-- +sockets +--FILE-- + +--EXPECT-- +udp_socket diff -Nru php8.2-8.2.7/ext/sockets/tests/gh13603.phpt php8.2-8.2.18/ext/sockets/tests/gh13603.phpt --- php8.2-8.2.7/ext/sockets/tests/gh13603.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/sockets/tests/gh13603.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,15 @@ +--TEST-- +GH-13603 - socket_getsockname - invalid characters +--EXTENSIONS-- +sockets +--FILE-- + --FILE-- common.function_name, "spl_autoload_call")) { - /* Don't destroy the hash table, as we might be iterating over it right now. */ - zend_hash_clean(spl_autoload_functions); + if (spl_autoload_functions) { + /* Don't destroy the hash table, as we might be iterating over it right now. */ + zend_hash_clean(spl_autoload_functions); + } RETURN_TRUE; } diff -Nru php8.2-8.2.7/ext/spl/spl_array.c php8.2-8.2.18/ext/spl/spl_array.c --- php8.2-8.2.7/ext/spl/spl_array.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/spl/spl_array.c 2024-04-09 18:46:23.000000000 +0000 @@ -1061,13 +1061,12 @@ ZVAL_ARR(&intern->array, zend_array_dup(Z_ARR_P(array))); if (intern->is_child) { - Z_TRY_DELREF_P(&intern->bucket->val); + Z_TRY_DELREF(intern->bucket->val); /* * replace bucket->val with copied array, so the changes between * parent and child object can affect each other. */ - intern->bucket->val = intern->array; - Z_TRY_ADDREF_P(&intern->array); + ZVAL_COPY(&intern->bucket->val, &intern->array); } } } else { diff -Nru php8.2-8.2.7/ext/spl/spl_directory.c php8.2-8.2.18/ext/spl/spl_directory.c --- php8.2-8.2.7/ext/spl/spl_directory.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/spl/spl_directory.c 2024-04-09 18:46:23.000000000 +0000 @@ -464,7 +464,9 @@ path_len = ZSTR_LEN(path); if (path_len > 1 && IS_SLASH_AT(ZSTR_VAL(path), path_len-1)) { - path_len--; + do { + path_len--; + } while (path_len > 1 && IS_SLASH_AT(ZSTR_VAL(path), path_len - 1)); intern->file_name = zend_string_init(ZSTR_VAL(path), path_len, 0); } else { intern->file_name = zend_string_copy(path); @@ -923,7 +925,6 @@ path = spl_filesystem_object_get_path(intern); - ZEND_ASSERT(path); if (path && ZSTR_LEN(path) && ZSTR_LEN(path) < ZSTR_LEN(intern->file_name)) { /* +1 to skip the trailing / of the path in the file name */ size_t path_len = ZSTR_LEN(path) + 1; @@ -931,7 +932,9 @@ } else { RETVAL_STR_COPY(intern->file_name); } - zend_string_release_ex(path, /* persistent */ false); + if (path) { + zend_string_release_ex(path, /* persistent */ false); + } } /* }}} */ @@ -971,14 +974,16 @@ path = spl_filesystem_object_get_path(intern); - if (ZSTR_LEN(path) && ZSTR_LEN(path) < ZSTR_LEN(intern->file_name)) { + if (path && ZSTR_LEN(path) && ZSTR_LEN(path) < ZSTR_LEN(intern->file_name)) { fname = ZSTR_VAL(intern->file_name) + ZSTR_LEN(path) + 1; flen = ZSTR_LEN(intern->file_name) - (ZSTR_LEN(path) + 1); } else { fname = ZSTR_VAL(intern->file_name); flen = ZSTR_LEN(intern->file_name); } - zend_string_release_ex(path, /* persistent */ false); + if (path) { + zend_string_release_ex(path, /* persistent */ false); + } ret = php_basename(fname, flen, NULL, 0); @@ -1050,7 +1055,9 @@ fname = ZSTR_VAL(intern->file_name); flen = ZSTR_LEN(intern->file_name); } - zend_string_release_ex(path, /* persistent */ false); + if (path) { + zend_string_release_ex(path, /* persistent */ false); + } RETURN_STR(php_basename(fname, flen, suffix, slen)); } @@ -1859,6 +1866,11 @@ } /* }}} */ +static ZEND_COLD void spl_filesystem_file_cannot_read(spl_filesystem_object *intern) +{ + zend_throw_exception_ex(spl_ce_RuntimeException, 0, "Cannot read from file %s", ZSTR_VAL(intern->file_name)); +} + static zend_result spl_filesystem_file_read_ex(spl_filesystem_object *intern, bool silent, zend_long line_add, bool csv) { char *buf; @@ -1868,7 +1880,7 @@ if (php_stream_eof(intern->u.file.stream)) { if (!silent) { - zend_throw_exception_ex(spl_ce_RuntimeException, 0, "Cannot read from file %s", ZSTR_VAL(intern->file_name)); + spl_filesystem_file_cannot_read(intern); } return FAILURE; } @@ -1923,10 +1935,10 @@ || (current_line_len == 2 && current_line[0] == '\r' && current_line[1] == '\n')))); } -static zend_result spl_filesystem_file_read_csv(spl_filesystem_object *intern, char delimiter, char enclosure, int escape, zval *return_value) /* {{{ */ +static zend_result spl_filesystem_file_read_csv(spl_filesystem_object *intern, char delimiter, char enclosure, int escape, zval *return_value, bool silent) /* {{{ */ { do { - zend_result ret = spl_filesystem_file_read(intern, /* silent */ true, /* csv */ true); + zend_result ret = spl_filesystem_file_read(intern, silent, /* csv */ true); if (ret != SUCCESS) { return ret; } @@ -1952,19 +1964,21 @@ } /* }}} */ -/* Call to this function reads a line in a "silent" fashion and does not throw an exception */ -static zend_result spl_filesystem_file_read_line_ex(zval * this_ptr, spl_filesystem_object *intern) /* {{{ */ +static zend_result spl_filesystem_file_read_line_ex(zval * this_ptr, spl_filesystem_object *intern, bool silent) /* {{{ */ { zval retval; /* 1) use fgetcsv? 2) overloaded call the function, 3) do it directly */ if (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_CSV)) { - return spl_filesystem_file_read_csv(intern, intern->u.file.delimiter, intern->u.file.enclosure, intern->u.file.escape, NULL); + return spl_filesystem_file_read_csv(intern, intern->u.file.delimiter, intern->u.file.enclosure, intern->u.file.escape, NULL, silent); } if (intern->u.file.func_getCurr->common.scope != spl_ce_SplFileObject) { spl_filesystem_file_free_line(intern); if (php_stream_eof(intern->u.file.stream)) { + if (!silent) { + spl_filesystem_file_cannot_read(intern); + } return FAILURE; } zend_call_method_with_0_params(Z_OBJ_P(this_ptr), Z_OBJCE_P(this_ptr), &intern->u.file.func_getCurr, "getCurrentLine", &retval); @@ -1988,18 +2002,17 @@ zval_ptr_dtor(&retval); return SUCCESS; } else { - return spl_filesystem_file_read(intern, /* silent */ true, /* csv */ false); + return spl_filesystem_file_read(intern, silent, /* csv */ false); } } /* }}} */ -/* Call to this function reads a line in a "silent" fashion and does not throw an exception */ -static zend_result spl_filesystem_file_read_line(zval * this_ptr, spl_filesystem_object *intern) /* {{{ */ +static zend_result spl_filesystem_file_read_line(zval * this_ptr, spl_filesystem_object *intern, bool silent) /* {{{ */ { - zend_result ret = spl_filesystem_file_read_line_ex(this_ptr, intern); + zend_result ret = spl_filesystem_file_read_line_ex(this_ptr, intern, silent); while (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_SKIP_EMPTY) && ret == SUCCESS && is_line_empty(intern)) { spl_filesystem_file_free_line(intern); - ret = spl_filesystem_file_read_line_ex(this_ptr, intern); + ret = spl_filesystem_file_read_line_ex(this_ptr, intern, silent); } return ret; @@ -2021,7 +2034,7 @@ intern->u.file.current_line_num = 0; if (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_AHEAD)) { - spl_filesystem_file_read_line(this_ptr, intern); + spl_filesystem_file_read_line(this_ptr, intern, true); } } /* }}} */ @@ -2175,7 +2188,7 @@ CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); if (!intern->u.file.current_line && Z_ISUNDEF(intern->u.file.current_zval)) { - spl_filesystem_file_read_line(ZEND_THIS, intern); + spl_filesystem_file_read_line(ZEND_THIS, intern, true); } if (intern->u.file.current_line && (!SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_CSV) || Z_ISUNDEF(intern->u.file.current_zval))) { RETURN_STRINGL(intern->u.file.current_line, intern->u.file.current_line_len); @@ -2214,7 +2227,7 @@ spl_filesystem_file_free_line(intern); if (SPL_HAS_FLAG(intern->flags, SPL_FILE_OBJECT_READ_AHEAD)) { - spl_filesystem_file_read_line(ZEND_THIS, intern); + spl_filesystem_file_read_line(ZEND_THIS, intern, true); } intern->u.file.current_line_num++; } /* }}} */ @@ -2332,7 +2345,7 @@ } } - if (spl_filesystem_file_read_csv(intern, delimiter, enclosure, escape, return_value) == FAILURE) { + if (spl_filesystem_file_read_csv(intern, delimiter, enclosure, escape, return_value, true) == FAILURE) { RETURN_FALSE; } } @@ -2713,7 +2726,7 @@ spl_filesystem_file_rewind(ZEND_THIS, intern); for (i = 0; i < line_pos; i++) { - if (spl_filesystem_file_read_line(ZEND_THIS, intern) == FAILURE) { + if (spl_filesystem_file_read_line(ZEND_THIS, intern, true) == FAILURE) { return; } } @@ -2733,8 +2746,12 @@ CHECK_SPL_FILE_OBJECT_IS_INITIALIZED(intern); - if (!intern->u.file.current_line && Z_ISUNDEF(intern->u.file.current_zval)) { - spl_filesystem_file_read_line(ZEND_THIS, intern); + if (!intern->u.file.current_line) { + ZEND_ASSERT(Z_ISUNDEF(intern->u.file.current_zval)); + zend_result result = spl_filesystem_file_read_line(ZEND_THIS, intern, false); + if (UNEXPECTED(result != SUCCESS)) { + RETURN_THROWS(); + } } RETURN_STRINGL(intern->u.file.current_line, intern->u.file.current_line_len); diff -Nru php8.2-8.2.7/ext/spl/spl_fixedarray.c php8.2-8.2.18/ext/spl/spl_fixedarray.c --- php8.2-8.2.7/ext/spl/spl_fixedarray.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/spl/spl_fixedarray.c 2024-04-09 18:46:23.000000000 +0000 @@ -50,6 +50,8 @@ zval *elements; /* True if this was modified after the last call to get_properties or the hash table wasn't rebuilt. */ bool should_rebuild_properties; + /* If positive, it's a resize within a resize and the value gives the desired size. If -1, it's not. */ + zend_long cached_resize; } spl_fixedarray; typedef struct _spl_fixedarray_object { @@ -89,6 +91,7 @@ { array->size = 0; array->elements = NULL; + array->cached_resize = -1; } /* Initializes the range [from, to) to null. Does not dtor existing elements. */ @@ -108,6 +111,7 @@ array->elements = size ? safe_emalloc(size, sizeof(zval), 0) : NULL; array->size = size; array->should_rebuild_properties = true; + array->cached_resize = -1; } static void spl_fixedarray_init(spl_fixedarray *array, zend_long size) @@ -149,6 +153,7 @@ */ static void spl_fixedarray_dtor_range(spl_fixedarray *array, zend_long from, zend_long to) { + array->size = from; zval *begin = array->elements + from, *end = array->elements + to; while (begin != end) { zval_ptr_dtor(begin++); @@ -185,19 +190,35 @@ return; } + if (UNEXPECTED(array->cached_resize >= 0)) { + /* We're already resizing, so just remember the desired size. + * The resize will happen later. */ + array->cached_resize = size; + return; + } + array->cached_resize = size; + /* clearing the array */ if (size == 0) { spl_fixedarray_dtor(array); array->elements = NULL; + array->size = 0; } else if (size > array->size) { array->elements = safe_erealloc(array->elements, size, sizeof(zval), 0); spl_fixedarray_init_elems(array, array->size, size); + array->size = size; } else { /* size < array->size */ + /* Size set in spl_fixedarray_dtor_range() */ spl_fixedarray_dtor_range(array, size, array->size); array->elements = erealloc(array->elements, sizeof(zval) * size); } - array->size = size; + /* If resized within the destructor, take the last resize command and perform it */ + zend_long cached_resize = array->cached_resize; + array->cached_resize = -1; + if (cached_resize != size) { + spl_fixedarray_resize(array, cached_resize); + } } static HashTable* spl_fixedarray_object_get_gc(zend_object *obj, zval **table, int *n) diff -Nru php8.2-8.2.7/ext/spl/tests/bug81992.phpt php8.2-8.2.18/ext/spl/tests/bug81992.phpt --- php8.2-8.2.7/ext/spl/tests/bug81992.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/spl/tests/bug81992.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,32 @@ +--TEST-- +Bug #81992 (SplFixedArray::setSize() causes use-after-free) +--FILE-- +getMessage(), "\n"; + } + try { + var_dump($obj[4]); + } catch (Throwable $e) { + echo $e->getMessage(), "\n"; + } + } +} + +$obj = new SplFixedArray(5); +$obj[0] = str_repeat("A", 10); +$obj[2] = str_repeat('B', 10); +$obj[3] = new InvalidDestructor(); +$obj[4] = str_repeat('C', 10); +$obj->setSize(2); +?> +--EXPECT-- +string(10) "AAAAAAAAAA" +Index invalid or out of range +Index invalid or out of range diff -Nru php8.2-8.2.7/ext/spl/tests/bug81992b.phpt php8.2-8.2.18/ext/spl/tests/bug81992b.phpt --- php8.2-8.2.7/ext/spl/tests/bug81992b.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/spl/tests/bug81992b.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,66 @@ +--TEST-- +Bug #81992 (SplFixedArray::setSize() causes use-after-free) - setSize variation +--FILE-- +obj->setSize($this->desiredSize); + echo "Destroyed, size is now still ", $this->obj->getSize(), "\n"; + } +} + +class DestructorLogger { + public function __construct(private int $id) {} + + public function __destruct() { + echo "Destroyed the logger with id ", $this->id, "\n"; + } +} + +function test(int $desiredSize) { + $obj = new SplFixedArray(5); + $obj[0] = str_repeat("A", 10); + $obj[1] = new DestructorLogger(1); + $obj[2] = str_repeat('B', 10); + $obj[3] = new InvalidDestructor($desiredSize, $obj); + $obj[4] = new DestructorLogger(4); + $obj->setSize(2); + echo "Size is now ", $obj->getSize(), "\n"; + echo "Done\n"; +} + +echo "--- Smaller size test ---\n"; +test(1); +echo "--- Equal size test ---\n"; +test(2); +echo "--- Larger size test ---\n"; +test(10); +?> +--EXPECT-- +--- Smaller size test --- +In destructor +Destroyed, size is now still 2 +Destroyed the logger with id 4 +Destroyed the logger with id 1 +Size is now 1 +Done +--- Equal size test --- +In destructor +Destroyed, size is now still 2 +Destroyed the logger with id 4 +Size is now 2 +Done +Destroyed the logger with id 1 +--- Larger size test --- +In destructor +Destroyed, size is now still 2 +Destroyed the logger with id 4 +Size is now 10 +Done +Destroyed the logger with id 1 diff -Nru php8.2-8.2.7/ext/spl/tests/gh11338.phpt php8.2-8.2.18/ext/spl/tests/gh11338.phpt --- php8.2-8.2.7/ext/spl/tests/gh11338.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/spl/tests/gh11338.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,47 @@ +--TEST-- +GH-11338 (SplFileInfo empty getBasename with more than on slash) +--FILE-- +getBasename()); + var_dump($file->getFilename()); +} + +test('/dir/anotherdir/basedir//'); +test('/dir/anotherdir/basedir/'); +test('/dir/anotherdir/basedir'); +test('/dir/anotherdir//basedir'); +test('///'); +test('//'); +test('/'); +test(''); + +?> +--EXPECT-- +Testing: '/dir/anotherdir/basedir//' +string(7) "basedir" +string(7) "basedir" +Testing: '/dir/anotherdir/basedir/' +string(7) "basedir" +string(7) "basedir" +Testing: '/dir/anotherdir/basedir' +string(7) "basedir" +string(7) "basedir" +Testing: '/dir/anotherdir//basedir' +string(7) "basedir" +string(7) "basedir" +Testing: '///' +string(0) "" +string(1) "/" +Testing: '//' +string(0) "" +string(1) "/" +Testing: '/' +string(0) "" +string(1) "/" +Testing: '' +string(0) "" +string(0) "" diff -Nru php8.2-8.2.7/ext/spl/tests/gh11972.phpt php8.2-8.2.18/ext/spl/tests/gh11972.phpt --- php8.2-8.2.7/ext/spl/tests/gh11972.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/spl/tests/gh11972.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,196 @@ +--TEST-- +GH-11972 (RecursiveCallbackFilterIterator regression in 8.1.18) +--EXTENSIONS-- +spl +--FILE-- +setMaxDepth(20); + foreach ($recursive_iterator as $value) { + // Avoid recursion by marking where we've been. + $value['#override_mode_breadcrumb'] = true; + } + return \iterator_to_array($recursive_iterator); + } + + public function isCyclic($current, string $key, \RecursiveArrayIterator $iterator): bool { + var_dump($current); + if (!is_array($current)) { + return false; + } + // Avoid infinite loops by checking if we've been here before. + // e.g. View > query > view > query ... + if (isset($current['#override_mode_breadcrumb'])) { + return false; + } + return true; + } +} + +$test_array['e']['p'][] = ['a', 'a']; +$test_array['e']['p'][] = ['b', 'b']; +$test_array['e']['p'][] = ['c', 'c']; +$serialized = serialize($test_array); +$unserialized = unserialize($serialized); + +$test_class = new RecursiveFilterTest(); +$test_class->traverse($unserialized); + +echo "Done\n"; + +?> +--EXPECT-- +array(1) { + ["p"]=> + array(3) { + [0]=> + array(2) { + [0]=> + string(1) "a" + [1]=> + string(1) "a" + } + [1]=> + array(2) { + [0]=> + string(1) "b" + [1]=> + string(1) "b" + } + [2]=> + array(2) { + [0]=> + string(1) "c" + [1]=> + string(1) "c" + } + } +} +array(3) { + [0]=> + array(2) { + [0]=> + string(1) "a" + [1]=> + string(1) "a" + } + [1]=> + array(2) { + [0]=> + string(1) "b" + [1]=> + string(1) "b" + } + [2]=> + array(2) { + [0]=> + string(1) "c" + [1]=> + string(1) "c" + } +} +array(2) { + [0]=> + string(1) "a" + [1]=> + string(1) "a" +} +string(1) "a" +string(1) "a" +array(2) { + [0]=> + string(1) "b" + [1]=> + string(1) "b" +} +string(1) "b" +string(1) "b" +array(2) { + [0]=> + string(1) "c" + [1]=> + string(1) "c" +} +string(1) "c" +string(1) "c" +array(1) { + ["p"]=> + array(3) { + [0]=> + array(2) { + [0]=> + string(1) "a" + [1]=> + string(1) "a" + } + [1]=> + array(2) { + [0]=> + string(1) "b" + [1]=> + string(1) "b" + } + [2]=> + array(2) { + [0]=> + string(1) "c" + [1]=> + string(1) "c" + } + } +} +array(3) { + [0]=> + array(2) { + [0]=> + string(1) "a" + [1]=> + string(1) "a" + } + [1]=> + array(2) { + [0]=> + string(1) "b" + [1]=> + string(1) "b" + } + [2]=> + array(2) { + [0]=> + string(1) "c" + [1]=> + string(1) "c" + } +} +array(2) { + [0]=> + string(1) "a" + [1]=> + string(1) "a" +} +string(1) "a" +string(1) "a" +array(2) { + [0]=> + string(1) "b" + [1]=> + string(1) "b" +} +string(1) "b" +string(1) "b" +array(2) { + [0]=> + string(1) "c" + [1]=> + string(1) "c" +} +string(1) "c" +string(1) "c" +Done diff -Nru php8.2-8.2.7/ext/spl/tests/gh12721.phpt php8.2-8.2.18/ext/spl/tests/gh12721.phpt --- php8.2-8.2.7/ext/spl/tests/gh12721.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/spl/tests/gh12721.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,51 @@ +--TEST-- +GH-12721 (SplFileInfo::getFilename() segfault in combination with GlobIterator and no directory separator) +--FILE-- +getFilename(), "\n"; + echo $fileInfo->getExtension(), "\n"; + echo $fileInfo->getBasename(), "\n"; + var_dump($fileInfo->getFileInfo()); +} + +echo "--- With slash ---\n"; + +foreach (new GlobIterator('./*.gh12721') as $fileInfo) { + echo $fileInfo->getFilename(), "\n"; + echo $fileInfo->getExtension(), "\n"; + echo $fileInfo->getBasename(), "\n"; + var_dump($fileInfo->getFileInfo()); +} + +?> +--CLEAN-- + +--EXPECTF-- +--- No slash --- +file1.gh12721 +gh12721 +file1.gh12721 +object(SplFileInfo)#4 (2) { + ["pathName":"SplFileInfo":private]=> + string(13) "file1.gh12721" + ["fileName":"SplFileInfo":private]=> + string(13) "file1.gh12721" +} +--- With slash --- +file1.gh12721 +gh12721 +file1.gh12721 +object(SplFileInfo)#3 (2) { + ["pathName":"SplFileInfo":private]=> + string(15) "%sfile1.gh12721" + ["fileName":"SplFileInfo":private]=> + string(13) "file1.gh12721" +} diff -Nru php8.2-8.2.7/ext/spl/tests/gh13531.phpt php8.2-8.2.18/ext/spl/tests/gh13531.phpt --- php8.2-8.2.7/ext/spl/tests/gh13531.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/spl/tests/gh13531.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,28 @@ +--TEST-- +GH-13531 (Unable to resize SplfixedArray after being unserialized in PHP 8.2.15) +--FILE-- +setSize(6); +var_dump($unserialized); + +?> +--EXPECT-- +object(SplFixedArray)#2 (6) { + [0]=> + NULL + [1]=> + NULL + [2]=> + NULL + [3]=> + NULL + [4]=> + int(1) + [5]=> + NULL +} diff -Nru php8.2-8.2.7/ext/spl/tests/gh13685.phpt php8.2-8.2.18/ext/spl/tests/gh13685.phpt --- php8.2-8.2.7/ext/spl/tests/gh13685.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/spl/tests/gh13685.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,52 @@ +--TEST-- +GH-13685 (Unexpected null pointer in zend_string.h) +--FILE-- +fwrite($contents); +$file->rewind(); +while (($data = $file->fgetcsv(',', '"', ''))) { + var_dump((string) $file); +} +try { + var_dump((string) $file); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +echo "--- Use csv control ---\n"; + +$file = new SplTempFileObject; +$file->fwrite($contents); +$file->rewind(); +$file->setFlags(SplFileObject::READ_CSV); +$file->setCsvControl(',', '"', ''); +foreach ($file as $row) { + var_dump((string) $file); +} +try { + var_dump((string) $file); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +?> +--EXPECT-- +--- Directly call fgetcsv --- +string(14) ""A", "B", "C" +" +string(13) ""D", "E", "F"" +Cannot read from file php://temp +--- Use csv control --- +string(14) ""A", "B", "C" +" +string(13) ""D", "E", "F"" +Cannot read from file php://temp diff -Nru php8.2-8.2.7/ext/spl/tests/spl_autoload_unregister_without_registrations.phpt php8.2-8.2.18/ext/spl/tests/spl_autoload_unregister_without_registrations.phpt --- php8.2-8.2.7/ext/spl/tests/spl_autoload_unregister_without_registrations.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/spl/tests/spl_autoload_unregister_without_registrations.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,10 @@ +--TEST-- +spl_autoload_unregister("spl_autoload_call") without registrations +--FILE-- + +Done +--EXPECT-- +bool(true) +Done diff -Nru php8.2-8.2.7/ext/sqlite3/sqlite3.c php8.2-8.2.18/ext/sqlite3/sqlite3.c --- php8.2-8.2.7/ext/sqlite3/sqlite3.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/sqlite3/sqlite3.c 2024-04-09 18:46:23.000000000 +0000 @@ -1824,7 +1824,6 @@ zval *db_zval; zend_string *sql; int errcode; - zend_error_handling error_handling; php_sqlite3_free_list *free_item; stmt_obj = Z_SQLITE3_STMT_P(object); @@ -1835,9 +1834,7 @@ db_obj = Z_SQLITE3_DB_P(db_zval); - zend_replace_error_handling(EH_THROW, NULL, &error_handling); SQLITE3_CHECK_INITIALIZED(db_obj, db_obj->initialised, SQLite3) - zend_restore_error_handling(&error_handling); if (!ZSTR_LEN(sql)) { RETURN_FALSE; @@ -1982,7 +1979,9 @@ Z_ADDREF(data); } } - zend_symtable_add_new(Z_ARR_P(return_value), result_obj->column_names[i], &data); + /* Note: we can't use the "add_new" variant here instead of "update" because + * when the same column name is encountered, the last result should be taken. */ + zend_symtable_update(Z_ARR_P(return_value), result_obj->column_names[i], &data); } } break; @@ -2230,6 +2229,42 @@ } /* }}} */ +static HashTable *php_sqlite3_get_gc(zend_object *object, zval **table, int *n) +{ + php_sqlite3_db_object *intern = php_sqlite3_db_from_obj(object); + + if (intern->funcs == NULL && intern->collations == NULL) { + /* Fast path without allocations */ + *table = NULL; + *n = 0; + return zend_std_get_gc(object, table, n); + } else { + zend_get_gc_buffer *gc_buffer = zend_get_gc_buffer_create(); + + php_sqlite3_func *func = intern->funcs; + while (func != NULL) { + zend_get_gc_buffer_add_zval(gc_buffer, &func->func); + zend_get_gc_buffer_add_zval(gc_buffer, &func->step); + zend_get_gc_buffer_add_zval(gc_buffer, &func->fini); + func = func->next; + } + + php_sqlite3_collation *collation = intern->collations; + while (collation != NULL) { + zend_get_gc_buffer_add_zval(gc_buffer, &collation->cmp_func); + collation = collation->next; + } + + zend_get_gc_buffer_use(gc_buffer, table, n); + + if (object->properties == NULL && object->ce->default_properties_count == 0) { + return NULL; + } else { + return zend_std_get_properties(object); + } + } +} + static void php_sqlite3_stmt_object_free_storage(zend_object *object) /* {{{ */ { php_sqlite3_stmt *intern = php_sqlite3_stmt_from_obj(object); @@ -2365,6 +2400,7 @@ sqlite3_object_handlers.offset = XtOffsetOf(php_sqlite3_db_object, zo); sqlite3_object_handlers.clone_obj = NULL; sqlite3_object_handlers.free_obj = php_sqlite3_object_free_storage; + sqlite3_object_handlers.get_gc = php_sqlite3_get_gc; php_sqlite3_sc_entry = register_class_SQLite3(); php_sqlite3_sc_entry->create_object = php_sqlite3_object_new; diff -Nru php8.2-8.2.7/ext/sqlite3/tests/gh11451.phpt php8.2-8.2.18/ext/sqlite3/tests/gh11451.phpt --- php8.2-8.2.7/ext/sqlite3/tests/gh11451.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/sqlite3/tests/gh11451.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,25 @@ +--TEST-- +GH-11451 (Invalid associative array containing duplicate keys) +--EXTENSIONS-- +sqlite3 +--FILE-- +query('SELECT 1 AS key, 2 AS key') + ->fetchArray(SQLITE3_ASSOC)); + +var_dump((new SQLite3(':memory:')) + ->query('SELECT 0 AS dummy, 1 AS key, 2 AS key') + ->fetchArray(SQLITE3_ASSOC)); +?> +--EXPECT-- +array(1) { + ["key"]=> + int(2) +} +array(2) { + ["dummy"]=> + int(0) + ["key"]=> + int(2) +} diff -Nru php8.2-8.2.7/ext/sqlite3/tests/gh11878.phpt php8.2-8.2.18/ext/sqlite3/tests/gh11878.phpt --- php8.2-8.2.7/ext/sqlite3/tests/gh11878.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/sqlite3/tests/gh11878.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,31 @@ +--TEST-- +GH-11878 (SQLite3 callback functions cause a memory leak with a callable array) +--EXTENSIONS-- +sqlite3 +--FILE-- +sqlite = new SQLite3(":memory:"); + if ($aggregates) { + $this->sqlite->createAggregate("indexes", array($this, "SQLiteIndex"), array($this, "SQLiteFinal"), 0); + } + if ($normalFunctions) { + $this->sqlite->createFunction("func", array($this, "SQLiteIndex"), 0); + $this->sqlite->createCollation("collation", array($this, "SQLiteIndex")); + } + } + public function SQLiteIndex() {} + public function SQLiteFinal() {} +} + +// Test different combinations to check for null pointer derefs +$x = new Foo(true, true); +$y = new Foo(false, true); +$z = new Foo(true, false); +$w = new Foo(false, false); +?> +Done +--EXPECT-- +Done diff -Nru php8.2-8.2.7/ext/sqlite3/tests/sqlite3_defensive.phpt php8.2-8.2.18/ext/sqlite3/tests/sqlite3_defensive.phpt --- php8.2-8.2.7/ext/sqlite3/tests/sqlite3_defensive.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/sqlite3/tests/sqlite3_defensive.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -20,7 +20,6 @@ // This does not generate an error! var_dump($db->exec('PRAGMA writable_schema = ON;')); -var_dump($db->querySingle('PRAGMA writable_schema;')); // Should be 1 var_dump($db->querySingle('SELECT COUNT(*) FROM sqlite_master;')); @@ -35,8 +34,7 @@ bool(true) bool(true) int(1) -int(1) Warning: SQLite3::querySingle(): Unable to prepare statement: 1, table sqlite_master may not be modified in %s on line %d bool(false) -int(1) \ No newline at end of file +int(1) diff -Nru php8.2-8.2.7/ext/standard/array.c php8.2-8.2.18/ext/standard/array.c --- php8.2-8.2.7/ext/standard/array.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/array.c 2024-04-09 18:46:23.000000000 +0000 @@ -188,7 +188,7 @@ l2 = s->key->len; } else { s2 = zend_print_long_to_buf(buf2 + sizeof(buf2) - 1, s->h); - l2 = buf2 + sizeof(buf2) - 1 - s1; + l2 = buf2 + sizeof(buf2) - 1 - s2; } return zend_binary_strcasecmp_l(s1, l1, s2, l2); } @@ -238,7 +238,7 @@ l2 = s->key->len; } else { s2 = zend_print_long_to_buf(buf2 + sizeof(buf2) - 1, s->h); - l2 = buf2 + sizeof(buf2) - 1 - s1; + l2 = buf2 + sizeof(buf2) - 1 - s2; } return strnatcmp_ex(s1, l1, s2, l2, fold_case); } @@ -3728,7 +3728,12 @@ } } else { Z_TRY_ADDREF_P(src_zval); - zend_hash_next_index_insert(Z_ARRVAL_P(dest_zval), src_zval); + zval *zv = zend_hash_next_index_insert(Z_ARRVAL_P(dest_zval), src_zval); + if (EXPECTED(!zv)) { + Z_TRY_DELREF_P(src_zval); + zend_cannot_add_element(); + return 0; + } } zval_ptr_dtor(&tmp); } else { @@ -3737,6 +3742,10 @@ } } else { zval *zv = zend_hash_next_index_insert(dest, src_entry); + if (UNEXPECTED(!zv)) { + zend_cannot_add_element(); + return 0; + } zval_add_ref(zv); } } ZEND_HASH_FOREACH_END(); @@ -5752,6 +5761,9 @@ /* Do the actual sort magic - bada-bim, bada-boom. */ zend_sort(indirect, array_size, sizeof(Bucket *), php_multisort_compare, (swap_func_t)array_bucket_p_sawp); + if (EG(exception)) { + goto clean_up; + } /* Restructure the arrays based on sorted indirect - this is mostly taken from zend_hash_sort() function. */ for (i = 0; i < num_arrays; i++) { @@ -5781,15 +5793,15 @@ } } } + RETVAL_TRUE; - /* Clean up. */ +clean_up: for (i = 0; i < array_size; i++) { efree(indirect[i]); } efree(indirect); efree(func); efree(arrays); - RETURN_TRUE; } /* }}} */ @@ -5821,6 +5833,9 @@ * specific offset using linear scan. */ i = 0; randval = algo->range(status, 0, num_avail - 1); + if (EG(exception)) { + return false; + } ZEND_HASH_FOREACH_KEY(ht, num_key, string_key) { if (i == randval) { if (string_key) { @@ -5841,6 +5856,9 @@ if (HT_IS_PACKED(ht)) { do { randval = algo->range(status, 0, ht->nNumUsed - 1); + if (EG(exception)) { + return false; + } zv = &ht->arPacked[randval]; if (!Z_ISUNDEF_P(zv)) { ZVAL_LONG(retval, randval); @@ -5850,6 +5868,9 @@ } else { do { randval = algo->range(status, 0, ht->nNumUsed - 1); + if (EG(exception)) { + return false; + } b = &ht->arData[randval]; if (!Z_ISUNDEF(b->val)) { if (b->key) { @@ -5882,11 +5903,25 @@ zend_bitset_clear(bitset, bitset_len); i = num_req; + int failures = 0; while (i) { randval = algo->range(status, 0, num_avail - 1); - if (!zend_bitset_in(bitset, randval)) { + if (EG(exception)) { + goto fail; + } + if (zend_bitset_in(bitset, randval)) { + /* Use PHP_RANDOM_RANGE_ATTEMPTS instead of the hardcoded 50 for 8.3+. */ + if (++failures > 50) { + if (!silent) { + zend_throw_error(random_ce_Random_BrokenRandomEngineError, "Failed to generate an acceptable random number in %d attempts", 50); + } + + goto fail; + } + } else { zend_bitset_incl(bitset, randval); i--; + failures = 0; } } @@ -5910,6 +5945,11 @@ free_alloca(bitset, use_heap); return true; + + fail: + free_alloca(bitset, use_heap); + + return false; } /* }}} */ diff -Nru php8.2-8.2.7/ext/standard/basic_functions.c php8.2-8.2.18/ext/standard/basic_functions.c --- php8.2-8.2.7/ext/standard/basic_functions.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/basic_functions.c 2024-04-09 18:46:23.000000000 +0000 @@ -229,6 +229,8 @@ BG(page_uid) = -1; BG(page_gid) = -1; + + BG(syslog_device) = NULL; } /* }}} */ @@ -366,9 +368,6 @@ PHP_MSHUTDOWN_FUNCTION(basic) /* {{{ */ { -#ifdef HAVE_SYSLOG_H - PHP_MSHUTDOWN(syslog)(SHUTDOWN_FUNC_ARGS_PASSTHRU); -#endif #ifdef ZTS ts_free_id(basic_globals_id); #ifdef PHP_WIN32 @@ -425,9 +424,6 @@ BG(user_shutdown_function_names) = NULL; PHP_RINIT(filestat)(INIT_FUNC_ARGS_PASSTHRU); -#ifdef HAVE_SYSLOG_H - BASIC_RINIT_SUBMODULE(syslog) -#endif BASIC_RINIT_SUBMODULE(dir) BASIC_RINIT_SUBMODULE(url_scanner_ex) @@ -477,9 +473,7 @@ PHP_RSHUTDOWN(filestat)(SHUTDOWN_FUNC_ARGS_PASSTHRU); #ifdef HAVE_SYSLOG_H -#ifdef PHP_WIN32 - BASIC_RSHUTDOWN_SUBMODULE(syslog)(SHUTDOWN_FUNC_ARGS_PASSTHRU); -#endif + BASIC_RSHUTDOWN_SUBMODULE(syslog); #endif BASIC_RSHUTDOWN_SUBMODULE(assert) BASIC_RSHUTDOWN_SUBMODULE(url_scanner_ex) @@ -749,7 +743,7 @@ if (!str) { array_init(return_value); - php_import_environment_variables(return_value); + php_load_environment_variables(return_value); return; } @@ -1547,7 +1541,7 @@ Z_PARAM_VARIADIC('*', fci.params, fci.param_count) ZEND_PARSE_PARAMETERS_END(); - if (!EX(prev_execute_data)->func->common.scope) { + if (!EX(prev_execute_data) || !EX(prev_execute_data)->func->common.scope) { zend_throw_error(NULL, "Cannot call forward_static_call() when no class scope is active"); RETURN_THROWS(); } diff -Nru php8.2-8.2.7/ext/standard/browscap.c php8.2-8.2.18/ext/standard/browscap.c --- php8.2-8.2.7/ext/standard/browscap.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/browscap.c 2024-04-09 18:46:23.000000000 +0000 @@ -228,7 +228,7 @@ } else { interned = zend_string_copy(str); if (persistent) { - interned = zend_new_interned_string(str); + interned = zend_new_interned_string(interned); } zend_hash_add_new_ptr(&ctx->str_interned, interned, interned); } @@ -397,10 +397,6 @@ } /* }}} */ -static void str_interned_dtor(zval *zv) { - zend_string_release(Z_STR_P(zv)); -} - static int browscap_read_file(char *filename, browser_data *browdata, int persistent) /* {{{ */ { zend_file_handle fh; @@ -430,7 +426,9 @@ ctx.bdata = browdata; ctx.current_entry = NULL; ctx.current_section_name = NULL; - zend_hash_init(&ctx.str_interned, 8, NULL, str_interned_dtor, persistent); + /* No dtor because we don't inc the refcount for the reference stored within the hash table's entry value + * as the hash table is only temporary anyway. */ + zend_hash_init(&ctx.str_interned, 8, NULL, NULL, persistent); zend_parse_ini_file(&fh, persistent, ZEND_INI_SCANNER_RAW, (zend_ini_parser_cb_t) php_browscap_parser_cb, &ctx); diff -Nru php8.2-8.2.7/ext/standard/config.m4 php8.2-8.2.18/ext/standard/config.m4 --- php8.2-8.2.7/ext/standard/config.m4 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/config.m4 2024-04-09 18:46:23.000000000 +0000 @@ -81,7 +81,7 @@ #include #include -int main() { +int main(void) { #if HAVE_CRYPT char *encrypted = crypt("rasmuslerdorf","rl"); return !encrypted || strcmp(encrypted,"rl.3StKT.4T8M"); @@ -111,7 +111,7 @@ #include #include -int main() { +int main(void) { #if HAVE_CRYPT char *encrypted = crypt("rasmuslerdorf","_J9..rasm"); return !encrypted || strcmp(encrypted,"_J9..rasmBYk8r9AiWNc"); @@ -141,7 +141,7 @@ #include #include -int main() { +int main(void) { #if HAVE_CRYPT char salt[15], answer[40]; char *encrypted; @@ -181,7 +181,7 @@ #include #include -int main() { +int main(void) { #if HAVE_CRYPT char salt[30], answer[70]; char *encrypted; @@ -218,7 +218,7 @@ #include #include -int main() { +int main(void) { #if HAVE_CRYPT char salt[21], answer[21+86]; char *encrypted; @@ -254,7 +254,7 @@ #include #include -int main() { +int main(void) { #if HAVE_CRYPT char salt[21], answer[21+43]; char *encrypted; diff -Nru php8.2-8.2.7/ext/standard/dl.c php8.2-8.2.18/ext/standard/dl.c --- php8.2-8.2.7/ext/standard/dl.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/dl.c 2024-04-09 18:46:23.000000000 +0000 @@ -230,15 +230,30 @@ DL_UNLOAD(handle); return FAILURE; } + + int old_type = module_entry->type; + int old_module_number = module_entry->module_number; + void *old_handle = module_entry->handle; + module_entry->type = type; module_entry->module_number = zend_next_free_module(); module_entry->handle = handle; - if ((module_entry = zend_register_module_ex(module_entry)) == NULL) { + zend_module_entry *added_module_entry; + if ((added_module_entry = zend_register_module_ex(module_entry)) == NULL) { + /* Module loading failed, potentially because the module was already loaded. + * It is especially important in that case to restore the old type, module_number, and handle. + * Overwriting the values for an already-loaded module causes problem when these fields are used + * to uniquely identify module boundaries (e.g. in dom and reflection). */ + module_entry->type = old_type; + module_entry->module_number = old_module_number; + module_entry->handle = old_handle; DL_UNLOAD(handle); return FAILURE; } + module_entry = added_module_entry; + if ((type == MODULE_TEMPORARY || start_now) && zend_startup_module_ex(module_entry) == FAILURE) { DL_UNLOAD(handle); return FAILURE; diff -Nru php8.2-8.2.7/ext/standard/file.c php8.2-8.2.18/ext/standard/file.c --- php8.2-8.2.7/ext/standard/file.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/file.c 2024-04-09 18:46:23.000000000 +0000 @@ -704,7 +704,7 @@ ZEND_PARSE_PARAMETERS_END(); p = php_basename(prefix, prefix_len, NULL, 0); - if (ZSTR_LEN(p) > 64) { + if (ZSTR_LEN(p) >= 64) { ZSTR_VAL(p)[63] = '\0'; } diff -Nru php8.2-8.2.7/ext/standard/ftp_fopen_wrapper.c php8.2-8.2.18/ext/standard/ftp_fopen_wrapper.c --- php8.2-8.2.7/ext/standard/ftp_fopen_wrapper.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/ftp_fopen_wrapper.c 2024-04-09 18:46:23.000000000 +0000 @@ -490,7 +490,7 @@ } else if (read_write == 2) { /* when writing file (but not appending), it must NOT exist, unless a context option exists which allows it */ if (context && (tmpzval = php_stream_context_get_option(context, "ftp", "overwrite")) != NULL) { - allow_overwrite = Z_LVAL_P(tmpzval) ? 1 : 0; + allow_overwrite = zend_is_true(tmpzval); } if (result <= 299 && result >= 200) { if (allow_overwrite) { diff -Nru php8.2-8.2.7/ext/standard/image.c php8.2-8.2.18/ext/standard/image.c --- php8.2-8.2.7/ext/standard/image.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/image.c 2024-04-09 18:46:23.000000000 +0000 @@ -394,6 +394,20 @@ } /* }}} */ +static size_t php_read_stream_all_chunks(php_stream *stream, char *buffer, size_t length) +{ + size_t read_total = 0; + do { + ssize_t read_now = php_stream_read(stream, buffer, length - read_total); + read_total += read_now; + if (read_now < stream->chunk_size && read_total != length) { + return 0; + } + } while (read_total < length); + + return read_total; +} + /* {{{ php_read_APP */ static int php_read_APP(php_stream * stream, unsigned int marker, zval *info) { @@ -410,7 +424,7 @@ buffer = emalloc(length); - if (php_stream_read(stream, buffer, (size_t) length) != length) { + if (php_read_stream_all_chunks(stream, buffer, length) != length) { efree(buffer); return 0; } diff -Nru php8.2-8.2.7/ext/standard/mail.c php8.2-8.2.18/ext/standard/mail.c --- php8.2-8.2.7/ext/standard/mail.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/mail.c 2024-04-09 18:46:23.000000000 +0000 @@ -57,7 +57,7 @@ extern zend_long php_getuid(void); -static bool php_mail_build_headers_check_field_value(zval *val) +static php_mail_header_value_error_type php_mail_build_headers_check_field_value(zval *val) { size_t len = 0; zend_string *value = Z_STR_P(val); @@ -66,20 +66,39 @@ /* https://tools.ietf.org/html/rfc2822#section-2.2.3 */ while (len < value->len) { if (*(value->val+len) == '\r') { + if (*(value->val+len+1) != '\n') { + return CONTAINS_CR_ONLY; + } + if (value->len - len >= 3 - && *(value->val+len+1) == '\n' && (*(value->val+len+2) == ' ' || *(value->val+len+2) == '\t')) { len += 3; continue; } - return FAILURE; + + return CONTAINS_CRLF; + } + /** + * The RFC does not allow using LF alone for folding. However, LF is + * often treated similarly to CRLF, and there are likely many user + * environments that use LF for folding. + * Therefore, considering such an environment, folding with LF alone + * is allowed. + */ + if (*(value->val+len) == '\n') { + if (value->len - len >= 2 + && (*(value->val+len+1) == ' ' || *(value->val+len+1) == '\t')) { + len += 2; + continue; + } + return CONTAINS_LF_ONLY; } if (*(value->val+len) == '\0') { - return FAILURE; + return CONTAINS_NULL; } len++; } - return SUCCESS; + return NO_HEADER_ERROR; } @@ -108,9 +127,27 @@ zend_value_error("Header name \"%s\" contains invalid characters", ZSTR_VAL(key)); return; } - if (php_mail_build_headers_check_field_value(val) != SUCCESS) { - zend_value_error("Header \"%s\" has invalid format, or contains invalid characters", ZSTR_VAL(key)); - return; + + php_mail_header_value_error_type error_type = php_mail_build_headers_check_field_value(val); + switch (error_type) { + case NO_HEADER_ERROR: + break; + case CONTAINS_LF_ONLY: + zend_value_error("Header \"%s\" contains LF character that is not allowed in the header", ZSTR_VAL(key)); + return; + case CONTAINS_CR_ONLY: + zend_value_error("Header \"%s\" contains CR character that is not allowed in the header", ZSTR_VAL(key)); + return; + case CONTAINS_CRLF: + zend_value_error("Header \"%s\" contains CRLF characters that are used as a line separator and are not allowed in the header", ZSTR_VAL(key)); + return; + case CONTAINS_NULL: + zend_value_error("Header \"%s\" contains NULL character that is not allowed in the header", ZSTR_VAL(key)); + return; + default: + // fallback + zend_value_error("Header \"%s\" has invalid format, or contains invalid characters", ZSTR_VAL(key)); + return; } smart_str_append(s, key); smart_str_appendl(s, ": ", 2); diff -Nru php8.2-8.2.7/ext/standard/math.c php8.2-8.2.18/ext/standard/math.c --- php8.2-8.2.7/ext/standard/math.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/math.c 2024-04-09 18:46:23.000000000 +0000 @@ -283,15 +283,11 @@ ZEND_PARSE_PARAMETERS_END(); if (ZEND_NUM_ARGS() >= 2) { -#if SIZEOF_ZEND_LONG > SIZEOF_INT if (precision >= 0) { - places = precision > INT_MAX ? INT_MAX : (int)precision; + places = ZEND_LONG_INT_OVFL(precision) ? INT_MAX : (int)precision; } else { - places = precision <= INT_MIN ? INT_MIN+1 : (int)precision; + places = ZEND_LONG_INT_UDFL(precision) ? INT_MIN : (int)precision; } -#else - places = precision; -#endif } switch (Z_TYPE_P(value)) { @@ -1136,6 +1132,7 @@ { double num; zend_long dec = 0; + int dec_int; char *thousand_sep = NULL, *dec_point = NULL; size_t thousand_sep_len = 0, dec_point_len = 0; @@ -1156,7 +1153,13 @@ thousand_sep_len = 1; } - RETURN_STR(_php_math_number_format_ex(num, (int)dec, dec_point, dec_point_len, thousand_sep, thousand_sep_len)); + if (dec >= 0) { + dec_int = ZEND_LONG_INT_OVFL(dec) ? INT_MAX : (int)dec; + } else { + dec_int = ZEND_LONG_INT_UDFL(dec) ? INT_MIN : (int)dec; + } + + RETURN_STR(_php_math_number_format_ex(num, dec_int, dec_point, dec_point_len, thousand_sep, thousand_sep_len)); } /* }}} */ diff -Nru php8.2-8.2.7/ext/standard/password.c php8.2-8.2.18/ext/standard/password.c --- php8.2-8.2.7/ext/standard/password.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/password.c 2024-04-09 18:46:23.000000000 +0000 @@ -180,6 +180,11 @@ zval *zcost; zend_long cost = PHP_PASSWORD_BCRYPT_COST; + if (memchr(ZSTR_VAL(password), '\0', ZSTR_LEN(password))) { + zend_value_error("Bcrypt password must not contain null character"); + return NULL; + } + if (options && (zcost = zend_hash_str_find(options, "cost", sizeof("cost")-1)) != NULL) { cost = zval_get_long(zcost); } diff -Nru php8.2-8.2.7/ext/standard/php_ext_syslog.h php8.2-8.2.18/ext/standard/php_ext_syslog.h --- php8.2-8.2.7/ext/standard/php_ext_syslog.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/php_ext_syslog.h 2024-04-09 18:46:23.000000000 +0000 @@ -22,11 +22,7 @@ #include "php_syslog.h" PHP_MINIT_FUNCTION(syslog); -PHP_RINIT_FUNCTION(syslog); -#ifdef PHP_WIN32 PHP_RSHUTDOWN_FUNCTION(syslog); -#endif -PHP_MSHUTDOWN_FUNCTION(syslog); #endif diff -Nru php8.2-8.2.7/ext/standard/php_mail.h php8.2-8.2.18/ext/standard/php_mail.h --- php8.2-8.2.7/ext/standard/php_mail.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/php_mail.h 2024-04-09 18:46:23.000000000 +0000 @@ -49,5 +49,12 @@ } \ } while(0) +typedef enum { + NO_HEADER_ERROR, + CONTAINS_LF_ONLY, + CONTAINS_CR_ONLY, + CONTAINS_CRLF, + CONTAINS_NULL +} php_mail_header_value_error_type; #endif /* PHP_MAIL_H */ diff -Nru php8.2-8.2.7/ext/standard/proc_open.c php8.2-8.2.18/ext/standard/proc_open.c --- php8.2-8.2.7/ext/standard/proc_open.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/proc_open.c 2024-04-09 18:46:23.000000000 +0000 @@ -492,11 +492,32 @@ } } -/* See https://docs.microsoft.com/en-us/cpp/cpp/parsing-cpp-command-line-arguments */ -static void append_win_escaped_arg(smart_str *str, zend_string *arg) +const char *special_chars = "()!^\"<>&|%"; + +static bool is_special_character_present(const zend_string *arg) +{ + for (size_t i = 0; i < ZSTR_LEN(arg); ++i) { + if (strchr(special_chars, ZSTR_VAL(arg)[i]) != NULL) { + return true; + } + } + return false; +} + +/* See https://docs.microsoft.com/en-us/cpp/cpp/parsing-cpp-command-line-arguments and + * https://learn.microsoft.com/en-us/archive/blogs/twistylittlepassagesallalike/everyone-quotes-command-line-arguments-the-wrong-way */ +static void append_win_escaped_arg(smart_str *str, zend_string *arg, bool is_cmd_argument) { size_t num_bs = 0; + bool has_special_character = false; + if (is_cmd_argument) { + has_special_character = is_special_character_present(arg); + if (has_special_character) { + /* Escape double quote with ^ if executed by cmd.exe. */ + smart_str_appendc(str, '^'); + } + } smart_str_appendc(str, '"'); for (size_t i = 0; i < ZSTR_LEN(arg); ++i) { char c = ZSTR_VAL(arg)[i]; @@ -510,18 +531,71 @@ num_bs = num_bs * 2 + 1; } append_backslashes(str, num_bs); + if (has_special_character && strchr(special_chars, c) != NULL) { + /* Escape special chars with ^ if executed by cmd.exe. */ + smart_str_appendc(str, '^'); + } smart_str_appendc(str, c); num_bs = 0; } append_backslashes(str, num_bs * 2); + if (has_special_character) { + /* Escape double quote with ^ if executed by cmd.exe. */ + smart_str_appendc(str, '^'); + } smart_str_appendc(str, '"'); } +static inline int stricmp_end(const char* suffix, const char* str) { + size_t suffix_len = strlen(suffix); + size_t str_len = strlen(str); + + if (suffix_len > str_len) { + return -1; /* Suffix is longer than string, cannot match. */ + } + + /* Compare the end of the string with the suffix, ignoring case. */ + return _stricmp(str + (str_len - suffix_len), suffix); +} + +static bool is_executed_by_cmd(const char *prog_name) +{ + /* If program name is cmd.exe, then return true. */ + if (_stricmp("cmd.exe", prog_name) == 0 || _stricmp("cmd", prog_name) == 0 + || stricmp_end("\\cmd.exe", prog_name) == 0 || stricmp_end("\\cmd", prog_name) == 0) { + return true; + } + + /* Find the last occurrence of the directory separator (backslash or forward slash). */ + char *last_separator = strrchr(prog_name, '\\'); + char *last_separator_fwd = strrchr(prog_name, '/'); + if (last_separator_fwd && (!last_separator || last_separator < last_separator_fwd)) { + last_separator = last_separator_fwd; + } + + /* Find the last dot in the filename after the last directory separator. */ + char *extension = NULL; + if (last_separator != NULL) { + extension = strrchr(last_separator, '.'); + } else { + extension = strrchr(prog_name, '.'); + } + + if (extension == NULL || extension == prog_name) { + /* No file extension found, it is not batch file. */ + return false; + } + + /* Check if the file extension is ".bat" or ".cmd" which is always executed by cmd.exe. */ + return _stricmp(extension, ".bat") == 0 || _stricmp(extension, ".cmd") == 0; +} + static zend_string *create_win_command_from_args(HashTable *args) { smart_str str = {0}; zval *arg_zv; - bool is_prog_name = 1; + bool is_prog_name = true; + bool is_cmd_execution = false; int elem_num = 0; ZEND_HASH_FOREACH_VAL(args, arg_zv) { @@ -531,11 +605,13 @@ return NULL; } - if (!is_prog_name) { + if (is_prog_name) { + is_cmd_execution = is_executed_by_cmd(ZSTR_VAL(arg_str)); + } else { smart_str_appendc(&str, ' '); } - append_win_escaped_arg(&str, arg_str); + append_win_escaped_arg(&str, arg_str, !is_prog_name && is_cmd_execution); is_prog_name = 0; zend_string_release(arg_str); @@ -1096,6 +1172,7 @@ descriptors[ndesc].index = (int)nindex; + ZVAL_DEREF(descitem); if (Z_TYPE_P(descitem) == IS_RESOURCE) { if (set_proc_descriptor_from_resource(descitem, &descriptors[ndesc], ndesc) == FAILURE) { goto exit_fail; diff -Nru php8.2-8.2.7/ext/standard/sha1.c php8.2-8.2.18/ext/standard/sha1.c --- php8.2-8.2.7/ext/standard/sha1.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/sha1.c 2024-04-09 18:46:23.000000000 +0000 @@ -173,7 +173,8 @@ 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 @@ 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 -Nru php8.2-8.2.7/ext/standard/string.c php8.2-8.2.18/ext/standard/string.c --- php8.2-8.2.7/ext/standard/string.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/string.c 2024-04-09 18:46:23.000000000 +0000 @@ -1201,7 +1201,7 @@ if (pieces == NULL) { if (arg1_array == NULL) { - zend_type_error("%s(): Argument #1 ($pieces) must be of type array, string given", get_active_function_name()); + zend_type_error("%s(): Argument #1 ($array) must be of type array, string given", get_active_function_name()); RETURN_THROWS(); } diff -Nru php8.2-8.2.7/ext/standard/syslog.c php8.2-8.2.18/ext/standard/syslog.c --- php8.2-8.2.7/ext/standard/syslog.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/syslog.c 2024-04-09 18:46:23.000000000 +0000 @@ -35,29 +35,13 @@ /* {{{ PHP_MINIT_FUNCTION */ PHP_MINIT_FUNCTION(syslog) { - BG(syslog_device)=NULL; - return SUCCESS; } /* }}} */ -PHP_RINIT_FUNCTION(syslog) -{ - BG(syslog_device) = NULL; - return SUCCESS; -} - - -#ifdef PHP_WIN32 PHP_RSHUTDOWN_FUNCTION(syslog) { - closelog(); - return SUCCESS; -} -#endif - -PHP_MSHUTDOWN_FUNCTION(syslog) -{ + php_closelog(); if (BG(syslog_device)) { free(BG(syslog_device)); BG(syslog_device) = NULL; diff -Nru php8.2-8.2.7/ext/standard/tests/file/005_variation2.phpt php8.2-8.2.18/ext/standard/tests/file/005_variation2.phpt --- php8.2-8.2.7/ext/standard/tests/file/005_variation2.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/file/005_variation2.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -28,6 +28,11 @@ echo "*** Testing fileattime(), filemtime(), filectime() & touch() : usage variations ***\n"; echo "\n*** testing touch ***\n"; + +$dir = __DIR__ . '/005_variation2'; +mkdir($dir); +chdir($dir); + $b = touch(false); $c = touch(''); $d = touch(' '); @@ -47,6 +52,7 @@ var_dump(unlink(' ')); var_dump(unlink('|')); +rmdir($dir); echo "Done"; ?> diff -Nru php8.2-8.2.7/ext/standard/tests/file/006_error.phpt php8.2-8.2.18/ext/standard/tests/file/006_error.phpt --- php8.2-8.2.7/ext/standard/tests/file/006_error.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/file/006_error.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -11,20 +11,9 @@ --FILE-- ---EXPECTF-- -temp stream (close after): +--EXPECTREGEX-- +temp stream \(close after\): About to rewind! -* Couldn't open file /i_dont_exist/ -* Closing connection%A%d +(\* processing: file:\/\/\/i_dont_exist\/\n)?\* Couldn't open file \/i_dont_exist\/ +\* Closing connection( -?\d+)? -memory stream (close after): +memory stream \(close after\): About to rewind! -* Couldn't open file /i_dont_exist/ -* Closing connection%A%d +(\* processing: file:\/\/\/i_dont_exist\/\n)?\* Couldn't open file \/i_dont_exist\/ +\* Closing connection( -?\d+)? -temp stream (leak): +temp stream \(leak\): About to rewind! -* Couldn't open file /i_dont_exist/ -* Closing connection%A%d +(\* processing: file:\/\/\/i_dont_exist\/\n)?\* Couldn't open file \/i_dont_exist\/ +\* Closing connection( -?\d+)? -memory stream (leak): +memory stream \(leak\): About to rewind! -* Couldn't open file /i_dont_exist/ -* Closing connection%A%d +(\* processing: file:\/\/\/i_dont_exist\/\n)?\* Couldn't open file \/i_dont_exist\/ +\* Closing connection( -?\d+)? -Done. +Done\. diff -Nru php8.2-8.2.7/ext/standard/tests/file/chroot_001.phpt php8.2-8.2.18/ext/standard/tests/file/chroot_001.phpt --- php8.2-8.2.7/ext/standard/tests/file/chroot_001.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/file/chroot_001.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -2,14 +2,22 @@ chroot() --SKIPIF-- --FILE-- 2) { + $result = false; + echo "Error: stat1 differs too much from stat2 at key value: $fields[$index]\n"; + } } break; diff -Nru php8.2-8.2.7/ext/standard/tests/file/file_put_contents_5gb.phpt php8.2-8.2.18/ext/standard/tests/file/file_put_contents_5gb.phpt --- php8.2-8.2.7/ext/standard/tests/file/file_put_contents_5gb.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/file/file_put_contents_5gb.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,67 @@ +--TEST-- +Test file_put_contents() function with 5GB string +--SKIPIF-- + +--INI-- +memory_limit=6G +--FILE-- + +--CLEAN-- + +--EXPECT-- +File written successfully. diff -Nru php8.2-8.2.7/ext/standard/tests/file/file_variation8-win32.phpt php8.2-8.2.18/ext/standard/tests/file/file_variation8-win32.phpt --- php8.2-8.2.7/ext/standard/tests/file/file_variation8-win32.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/file/file_variation8-win32.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -10,7 +10,7 @@ --FILE-- trim_path($path); + $this->file = fopen($path, $mode); + return true; + } + + public function stream_close() { + fclose($this->file); + return true; + } + + public function stream_write($data) { + self::$writes++; + return fwrite($this->file, $data); + } + + public function url_stat($path, $flags) { + return false; + } + + private function trim_path(string $path): string { + return substr($path, strlen("up://")); + } +} + +file_put_contents(__DIR__ . "/gh13071.tmp", str_repeat("a", 1024 * 1024 * 8)); + +stream_wrapper_register("up", CustomStream::class, STREAM_IS_URL); + +$old_limit = ini_get("memory_limit"); +ini_set("memory_limit", memory_get_usage(true) + 5 * 1024 * 1024); +copy(__DIR__ . "/gh13071.tmp", "up://" . __DIR__ . "/gh13071.out.tmp"); +ini_set("memory_limit", $old_limit); + +echo "Done ", CustomStream::$writes, " writes\n"; + +?> +--CLEAN-- + +--EXPECT-- +Done 1024 writes diff -Nru php8.2-8.2.7/ext/standard/tests/file/is_readable_basic.phpt php8.2-8.2.18/ext/standard/tests/file/is_readable_basic.phpt --- php8.2-8.2.7/ext/standard/tests/file/is_readable_basic.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/file/is_readable_basic.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -15,7 +15,7 @@ echo "*** Testing is_readable(): basic functionality ***\n"; // create a file -$filename = __DIR__."/is_readable.tmp"; +$filename = __DIR__."/is_readable_basic.tmp"; create_file($filename); $counter = 1; diff -Nru php8.2-8.2.7/ext/standard/tests/file/is_readable_error.phpt php8.2-8.2.18/ext/standard/tests/file/is_readable_error.phpt --- php8.2-8.2.7/ext/standard/tests/file/is_readable_error.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/file/is_readable_error.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -3,7 +3,7 @@ --FILE-- diff -Nru php8.2-8.2.7/ext/standard/tests/file/lstat_stat_variation18.phpt php8.2-8.2.18/ext/standard/tests/file/lstat_stat_variation18.phpt --- php8.2-8.2.7/ext/standard/tests/file/lstat_stat_variation18.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/file/lstat_stat_variation18.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -88,7 +88,7 @@ ["gid"]=> int(%d) ["rdev"]=> - int(%d) + int(%i) ["size"]=> int(%d) ["atime"]=> @@ -144,7 +144,7 @@ ["gid"]=> int(%d) ["rdev"]=> - int(%d) + int(%i) ["size"]=> int(%d) ["atime"]=> diff -Nru php8.2-8.2.7/ext/standard/tests/file/lstat_stat_variation19.phpt php8.2-8.2.18/ext/standard/tests/file/lstat_stat_variation19.phpt --- php8.2-8.2.7/ext/standard/tests/file/lstat_stat_variation19.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/file/lstat_stat_variation19.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -89,7 +89,7 @@ ["gid"]=> int(%d) ["rdev"]=> - int(%d) + int(%i) ["size"]=> int(%d) ["atime"]=> @@ -143,7 +143,7 @@ ["gid"]=> int(%d) ["rdev"]=> - int(%d) + int(%i) ["size"]=> int(%d) ["atime"]=> @@ -199,7 +199,7 @@ ["gid"]=> int(%d) ["rdev"]=> - int(%d) + int(%i) ["size"]=> int(%d) ["atime"]=> @@ -253,7 +253,7 @@ ["gid"]=> int(%d) ["rdev"]=> - int(%d) + int(%i) ["size"]=> int(%d) ["atime"]=> diff -Nru php8.2-8.2.7/ext/standard/tests/file/lstat_stat_variation20.phpt php8.2-8.2.18/ext/standard/tests/file/lstat_stat_variation20.phpt --- php8.2-8.2.7/ext/standard/tests/file/lstat_stat_variation20.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/file/lstat_stat_variation20.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -98,7 +98,7 @@ ["gid"]=> int(%d) ["rdev"]=> - int(%d) + int(%i) ["size"]=> int(%d) ["atime"]=> @@ -154,7 +154,7 @@ ["gid"]=> int(%d) ["rdev"]=> - int(%d) + int(%i) ["size"]=> int(%d) ["atime"]=> @@ -208,7 +208,7 @@ ["gid"]=> int(%d) ["rdev"]=> - int(%d) + int(%i) ["size"]=> int(%d) ["atime"]=> @@ -262,7 +262,7 @@ ["gid"]=> int(%d) ["rdev"]=> - int(%d) + int(%i) ["size"]=> int(%d) ["atime"]=> diff -Nru php8.2-8.2.7/ext/standard/tests/file/mkdir-004.phpt php8.2-8.2.18/ext/standard/tests/file/mkdir-004.phpt --- php8.2-8.2.7/ext/standard/tests/file/mkdir-004.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/file/mkdir-004.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -1,24 +1,20 @@ --TEST-- -recursive mkdir() tests ---SKIPIF-- - +recursive mkdir() with unclean paths --FILE-- --EXPECT-- -bool(true) -bool(true) -bool(true) -Done +Ok. diff -Nru php8.2-8.2.7/ext/standard/tests/file/mkdir-005.phpt php8.2-8.2.18/ext/standard/tests/file/mkdir-005.phpt --- php8.2-8.2.7/ext/standard/tests/file/mkdir-005.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/file/mkdir-005.phpt 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ ---TEST-- -recursive mkdir() tests ---SKIPIF-- - ---FILE-- - ---EXPECT-- -bool(true) -bool(true) -bool(true) -Done diff -Nru php8.2-8.2.7/ext/standard/tests/file/mkdir-006.phpt php8.2-8.2.18/ext/standard/tests/file/mkdir-006.phpt --- php8.2-8.2.7/ext/standard/tests/file/mkdir-006.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/file/mkdir-006.phpt 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ ---TEST-- -recursive mkdir() with unclean paths ---FILE-- - ---EXPECT-- -Ok. diff -Nru php8.2-8.2.7/ext/standard/tests/file/tempnam_variation9.phpt php8.2-8.2.18/ext/standard/tests/file/tempnam_variation9.phpt --- php8.2-8.2.7/ext/standard/tests/file/tempnam_variation9.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/file/tempnam_variation9.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,73 @@ +--TEST-- +Test tempnam() function: usage variations - test prefix maximum size +--SKIPIF-- + +--FILE-- +$prefix) { + echo "-- Iteration $i --\n"; + try { + $file_name = tempnam("$file_path", $prefix); + } catch (Error $e) { + echo $e->getMessage(), "\n"; + continue; + } + + $base_name = basename($file_name); + echo "File name is => ", $base_name, "\n"; + echo "File name length is => ", strlen($base_name), "\n"; + + if (file_exists($file_name)) { + unlink($file_name); + } +} +rmdir($file_path); + +?> +--CLEAN-- + +--EXPECTF-- +*** Testing tempnam() maximum prefix size *** +-- Iteration 0 -- +File name is => begin_%rx{7}%r_end%r.{6}%r +File name length is => 23 +-- Iteration 1 -- +File name is => begin_%rx{53}%r_end%r.{6}%r +File name length is => 69 +-- Iteration 2 -- +File name is => begin_%rx{54}%r_en%r.{6}%r +File name length is => 69 +-- Iteration 3 -- +File name is => begin_%rx{55}%r_e%r.{6}%r +File name length is => 69 +-- Iteration 4 -- +File name is => begin_%rx{57}%r%r.{6}%r +File name length is => 69 diff -Nru php8.2-8.2.7/ext/standard/tests/file/userstreams_006.phpt php8.2-8.2.18/ext/standard/tests/file/userstreams_006.phpt --- php8.2-8.2.7/ext/standard/tests/file/userstreams_006.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/file/userstreams_006.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -34,5 +34,6 @@ option: 3, 2, 50 int(-1) int(8192) -size: 70 +size: 42 +size: 28 int(70) diff -Nru php8.2-8.2.7/ext/standard/tests/file/windows_acls/common.inc php8.2-8.2.18/ext/standard/tests/file/windows_acls/common.inc --- php8.2-8.2.7/ext/standard/tests/file/windows_acls/common.inc 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/file/windows_acls/common.inc 2024-04-09 18:46:23.000000000 +0000 @@ -19,7 +19,7 @@ if (getenv('GITHUB_ACTIONS')) { // bug44859_4.phpt test fails on the 1st run // other ACL tests cannot be run twice - die('skip failing on Github Actions (but passes in AppVeyor)'); + die('skip failing on Github Actions'); } } diff -Nru php8.2-8.2.7/ext/standard/tests/general_functions/dl-check-enabled.phpt php8.2-8.2.18/ext/standard/tests/general_functions/dl-check-enabled.phpt --- php8.2-8.2.7/ext/standard/tests/general_functions/dl-check-enabled.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/general_functions/dl-check-enabled.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -9,6 +9,7 @@ if (!in_array(php_sapi_name(), $enabled_sapi)) { die('skip dl() is not enabled for ' . php_sapi_name()); } +if (getenv('SKIP_ASAN')) die('skip dl() crashes LSan'); ?> --INI-- enable_dl=0 diff -Nru php8.2-8.2.7/ext/standard/tests/general_functions/dl-cve-2007-4887.phpt php8.2-8.2.18/ext/standard/tests/general_functions/dl-cve-2007-4887.phpt --- php8.2-8.2.7/ext/standard/tests/general_functions/dl-cve-2007-4887.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/general_functions/dl-cve-2007-4887.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -6,6 +6,7 @@ if (!in_array(php_sapi_name(), $enabled_sapi)) { die('skip dl() is not enabled for ' . php_sapi_name()); } +if (getenv('SKIP_ASAN')) die('skip dl() crashes LSan'); ?> --INI-- enable_dl=1 diff -Nru php8.2-8.2.7/ext/standard/tests/general_functions/dl-full-path-not-supported.phpt php8.2-8.2.18/ext/standard/tests/general_functions/dl-full-path-not-supported.phpt --- php8.2-8.2.7/ext/standard/tests/general_functions/dl-full-path-not-supported.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/general_functions/dl-full-path-not-supported.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -9,6 +9,7 @@ if (!in_array(php_sapi_name(), $enabled_sapi)) { die('skip dl() is not enabled for ' . php_sapi_name()); } +if (getenv('SKIP_ASAN')) die('skip dl() crashes LSan'); ?> --INI-- enable_dl=1 diff -Nru php8.2-8.2.7/ext/standard/tests/general_functions/gh12655.phpt php8.2-8.2.18/ext/standard/tests/general_functions/gh12655.phpt --- php8.2-8.2.7/ext/standard/tests/general_functions/gh12655.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/general_functions/gh12655.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,22 @@ +--TEST-- +GH-12655 (proc_open(): Argument #2 ($descriptor_spec) must only contain arrays and streams [Descriptor item must be either an array or a File-Handle]) +--FILE-- + [ "pipe", "r" ], // stdin is a pipe that the child will read from + 1 => [ "pipe", "w" ], // stdout is a pipe that the child will write to + 2 => [ "pipe", "w" ], // stderr is a file to write to +]; + +foreach ( $descriptor_spec as $fd => &$d ) +{ + // don't do anything, just the fact that we used "&$d" will sink the ship! +} + +$proc = proc_open(PHP_BINARY, $descriptor_spec, $pipes); +echo $proc === false ? "FAILED\n" : "SUCCEEDED\n"; + +?> +--EXPECT-- +SUCCEEDED diff -Nru php8.2-8.2.7/ext/standard/tests/general_functions/gh9589.phpt php8.2-8.2.18/ext/standard/tests/general_functions/gh9589.phpt --- php8.2-8.2.7/ext/standard/tests/general_functions/gh9589.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/general_functions/gh9589.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -2,6 +2,10 @@ dl() segfaults when module is already loaded --EXTENSIONS-- dl_test +--SKIPIF-- + --FILE-- +--FILE-- + +--EXPECT-- +"¬epad.exe +--CLEAN-- + diff -Nru php8.2-8.2.7/ext/standard/tests/general_functions/ghsa-pc52-254m-w9w7_2.phpt php8.2-8.2.18/ext/standard/tests/general_functions/ghsa-pc52-254m-w9w7_2.phpt --- php8.2-8.2.7/ext/standard/tests/general_functions/ghsa-pc52-254m-w9w7_2.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/general_functions/ghsa-pc52-254m-w9w7_2.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,29 @@ +--TEST-- +GHSA-54hq-v5wp-fqgv - proc_open does not correctly escape args for cmd files +--SKIPIF-- + +--FILE-- +^()!.exe"], $descriptorspec, $pipes); +proc_close($proc); + +?> +--EXPECT-- +"¬epad<>^()!.exe +--CLEAN-- + diff -Nru php8.2-8.2.7/ext/standard/tests/general_functions/ghsa-pc52-254m-w9w7_3.phpt php8.2-8.2.18/ext/standard/tests/general_functions/ghsa-pc52-254m-w9w7_3.phpt --- php8.2-8.2.7/ext/standard/tests/general_functions/ghsa-pc52-254m-w9w7_3.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/general_functions/ghsa-pc52-254m-w9w7_3.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,29 @@ +--TEST-- +GHSA-54hq-v5wp-fqgv - proc_open does not correctly escape args for cmd executing batch files +--SKIPIF-- + +--FILE-- + +--EXPECT-- +"¬epad.exe +--CLEAN-- + diff -Nru php8.2-8.2.7/ext/standard/tests/general_functions/proc_nice_basic.phpt php8.2-8.2.18/ext/standard/tests/general_functions/proc_nice_basic.phpt --- php8.2-8.2.7/ext/standard/tests/general_functions/proc_nice_basic.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/general_functions/proc_nice_basic.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -19,7 +19,7 @@ function getNice($id) { $res = shell_exec('ps -p ' . $id .' -o "pid,nice"'); - preg_match('/^\s*\w+\s+\w+\s*(\d+)\s+(\d+)/m', $res, $matches); + preg_match('/^\s*\w+\s+\w+\s*(\d+)\s+(-?\d+)/m', $res, $matches); if (count($matches) > 2) return $matches[2]; else @@ -30,7 +30,9 @@ $niceBefore = getNice($pid); proc_nice($delta); $niceAfter = getNice($pid); - var_dump($niceBefore == ($niceAfter - $delta)); + // The maximum niceness level is 19, if the process is already running at a high niceness, it cannot be increased. + // Decreasing is only possible for superusers. + var_dump(min($niceBefore + $delta, 19) == $niceAfter); ?> --EXPECT-- bool(true) diff -Nru php8.2-8.2.7/ext/standard/tests/general_functions/register_shutdown_functions_without_previous_call_frame_01.phpt php8.2-8.2.18/ext/standard/tests/general_functions/register_shutdown_functions_without_previous_call_frame_01.phpt --- php8.2-8.2.7/ext/standard/tests/general_functions/register_shutdown_functions_without_previous_call_frame_01.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/general_functions/register_shutdown_functions_without_previous_call_frame_01.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,15 @@ +--TEST-- +register_shutdown_function() without a previous call frame 01 +--FILE-- + +Done +--EXPECT-- +Done + +Fatal error: Uncaught Error: Cannot call forward_static_call() when no class scope is active in [no active file]:0 +Stack trace: +#0 [internal function]: forward_static_call('hash_hkdf') +#1 {main} + thrown in [no active file] on line 0 diff -Nru php8.2-8.2.7/ext/standard/tests/general_functions/register_shutdown_functions_without_previous_call_frame_02.phpt php8.2-8.2.18/ext/standard/tests/general_functions/register_shutdown_functions_without_previous_call_frame_02.phpt --- php8.2-8.2.7/ext/standard/tests/general_functions/register_shutdown_functions_without_previous_call_frame_02.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/general_functions/register_shutdown_functions_without_previous_call_frame_02.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,15 @@ +--TEST-- +register_shutdown_function() without a previous call frame 02 +--FILE-- + +Done +--EXPECT-- +Done + +Fatal error: Uncaught Error: Cannot call func_get_args() dynamically in [no active file]:0 +Stack trace: +#0 [internal function]: func_get_args() +#1 {main} + thrown in [no active file] on line 0 diff -Nru php8.2-8.2.7/ext/standard/tests/general_functions/register_shutdown_functions_without_previous_call_frame_03.phpt php8.2-8.2.18/ext/standard/tests/general_functions/register_shutdown_functions_without_previous_call_frame_03.phpt --- php8.2-8.2.7/ext/standard/tests/general_functions/register_shutdown_functions_without_previous_call_frame_03.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/general_functions/register_shutdown_functions_without_previous_call_frame_03.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,15 @@ +--TEST-- +register_shutdown_function() without a previous call frame 03 +--FILE-- + +Done +--EXPECT-- +Done + +Fatal error: Uncaught Error: Cannot call func_num_args() dynamically in [no active file]:0 +Stack trace: +#0 [internal function]: func_num_args() +#1 {main} + thrown in [no active file] on line 0 diff -Nru php8.2-8.2.7/ext/standard/tests/general_functions/register_shutdown_functions_without_previous_call_frame_04.phpt php8.2-8.2.18/ext/standard/tests/general_functions/register_shutdown_functions_without_previous_call_frame_04.phpt --- php8.2-8.2.7/ext/standard/tests/general_functions/register_shutdown_functions_without_previous_call_frame_04.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/general_functions/register_shutdown_functions_without_previous_call_frame_04.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,15 @@ +--TEST-- +register_shutdown_function() without a previous call frame 04 +--FILE-- + +Done +--EXPECT-- +Done + +Fatal error: Uncaught ArgumentCountError: func_get_arg() expects exactly 1 argument, 0 given in [no active file]:0 +Stack trace: +#0 [internal function]: func_get_arg() +#1 {main} + thrown in [no active file] on line 0 diff -Nru php8.2-8.2.7/ext/standard/tests/ghsa-wpj3-hf5j-x4v4.phpt php8.2-8.2.18/ext/standard/tests/ghsa-wpj3-hf5j-x4v4.phpt --- php8.2-8.2.7/ext/standard/tests/ghsa-wpj3-hf5j-x4v4.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/ghsa-wpj3-hf5j-x4v4.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,63 @@ +--TEST-- +ghsa-wpj3-hf5j-x4v4 (__Host-/__Secure- cookie bypass due to partial CVE-2022-31629 fix) +--COOKIE-- +..Host-test=ignore_1; +._Host-test=ignore_2; +.[Host-test=ignore_3; +_.Host-test=ignore_4; +__Host-test=ignore_5; +_[Host-test=ignore_6; +[.Host-test=ignore_7; +[_Host-test=ignore_8; +[[Host-test=ignore_9; +..Host-test[]=ignore_10; +._Host-test[]=ignore_11; +.[Host-test[]=ignore_12; +_.Host-test[]=ignore_13; +__Host-test[]=legitimate_14; +_[Host-test[]=legitimate_15; +[.Host-test[]=ignore_16; +[_Host-test[]=ignore_17; +[[Host-test[]=ignore_18; +..Secure-test=ignore_1; +._Secure-test=ignore_2; +.[Secure-test=ignore_3; +_.Secure-test=ignore_4; +__Secure-test=ignore_5; +_[Secure-test=ignore_6; +[.Secure-test=ignore_7; +[_Secure-test=ignore_8; +[[Secure-test=ignore_9; +..Secure-test[]=ignore_10; +._Secure-test[]=ignore_11; +.[Secure-test[]=ignore_12; +_.Secure-test[]=ignore_13; +__Secure-test[]=legitimate_14; +_[Secure-test[]=legitimate_15; +[.Secure-test[]=ignore_16; +[_Secure-test[]=ignore_17; +[[Secure-test[]=ignore_18; +--FILE-- + +--EXPECT-- +array(3) { + ["__Host-test"]=> + array(1) { + [0]=> + string(13) "legitimate_14" + } + ["_"]=> + array(2) { + ["Host-test["]=> + string(13) "legitimate_15" + ["Secure-test["]=> + string(13) "legitimate_15" + } + ["__Secure-test"]=> + array(1) { + [0]=> + string(13) "legitimate_14" + } +} diff -Nru php8.2-8.2.7/ext/standard/tests/hrtime/hrtime.phpt php8.2-8.2.18/ext/standard/tests/hrtime/hrtime.phpt --- php8.2-8.2.7/ext/standard/tests/hrtime/hrtime.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/hrtime/hrtime.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -1,6 +1,6 @@ --TEST-- Test hrtime() aligns with microtime() ---XFAIL-- +--FLAKY-- This test frequently fails in CI --FILE-- handle = fopen(str_replace('fs://', __DIR__ . '/', $file), $mode); + return true; + } + function stream_read($count) { + return fread($this->handle, $count); + } + function stream_eof() { + return feof($this->handle); + } + function stream_seek($offset, $whence) { + return fseek($this->handle, $offset, $whence) === 0; + } + function stream_stat() { + return fstat($this->handle); + } + function url_stat($file) { + return stat(str_replace('fs://', '', $file)); + } + function stream_tell() { + return ftell($this->handle); + } + function stream_close() { + fclose($this->handle); + } +} + +stream_register_wrapper('fs', 'FSStreamWrapper'); + +var_dump(getimagesize('fs://bug75708.jpg', $info)); + +?> +--EXPECT-- +array(7) { + [0]=> + int(10) + [1]=> + int(10) + [2]=> + int(2) + [3]=> + string(22) "width="10" height="10"" + ["bits"]=> + int(8) + ["channels"]=> + int(3) + ["mime"]=> + string(10) "image/jpeg" +} + diff -Nru php8.2-8.2.7/ext/standard/tests/mail/gh13415.phpt php8.2-8.2.18/ext/standard/tests/mail/gh13415.phpt --- php8.2-8.2.7/ext/standard/tests/mail/gh13415.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/mail/gh13415.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,52 @@ +--TEST-- +GH-13415 (Added validation of line breaks \n in $additional_headers of mail()) +--INI-- +sendmail_path={MAIL:gh13415.out} +--FILE-- + "foo@example.com \nCc: hacker@example.com"]); +} catch (Throwable $e) { + echo $e->getMessage()."\n\n"; +} + +echo "CR only:\n"; +try { + mail('to@example.com', 'Test Subject', 'A Message', ['Reply-To' => "foo@example.com \rCc: hacker@example.com"]); +} catch (Throwable $e) { + echo $e->getMessage()."\n\n"; +} + +echo "CRLF:\n"; +try { + mail('to@example.com', 'Test Subject', 'A Message', ['Reply-To' => "foo@example.com \r\nCc: hacker@example.com"]); +} catch (Throwable $e) { + echo $e->getMessage()."\n\n"; +} + +echo "NULL:\n"; +try { + mail('to@example.com', 'Test Subject', 'A Message', ['Reply-To' => "foo@example.com \0Cc: hacker@example.com"]); +} catch (Throwable $e) { + echo $e->getMessage()."\n\n"; +} +?> +--CLEAN-- + +--EXPECTF-- +LF only: +Header "Reply-To" contains LF character that is not allowed in the header + +CR only: +Header "Reply-To" contains CR character that is not allowed in the header + +CRLF: +Header "Reply-To" contains CRLF characters that are used as a line separator and are not allowed in the header + +NULL: +Header "Reply-To" contains NULL character that is not allowed in the header diff -Nru php8.2-8.2.7/ext/standard/tests/mail/mail_basic7.phpt php8.2-8.2.18/ext/standard/tests/mail/mail_basic7.phpt --- php8.2-8.2.7/ext/standard/tests/mail/mail_basic7.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/mail/mail_basic7.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -258,4 +258,4 @@ foo9: %&$#! A Message -ValueError: Header "foo10" has invalid format, or contains invalid characters +ValueError: Header "foo10" contains NULL character that is not allowed in the header diff -Nru php8.2-8.2.7/ext/standard/tests/network/gh12190.phpt php8.2-8.2.18/ext/standard/tests/network/gh12190.phpt --- php8.2-8.2.7/ext/standard/tests/network/gh12190.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/network/gh12190.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,14 @@ +--TEST-- +Bug #12190 (Setting 0 with port 0 too) +--SKIPIF-- + +--FILE-- + ['bindto' => '0:0']]); +var_dump(file_get_contents('https://httpbin.org/get', false, $context) !== false); +?> +--EXPECT-- +bool(true) diff -Nru php8.2-8.2.7/ext/standard/tests/password/password_bcrypt_errors.phpt php8.2-8.2.18/ext/standard/tests/password/password_bcrypt_errors.phpt --- php8.2-8.2.7/ext/standard/tests/password/password_bcrypt_errors.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/password/password_bcrypt_errors.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -14,7 +14,14 @@ } catch (ValueError $exception) { echo $exception->getMessage() . "\n"; } + +try { + var_dump(password_hash("null\0password", PASSWORD_BCRYPT)); +} catch (ValueError $e) { + echo $e->getMessage(), "\n"; +} ?> --EXPECT-- Invalid bcrypt cost parameter specified: 3 Invalid bcrypt cost parameter specified: 32 +Bcrypt password must not contain null character diff -Nru php8.2-8.2.7/ext/standard/tests/serialize/serialization_objects_019.phpt php8.2-8.2.18/ext/standard/tests/serialize/serialization_objects_019.phpt --- php8.2-8.2.7/ext/standard/tests/serialize/serialization_objects_019.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/serialize/serialization_objects_019.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,42 @@ +--TEST-- +Serialization of RC1 objects appearing in object graph twice +--FILE-- +a = [$end]; + $root->b = $root->a; + unset($end); + echo serialize($root), "\n"; +} + +function rcn_rc1() { + $root = new stdClass; + $end = new stdClass; + $root->a = [[$end]]; + $root->b = $root->a; + unset($end); + echo serialize($root), "\n"; +} + +function rcn_properties_ht() { + $object = new stdClass; + $object->object = new stdClass; + $array = (array) $object; + $root = [$object, $array]; + unset($object); + unset($array); + echo serialize($root), "\n"; +} + +rcn(); +rcn_rc1(); +rcn_properties_ht(); + +?> +--EXPECT-- +O:8:"stdClass":2:{s:1:"a";a:1:{i:0;O:8:"stdClass":0:{}}s:1:"b";a:1:{i:0;r:3;}} +O:8:"stdClass":2:{s:1:"a";a:1:{i:0;a:1:{i:0;O:8:"stdClass":0:{}}}s:1:"b";a:1:{i:0;a:1:{i:0;r:4;}}} +a:2:{i:0;O:8:"stdClass":1:{s:6:"object";O:8:"stdClass":0:{}}i:1;a:1:{s:6:"object";r:3;}} diff -Nru php8.2-8.2.7/ext/standard/tests/streams/set_file_buffer.phpt php8.2-8.2.18/ext/standard/tests/streams/set_file_buffer.phpt --- php8.2-8.2.7/ext/standard/tests/streams/set_file_buffer.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/streams/set_file_buffer.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -39,4 +39,5 @@ int(%i) int(%d) size: %d +size: 28 int(%d) diff -Nru php8.2-8.2.7/ext/standard/tests/streams/stream_set_chunk_size.phpt php8.2-8.2.18/ext/standard/tests/streams/stream_set_chunk_size.phpt --- php8.2-8.2.7/ext/standard/tests/streams/stream_set_chunk_size.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/streams/stream_set_chunk_size.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -35,7 +35,7 @@ var_dump(stream_set_chunk_size($f, 1)); echo "should be read without buffer (\$count == 10000)\n"; var_dump(strlen(fread($f, 10000))); -echo "should have no effect on writes\n"; +echo "should elicit 3 writes\n"; var_dump(fwrite($f, str_repeat('b', 3))); echo "should return previous chunk size (1)\n"; @@ -46,7 +46,7 @@ var_dump(strlen(fread($f, 50))); echo "should elicit no read because there is sufficient cached data\n"; var_dump(strlen(fread($f, 50))); -echo "should have no effect on writes\n"; +echo "should elicit 3 writes\n"; var_dump(strlen(fwrite($f, str_repeat('b', 250)))); echo "\nerror conditions\n"; @@ -68,8 +68,10 @@ should be read without buffer ($count == 10000) read with size: 10000 int(10000) -should have no effect on writes -write with size: 3 +should elicit 3 writes +write with size: 1 +write with size: 1 +write with size: 1 int(3) should return previous chunk size (1) int(1) @@ -81,8 +83,10 @@ int(50) should elicit no read because there is sufficient cached data int(50) -should have no effect on writes -write with size: 250 +should elicit 3 writes +write with size: 100 +write with size: 100 +write with size: 50 int(3) error conditions diff -Nru php8.2-8.2.7/ext/standard/tests/strings/implode1.phpt php8.2-8.2.18/ext/standard/tests/strings/implode1.phpt --- php8.2-8.2.7/ext/standard/tests/strings/implode1.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/strings/implode1.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -236,7 +236,7 @@ string(43) "2\00\0-639\01\0PHP\0\0\0 \0string%0with%0...%0" *** Testing implode() on empty string *** -implode(): Argument #1 ($pieces) must be of type array, string given +implode(): Argument #1 ($array) must be of type array, string given *** Testing implode() on sub-arrays *** @@ -266,9 +266,9 @@ string(%d) "Resource id #%d::Resource id #%d" *** Testing error conditions *** -implode(): Argument #1 ($pieces) must be of type array, string given +implode(): Argument #1 ($array) must be of type array, string given implode(): Argument #2 ($array) must be of type ?array, int given -implode(): Argument #1 ($pieces) must be of type array, string given +implode(): Argument #1 ($array) must be of type array, string given string(0) "" implode(): Argument #2 ($array) must be of type ?array, string given diff -Nru php8.2-8.2.7/ext/standard/tests/strings/join_error.phpt php8.2-8.2.18/ext/standard/tests/strings/join_error.phpt --- php8.2-8.2.7/ext/standard/tests/strings/join_error.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/strings/join_error.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -20,5 +20,5 @@ *** Testing join() : error conditions *** -- Testing join() with less than expected no. of arguments -- -join(): Argument #1 ($pieces) must be of type array, string given +join(): Argument #1 ($array) must be of type array, string given Done diff -Nru php8.2-8.2.7/ext/standard/tests/strings/join_variation2.phpt php8.2-8.2.18/ext/standard/tests/strings/join_variation2.phpt --- php8.2-8.2.7/ext/standard/tests/strings/join_variation2.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/tests/strings/join_variation2.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -138,13 +138,13 @@ -- Iteration 18 -- join(): Argument #2 ($array) must be of type ?array, string given -- Iteration 19 -- -join(): Argument #1 ($pieces) must be of type array, string given +join(): Argument #1 ($array) must be of type array, string given -- Iteration 20 -- -join(): Argument #1 ($pieces) must be of type array, string given +join(): Argument #1 ($array) must be of type array, string given -- Iteration 21 -- join(): Argument #2 ($array) must be of type ?array, resource given -- Iteration 22 -- -join(): Argument #1 ($pieces) must be of type array, string given +join(): Argument #1 ($array) must be of type array, string given -- Iteration 23 -- -join(): Argument #1 ($pieces) must be of type array, string given +join(): Argument #1 ($array) must be of type array, string given Done diff -Nru php8.2-8.2.7/ext/standard/var.c php8.2-8.2.18/ext/standard/var.c --- php8.2-8.2.7/ext/standard/var.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/standard/var.c 2024-04-09 18:46:23.000000000 +0000 @@ -655,9 +655,12 @@ } /* }}} */ -static void php_var_serialize_intern(smart_str *buf, zval *struc, php_serialize_data_t var_hash); +static void php_var_serialize_intern(smart_str *buf, zval *struc, php_serialize_data_t var_hash, bool in_rcn_array, bool is_root); -static inline zend_long php_add_var_hash(php_serialize_data_t data, zval *var) /* {{{ */ +/** + * @param bool in_rcn_array Whether the element appears in a potentially nested array with RC > 1. + */ +static inline zend_long php_add_var_hash(php_serialize_data_t data, zval *var, bool in_rcn_array) /* {{{ */ { zval *zv; zend_ulong key; @@ -669,7 +672,9 @@ /* pass */ } else if (Z_TYPE_P(var) != IS_OBJECT) { return 0; - } else if (Z_REFCOUNT_P(var) == 1 && (Z_OBJ_P(var)->properties == NULL || GC_REFCOUNT(Z_OBJ_P(var)->properties) == 1)) { + } else if (!in_rcn_array + && Z_REFCOUNT_P(var) == 1 + && (Z_OBJ_P(var)->properties == NULL || GC_REFCOUNT(Z_OBJ_P(var)->properties) == 1)) { return 0; } @@ -926,7 +931,7 @@ } /* }}} */ -static void php_var_serialize_nested_data(smart_str *buf, zval *struc, HashTable *ht, uint32_t count, bool incomplete_class, php_serialize_data_t var_hash) /* {{{ */ +static void php_var_serialize_nested_data(smart_str *buf, zval *struc, HashTable *ht, uint32_t count, bool incomplete_class, php_serialize_data_t var_hash, bool in_rcn_array) /* {{{ */ { smart_str_append_unsigned(buf, count); smart_str_appendl(buf, ":{", 2); @@ -956,19 +961,19 @@ if (Z_TYPE_P(data) == IS_ARRAY) { if (UNEXPECTED(Z_IS_RECURSIVE_P(data)) || UNEXPECTED(Z_TYPE_P(struc) == IS_ARRAY && Z_ARR_P(data) == Z_ARR_P(struc))) { - php_add_var_hash(var_hash, struc); + php_add_var_hash(var_hash, struc, in_rcn_array); smart_str_appendl(buf, "N;", 2); } else { if (Z_REFCOUNTED_P(data)) { Z_PROTECT_RECURSION_P(data); } - php_var_serialize_intern(buf, data, var_hash); + php_var_serialize_intern(buf, data, var_hash, in_rcn_array, false); if (Z_REFCOUNTED_P(data)) { Z_UNPROTECT_RECURSION_P(data); } } } else { - php_var_serialize_intern(buf, data, var_hash); + php_var_serialize_intern(buf, data, var_hash, in_rcn_array, false); } } ZEND_HASH_FOREACH_END(); } @@ -983,13 +988,13 @@ if (php_var_serialize_get_sleep_props(&props, struc, ht) == SUCCESS) { php_var_serialize_class_name(buf, struc); php_var_serialize_nested_data( - buf, struc, &props, zend_hash_num_elements(&props), /* incomplete_class */ 0, var_hash); + buf, struc, &props, zend_hash_num_elements(&props), /* incomplete_class */ 0, var_hash, GC_REFCOUNT(&props) > 1); } zend_hash_destroy(&props); } /* }}} */ -static void php_var_serialize_intern(smart_str *buf, zval *struc, php_serialize_data_t var_hash) /* {{{ */ +static void php_var_serialize_intern(smart_str *buf, zval *struc, php_serialize_data_t var_hash, bool in_rcn_array, bool is_root) /* {{{ */ { zend_long var_already; HashTable *myht; @@ -998,7 +1003,7 @@ return; } - if (var_hash && (var_already = php_add_var_hash(var_hash, struc))) { + if (var_hash && (var_already = php_add_var_hash(var_hash, struc, in_rcn_array))) { if (var_already == -1) { /* Reference to an object that failed to serialize, replace with null. */ smart_str_appendl(buf, "N;", 2); @@ -1107,7 +1112,7 @@ if (Z_ISREF_P(data) && Z_REFCOUNT_P(data) == 1) { data = Z_REFVAL_P(data); } - php_var_serialize_intern(buf, data, var_hash); + php_var_serialize_intern(buf, data, var_hash, Z_REFCOUNT(retval) > 1, false); } ZEND_HASH_FOREACH_END(); smart_str_appendc(buf, '}'); @@ -1229,7 +1234,7 @@ prop = Z_REFVAL_P(prop); } - php_var_serialize_intern(buf, prop, var_hash); + php_var_serialize_intern(buf, prop, var_hash, false, false); } smart_str_appendc(buf, '}'); } else { @@ -1244,7 +1249,7 @@ if (count > 0 && incomplete_class) { --count; } - php_var_serialize_nested_data(buf, struc, myht, count, incomplete_class, var_hash); + php_var_serialize_nested_data(buf, struc, myht, count, incomplete_class, var_hash, GC_REFCOUNT(myht) > 1); zend_release_properties(myht); return; } @@ -1252,7 +1257,8 @@ smart_str_appendl(buf, "a:", 2); myht = Z_ARRVAL_P(struc); php_var_serialize_nested_data( - buf, struc, myht, zend_array_count(myht), /* incomplete_class */ 0, var_hash); + buf, struc, myht, zend_array_count(myht), /* incomplete_class */ 0, var_hash, + !is_root && (in_rcn_array || GC_REFCOUNT(myht) > 1)); return; case IS_REFERENCE: struc = Z_REFVAL_P(struc); @@ -1266,7 +1272,7 @@ PHPAPI void php_var_serialize(smart_str *buf, zval *struc, php_serialize_data_t *data) /* {{{ */ { - php_var_serialize_intern(buf, struc, *data); + php_var_serialize_intern(buf, struc, *data, false, true); smart_str_0(buf); } /* }}} */ diff -Nru php8.2-8.2.7/ext/tidy/tests/gh12980.phpt php8.2-8.2.18/ext/tidy/tests/gh12980.phpt --- php8.2-8.2.7/ext/tidy/tests/gh12980.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/tidy/tests/gh12980.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -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 -Nru php8.2-8.2.7/ext/tidy/tests/parsing_file_too_large.phpt php8.2-8.2.18/ext/tidy/tests/parsing_file_too_large.phpt --- php8.2-8.2.7/ext/tidy/tests/parsing_file_too_large.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/tidy/tests/parsing_file_too_large.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -7,6 +7,7 @@ if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only"); if (getenv("SKIP_SLOW_TESTS")) die("skip slow test"); if (getenv("SKIP_ASAN")) die("skip too big for asan"); +if (getenv("GITHUB_ACTIONS")) die("skip potentially crashes on GitHub actions"); ?> --CONFLICTS-- all diff -Nru php8.2-8.2.7/ext/tidy/tidy.c php8.2-8.2.18/ext/tidy/tidy.c --- php8.2-8.2.7/ext/tidy/tidy.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/tidy/tidy.c 2024-04-09 18:46:23.000000000 +0000 @@ -662,8 +662,12 @@ 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 { diff -Nru php8.2-8.2.7/ext/xml/compat.c php8.2-8.2.18/ext/xml/compat.c --- php8.2-8.2.7/ext/xml/compat.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/xml/compat.c 2024-04-09 18:46:23.000000000 +0000 @@ -17,6 +17,7 @@ #include "php.h" #if defined(HAVE_LIBXML) && (defined(HAVE_XML) || defined(HAVE_XMLRPC)) && !defined(HAVE_LIBEXPAT) #include "expat_compat.h" +#include "ext/libxml/php_libxml.h" typedef struct _php_xml_ns { xmlNsPtr nsptr; @@ -469,6 +470,7 @@ return NULL; } + php_libxml_sanitize_parse_ctxt_options(parser->parser); xmlCtxtUseOptions(parser->parser, XML_PARSE_OLDSAX); parser->parser->replaceEntities = 1; diff -Nru php8.2-8.2.7/ext/xml/tests/bug26614.inc php8.2-8.2.18/ext/xml/tests/bug26614.inc --- php8.2-8.2.7/ext/xml/tests/bug26614.inc 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/xml/tests/bug26614.inc 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,73 @@ + + + +'; + +// Case 2: replace some characters so that we get comments instead +$xmls["Comment"] =' + + +'; + +// Case 3: replace even more characters so that only textual data is left +$xmls["Text"] =' + +-!-- ATA[ +multi +line +CDATA +block +--- +'; + +function startElement($parser, $name, $attrs) { + printf("<$name> at line %d, col %d (byte %d)\n", + xml_get_current_line_number($parser), + xml_get_current_column_number($parser), + xml_get_current_byte_index($parser)); +} + +function endElement($parser, $name) { + printf(" at line %d, col %d (byte %d)\n", + xml_get_current_line_number($parser), + xml_get_current_column_number($parser), + xml_get_current_byte_index($parser)); +} + +function characterData($parser, $data) { + // dummy +} + +foreach ($xmls as $desc => $xml) { + echo "$desc\n"; + $xml_parser = xml_parser_create(); + xml_set_element_handler($xml_parser, "startElement", "endElement"); + xml_set_character_data_handler($xml_parser, "characterData"); + if (!xml_parse($xml_parser, $xml, true)) + echo "Error: ".xml_error_string(xml_get_error_code($xml_parser))."\n"; + xml_parser_free($xml_parser); +} diff -Nru php8.2-8.2.7/ext/xml/tests/bug26614.phpt php8.2-8.2.18/ext/xml/tests/bug26614.phpt --- php8.2-8.2.7/ext/xml/tests/bug26614.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/xml/tests/bug26614.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -4,91 +4,20 @@ xml --SKIPIF-- --FILE-- - - -'; - -// Case 2: replace some characters so that we get comments instead -$xmls["Comment"] =' - - -'; - -// Case 3: replace even more characters so that only textual data is left -$xmls["Text"] =' - --!-- ATA[ -multi -line -CDATA -block ---- -'; - -function startElement($parser, $name, $attrs) { - printf("<$name> at line %d, col %d (byte %d)\n", - xml_get_current_line_number($parser), - xml_get_current_column_number($parser), - xml_get_current_byte_index($parser)); -} - -function endElement($parser, $name) { - printf(" at line %d, col %d (byte %d)\n", - xml_get_current_line_number($parser), - xml_get_current_column_number($parser), - xml_get_current_byte_index($parser)); -} - -function characterData($parser, $data) { - // dummy -} - -foreach ($xmls as $desc => $xml) { - echo "$desc\n"; - $xml_parser = xml_parser_create(); - xml_set_element_handler($xml_parser, "startElement", "endElement"); - xml_set_character_data_handler($xml_parser, "characterData"); - if (!xml_parse($xml_parser, $xml, true)) - echo "Error: ".xml_error_string(xml_get_error_code($xml_parser))."\n"; - xml_parser_free($xml_parser); -} +require __DIR__ . '/bug26614.inc'; ?> --EXPECT-- CDATA at line 2, col 0 (byte 45) - at line 9, col 0 (byte 90) + at line 9, col 0 (byte 89) Comment at line 2, col 0 (byte 45) - at line 9, col 0 (byte 90) + at line 9, col 0 (byte 89) Text at line 2, col 0 (byte 45) - at line 9, col 0 (byte 90) + at line 9, col 0 (byte 89) diff -Nru php8.2-8.2.7/ext/xml/tests/bug26614_libxml_gte2_11.phpt php8.2-8.2.18/ext/xml/tests/bug26614_libxml_gte2_11.phpt --- php8.2-8.2.7/ext/xml/tests/bug26614_libxml_gte2_11.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/xml/tests/bug26614_libxml_gte2_11.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -4,84 +4,13 @@ xml --SKIPIF-- = 2.11'); ?> --FILE-- - - -'; - -// Case 2: replace some characters so that we get comments instead -$xmls["Comment"] =' - - -'; - -// Case 3: replace even more characters so that only textual data is left -$xmls["Text"] =' - --!-- ATA[ -multi -line -CDATA -block ---- -'; - -function startElement($parser, $name, $attrs) { - printf("<$name> at line %d, col %d (byte %d)\n", - xml_get_current_line_number($parser), - xml_get_current_column_number($parser), - xml_get_current_byte_index($parser)); -} - -function endElement($parser, $name) { - printf(" at line %d, col %d (byte %d)\n", - xml_get_current_line_number($parser), - xml_get_current_column_number($parser), - xml_get_current_byte_index($parser)); -} - -function characterData($parser, $data) { - // dummy -} - -foreach ($xmls as $desc => $xml) { - echo "$desc\n"; - $xml_parser = xml_parser_create(); - xml_set_element_handler($xml_parser, "startElement", "endElement"); - xml_set_character_data_handler($xml_parser, "characterData"); - if (!xml_parse($xml_parser, $xml, true)) - echo "Error: ".xml_error_string(xml_get_error_code($xml_parser))."\n"; - xml_parser_free($xml_parser); -} +require __DIR__ . '/bug26614.inc'; ?> --EXPECTF-- CDATA diff -Nru php8.2-8.2.7/ext/xml/tests/bug26614_libxml_pre2_11.phpt php8.2-8.2.18/ext/xml/tests/bug26614_libxml_pre2_11.phpt --- php8.2-8.2.7/ext/xml/tests/bug26614_libxml_pre2_11.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/xml/tests/bug26614_libxml_pre2_11.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -4,84 +4,13 @@ xml --SKIPIF-- = 21100) die('skip libxml2 test variant for version < 2.11'); ?> --FILE-- - - -'; - -// Case 2: replace some characters so that we get comments instead -$xmls["Comment"] =' - - -'; - -// Case 3: replace even more characters so that only textual data is left -$xmls["Text"] =' - --!-- ATA[ -multi -line -CDATA -block ---- -'; - -function startElement($parser, $name, $attrs) { - printf("<$name> at line %d, col %d (byte %d)\n", - xml_get_current_line_number($parser), - xml_get_current_column_number($parser), - xml_get_current_byte_index($parser)); -} - -function endElement($parser, $name) { - printf(" at line %d, col %d (byte %d)\n", - xml_get_current_line_number($parser), - xml_get_current_column_number($parser), - xml_get_current_byte_index($parser)); -} - -function characterData($parser, $data) { - // dummy -} - -foreach ($xmls as $desc => $xml) { - echo "$desc\n"; - $xml_parser = xml_parser_create(); - xml_set_element_handler($xml_parser, "startElement", "endElement"); - xml_set_character_data_handler($xml_parser, "characterData"); - if (!xml_parse($xml_parser, $xml, true)) - echo "Error: ".xml_error_string(xml_get_error_code($xml_parser))."\n"; - xml_parser_free($xml_parser); -} +require __DIR__ . '/bug26614.inc'; ?> --EXPECTF-- CDATA diff -Nru php8.2-8.2.7/ext/xml/tests/bug46699.phpt php8.2-8.2.18/ext/xml/tests/bug46699.phpt --- php8.2-8.2.7/ext/xml/tests/bug46699.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/xml/tests/bug46699.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -27,8 +27,8 @@ xml_parse($parser, $xml); xml_parser_free($parser); ?> ---EXPECT-- - +--EXPECTF-- + 1 2 diff -Nru php8.2-8.2.7/ext/xml/tests/bug81351.phpt php8.2-8.2.18/ext/xml/tests/bug81351.phpt --- php8.2-8.2.7/ext/xml/tests/bug81351.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/xml/tests/bug81351.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -21,6 +21,6 @@ $error = xml_error_string($code); echo "xml_parse returned $success, xml_get_error_code = $code, xml_error_string = $error\r\n"; ?> ---EXPECT-- -xml_parse returned 1, xml_get_error_code = 0, xml_error_string = No error -xml_parse returned 0, xml_get_error_code = 5, xml_error_string = Invalid document end +--EXPECTF-- +xml_parse returned 1, xml_get_error_code = 0, xml_error_string = %S +%rxml_parse returned 0, xml_get_error_code = 5, xml_error_string = Invalid document end|xml_parse returned 0, xml_get_error_code = 3, xml_error_string = no element found|xml_parse returned 0, xml_get_error_code = 77, xml_error_string = Tag not finished%r diff -Nru php8.2-8.2.7/ext/xml/tests/gh12254.phpt php8.2-8.2.18/ext/xml/tests/gh12254.phpt --- php8.2-8.2.7/ext/xml/tests/gh12254.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/xml/tests/gh12254.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,31 @@ +--TEST-- +GH-12254: xml_parse_into_struct() memory leak when called twice +--EXTENSIONS-- +xml +--FILE-- +", $values, $tags)); +}, function ($parser, $name) { + echo "close\n"; + var_dump($name); +}); +xml_parse_into_struct($parser, "", $values, $tags); +// Yes, this doesn't do anything but it at least shouldn't leak... +xml_parse_into_struct($parser, "", $values, $tags); + +?> +--EXPECTF-- +open +string(9) "CONTAINER" +array(0) { +} + +Warning: xml_parse_into_struct(): Parser must not be called recursively in %s on line %d +bool(false) +close +string(9) "CONTAINER" diff -Nru php8.2-8.2.7/ext/xml/tests/libxml_expat_skipif.inc php8.2-8.2.18/ext/xml/tests/libxml_expat_skipif.inc --- php8.2-8.2.7/ext/xml/tests/libxml_expat_skipif.inc 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/xml/tests/libxml_expat_skipif.inc 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,9 @@ +', + '', + '', + '', + '', +); + +foreach ($xmls as $xml) { + $xml_parser = xml_parser_create(); + if (!xml_parse($xml_parser, $xml, true)) { + var_dump(xml_get_error_code($xml_parser)); + var_dump(xml_error_string(xml_get_error_code($xml_parser))); + } + xml_parser_free($xml_parser); +} \ No newline at end of file diff -Nru php8.2-8.2.7/ext/xml/tests/xml_error_string_basic.phpt php8.2-8.2.18/ext/xml/tests/xml_error_string_basic.phpt --- php8.2-8.2.7/ext/xml/tests/xml_error_string_basic.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/xml/tests/xml_error_string_basic.phpt 1970-01-01 00:00:00.000000000 +0000 @@ -1,34 +0,0 @@ ---TEST-- -xml_error_string() - Basic test on 5 error codes ---EXTENSIONS-- -xml ---FILE-- -', - '', - '', - '', - '', -); - -foreach ($xmls as $xml) { - $xml_parser = xml_parser_create(); - if (!xml_parse($xml_parser, $xml, true)) { - var_dump(xml_get_error_code($xml_parser)); - var_dump(xml_error_string(xml_get_error_code($xml_parser))); - } - xml_parser_free($xml_parser); -} -?> ---EXPECT-- -int(5) -string(20) "Invalid document end" -int(47) -string(35) "Processing Instruction not finished" -int(57) -string(28) "XML declaration not finished" -int(64) -string(17) "Reserved XML Name" -int(76) -string(14) "Mismatched tag" diff -Nru php8.2-8.2.7/ext/xml/tests/xml_error_string_basic_expat.phpt php8.2-8.2.18/ext/xml/tests/xml_error_string_basic_expat.phpt --- php8.2-8.2.7/ext/xml/tests/xml_error_string_basic_expat.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/xml/tests/xml_error_string_basic_expat.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,24 @@ +--TEST-- +xml_error_string() - Basic test on 5 error codes +--EXTENSIONS-- +xml +--SKIPIF-- + +--FILE-- + +--EXPECT-- +int(3) +string(16) "no element found" +int(4) +string(31) "not well-formed (invalid token)" +int(5) +string(14) "unclosed token" +int(30) +string(31) "XML declaration not well-formed" +int(7) +string(14) "mismatched tag" diff -Nru php8.2-8.2.7/ext/xml/tests/xml_error_string_basic_libxml.phpt php8.2-8.2.18/ext/xml/tests/xml_error_string_basic_libxml.phpt --- php8.2-8.2.7/ext/xml/tests/xml_error_string_basic_libxml.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/xml/tests/xml_error_string_basic_libxml.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,24 @@ +--TEST-- +xml_error_string() - Basic test on 5 error codes +--EXTENSIONS-- +xml +--SKIPIF-- + +--FILE-- + +--EXPECTF-- +int(%r5|77%r) +string(%d) %r"Invalid document end"|"Tag not finished"%r +int(47) +string(35) "Processing Instruction not finished" +int(57) +string(28) "XML declaration not finished" +int(64) +string(17) "Reserved XML Name" +int(76) +string(14) "Mismatched tag" diff -Nru php8.2-8.2.7/ext/xml/tests/xml_set_start_namespace_decl_handler_basic.inc php8.2-8.2.18/ext/xml/tests/xml_set_start_namespace_decl_handler_basic.inc --- php8.2-8.2.7/ext/xml/tests/xml_set_start_namespace_decl_handler_basic.inc 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/xml/tests/xml_set_start_namespace_decl_handler_basic.inc 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,34 @@ + +Any old text. +An HTML table cell. + +HERE; + +$parser = xml_parser_create_ns(); +xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0); + +var_dump(xml_set_start_namespace_decl_handler( $parser, "Namespace_Start_Handler" )); +var_dump(xml_set_end_namespace_decl_handler( $parser, "Namespace_End_Handler" )); + +xml_parse( $parser, $xml, true); +xml_parser_free( $parser ); + +echo "Done\n"; + +function Namespace_Start_Handler( $parser, $prefix, $uri ) { + echo "Namespace_Start_Handler called\n"; + echo "...Prefix: ". $prefix . "\n"; + echo "...Uri: ". $uri . "\n"; +} + +function Namespace_End_Handler($parser, $prefix) { + echo "Namespace_End_Handler called\n"; + echo "...Prefix: ". $prefix . "\n\n"; +} + +function DefaultHandler( $parser, $data ) { + print( 'DefaultHandler Called
' ); +} \ No newline at end of file diff -Nru php8.2-8.2.7/ext/xml/tests/xml_set_start_namespace_decl_handler_basic.phpt php8.2-8.2.18/ext/xml/tests/xml_set_start_namespace_decl_handler_basic.phpt --- php8.2-8.2.7/ext/xml/tests/xml_set_start_namespace_decl_handler_basic.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/xml/tests/xml_set_start_namespace_decl_handler_basic.phpt 1970-01-01 00:00:00.000000000 +0000 @@ -1,50 +0,0 @@ ---TEST-- -Test xml_set_start_namespace_decl_handler function: basic ---EXTENSIONS-- -xml ---FILE-- - -Any old text. -An HTML table cell. - -HERE; - -$parser = xml_parser_create_ns(); -xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0); - -var_dump(xml_set_start_namespace_decl_handler( $parser, "Namespace_Start_Handler" )); -var_dump(xml_set_end_namespace_decl_handler( $parser, "Namespace_End_Handler" )); - -xml_parse( $parser, $xml, true); -xml_parser_free( $parser ); - -echo "Done\n"; - -function Namespace_Start_Handler( $parser, $prefix, $uri ) { - echo "Namespace_Start_Handler called\n"; - echo "...Prefix: ". $prefix . "\n"; - echo "...Uri: ". $uri . "\n"; -} - -function Namespace_End_Handler($parser, $prefix) { - echo "Namespace_End_Handler called\n"; - echo "...Prefix: ". $prefix . "\n\n"; -} - -function DefaultHandler( $parser, $data ) { - print( 'DefaultHandler Called
' ); -} -?> ---EXPECT-- -bool(true) -bool(true) -Namespace_Start_Handler called -...Prefix: aw1 -...Uri: http://www.somewhere.com/namespace1 -Namespace_Start_Handler called -...Prefix: aw2 -...Uri: file:/DTD/somewhere.dtd -Done diff -Nru php8.2-8.2.7/ext/xml/tests/xml_set_start_namespace_decl_handler_basic_expat.phpt php8.2-8.2.18/ext/xml/tests/xml_set_start_namespace_decl_handler_basic_expat.phpt --- php8.2-8.2.7/ext/xml/tests/xml_set_start_namespace_decl_handler_basic_expat.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/xml/tests/xml_set_start_namespace_decl_handler_basic_expat.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,29 @@ +--TEST-- +Test xml_set_start_namespace_decl_handler function: basic +--EXTENSIONS-- +xml +--SKIPIF-- + +--FILE-- + +--EXPECT-- +bool(true) +bool(true) +Namespace_Start_Handler called +...Prefix: aw1 +...Uri: http://www.somewhere.com/namespace1 +Namespace_Start_Handler called +...Prefix: aw2 +...Uri: file:/DTD/somewhere.dtd +Namespace_End_Handler called +...Prefix: aw2 + +Namespace_End_Handler called +...Prefix: aw1 + +Done diff -Nru php8.2-8.2.7/ext/xml/tests/xml_set_start_namespace_decl_handler_basic_libxml.phpt php8.2-8.2.18/ext/xml/tests/xml_set_start_namespace_decl_handler_basic_libxml.phpt --- php8.2-8.2.7/ext/xml/tests/xml_set_start_namespace_decl_handler_basic_libxml.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/xml/tests/xml_set_start_namespace_decl_handler_basic_libxml.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,24 @@ +--TEST-- +Test xml_set_start_namespace_decl_handler function: basic +--EXTENSIONS-- +xml +--SKIPIF-- + +--FILE-- + +--EXPECT-- +bool(true) +bool(true) +Namespace_Start_Handler called +...Prefix: aw1 +...Uri: http://www.somewhere.com/namespace1 +Namespace_Start_Handler called +...Prefix: aw2 +...Uri: file:/DTD/somewhere.dtd +Done diff -Nru php8.2-8.2.7/ext/xml/xml.c php8.2-8.2.18/ext/xml/xml.c --- php8.2-8.2.7/ext/xml/xml.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/xml/xml.c 2024-04-09 18:46:23.000000000 +0000 @@ -318,19 +318,24 @@ return &intern->std; } -static void xml_parser_free_obj(zend_object *object) +static void xml_parser_free_ltags(xml_parser *parser) { - xml_parser *parser = xml_parser_from_obj(object); - - if (parser->parser) { - XML_ParserFree(parser->parser); - } if (parser->ltags) { int inx; for (inx = 0; ((inx < parser->level) && (inx < XML_MAXLEVEL)); inx++) efree(parser->ltags[ inx ]); efree(parser->ltags); } +} + +static void xml_parser_free_obj(zend_object *object) +{ + xml_parser *parser = xml_parser_from_obj(object); + + if (parser->parser) { + XML_ParserFree(parser->parser); + } + xml_parser_free_ltags(parser); if (!Z_ISUNDEF(parser->startElementHandler)) { zval_ptr_dtor(&parser->startElementHandler); } @@ -1261,6 +1266,11 @@ parser = Z_XMLPARSER_P(pind); + if (parser->isparsing) { + php_error_docref(NULL, E_WARNING, "Parser must not be called recursively"); + RETURN_FALSE; + } + if (info) { info = zend_try_array_init(info); if (!info) { @@ -1280,15 +1290,12 @@ } parser->level = 0; + xml_parser_free_ltags(parser); parser->ltags = safe_emalloc(XML_MAXLEVEL, sizeof(char *), 0); XML_SetElementHandler(parser->parser, _xml_startElementHandler, _xml_endElementHandler); XML_SetCharacterDataHandler(parser->parser, _xml_characterDataHandler); - if (parser->isparsing) { - php_error_docref(NULL, E_WARNING, "Parser must not be called recursively"); - RETURN_FALSE; - } parser->isparsing = 1; ret = XML_Parse(parser->parser, (XML_Char*)data, data_len, 1); parser->isparsing = 0; diff -Nru php8.2-8.2.7/ext/xml/xml.stub.php php8.2-8.2.18/ext/xml/xml.stub.php --- php8.2-8.2.7/ext/xml/xml.stub.php 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/xml/xml.stub.php 2024-04-09 18:46:23.000000000 +0000 @@ -176,7 +176,7 @@ * @param array $values * @param array $index */ -function xml_parse_into_struct(XMLParser $parser, string $data, &$values, &$index = null): int {} +function xml_parse_into_struct(XMLParser $parser, string $data, &$values, &$index = null): int|false {} function xml_get_error_code(XMLParser $parser): int {} diff -Nru php8.2-8.2.7/ext/xml/xml_arginfo.h php8.2-8.2.18/ext/xml/xml_arginfo.h --- php8.2-8.2.7/ext/xml/xml_arginfo.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/xml/xml_arginfo.h 2024-04-09 18:46:23.000000000 +0000 @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: 97ce33bf2fbe970f7ca1c1845fbf5063dbd118dd */ + * Stub hash: be5c43665b81e1274d6cdf7d8b18011119f442de */ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_xml_parser_create, 0, 0, XMLParser, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, encoding, IS_STRING, 1, "null") @@ -46,7 +46,7 @@ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, is_final, _IS_BOOL, 0, "false") ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xml_parse_into_struct, 0, 3, IS_LONG, 0) +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_xml_parse_into_struct, 0, 3, MAY_BE_LONG|MAY_BE_FALSE) ZEND_ARG_OBJ_INFO(0, parser, XMLParser, 0) ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0) ZEND_ARG_INFO(1, values) diff -Nru php8.2-8.2.7/ext/xmlreader/php_xmlreader.c php8.2-8.2.18/ext/xmlreader/php_xmlreader.c --- php8.2-8.2.7/ext/xmlreader/php_xmlreader.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/xmlreader/php_xmlreader.c 2024-04-09 18:46:23.000000000 +0000 @@ -22,6 +22,7 @@ #include "php.h" #include "php_ini.h" #include "ext/standard/info.h" +#include "zend_observer.h" #include "php_xmlreader.h" #ifdef HAVE_DOM #include "ext/dom/xml_common.h" @@ -211,6 +212,9 @@ int isFileUri = 0; uri = xmlCreateURI(); + if (uri == NULL) { + return NULL; + } escsource = xmlURIEscapeStr((xmlChar *)source, (xmlChar *)":"); xmlParseURIReference(uri, (const char *)escsource); xmlFree(escsource); @@ -282,6 +286,7 @@ return NULL; } + PHP_LIBXML_SANITIZE_GLOBALS(parse); if (error_func || warn_func) { xmlRelaxNGSetParserErrors(parser, (xmlRelaxNGValidityErrorFunc) error_func, @@ -290,6 +295,7 @@ } sptr = xmlRelaxNGParse(parser); xmlRelaxNGFreeParserCtxt(parser); + PHP_LIBXML_RESTORE_GLOBALS(parse); return sptr; } @@ -865,7 +871,9 @@ valid_file = _xmlreader_get_valid_file_path(source, resolved_path, MAXPATHLEN ); if (valid_file) { + PHP_LIBXML_SANITIZE_GLOBALS(reader_for_file); reader = xmlReaderForFile(valid_file, encoding, options); + PHP_LIBXML_RESTORE_GLOBALS(reader_for_file); } if (reader == NULL) { @@ -937,8 +945,10 @@ id = ZEND_THIS; intern = Z_XMLREADER_P(id); - if (intern->ptr) { + if (intern && intern->ptr) { + PHP_LIBXML_SANITIZE_GLOBALS(schema); retval = xmlTextReaderSchemaValidate(intern->ptr, source); + PHP_LIBXML_RESTORE_GLOBALS(schema); if (retval == 0) { RETURN_TRUE; @@ -1059,6 +1069,7 @@ } uri = (char *) xmlCanonicPath((const xmlChar *) resolved_path); } + PHP_LIBXML_SANITIZE_GLOBALS(text_reader); reader = xmlNewTextReader(inputbfr, uri); if (reader != NULL) { @@ -1077,9 +1088,11 @@ xmlFree(uri); } + PHP_LIBXML_RESTORE_GLOBALS(text_reader); return; } } + PHP_LIBXML_RESTORE_GLOBALS(text_reader); } if (uri) { @@ -1148,6 +1161,18 @@ } /* }}} */ +static zend_result (*prev_zend_post_startup_cb)(void); +static zend_result xmlreader_fixup_temporaries(void) { + if (ZEND_OBSERVER_ENABLED) { + ++xmlreader_open_fn.T; + ++xmlreader_xml_fn.T; + } + if (prev_zend_post_startup_cb) { + return prev_zend_post_startup_cb(); + } + return SUCCESS; +} + /* {{{ PHP_MINIT_FUNCTION */ PHP_MINIT_FUNCTION(xmlreader) { @@ -1169,6 +1194,9 @@ memcpy(&xmlreader_xml_fn, zend_hash_str_find_ptr(&xmlreader_class_entry->function_table, "xml", sizeof("xml")-1), sizeof(zend_internal_function)); xmlreader_xml_fn.fn_flags &= ~ZEND_ACC_STATIC; + prev_zend_post_startup_cb = zend_post_startup_cb; + zend_post_startup_cb = xmlreader_fixup_temporaries; + zend_hash_init(&xmlreader_prop_handlers, 0, NULL, php_xmlreader_free_prop_handler, 1); xmlreader_register_prop_handler(&xmlreader_prop_handlers, "attributeCount", xmlTextReaderAttributeCount, NULL, IS_LONG); xmlreader_register_prop_handler(&xmlreader_prop_handlers, "baseURI", NULL, xmlTextReaderConstBaseUri, IS_STRING); diff -Nru php8.2-8.2.7/ext/xmlreader/tests/libxml_global_state_entity_loader_bypass.phpt php8.2-8.2.18/ext/xmlreader/tests/libxml_global_state_entity_loader_bypass.phpt --- php8.2-8.2.7/ext/xmlreader/tests/libxml_global_state_entity_loader_bypass.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/xmlreader/tests/libxml_global_state_entity_loader_bypass.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,37 @@ +--TEST-- +GHSA-3qrf-m4j2-pcrr (libxml global state entity loader bypass) +--EXTENSIONS-- +libxml +xmlreader +zend_test +--SKIPIF-- + +--FILE-- + %bork;]>"; + +libxml_use_internal_errors(true); +zend_test_override_libxml_global_state(); + +echo "--- String test ---\n"; +$reader = XMLReader::xml($xml); +$reader->read(); +echo "--- File test ---\n"; +file_put_contents("libxml_global_state_entity_loader_bypass.tmp", $xml); +$reader = XMLReader::open("libxml_global_state_entity_loader_bypass.tmp"); +$reader->read(); + +echo "Done\n"; + +?> +--CLEAN-- + +--EXPECT-- +--- String test --- +--- File test --- +Done diff -Nru php8.2-8.2.7/ext/xmlwriter/php_xmlwriter.c php8.2-8.2.18/ext/xmlwriter/php_xmlwriter.c --- php8.2-8.2.7/ext/xmlwriter/php_xmlwriter.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/xmlwriter/php_xmlwriter.c 2024-04-09 18:46:23.000000000 +0000 @@ -110,6 +110,9 @@ int isFileUri = 0; uri = xmlCreateURI(); + if (uri == NULL) { + return NULL; + } escsource = xmlURIEscapeStr((xmlChar *)source, (xmlChar *) ":"); xmlParseURIReference(uri, (char *)escsource); xmlFree(escsource); diff -Nru php8.2-8.2.7/ext/xsl/config.m4 php8.2-8.2.18/ext/xsl/config.m4 --- php8.2-8.2.7/ext/xsl/config.m4 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/xsl/config.m4 2024-04-09 18:46:23.000000000 +0000 @@ -29,4 +29,5 @@ PHP_NEW_EXTENSION(xsl, php_xsl.c xsltprocessor.c, $ext_shared) PHP_SUBST(XSL_SHARED_LIBADD) PHP_ADD_EXTENSION_DEP(xsl, libxml) + PHP_ADD_EXTENSION_DEP(xsl, dom) fi diff -Nru php8.2-8.2.7/ext/xsl/php_xsl.c php8.2-8.2.18/ext/xsl/php_xsl.c --- php8.2-8.2.7/ext/xsl/php_xsl.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/xsl/php_xsl.c 2024-04-09 18:46:23.000000000 +0000 @@ -29,6 +29,7 @@ static const zend_module_dep xsl_deps[] = { ZEND_MOD_REQUIRED("libxml") + ZEND_MOD_REQUIRED("dom") ZEND_MOD_END }; diff -Nru php8.2-8.2.7/ext/xsl/php_xsl.stub.php php8.2-8.2.18/ext/xsl/php_xsl.stub.php --- php8.2-8.2.7/ext/xsl/php_xsl.stub.php 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/xsl/php_xsl.stub.php 2024-04-09 18:46:23.000000000 +0000 @@ -81,7 +81,7 @@ * @param DOMDocument|SimpleXMLElement $document * @tentative-return-type */ - public function transformToDoc(object $document, ?string $returnClass = null): DOMDocument|false {} + public function transformToDoc(object $document, ?string $returnClass = null): object|false {} /** * @param DOMDocument|SimpleXMLElement $document diff -Nru php8.2-8.2.7/ext/xsl/php_xsl_arginfo.h php8.2-8.2.18/ext/xsl/php_xsl_arginfo.h --- php8.2-8.2.7/ext/xsl/php_xsl_arginfo.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/xsl/php_xsl_arginfo.h 2024-04-09 18:46:23.000000000 +0000 @@ -1,11 +1,11 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: a0615bef7b2211570d9da95a31857832a06360dd */ + * Stub hash: 2385a6857c261123f9b9b892a669dbb12d5976e6 */ ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_XSLTProcessor_importStylesheet, 0, 1, _IS_BOOL, 0) ZEND_ARG_TYPE_INFO(0, stylesheet, IS_OBJECT, 0) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_XSLTProcessor_transformToDoc, 0, 1, DOMDocument, MAY_BE_FALSE) +ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_MASK_EX(arginfo_class_XSLTProcessor_transformToDoc, 0, 1, MAY_BE_OBJECT|MAY_BE_FALSE) ZEND_ARG_TYPE_INFO(0, document, IS_OBJECT, 0) ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, returnClass, IS_STRING, 1, "null") ZEND_END_ARG_INFO() diff -Nru php8.2-8.2.7/ext/xsl/tests/php_function_edge_cases.phpt php8.2-8.2.18/ext/xsl/tests/php_function_edge_cases.phpt --- php8.2-8.2.7/ext/xsl/tests/php_function_edge_cases.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/xsl/tests/php_function_edge_cases.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,45 @@ +--TEST-- +php:function() edge cases +--EXTENSIONS-- +xsl +--FILE-- +loadXML(' + + + + + '); + + $inputdom = new DomDocument(); + $inputdom->loadXML(' + '); + + $proc = new XsltProcessor(); + $proc->registerPhpFunctions(); + $xsl = $proc->importStylesheet($xsl); + try { + $proc->transformToDoc($inputdom); + } catch (Exception $e) { + echo $e->getMessage(), "\n"; + } +} + +try { + test(""); +} catch (Throwable $e) { + echo $e->getMessage(), "\n"; +} + +test("3"); + +?> +--EXPECTF-- +Function name must be passed as the first argument + +Warning: XSLTProcessor::transformToDoc(): Handler name must be a string in %s on line %d diff -Nru php8.2-8.2.7/ext/xsl/tests/transformToDoc_sxe_type_error.phpt php8.2-8.2.18/ext/xsl/tests/transformToDoc_sxe_type_error.phpt --- php8.2-8.2.7/ext/xsl/tests/transformToDoc_sxe_type_error.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/xsl/tests/transformToDoc_sxe_type_error.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,53 @@ +--TEST-- +XSLTProcessor::transformToDoc return value type error with SimpleXML +--EXTENSIONS-- +xsl +simplexml +--FILE-- +load(__DIR__ . '/53965/collection.xsl'); +$processor->importStylesheet($dom); +$result = $processor->transformToDoc($sxe, AdvancedXMLElement::class); + +var_dump($result); +var_dump($result->h1->foo()); + +?> +--EXPECT-- +object(AdvancedXMLElement)#4 (3) { + ["h1"]=> + array(2) { + [0]=> + string(19) "Fight for your mind" + [1]=> + string(17) "Electric Ladyland" + } + ["h2"]=> + array(2) { + [0]=> + string(20) "by Ben Harper - 1995" + [1]=> + string(22) "by Jimi Hendrix - 1997" + } + ["hr"]=> + array(2) { + [0]=> + object(AdvancedXMLElement)#5 (0) { + } + [1]=> + object(AdvancedXMLElement)#6 (0) { + } + } +} +string(24) "foo: Fight for your mind" diff -Nru php8.2-8.2.7/ext/xsl/xsltprocessor.c php8.2-8.2.18/ext/xsl/xsltprocessor.c --- php8.2-8.2.7/ext/xsl/xsltprocessor.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/xsl/xsltprocessor.c 2024-04-09 18:46:23.000000000 +0000 @@ -141,12 +141,17 @@ return; } + if (UNEXPECTED(nargs == 0)) { + zend_throw_error(NULL, "Function name must be passed as the first argument"); + return; + } + fci.param_count = nargs - 1; if (fci.param_count > 0) { args = safe_emalloc(fci.param_count, sizeof(zval), 0); } /* Reverse order to pop values off ctxt stack */ - for (i = nargs - 2; i >= 0; i--) { + for (i = fci.param_count - 1; i >= 0; i--) { obj = valuePop(ctxt); if (obj == NULL) { ZVAL_NULL(&args[i]); @@ -221,7 +226,7 @@ fci.params = NULL; } - + /* Last element of the stack is the function name */ obj = valuePop(ctxt); if (obj == NULL || obj->stringval == NULL) { php_error_docref(NULL, E_WARNING, "Handler name must be a string"); @@ -308,7 +313,7 @@ xmlDoc *doc = NULL, *newdoc = NULL; xsltStylesheetPtr sheetp, oldsheetp; xsl_object *intern; - int prevSubstValue, prevExtDtdValue, clone_docu = 0; + int clone_docu = 0; xmlNode *nodep = NULL; zval *cloneDocu, rv; zend_string *member; @@ -332,13 +337,14 @@ stylesheet document otherwise the node proxies will be a mess */ newdoc = xmlCopyDoc(doc, 1); xmlNodeSetBase((xmlNodePtr) newdoc, (xmlChar *)doc->URL); - prevSubstValue = xmlSubstituteEntitiesDefault(1); - prevExtDtdValue = xmlLoadExtDtdDefaultValue; + 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); - xmlSubstituteEntitiesDefault(prevSubstValue); - xmlLoadExtDtdDefaultValue = prevExtDtdValue; + PHP_LIBXML_RESTORE_GLOBALS(parse); if (!sheetp) { xmlFreeDoc(newdoc); diff -Nru php8.2-8.2.7/ext/zend_test/config.m4 php8.2-8.2.18/ext/zend_test/config.m4 --- php8.2-8.2.7/ext/zend_test/config.m4 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/zend_test/config.m4 2024-04-09 18:46:23.000000000 +0000 @@ -4,5 +4,5 @@ [Enable zend_test extension])]) if test "$PHP_ZEND_TEST" != "no"; then - PHP_NEW_EXTENSION(zend_test, test.c observer.c fiber.c, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1) + PHP_NEW_EXTENSION(zend_test, test.c observer.c fiber.c iterators.c, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1) fi diff -Nru php8.2-8.2.7/ext/zend_test/config.w32 php8.2-8.2.18/ext/zend_test/config.w32 --- php8.2-8.2.7/ext/zend_test/config.w32 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/zend_test/config.w32 2024-04-09 18:46:23.000000000 +0000 @@ -3,6 +3,6 @@ ARG_ENABLE("zend-test", "enable zend_test extension", "no"); if (PHP_ZEND_TEST != "no") { - EXTENSION("zend_test", "test.c observer.c fiber.c", PHP_ZEND_TEST_SHARED, "/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"); + EXTENSION("zend_test", "test.c observer.c fiber.c iterators.c", PHP_ZEND_TEST_SHARED, "/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"); ADD_FLAG("CFLAGS_ZEND_TEST", "/D PHP_ZEND_TEST_EXPORTS "); } diff -Nru php8.2-8.2.7/ext/zend_test/iterators.c php8.2-8.2.18/ext/zend_test/iterators.c --- php8.2-8.2.7/ext/zend_test/iterators.c 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/zend_test/iterators.c 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,121 @@ +/* + +----------------------------------------------------------------------+ + | Copyright (c) The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | https://www.php.net/license/3_01.txt | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ +*/ + +#include "iterators.h" +#include "zend_API.h" +#include "iterators_arginfo.h" + +#include +#include "php.h" + +#define DUMP(s) php_output_write((s), sizeof((s)) - 1) + +static zend_class_entry *traversable_test_ce; + +// Dummy iterator that yields numbers from 0..4, +// while printing operations to the output buffer +typedef struct { + zend_object_iterator intern; + zval current; +} test_traversable_it; + +static test_traversable_it *test_traversable_it_fetch(zend_object_iterator *iter) { + return (test_traversable_it *)iter; +} + +static void test_traversable_it_dtor(zend_object_iterator *iter) { + DUMP("TraversableTest::drop\n"); + test_traversable_it *iterator = test_traversable_it_fetch(iter); + zval_ptr_dtor(&iterator->intern.data); +} + +static void test_traversable_it_rewind(zend_object_iterator *iter) { + DUMP("TraversableTest::rewind\n"); + test_traversable_it *iterator = test_traversable_it_fetch(iter); + ZVAL_LONG(&iterator->current, 0); +} + +static void test_traversable_it_next(zend_object_iterator *iter) { + DUMP("TraversableTest::next\n"); + test_traversable_it *iterator = test_traversable_it_fetch(iter); + ZVAL_LONG(&iterator->current, Z_LVAL(iterator->current) + 1); +} + +static int test_traversable_it_valid(zend_object_iterator *iter) { + DUMP("TraversableTest::valid\n"); + test_traversable_it *iterator = test_traversable_it_fetch(iter); + if (Z_LVAL(iterator->current) < 4) { + return SUCCESS; + } + return FAILURE; +} + +static void test_traversable_it_key(zend_object_iterator *iter, zval *return_value) { + DUMP("TraversableTest::key\n"); + test_traversable_it *iterator = test_traversable_it_fetch(iter); + ZVAL_LONG(return_value, Z_LVAL(iterator->current)); +} + +static zval *test_traversable_it_current(zend_object_iterator *iter) { + DUMP("TraversableTest::current\n"); + test_traversable_it *iterator = test_traversable_it_fetch(iter); + return &iterator->current; +} + +static const zend_object_iterator_funcs test_traversable_it_vtable = { + test_traversable_it_dtor, + test_traversable_it_valid, + test_traversable_it_current, + test_traversable_it_key, + test_traversable_it_next, + test_traversable_it_rewind, + NULL, // invalidate_current + NULL, // get_gc +}; + +static zend_object_iterator *test_traversable_get_iterator( + zend_class_entry *ce, + zval *object, + int by_ref +) { + test_traversable_it *iterator; + + if (by_ref) { + zend_throw_error(NULL, "An iterator cannot be used with foreach by reference"); + return NULL; + } + + iterator = emalloc(sizeof(test_traversable_it)); + zend_iterator_init((zend_object_iterator*)iterator); + + ZVAL_OBJ_COPY(&iterator->intern.data, Z_OBJ_P(object)); + iterator->intern.funcs = &test_traversable_it_vtable; + ZVAL_LONG(&iterator->current, 0); + + return (zend_object_iterator*)iterator; +} + +ZEND_METHOD(ZendTest_Iterators_TraversableTest, __construct) { + ZEND_PARSE_PARAMETERS_NONE(); +} + +ZEND_METHOD(ZendTest_Iterators_TraversableTest, getIterator) { + ZEND_PARSE_PARAMETERS_NONE(); + zend_create_internal_iterator_zval(return_value, ZEND_THIS); +} + +void zend_test_iterators_init(void) { + traversable_test_ce = register_class_ZendTest_Iterators_TraversableTest(zend_ce_aggregate); + traversable_test_ce->get_iterator = test_traversable_get_iterator; +} diff -Nru php8.2-8.2.7/ext/zend_test/iterators.h php8.2-8.2.18/ext/zend_test/iterators.h --- php8.2-8.2.7/ext/zend_test/iterators.h 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/zend_test/iterators.h 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,21 @@ +/* + +----------------------------------------------------------------------+ + | Copyright (c) The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | https://www.php.net/license/3_01.txt | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ +*/ + +#ifndef ZEND_TEST_ITERATORS_H +#define ZEND_TEST_ITERATORS_H + +void zend_test_iterators_init(void); + +#endif + diff -Nru php8.2-8.2.7/ext/zend_test/iterators.stub.php php8.2-8.2.18/ext/zend_test/iterators.stub.php --- php8.2-8.2.7/ext/zend_test/iterators.stub.php 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/zend_test/iterators.stub.php 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,14 @@ +ce_flags |= ZEND_ACC_FINAL; + zend_class_implements(class_entry, 1, class_entry_IteratorAggregate); + + return class_entry; +} diff -Nru php8.2-8.2.7/ext/zend_test/php_test.h php8.2-8.2.18/ext/zend_test/php_test.h --- php8.2-8.2.7/ext/zend_test/php_test.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/zend_test/php_test.h 2024-04-09 18:46:23.000000000 +0000 @@ -55,6 +55,9 @@ int register_passes; bool print_stderr_mshutdown; zend_long limit_copy_file_range; + int observe_opline_in_zendmm; + zend_mm_heap* zend_orig_heap; + zend_mm_heap* zend_test_heap; zend_test_fiber *active_fiber; zend_long quantity_value; zend_string *str_test; diff -Nru php8.2-8.2.7/ext/zend_test/test.c php8.2-8.2.18/ext/zend_test/test.c --- php8.2-8.2.7/ext/zend_test/test.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/zend_test/test.c 2024-04-09 18:46:23.000000000 +0000 @@ -24,14 +24,28 @@ #include "php_test.h" #include "observer.h" #include "fiber.h" +#include "iterators.h" #include "zend_attributes.h" #include "zend_enum.h" #include "zend_interfaces.h" #include "zend_weakrefs.h" #include "Zend/Optimizer/zend_optimizer.h" +#include "Zend/zend_alloc.h" #include "test.h" #include "test_arginfo.h" +// `php.h` sets `NDEBUG` when not `PHP_DEBUG` which will make `assert()` from +// assert.h a no-op. In order to have `assert()` working on NDEBUG builds, we +// undefine `NDEBUG` and re-include assert.h +#undef NDEBUG +#include "assert.h" + +#if defined(HAVE_LIBXML) && !defined(PHP_WIN32) +# include +# include +# include "ext/dom/php_dom.h" +#endif + ZEND_DECLARE_MODULE_GLOBALS(zend_test) static zend_class_entry *zend_test_interface; @@ -46,11 +60,13 @@ static zend_class_entry *zend_test_forbid_dynamic_call; static zend_class_entry *zend_test_ns_foo_class; static zend_class_entry *zend_test_ns_unlikely_compile_error_class; +static zend_class_entry *zend_test_ns_not_unlikely_compile_error_class; static zend_class_entry *zend_test_ns2_foo_class; static zend_class_entry *zend_test_ns2_ns_foo_class; static zend_class_entry *zend_test_unit_enum; static zend_class_entry *zend_test_string_enum; static zend_class_entry *zend_test_int_enum; +static zend_class_entry *zend_test_magic_call; static zend_object_handlers zend_test_class_handlers; static ZEND_FUNCTION(zend_test_func) @@ -306,6 +322,22 @@ RETURN_STR(function_name); } +#if defined(HAVE_LIBXML) && !defined(PHP_WIN32) +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 + /* TESTS Z_PARAM_ITERABLE and Z_PARAM_ITERABLE_OR_NULL */ static ZEND_FUNCTION(zend_iterable) { @@ -480,6 +512,78 @@ php_printf("%s", invalid); } +static bool has_opline(zend_execute_data *execute_data) +{ + return execute_data + && execute_data->func + && ZEND_USER_CODE(execute_data->func->type) + && execute_data->opline + ; +} + +void * zend_test_custom_malloc(size_t len) +{ + if (has_opline(EG(current_execute_data))) { + assert(EG(current_execute_data)->opline->lineno != (uint32_t)-1); + } + return _zend_mm_alloc(ZT_G(zend_orig_heap), len ZEND_FILE_LINE_EMPTY_CC ZEND_FILE_LINE_EMPTY_CC); +} + +void zend_test_custom_free(void *ptr) +{ + if (has_opline(EG(current_execute_data))) { + assert(EG(current_execute_data)->opline->lineno != (uint32_t)-1); + } + _zend_mm_free(ZT_G(zend_orig_heap), ptr ZEND_FILE_LINE_EMPTY_CC ZEND_FILE_LINE_EMPTY_CC); +} + +void * zend_test_custom_realloc(void * ptr, size_t len) +{ + if (has_opline(EG(current_execute_data))) { + assert(EG(current_execute_data)->opline->lineno != (uint32_t)-1); + } + return _zend_mm_realloc(ZT_G(zend_orig_heap), ptr, len ZEND_FILE_LINE_EMPTY_CC ZEND_FILE_LINE_EMPTY_CC); +} + +static PHP_INI_MH(OnUpdateZendTestObserveOplineInZendMM) +{ + if (new_value == NULL) { + return FAILURE; + } + + int int_value = zend_ini_parse_bool(new_value); + + if (int_value == 1) { + // `zend_mm_heap` is a private struct, so we have not way to find the + // actual size, but 4096 bytes should be enough + ZT_G(zend_test_heap) = malloc(4096); + memset(ZT_G(zend_test_heap), 0, 4096); + zend_mm_set_custom_handlers( + ZT_G(zend_test_heap), + zend_test_custom_malloc, + zend_test_custom_free, + zend_test_custom_realloc + ); + ZT_G(zend_orig_heap) = zend_mm_get_heap(); + zend_mm_set_heap(ZT_G(zend_test_heap)); + } else if (ZT_G(zend_test_heap)) { + free(ZT_G(zend_test_heap)); + ZT_G(zend_test_heap) = NULL; + zend_mm_set_heap(ZT_G(zend_orig_heap)); + } + return OnUpdateBool(entry, new_value, mh_arg1, mh_arg2, mh_arg3, stage); +} + +static ZEND_FUNCTION(zend_test_is_pcre_bundled) +{ + ZEND_PARSE_PARAMETERS_NONE(); +#if HAVE_BUNDLED_PCRE + RETURN_TRUE; +#else + RETURN_FALSE; +#endif +} + static zend_object *zend_test_class_new(zend_class_entry *class_type) { zend_object *obj = zend_objects_new(class_type); @@ -616,6 +720,13 @@ RETURN_NULL(); } +static ZEND_METHOD(ZendTestNS_NotUnlikelyCompileError, method) +{ + ZEND_PARSE_PARAMETERS_NONE(); + + RETURN_NULL(); +} + static ZEND_METHOD(ZendTestNS2_Foo, method) { ZEND_PARSE_PARAMETERS_NONE(); @@ -695,6 +806,24 @@ zend_forbid_dynamic_call(); } +static ZEND_METHOD(_ZendTestMagicCall, __call) +{ + zend_string *name; + zval *arguments; + + ZEND_PARSE_PARAMETERS_START(2, 2) + Z_PARAM_STR(name) + Z_PARAM_ARRAY(arguments) + ZEND_PARSE_PARAMETERS_END(); + + zval name_zv; + ZVAL_STR(&name_zv, name); + + zend_string_addref(name); + Z_TRY_ADDREF_P(arguments); + RETURN_ARR(zend_new_pair(&name_zv, arguments)); +} + PHP_INI_BEGIN() STD_PHP_INI_BOOLEAN("zend_test.replace_zend_execute_ex", "0", PHP_INI_SYSTEM, OnUpdateBool, replace_zend_execute_ex, zend_zend_test_globals, zend_test_globals) STD_PHP_INI_BOOLEAN("zend_test.register_passes", "0", PHP_INI_SYSTEM, OnUpdateBool, register_passes, zend_zend_test_globals, zend_test_globals) @@ -705,6 +834,7 @@ STD_PHP_INI_ENTRY("zend_test.quantity_value", "0", PHP_INI_ALL, OnUpdateLong, quantity_value, zend_zend_test_globals, zend_test_globals) STD_PHP_INI_ENTRY("zend_test.str_test", "", PHP_INI_ALL, OnUpdateStr, str_test, zend_zend_test_globals, zend_test_globals) STD_PHP_INI_ENTRY("zend_test.not_empty_str_test", "val", PHP_INI_ALL, OnUpdateStrNotEmpty, not_empty_str_test, zend_zend_test_globals, zend_test_globals) + STD_PHP_INI_BOOLEAN("zend_test.observe_opline_in_zendmm", "0", PHP_INI_ALL, OnUpdateZendTestObserveOplineInZendMM, observe_opline_in_zendmm, zend_zend_test_globals, zend_test_globals) PHP_INI_END() void (*old_zend_execute_ex)(zend_execute_data *execute_data); @@ -798,6 +928,7 @@ zend_test_ns_foo_class = register_class_ZendTestNS_Foo(); zend_test_ns_unlikely_compile_error_class = register_class_ZendTestNS_UnlikelyCompileError(); + zend_test_ns_not_unlikely_compile_error_class = register_class_ZendTestNS_NotUnlikelyCompileError(); zend_test_ns2_foo_class = register_class_ZendTestNS2_Foo(); zend_test_ns2_ns_foo_class = register_class_ZendTestNS2_ZendSubNS_Foo(); @@ -805,6 +936,8 @@ zend_test_string_enum = register_class_ZendTestStringEnum(); zend_test_int_enum = register_class_ZendTestIntEnum(); + zend_test_magic_call = register_class__ZendTestMagicCall(); + zend_register_functions(NULL, ext_function_legacy, NULL, EG(current_module)->type); // Loading via dl() not supported with the observer API @@ -826,6 +959,7 @@ zend_test_observer_init(INIT_FUNC_ARGS_PASSTHRU); zend_test_fiber_init(); + zend_test_iterators_init(); return SUCCESS; } @@ -859,6 +993,13 @@ zend_weakrefs_hash_del(&ZT_G(global_weakmap), zend_weakref_key_to_object(obj_key)); } ZEND_HASH_FOREACH_END(); zend_hash_destroy(&ZT_G(global_weakmap)); + + if (ZT_G(zend_test_heap)) { + free(ZT_G(zend_test_heap)); + ZT_G(zend_test_heap) = NULL; + zend_mm_set_heap(ZT_G(zend_orig_heap)); + } + return SUCCESS; } @@ -987,6 +1128,9 @@ /** * This function allows us to simulate early return of copy_file_range by setting the limit_copy_file_range ini setting. */ +#ifdef __MUSL__ +typedef off_t off64_t; +#endif PHP_ZEND_TEST_API ssize_t copy_file_range(int fd_in, off64_t *off_in, int fd_out, off64_t *off_out, size_t len, unsigned int flags) { ssize_t (*original_copy_file_range)(int, off64_t *, int, off64_t *, size_t, unsigned int) = dlsym(RTLD_NEXT, "copy_file_range"); diff -Nru php8.2-8.2.7/ext/zend_test/test.stub.php php8.2-8.2.18/ext/zend_test/test.stub.php --- php8.2-8.2.7/ext/zend_test/test.stub.php 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/zend_test/test.stub.php 2024-04-09 18:46:23.000000000 +0000 @@ -47,6 +47,11 @@ static public function variadicTest(string|Iterator ...$elements) : static {} } + class _ZendTestMagicCall + { + public function __call(string $name, array $args): mixed {} + } + class _ZendTestChildClass extends _ZendTestClass { public function returnsThrowable(): Exception {} @@ -55,6 +60,7 @@ trait _ZendTestTrait { /** @var mixed */ public $testProp; + public Traversable|Countable $classUnionProp; public function testMethod(): bool {} } @@ -170,6 +176,12 @@ function zend_get_map_ptr_last(): int {} function zend_test_crash(?string $message = null): void {} + +#if defined(HAVE_LIBXML) && !defined(PHP_WIN32) +function zend_test_override_libxml_global_state(): void {} +#endif + + function zend_test_is_pcre_bundled(): bool {} } namespace ZendTestNS { @@ -185,6 +197,11 @@ public function method(): ?UnlikelyCompileError {} } + class NotUnlikelyCompileError { + /* This method signature would create a compile error due to the string + * "ZendTestNS\NotUnlikelyCompileError" in the generated macro call */ + public function method(): ?NotUnlikelyCompileError {} + } } namespace ZendTestNS2 { diff -Nru php8.2-8.2.7/ext/zend_test/test_arginfo.h php8.2-8.2.18/ext/zend_test/test_arginfo.h --- php8.2-8.2.7/ext/zend_test/test_arginfo.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/zend_test/test_arginfo.h 2024-04-09 18:46:23.000000000 +0000 @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: 07600e864a4b1e5187d26a1716a2e96e92b8093e */ + * Stub hash: 420711ec6f040d38bde450a169bf1186f8531191 */ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_test_array_return, 0, 0, IS_ARRAY, 0) ZEND_END_ARG_INFO() @@ -104,16 +104,23 @@ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, message, IS_STRING, 1, "null") ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ZendTestNS2_namespaced_func, 0, 0, _IS_BOOL, 0) +#if defined(HAVE_LIBXML) && !defined(PHP_WIN32) +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_test_override_libxml_global_state, 0, 0, IS_VOID, 0) +ZEND_END_ARG_INFO() +#endif + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_test_is_pcre_bundled, 0, 0, _IS_BOOL, 0) ZEND_END_ARG_INFO() +#define arginfo_ZendTestNS2_namespaced_func arginfo_zend_test_is_pcre_bundled + #define arginfo_ZendTestNS2_namespaced_deprecated_func arginfo_zend_test_void_return #define arginfo_ZendTestNS2_namespaced_aliased_func arginfo_zend_test_void_return #define arginfo_ZendTestNS2_namespaced_deprecated_aliased_func arginfo_zend_test_void_return -#define arginfo_ZendTestNS2_ZendSubNS_namespaced_func arginfo_ZendTestNS2_namespaced_func +#define arginfo_ZendTestNS2_ZendSubNS_namespaced_func arginfo_zend_test_is_pcre_bundled #define arginfo_ZendTestNS2_ZendSubNS_namespaced_deprecated_func arginfo_zend_test_void_return @@ -135,10 +142,15 @@ ZEND_ARG_VARIADIC_OBJ_TYPE_MASK(0, elements, Iterator, MAY_BE_STRING) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class__ZendTestMagicCall___call, 0, 2, IS_MIXED, 0) + ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, args, IS_ARRAY, 0) +ZEND_END_ARG_INFO() + ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_class__ZendTestChildClass_returnsThrowable, 0, 0, Exception, 0) ZEND_END_ARG_INFO() -#define arginfo_class__ZendTestTrait_testMethod arginfo_ZendTestNS2_namespaced_func +#define arginfo_class__ZendTestTrait_testMethod arginfo_zend_test_is_pcre_bundled ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ZendTestParameterAttribute___construct, 0, 0, 1) ZEND_ARG_TYPE_INFO(0, parameter, IS_STRING, 0) @@ -166,6 +178,9 @@ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_class_ZendTestNS_UnlikelyCompileError_method, 0, 0, ZendTestNS\\\125nlikelyCompileError, 1) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_class_ZendTestNS_NotUnlikelyCompileError_method, 0, 0, ZendTestNS\\\116otUnlikelyCompileError, 1) +ZEND_END_ARG_INFO() + #define arginfo_class_ZendTestNS2_Foo_method arginfo_zend_test_void_return #define arginfo_class_ZendTestNS2_ZendSubNS_Foo_method arginfo_zend_test_void_return @@ -197,6 +212,10 @@ static ZEND_FUNCTION(zend_test_zend_ini_str); static ZEND_FUNCTION(zend_get_map_ptr_last); static ZEND_FUNCTION(zend_test_crash); +#if defined(HAVE_LIBXML) && !defined(PHP_WIN32) +static ZEND_FUNCTION(zend_test_override_libxml_global_state); +#endif +static ZEND_FUNCTION(zend_test_is_pcre_bundled); static ZEND_FUNCTION(ZendTestNS2_namespaced_func); static ZEND_FUNCTION(ZendTestNS2_namespaced_deprecated_func); static ZEND_FUNCTION(ZendTestNS2_ZendSubNS_namespaced_func); @@ -206,6 +225,7 @@ static ZEND_METHOD(_ZendTestClass, returnsStatic); static ZEND_METHOD(_ZendTestClass, returnsThrowable); static ZEND_METHOD(_ZendTestClass, variadicTest); +static ZEND_METHOD(_ZendTestMagicCall, __call); static ZEND_METHOD(_ZendTestChildClass, returnsThrowable); static ZEND_METHOD(_ZendTestTrait, testMethod); static ZEND_METHOD(ZendTestParameterAttribute, __construct); @@ -217,6 +237,7 @@ static ZEND_METHOD(ZendTestForbidDynamicCall, callStatic); static ZEND_METHOD(ZendTestNS_Foo, method); static ZEND_METHOD(ZendTestNS_UnlikelyCompileError, method); +static ZEND_METHOD(ZendTestNS_NotUnlikelyCompileError, method); static ZEND_METHOD(ZendTestNS2_Foo, method); static ZEND_METHOD(ZendTestNS2_ZendSubNS_Foo, method); @@ -250,6 +271,10 @@ ZEND_FE(zend_test_zend_ini_str, arginfo_zend_test_zend_ini_str) ZEND_FE(zend_get_map_ptr_last, arginfo_zend_get_map_ptr_last) ZEND_FE(zend_test_crash, arginfo_zend_test_crash) +#if defined(HAVE_LIBXML) && !defined(PHP_WIN32) + ZEND_FE(zend_test_override_libxml_global_state, arginfo_zend_test_override_libxml_global_state) +#endif + ZEND_FE(zend_test_is_pcre_bundled, arginfo_zend_test_is_pcre_bundled) ZEND_NS_FALIAS("ZendTestNS2", namespaced_func, ZendTestNS2_namespaced_func, arginfo_ZendTestNS2_namespaced_func) ZEND_NS_DEP_FALIAS("ZendTestNS2", namespaced_deprecated_func, ZendTestNS2_namespaced_deprecated_func, arginfo_ZendTestNS2_namespaced_deprecated_func) ZEND_NS_FALIAS("ZendTestNS2", namespaced_aliased_func, zend_test_void_return, arginfo_ZendTestNS2_namespaced_aliased_func) @@ -277,6 +302,12 @@ }; +static const zend_function_entry class__ZendTestMagicCall_methods[] = { + ZEND_ME(_ZendTestMagicCall, __call, arginfo_class__ZendTestMagicCall___call, ZEND_ACC_PUBLIC) + ZEND_FE_END +}; + + static const zend_function_entry class__ZendTestChildClass_methods[] = { ZEND_ME(_ZendTestChildClass, returnsThrowable, arginfo_class__ZendTestChildClass_returnsThrowable, ZEND_ACC_PUBLIC) ZEND_FE_END @@ -353,6 +384,12 @@ }; +static const zend_function_entry class_ZendTestNS_NotUnlikelyCompileError_methods[] = { + ZEND_ME(ZendTestNS_NotUnlikelyCompileError, method, arginfo_class_ZendTestNS_NotUnlikelyCompileError_method, ZEND_ACC_PUBLIC) + ZEND_FE_END +}; + + static const zend_function_entry class_ZendTestNS2_Foo_methods[] = { ZEND_ME(ZendTestNS2_Foo, method, arginfo_class_ZendTestNS2_Foo_method, ZEND_ACC_PUBLIC) ZEND_FE_END @@ -461,6 +498,16 @@ return class_entry; } +static zend_class_entry *register_class__ZendTestMagicCall(void) +{ + zend_class_entry ce, *class_entry; + + INIT_CLASS_ENTRY(ce, "_ZendTestMagicCall", class__ZendTestMagicCall_methods); + class_entry = zend_register_internal_class_ex(&ce, NULL); + + return class_entry; +} + static zend_class_entry *register_class__ZendTestChildClass(zend_class_entry *class_entry__ZendTestClass) { zend_class_entry ce, *class_entry; @@ -485,6 +532,19 @@ zend_declare_property_ex(class_entry, property_testProp_name, &property_testProp_default_value, ZEND_ACC_PUBLIC, NULL); zend_string_release(property_testProp_name); + zend_string *property_classUnionProp_class_Traversable = zend_string_init("Traversable", sizeof("Traversable") - 1, 1); + zend_string *property_classUnionProp_class_Countable = zend_string_init("Countable", sizeof("Countable") - 1, 1); + zend_type_list *property_classUnionProp_type_list = malloc(ZEND_TYPE_LIST_SIZE(2)); + property_classUnionProp_type_list->num_types = 2; + property_classUnionProp_type_list->types[0] = (zend_type) ZEND_TYPE_INIT_CLASS(property_classUnionProp_class_Traversable, 0, 0); + property_classUnionProp_type_list->types[1] = (zend_type) ZEND_TYPE_INIT_CLASS(property_classUnionProp_class_Countable, 0, 0); + zend_type property_classUnionProp_type = ZEND_TYPE_INIT_UNION(property_classUnionProp_type_list, 0); + zval property_classUnionProp_default_value; + ZVAL_UNDEF(&property_classUnionProp_default_value); + zend_string *property_classUnionProp_name = zend_string_init("classUnionProp", sizeof("classUnionProp") - 1, 1); + zend_declare_typed_property(class_entry, property_classUnionProp_name, &property_classUnionProp_default_value, ZEND_ACC_PUBLIC, NULL, property_classUnionProp_type); + zend_string_release(property_classUnionProp_name); + return class_entry; } @@ -672,6 +732,16 @@ class_entry = zend_register_internal_class_ex(&ce, NULL); return class_entry; +} + +static zend_class_entry *register_class_ZendTestNS_NotUnlikelyCompileError(void) +{ + zend_class_entry ce, *class_entry; + + INIT_NS_CLASS_ENTRY(ce, "ZendTestNS", "NotUnlikelyCompileError", class_ZendTestNS_NotUnlikelyCompileError_methods); + class_entry = zend_register_internal_class_ex(&ce, NULL); + + return class_entry; } static zend_class_entry *register_class_ZendTestNS2_Foo(void) diff -Nru php8.2-8.2.7/ext/zend_test/tests/gen_stub_test_01.phpt php8.2-8.2.18/ext/zend_test/tests/gen_stub_test_01.phpt --- php8.2-8.2.7/ext/zend_test/tests/gen_stub_test_01.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/zend_test/tests/gen_stub_test_01.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -11,6 +11,8 @@ var_dump($foo); $foo = new \ZendTestNS\UnlikelyCompileError(); var_dump($foo); +$foo = new \ZendTestNS\NotUnlikelyCompileError(); +var_dump($foo); ?> --EXPECTF-- object(ZendTestNS2\Foo)#%d (%d) { @@ -24,3 +26,5 @@ } object(ZendTestNS\UnlikelyCompileError)#%d (%d) { } +object(ZendTestNS\NotUnlikelyCompileError)#%d (%d) { +} diff -Nru php8.2-8.2.7/ext/zend_test/tests/internal_magic_call.phpt php8.2-8.2.18/ext/zend_test/tests/internal_magic_call.phpt --- php8.2-8.2.7/ext/zend_test/tests/internal_magic_call.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/zend_test/tests/internal_magic_call.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,23 @@ +--TEST-- +GH-12835: call->extra_named_params leaks on internal __call +--EXTENSIONS-- +zend_test +--FILE-- +test('a', 'b', c: 'c')); +?> +--EXPECT-- +array(2) { + [0]=> + string(4) "test" + [1]=> + array(3) { + [0]=> + string(1) "a" + [1]=> + string(1) "b" + ["c"]=> + string(1) "c" + } +} diff -Nru php8.2-8.2.7/ext/zend_test/tests/iterators/double-rewind.phpt php8.2-8.2.18/ext/zend_test/tests/iterators/double-rewind.phpt --- php8.2-8.2.7/ext/zend_test/tests/iterators/double-rewind.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/zend_test/tests/iterators/double-rewind.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,40 @@ +--TEST-- +Tests that internal iterator's rewind function is called once +--EXTENSIONS-- +zend_test +--FILE-- +getIterator(); +var_dump($it); +foreach ($it as $key => $value) { + echo "{$key} => {$value}\n"; +} +?> +--EXPECT-- +object(InternalIterator)#3 (0) { +} +TraversableTest::rewind +TraversableTest::valid +TraversableTest::current +TraversableTest::key +0 => 0 +TraversableTest::next +TraversableTest::valid +TraversableTest::current +TraversableTest::key +1 => 1 +TraversableTest::next +TraversableTest::valid +TraversableTest::current +TraversableTest::key +2 => 2 +TraversableTest::next +TraversableTest::valid +TraversableTest::current +TraversableTest::key +3 => 3 +TraversableTest::next +TraversableTest::valid +TraversableTest::drop diff -Nru php8.2-8.2.7/ext/zend_test/tests/observer_sqlite_create_function.phpt php8.2-8.2.18/ext/zend_test/tests/observer_sqlite_create_function.phpt --- php8.2-8.2.7/ext/zend_test/tests/observer_sqlite_create_function.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/zend_test/tests/observer_sqlite_create_function.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -2,7 +2,7 @@ Observer: PDO::sqliteCreateFunction() can be observed --EXTENSIONS-- zend_test -PDO +pdo pdo_sqlite --INI-- zend_test.observer.enabled=1 diff -Nru php8.2-8.2.7/ext/zend_test/tests/opline_dangling.phpt php8.2-8.2.18/ext/zend_test/tests/opline_dangling.phpt --- php8.2-8.2.7/ext/zend_test/tests/opline_dangling.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/zend_test/tests/opline_dangling.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,35 @@ +--TEST-- +possible segfault in `ZEND_BIND_STATIC` +--DESCRIPTION-- +https://github.com/php/php-src/pull/12758 +--EXTENSIONS-- +zend_test +--ENV-- +USE_ZEND_ALLOC=1 +--INI-- +zend_test.observe_opline_in_zendmm=1 +--FILE-- + +--EXPECT-- +int(1) +string(1) "x" +int(1) +int(5) +Done. diff -Nru php8.2-8.2.7/ext/zend_test/tests/opline_dangling_02.phpt php8.2-8.2.18/ext/zend_test/tests/opline_dangling_02.phpt --- php8.2-8.2.7/ext/zend_test/tests/opline_dangling_02.phpt 1970-01-01 00:00:00.000000000 +0000 +++ php8.2-8.2.18/ext/zend_test/tests/opline_dangling_02.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -0,0 +1,37 @@ +--TEST-- +possible segfault in `ZEND_FUNC_GET_ARGS` +--EXTENSIONS-- +zend_test +--ENV-- +USE_ZEND_ALLOC=1 +--INI-- +zend_test.observe_opline_in_zendmm=1 +--FILE-- + +--EXPECT-- +int(1) +string(1) "x" +int(1) +array(2) { + [0]=> + string(6) "string" + [1]=> + int(0) +} +Done. diff -Nru php8.2-8.2.7/ext/zip/php_zip.c php8.2-8.2.18/ext/zip/php_zip.c --- php8.2-8.2.7/ext/zip/php_zip.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/zip/php_zip.c 2024-04-09 18:46:23.000000000 +0000 @@ -1763,7 +1763,7 @@ basename = php_basename(Z_STRVAL_P(zval_file), Z_STRLEN_P(zval_file), NULL, 0); file_stripped = ZSTR_VAL(basename); file_stripped_len = ZSTR_LEN(basename); - } else if (opts.remove_path && strstr(Z_STRVAL_P(zval_file), opts.remove_path) != NULL) { + } else if (opts.remove_path && !memcmp(Z_STRVAL_P(zval_file), opts.remove_path, opts.remove_path_len)) { if (IS_SLASH(Z_STRVAL_P(zval_file)[opts.remove_path_len])) { file_stripped = Z_STRVAL_P(zval_file) + opts.remove_path_len + 1; file_stripped_len = Z_STRLEN_P(zval_file) - opts.remove_path_len - 1; diff -Nru php8.2-8.2.7/ext/zip/tests/bug77978.phpt php8.2-8.2.18/ext/zip/tests/bug77978.phpt --- php8.2-8.2.7/ext/zip/tests/bug77978.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/zip/tests/bug77978.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -1,9 +1,7 @@ --TEST-- Bug #77978 (Dirname ending in colon unzips to wrong dir) ---SKIPIF-- - +--EXTENSIONS-- +zip --FILE-- --FILE-- diff -Nru php8.2-8.2.7/ext/zip/tests/bug81420.phpt php8.2-8.2.18/ext/zip/tests/bug81420.phpt --- php8.2-8.2.7/ext/zip/tests/bug81420.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/zip/tests/bug81420.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -1,9 +1,7 @@ --TEST-- Bug #81420 (ZipArchive::extractTo extracts outside of destination) ---SKIPIF-- - +--EXTENSIONS-- +zip --FILE-- +--EXTENSIONS-- +zip --FILE-- open($file, ZipArchive::CREATE | ZipArchive::OVERWRITE); +$zip->addGlob(__FILE__, 0, ['remove_path' => 'bug_']); // unchanged (bug is not a prefix) +$zip->addGlob(__FILE__, 0, ['remove_path' => dirname(__DIR__)]); +verify_entries($zip, [__FILE__, basename(__DIR__) . DIRECTORY_SEPARATOR . basename(__FILE__)]); +$zip->close(); + +?> +Done +--CLEAN-- + +--EXPECT-- +Done diff -Nru php8.2-8.2.7/ext/zip/tests/bug_gh8781.phpt php8.2-8.2.18/ext/zip/tests/bug_gh8781.phpt --- php8.2-8.2.7/ext/zip/tests/bug_gh8781.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/zip/tests/bug_gh8781.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -1,9 +1,7 @@ --TEST-- Bug GH-8781 (ZipArchive deletes zip file with no contents) ---SKIPIF-- - +--EXTENSIONS-- +zip --FILE-- getStreamIndex(1); -var_dump($zip->status); +if (version_compare(ZipArchive::LIBZIP_VERSION, "1.10.0", "<")) { + /* not supported in old version */ + var_dump($zip->status === ZipArchive::ER_CHANGED); +} else { + var_dump($zip->status === 0 && stream_get_contents($fp) === "baz"); +} $zip->clearError(); echo "== Index, unchanged\n"; $fp = $zip->getStreamIndex(1, ZipArchive::FL_UNCHANGED); -var_dump($zip->status); -var_dump(stream_get_contents($fp)); +var_dump($zip->status === 0 && stream_get_contents($fp) === "bar"); $zip->clearError(); fclose($fp); @@ -60,8 +64,7 @@ int(0) string(3) "foo" == Index, changed -int(15) +bool(true) == Index, unchanged -int(0) -string(3) "bar" +bool(true) == Done diff -Nru php8.2-8.2.7/ext/zlib/tests/bug48725_2.phpt php8.2-8.2.18/ext/zlib/tests/bug48725_2.phpt --- php8.2-8.2.7/ext/zlib/tests/bug48725_2.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/zlib/tests/bug48725_2.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -7,7 +7,7 @@ $stream = fopen('data://text/plain;base64,' . base64_encode('Foo bar baz'), 'r'); stream_filter_append($stream, 'zlib.deflate', STREAM_FILTER_READ); -print bin2hex(stream_get_contents($stream)); +print gzinflate(stream_get_contents($stream)); ?> --EXPECT-- -72cbcf57484a2c02e22a00000000ffff0300 +Foo bar baz diff -Nru php8.2-8.2.7/ext/zlib/tests/bug71417.phpt php8.2-8.2.18/ext/zlib/tests/bug71417.phpt --- php8.2-8.2.7/ext/zlib/tests/bug71417.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/zlib/tests/bug71417.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -75,7 +75,7 @@ gzdecode(): Warning: gzdecode(): data error in %s on line %d -read: string(32) "The quick brown fox jumps over t" +read: string(3%d) "The quick brown fox jumps over%s" gzdecode(): Warning: gzdecode(): data error in %s on line %d diff -Nru php8.2-8.2.7/ext/zlib/tests/gzcompress_basic1.phpt php8.2-8.2.18/ext/zlib/tests/gzcompress_basic1.phpt --- php8.2-8.2.7/ext/zlib/tests/gzcompress_basic1.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/zlib/tests/gzcompress_basic1.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -2,6 +2,8 @@ Test gzcompress() function : basic functionality --EXTENSIONS-- zlib +--SKIPIF-- + --FILE-- --EXPECT-- *** Testing gzcompress() : basic functionality *** -- Compression level -1 -- -string(32) "764809aef15bb34cb73ad49ecb600d99" int(0) -- Compression level 0 -- -string(32) "d0136b3fb5424142c0eb26dfec8f56fe" int(0) -- Compression level 1 -- -string(32) "c2e070f4320d1f674965eaab95b53d9c" int(0) -- Compression level 2 -- -string(32) "36922f486410d08209d0d0d21b26030e" int(0) -- Compression level 3 -- -string(32) "a441a2f5169bb303cd45b860a5a9dbf9" int(0) -- Compression level 4 -- -string(32) "d5b7451e9de2864beccc9de1fc55eb87" int(0) -- Compression level 5 -- -string(32) "32ba4a01120449ec25508cabfad41f56" int(0) -- Compression level 6 -- -string(32) "764809aef15bb34cb73ad49ecb600d99" int(0) -- Compression level 7 -- -string(32) "e083e7e8d05471fed3c2182b9cd0d9eb" int(0) -- Compression level 8 -- -string(32) "e083e7e8d05471fed3c2182b9cd0d9eb" int(0) -- Compression level 9 -- -string(32) "e083e7e8d05471fed3c2182b9cd0d9eb" int(0) -- Compression level -1 -- -string(70) "789c735428ce4dccc951282e29cacc4b5728c95748cecf2d284a2d2ee6020087a509cb" int(0) -- Compression level 0 -- -string(76) "7801011b00e4ff4120736d616c6c20737472696e6720746f20636f6d70726573730a87a509cb" int(0) -- Compression level 1 -- -string(70) "7801735428ce4dccc951282e29cacc4b5728c95748cecf2d284a2d2ee6020087a509cb" int(0) -- Compression level 2 -- -string(70) "785e735428ce4dccc951282e29cacc4b5728c95748cecf2d284a2d2ee6020087a509cb" int(0) -- Compression level 3 -- -string(70) "785e735428ce4dccc951282e29cacc4b5728c95748cecf2d284a2d2ee6020087a509cb" int(0) -- Compression level 4 -- -string(70) "785e735428ce4dccc951282e29cacc4b5728c95748cecf2d284a2d2ee6020087a509cb" int(0) -- Compression level 5 -- -string(70) "785e735428ce4dccc951282e29cacc4b5728c95748cecf2d284a2d2ee6020087a509cb" int(0) -- Compression level 6 -- -string(70) "789c735428ce4dccc951282e29cacc4b5728c95748cecf2d284a2d2ee6020087a509cb" int(0) -- Compression level 7 -- -string(70) "78da735428ce4dccc951282e29cacc4b5728c95748cecf2d284a2d2ee6020087a509cb" int(0) -- Compression level 8 -- -string(70) "78da735428ce4dccc951282e29cacc4b5728c95748cecf2d284a2d2ee6020087a509cb" int(0) -- Compression level 9 -- -string(70) "78da735428ce4dccc951282e29cacc4b5728c95748cecf2d284a2d2ee6020087a509cb" int(0) -- Testing with no specified compression level -- -string(70) "789c735428ce4dccc951282e29cacc4b5728c95748cecf2d284a2d2ee6020087a509cb" +int(0) diff -Nru php8.2-8.2.7/ext/zlib/tests/gzcompress_variation1.phpt php8.2-8.2.18/ext/zlib/tests/gzcompress_variation1.phpt --- php8.2-8.2.7/ext/zlib/tests/gzcompress_variation1.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/zlib/tests/gzcompress_variation1.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -10,13 +10,13 @@ echo "\n-- Testing multiple compression --\n"; $output = gzcompress($data); -var_dump( md5($output)); -var_dump(md5(gzcompress($output))); +var_dump(strlen($output)); +var_dump(strlen(gzcompress($output))); ?> ---EXPECT-- +--EXPECTF-- *** Testing gzcompress() : variation *** -- Testing multiple compression -- -string(32) "764809aef15bb34cb73ad49ecb600d99" -string(32) "eba942bc2061f23ea8688cc5101872a4" +int(1%d) +int(1%d) diff -Nru php8.2-8.2.7/ext/zlib/tests/gzdeflate_basic1.phpt php8.2-8.2.18/ext/zlib/tests/gzdeflate_basic1.phpt --- php8.2-8.2.7/ext/zlib/tests/gzdeflate_basic1.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/zlib/tests/gzdeflate_basic1.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -2,6 +2,8 @@ Test gzdeflate() function : basic functionality --EXTENSIONS-- zlib +--SKIPIF-- + --FILE-- --EXPECT-- *** Testing gzdeflate() : basic functionality *** -- Compression level -1 -- -string(32) "078554fe65e06f6ff01eab51cfc7ae9b" int(0) -- Compression level 0 -- -string(32) "a71e54d2499aff9e48643cb1c260b60c" int(0) -- Compression level 1 -- -string(32) "05e80f4dc0d422e1f333cbed555d381f" int(0) -- Compression level 2 -- -string(32) "0fb33656e4ed0750f977df83246fce7a" int(0) -- Compression level 3 -- -string(32) "bc6e9c1dccc3e951e006315ee669ee08" int(0) -- Compression level 4 -- -string(32) "a61727d7a28c634470eb6e97a4a81b24" int(0) -- Compression level 5 -- -string(32) "a2a1a14b7542c82e8943200d093d5f27" int(0) -- Compression level 6 -- -string(32) "078554fe65e06f6ff01eab51cfc7ae9b" int(0) -- Compression level 7 -- -string(32) "078554fe65e06f6ff01eab51cfc7ae9b" int(0) -- Compression level 8 -- -string(32) "078554fe65e06f6ff01eab51cfc7ae9b" int(0) -- Compression level 9 -- -string(32) "078554fe65e06f6ff01eab51cfc7ae9b" int(0) -- Compression level -1 -- -string(58) "735428ce4dccc951282e29cacc4b5728c95748cecf2d284a2d2ee60200" int(0) -- Compression level 0 -- -string(64) "011b00e4ff4120736d616c6c20737472696e6720746f20636f6d70726573730a" int(0) -- Compression level 1 -- -string(58) "735428ce4dccc951282e29cacc4b5728c95748cecf2d284a2d2ee60200" int(0) -- Compression level 2 -- -string(58) "735428ce4dccc951282e29cacc4b5728c95748cecf2d284a2d2ee60200" int(0) -- Compression level 3 -- -string(58) "735428ce4dccc951282e29cacc4b5728c95748cecf2d284a2d2ee60200" int(0) -- Compression level 4 -- -string(58) "735428ce4dccc951282e29cacc4b5728c95748cecf2d284a2d2ee60200" int(0) -- Compression level 5 -- -string(58) "735428ce4dccc951282e29cacc4b5728c95748cecf2d284a2d2ee60200" int(0) -- Compression level 6 -- -string(58) "735428ce4dccc951282e29cacc4b5728c95748cecf2d284a2d2ee60200" int(0) -- Compression level 7 -- -string(58) "735428ce4dccc951282e29cacc4b5728c95748cecf2d284a2d2ee60200" int(0) -- Compression level 8 -- -string(58) "735428ce4dccc951282e29cacc4b5728c95748cecf2d284a2d2ee60200" int(0) -- Compression level 9 -- -string(58) "735428ce4dccc951282e29cacc4b5728c95748cecf2d284a2d2ee60200" int(0) -- Testing with no specified compression level -- -string(58) "735428ce4dccc951282e29cacc4b5728c95748cecf2d284a2d2ee60200" +int(0) diff -Nru php8.2-8.2.7/ext/zlib/tests/gzdeflate_variation1.phpt php8.2-8.2.18/ext/zlib/tests/gzdeflate_variation1.phpt --- php8.2-8.2.7/ext/zlib/tests/gzdeflate_variation1.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/zlib/tests/gzdeflate_variation1.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -12,13 +12,13 @@ echo "\n-- Testing multiple compression --\n"; $output = gzdeflate($data); -var_dump( md5($output)); -var_dump(md5(gzdeflate($output))); +var_dump(strlen($output)); +var_dump(strlen(gzdeflate($output))); ?> ---EXPECT-- +--EXPECTF-- *** Testing gzdeflate() : variation *** -- Testing multiple compression -- -string(32) "078554fe65e06f6ff01eab51cfc7ae9b" -string(32) "86b9f895ef1377da5269ec3cb2729f71" +int(17%d) +int(17%d) diff -Nru php8.2-8.2.7/ext/zlib/tests/gzencode_basic1.phpt php8.2-8.2.18/ext/zlib/tests/gzencode_basic1.phpt --- php8.2-8.2.7/ext/zlib/tests/gzencode_basic1.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/zlib/tests/gzencode_basic1.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -2,6 +2,8 @@ Test gzencode() function : basic functionality --EXTENSIONS-- zlib +--SKIPIF-- + --FILE-- --EXPECTF-- *** Testing gzencode() : basic functionality *** -- Compression level -1 -- -string(32) "d9ede02415ce91d21e5a94274e2b9c42" +bool(true) -- Compression level 0 -- -string(32) "bbf32d5508e5f1f4e6d42790489dae15" +bool(true) -- Compression level 1 -- -string(32) "0bfaaa7a5a57f8fb533074fca6c85eeb" +bool(true) -- Compression level 2 -- -string(32) "7ddbfed63a76c42808722b66f1c133fc" +bool(true) -- Compression level 3 -- -string(32) "ca2b85d194dfa2a4e8a162b646c99265" +bool(true) -- Compression level 4 -- -string(32) "cfe28033eaf260bc33ddc04b53d3ba39" +bool(true) -- Compression level 5 -- -string(32) "ae357fada2b515422f8bea0aa3bcc48f" +bool(true) -- Compression level 6 -- -string(32) "d9ede02415ce91d21e5a94274e2b9c42" +bool(true) -- Compression level 7 -- -string(32) "d9ede02415ce91d21e5a94274e2b9c42" +bool(true) -- Compression level 8 -- -string(32) "d9ede02415ce91d21e5a94274e2b9c42" +bool(true) -- Compression level 9 -- -string(32) "0f220a09e9895bcb3a1308d2bc99cfdf" +bool(true) -- Compression level -1 -- -string(32) "f77bd31e1e4dd11d12828fb661a08010" +bool(true) -- Compression level 0 -- -string(32) "9c5005db88490d6fe102ea2c233b2872" +bool(true) -- Compression level 1 -- -string(32) "d24ff7c4c20cef69b9c3abd603368db9" +bool(true) -- Compression level 2 -- -string(32) "f77bd31e1e4dd11d12828fb661a08010" +bool(true) -- Compression level 3 -- -string(32) "f77bd31e1e4dd11d12828fb661a08010" +bool(true) -- Compression level 4 -- -string(32) "f77bd31e1e4dd11d12828fb661a08010" +bool(true) -- Compression level 5 -- -string(32) "f77bd31e1e4dd11d12828fb661a08010" +bool(true) -- Compression level 6 -- -string(32) "f77bd31e1e4dd11d12828fb661a08010" +bool(true) -- Compression level 7 -- -string(32) "f77bd31e1e4dd11d12828fb661a08010" +bool(true) -- Compression level 8 -- -string(32) "f77bd31e1e4dd11d12828fb661a08010" +bool(true) -- Compression level 9 -- -string(32) "8849e9a1543c04b3f882b5ce20839ed2" +bool(true) -- Testing with no specified compression level -- -string(94) "1f8b08000000000000%c%c735428ce4dccc951282e29cacc4b5728c95748cecf2d284a2d2ee60200edc4e40b1b000000" +bool(true) -- Testing gzencode with mode specified -- -string(94) "1f8b08000000000000%c%c735428ce4dccc951282e29cacc4b5728c95748cecf2d284a2d2ee60200edc4e40b1b000000" +bool(true) diff -Nru php8.2-8.2.7/ext/zlib/tests/gzencode_variation1.phpt php8.2-8.2.18/ext/zlib/tests/gzencode_variation1.phpt --- php8.2-8.2.7/ext/zlib/tests/gzencode_variation1.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/zlib/tests/gzencode_variation1.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -26,8 +26,8 @@ var_dump(bin2hex(gzencode($output))); ?> ---EXPECT-- +--EXPECTF-- *** Testing gzencode() : variation *** -- Testing multiple compression -- -string(3658) "1f8b0800000000000003010e07f1f81f8b08000000000000036d574d6fe4c80dbdeb57d4ad2f3dfe01eb83e1ec22980e309b4562c067b64449159754dafab0b6e7d7e73d96da1e4c72184c4b2ab2c8f7c847fa25baabba98dc1a8b2b7c38bb324b713ee37f757f56cdc5c7f5b17b9d152f923b157c5ae335e0b75fedd0e2d781c6b98ea3a6ee05affe1dfc3a6527f8f09c52dcb38ba38bb5249934d6ecfe1e53a9ab76ff4c342cf2a64ed2028349fc9a8b139755685352acb82b9fbb67f8bade5cdcb698e1fcec94b7ceba3cb897e806cfc8114350dd1ebbdfa35b62d2478b0056d23ed809b9b95d696d91ce2aa97c911e3fa539c43f84c887554a4d125c9e63ff96711cc08c0866263cb37a0bbe2122ae8f6baecb2284abfb4ddf916db8354cddeef37c1afe5fa02fc7afb3db34f5b3acbdf2eb905490d8f38d7468d253a323d5ebb903760d7944d3b2024e834a99ddce77669bdd823cfbb8e899d4ad4c799677452e6029e80023a03b2374005590641f7d3877df2ad09f3c0e82a54d6a5644fd63049a37ed4bc362016fd9f51264f1e5c630727421ae930b7ed416e93e47b7c71a400390361ffbecb7561bb98f69b5da289e91becc27f08b3b724cb8704f9144d366431d0cb870c56b205deaa2e17636063761a911039fb7e4bf9f06c4f0aecd2ec80e8b41831ca7515e31286166458ea3ef71f2ce7cde2ae269c96d60525724a9c9170b713ed5750758f3cd2a361fc8b288fc92358ce884692e8ea0fe59bd969a0da2eed5831b715749eaae7178f3ebd30fb88c92105f367cce2c882955dc6bf8eca0d5d57540b3092894743ba0fd5b2dad021836191f1afc0bba14dde1642cb0b1aa6879c38907dcefa0720082b801bec61417469219175267dfa047df35b0bd1332001c28cdfafd3bcabe91e74368cdd8d8478e494c190e7ee90c67f2bde288e68ab6b15e883c995be4f8feb6c6dda4278e4f38578ddbdc7be36788daf0c3cb1d1819c73822f7000a0d1813fa94153b572315e51343b536bc64977dff163cebfd8418773261f524017e251fccc60ae29a5770ae097594d52e9c1229d87ce967a36401c46b69945afb249d101c9d420ffa9a123e232c20e76467d5d169202a2dd4c582949e013e745df7958d4b0cc4fd4377a737cd4feea7974070000f314d423e0634cb9a618fdf5dc64fd422181fd59c9230c9f6f9d18dc8fc23e9cccbc7188733b04aa57de83ebea0be3633cff5fa1ff83269be7f44f5a8d84550cc703255fd345dd402034d0b3e11a73ec6e3d4a77f4f685b614329f1b3132ae7af33d02e1e55e291fa6574b758d1f0200e7423dbc852211818043a7c9ce80aa9d59fce0401959f5ea2cf71fde90824f8c9192dbe9d329db143794675ddcf257dd7755273b67340414e3ccad12e3f661f8aad9cf9957dc1275d10a51d3934fa81e68dc6768fb8ee23e373936c8e13feab8b0f50d227f7af76f561fb0950f3d099bbc316c3892a42fb36806d8660e800fa4f43fd4b962d2097d71933a54b77ff948677848eb17bb3a88b621682cfb3bbb49cf42fed6b3944124ad8358ca688aa44dd5f2144c7c9ab16f25b9aca9654ef357ec9ad55c40d324d6cc3d9e3920b863c231d31a95d937fb5520f9c816c79b7dcecc593fb9593cc05a51ebb1eeddd5b49eb437769738d0f64adc579d372b8b7f7c0208487ee3915ebf5766e148ebd77cf4e01f3ec285047011e55838968b6494d517fe29224777b24dd3ddf933101695b102e87db805eef291b74dcfd91628fb2a53f93dbd2968ef2e598746c9204f89fba1f0246fc671610a0591806e46a1346f77c40d910a47c5e20ffb23f003c04b648327a4ed98032c1965bd35bb0044f5344248f56fdb99aa61d6451d68e33489a83bffbe6573541b2da5f64681ea12090f778b2075374778810f73965fa3626a9d41f4df2f83f7c34658cec921b5a9bde49dd5007ec882b02adc514f81aa85898b5cc98e1b137733c0a8789b7f5648d2d231b80bf74978f25d61ce08a8abd11801fd8f995e066676307192ff7641f1cc6e0dee68565b8b22ac3889cd067bf732754a6b270af1044c6a8776811a4f6d8bd0477a9f516064201b920b92d7cd4dc7eee13e6b3eb3528a82f9abb3f388ebe6a8f871393461b73816ec54c99d604174bc5a6801de13908f86aea6a7d0fea107d682bcf1ec348b83872e6b8a316ecd02eb8f8dc86a609bf59a2dd03f1dfa4079436d55e24617be1a2854d008b2b2b1705e2078a7f3946318df1c24f6bf70d4b456eca286ec2b585b28262cc048a098c3e2d5f325a92bb36f691afdc14c822da1b116c9c1c07bb362eb0a04b78834c812134230ebf2044ac2e3c0e3ad00f848dc5010f3bf917ec2fc700b7bf26dacea8440620e04f90f4d97d6dd77cfde8a05c7d3930f1e5811fb8ec5c70964dcc8187ec90e32fdd6b64eec7586413b7d55bed65c4cce39a9b6c15e70e9da94e53fc904e6286f01f5b5562c94211befbc23507e01b2a3865e2f45b5d7b591f290087a5605b82495b4e393f31aa5b37211ec40241a746d903c5eebf117a4d3ddb0d00007b64cbc70e070000" +string(36%d) "%s" diff -Nru php8.2-8.2.7/ext/zlib/tests/gzinflate-bug42663.phpt php8.2-8.2.18/ext/zlib/tests/gzinflate-bug42663.phpt --- php8.2-8.2.7/ext/zlib/tests/gzinflate-bug42663.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/zlib/tests/gzinflate-bug42663.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -19,7 +19,7 @@ ?> --EXPECTF-- int(168890) -int(66743) +int(667%d) int(65535) Warning: gzinflate(): data error in %s on line %d diff -Nru php8.2-8.2.7/ext/zlib/tests/zlib_filter_deflate.phpt php8.2-8.2.18/ext/zlib/tests/zlib_filter_deflate.phpt --- php8.2-8.2.7/ext/zlib/tests/zlib_filter_deflate.phpt 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/ext/zlib/tests/zlib_filter_deflate.phpt 2024-04-09 18:46:23.000000000 +0000 @@ -13,5 +13,5 @@ fclose($fp); ?> ---EXPECT-- -HctBDoAgDETRq8zOjfEeHKOGATG0TRpC4u1Vdn/xX4IoxkVMxgP1zA4vkJVhULk9UGkM6TvSNolmxUNlNLePVQ45O3eINf0fsQxtCxwv +--EXPECTF-- +HctB%s diff -Nru php8.2-8.2.7/main/fastcgi.c php8.2-8.2.18/main/fastcgi.c --- php8.2-8.2.7/main/fastcgi.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/main/fastcgi.c 2024-04-09 18:46:23.000000000 +0000 @@ -1202,7 +1202,7 @@ req->keep = 0; return 0; } - return 0; + return 2; } else { return 0; } @@ -1470,7 +1470,8 @@ return -1; } req->hook.on_read(); - if (fcgi_read_request(req)) { + int read_result = fcgi_read_request(req); + if (read_result == 1) { #ifdef _WIN32 if (is_impersonate && !req->tcp) { pipe = (HANDLE)_get_osfhandle(req->fd); @@ -1481,7 +1482,7 @@ } #endif return req->fd; - } else { + } else if (read_result == 0) { fcgi_close(req, 1, 1); } } diff -Nru php8.2-8.2.7/main/main.c php8.2-8.2.18/main/main.c --- php8.2-8.2.7/main/main.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/main/main.c 2024-04-09 18:46:23.000000000 +0000 @@ -1350,19 +1350,25 @@ php_printf("%s
\n%s: %s in %s on line %" PRIu32 "
\n%s", STR_PRINT(prepend_string), error_type_str, ZSTR_VAL(buf), ZSTR_VAL(error_filename), error_lineno, STR_PRINT(append_string)); zend_string_free(buf); } else { - php_printf("%s
\n%s: %s in %s on line %" PRIu32 "
\n%s", STR_PRINT(prepend_string), error_type_str, ZSTR_VAL(message), ZSTR_VAL(error_filename), error_lineno, STR_PRINT(append_string)); + zval tmp; + ZVAL_STR(&tmp, message); + php_printf_unchecked("%s
\n%s: %Z in %s on line %" PRIu32 "
\n%s", STR_PRINT(prepend_string), error_type_str, &tmp, ZSTR_VAL(error_filename), error_lineno, STR_PRINT(append_string)); } } else { /* Write CLI/CGI errors to stderr if display_errors = "stderr" */ if ((!strcmp(sapi_module.name, "cli") || !strcmp(sapi_module.name, "cgi") || !strcmp(sapi_module.name, "phpdbg")) && PG(display_errors) == PHP_DISPLAY_ERRORS_STDERR ) { - fprintf(stderr, "%s: %s in %s on line %" PRIu32 "\n", error_type_str, ZSTR_VAL(message), ZSTR_VAL(error_filename), error_lineno); + fprintf(stderr, "%s: ", error_type_str); + fwrite(ZSTR_VAL(message), sizeof(char), ZSTR_LEN(message), stderr); + fprintf(stderr, " in %s on line %" PRIu32 "\n", ZSTR_VAL(error_filename), error_lineno); #ifdef PHP_WIN32 fflush(stderr); #endif } else { - php_printf("%s\n%s: %s in %s on line %" PRIu32 "\n%s", STR_PRINT(prepend_string), error_type_str, ZSTR_VAL(message), ZSTR_VAL(error_filename), error_lineno, STR_PRINT(append_string)); + zval tmp; + ZVAL_STR(&tmp, message); + php_printf_unchecked("%s\n%s: %Z in %s on line %" PRIu32 "\n%s", STR_PRINT(prepend_string), error_type_str, &tmp, ZSTR_VAL(error_filename), error_lineno, STR_PRINT(append_string)); } } } @@ -1600,15 +1606,24 @@ static ZEND_COLD void php_message_handler_for_zend(zend_long message, const void *data) { switch (message) { - case ZMSG_FAILED_INCLUDE_FOPEN: - php_error_docref("function.include", E_WARNING, "Failed opening '%s' for inclusion (include_path='%s')", php_strip_url_passwd((char *) data), STR_PRINT(PG(include_path))); + case ZMSG_FAILED_INCLUDE_FOPEN: { + char *tmp = estrdup((char *) data); + php_error_docref("function.include", E_WARNING, "Failed opening '%s' for inclusion (include_path='%s')", php_strip_url_passwd(tmp), STR_PRINT(PG(include_path))); + efree(tmp); break; - case ZMSG_FAILED_REQUIRE_FOPEN: - zend_throw_error(NULL, "Failed opening required '%s' (include_path='%s')", php_strip_url_passwd((char *) data), STR_PRINT(PG(include_path))); + } + case ZMSG_FAILED_REQUIRE_FOPEN: { + char *tmp = estrdup((char *) data); + zend_throw_error(NULL, "Failed opening required '%s' (include_path='%s')", php_strip_url_passwd(tmp), STR_PRINT(PG(include_path))); + efree(tmp); break; - case ZMSG_FAILED_HIGHLIGHT_FOPEN: - php_error_docref(NULL, E_WARNING, "Failed opening '%s' for highlighting", php_strip_url_passwd((char *) data)); + } + case ZMSG_FAILED_HIGHLIGHT_FOPEN: { + char *tmp = estrdup((char *) data); + php_error_docref(NULL, E_WARNING, "Failed opening '%s' for highlighting", php_strip_url_passwd(tmp)); + efree(tmp); break; + } case ZMSG_MEMORY_LEAK_DETECTED: case ZMSG_MEMORY_LEAK_REPEATED: #if ZEND_DEBUG diff -Nru php8.2-8.2.7/main/network.c php8.2-8.2.18/main/network.c --- php8.2-8.2.7/main/network.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/main/network.c 2024-04-09 18:46:23.000000000 +0000 @@ -835,8 +835,8 @@ case AF_INET: ((struct sockaddr_in *)sa)->sin_port = htons(port); socklen = sizeof(struct sockaddr_in); - if (bindto && strchr(bindto, ':')) { - /* IPV4 sock cannot bind to IPV6 address */ + if (bindto && (strchr(bindto, ':') || !strcmp(bindto, "0"))) { + /* IPV4 sock can not bind to IPV6 address */ bindto = NULL; } break; diff -Nru php8.2-8.2.7/main/php_config.h.in php8.2-8.2.18/main/php_config.h.in --- php8.2-8.2.7/main/php_config.h.in 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/main/php_config.h.in 2024-04-09 18:46:23.000000000 +0000 @@ -517,6 +517,10 @@ you don't. */ #undef HAVE_DECL_ARC4RANDOM_BUF +/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you + don't. */ +#undef HAVE_DECL_STRERROR_R + /* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. */ #undef HAVE_DECL_TZNAME @@ -692,10 +696,10 @@ /* Whether you have gcov */ #undef HAVE_GCOV -/* */ +/* Does gdImageCreateFromAvif work? */ #undef HAVE_GD_AVIF -/* */ +/* Does gdImageCreateFromBmp work? */ #undef HAVE_GD_BMP /* */ @@ -707,22 +711,22 @@ /* */ #undef HAVE_GD_GET_INTERPOLATION -/* */ +/* Does gdImageCreateFromJpeg work? */ #undef HAVE_GD_JPG /* */ #undef HAVE_GD_LIBVERSION -/* */ +/* Does gdImageCreateFromPng work? */ #undef HAVE_GD_PNG -/* */ +/* Does gdImageCreateFromTga work? */ #undef HAVE_GD_TGA -/* */ +/* Does gdImageCreateFromWebp work? */ #undef HAVE_GD_WEBP -/* */ +/* Does gdImageCreateFromXpm work? */ #undef HAVE_GD_XPM /* Define if you have the getaddrinfo function */ @@ -981,6 +985,9 @@ #undef HAVE_LDAP_WHOAMI_S /* */ +#undef HAVE_LIBATOMIC + +/* */ #undef HAVE_LIBAVIF /* */ @@ -1852,6 +1859,9 @@ /* whether _FPU_SETCW is present and usable */ #undef HAVE__FPU_SETCW +/* */ +#undef HAVE___ATOMIC_EXCHANGE_1 + /* iconv() is aliased to libiconv() in -liconv */ #undef ICONV_ALIASED_LIBICONV @@ -2103,6 +2113,9 @@ /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS +/* Define to 1 if strerror_r returns char *. */ +#undef STRERROR_R_CHAR_P + /* */ #undef TCADB_INCLUDE_FILE diff -Nru php8.2-8.2.7/main/php_streams.h php8.2-8.2.18/main/php_streams.h --- php8.2-8.2.7/main/php_streams.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/main/php_streams.h 2024-04-09 18:46:23.000000000 +0000 @@ -211,6 +211,9 @@ * PHP_STREAM_FCLOSE_XXX as appropriate */ uint8_t fclose_stdiocast:2; + /* whether stdio cast flushing is in progress */ + uint8_t fclose_stdiocast_flush_in_progress:1; + char mode[16]; /* "rwb" etc. ala stdio */ uint32_t flags; /* PHP_STREAM_FLAG_XXX */ diff -Nru php8.2-8.2.7/main/php_variables.c php8.2-8.2.18/main/php_variables.c --- php8.2-8.2.7/main/php_variables.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/main/php_variables.c 2024-04-09 18:46:23.000000000 +0000 @@ -28,7 +28,9 @@ /* for systems that need to override reading of environment variables */ void _php_import_environment_variables(zval *array_ptr); +void _php_load_environment_variables(zval *array_ptr); PHPAPI void (*php_import_environment_variables)(zval *array_ptr) = _php_import_environment_variables; +PHPAPI void (*php_load_environment_variables)(zval *array_ptr) = _php_load_environment_variables; PHPAPI void php_register_variable(const char *var, const char *strval, zval *track_vars_array) { @@ -87,6 +89,21 @@ php_register_variable_quick(var_name, var_name_len, value, symbol_table); } +/* Discard variable if mangling made it start with __Host-, where pre-mangling it did not start with __Host- + * Discard variable if mangling made it start with __Secure-, where pre-mangling it did not start with __Secure- */ +static bool php_is_forbidden_variable_name(const char *mangled_name, size_t mangled_name_len, const char *pre_mangled_name) +{ + if (mangled_name_len >= sizeof("__Host-")-1 && strncmp(mangled_name, "__Host-", sizeof("__Host-")-1) == 0 && strncmp(pre_mangled_name, "__Host-", sizeof("__Host-")-1) != 0) { + return true; + } + + if (mangled_name_len >= sizeof("__Secure-")-1 && strncmp(mangled_name, "__Secure-", sizeof("__Secure-")-1) == 0 && strncmp(pre_mangled_name, "__Secure-", sizeof("__Secure-")-1) != 0) { + return true; + } + + return false; +} + PHPAPI void php_register_variable_ex(const char *var_name, zval *val, zval *track_vars_array) { char *p = NULL; @@ -137,20 +154,6 @@ } var_len = p - var; - /* Discard variable if mangling made it start with __Host-, where pre-mangling it did not start with __Host- */ - if (strncmp(var, "__Host-", sizeof("__Host-")-1) == 0 && strncmp(var_name, "__Host-", sizeof("__Host-")-1) != 0) { - zval_ptr_dtor_nogc(val); - free_alloca(var_orig, use_heap); - return; - } - - /* Discard variable if mangling made it start with __Secure-, where pre-mangling it did not start with __Secure- */ - if (strncmp(var, "__Secure-", sizeof("__Secure-")-1) == 0 && strncmp(var_name, "__Secure-", sizeof("__Secure-")-1) != 0) { - zval_ptr_dtor_nogc(val); - free_alloca(var_orig, use_heap); - return; - } - if (var_len==0) { /* empty variable name, or variable name with a space in it */ zval_ptr_dtor_nogc(val); free_alloca(var_orig, use_heap); @@ -254,6 +257,12 @@ return; } } else { + if (php_is_forbidden_variable_name(index, index_len, var_name)) { + zval_ptr_dtor_nogc(val); + free_alloca(var_orig, use_heap); + return; + } + gpc_element_p = zend_symtable_str_find(symtable1, index, index_len); if (!gpc_element_p) { zval tmp; @@ -291,6 +300,12 @@ zval_ptr_dtor_nogc(val); } } else { + if (php_is_forbidden_variable_name(index, index_len, var_name)) { + zval_ptr_dtor_nogc(val); + free_alloca(var_orig, use_heap); + return; + } + zend_ulong idx; /* @@ -632,6 +647,11 @@ tsrm_env_unlock(); } +void _php_load_environment_variables(zval *array_ptr) +{ + php_import_environment_variables(array_ptr); +} + bool php_std_auto_global_callback(char *name, uint32_t name_len) { zend_printf("%s\n", name); diff -Nru php8.2-8.2.7/main/php_variables.h php8.2-8.2.18/main/php_variables.h --- php8.2-8.2.7/main/php_variables.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/main/php_variables.h 2024-04-09 18:46:23.000000000 +0000 @@ -32,6 +32,7 @@ BEGIN_EXTERN_C() void php_startup_auto_globals(void); extern PHPAPI void (*php_import_environment_variables)(zval *array_ptr); +extern PHPAPI void (*php_load_environment_variables)(zval *array_ptr); PHPAPI void php_register_variable(const char *var, const char *val, zval *track_vars_array); /* binary-safe version */ PHPAPI void php_register_variable_safe(const char *var, const char *val, size_t val_len, zval *track_vars_array); diff -Nru php8.2-8.2.7/main/php_version.h php8.2-8.2.18/main/php_version.h --- php8.2-8.2.7/main/php_version.h 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/main/php_version.h 2024-04-09 18:46:23.000000000 +0000 @@ -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 7 +#define PHP_RELEASE_VERSION 18 #define PHP_EXTRA_VERSION "" -#define PHP_VERSION "8.2.7" -#define PHP_VERSION_ID 80207 +#define PHP_VERSION "8.2.18" +#define PHP_VERSION_ID 80218 diff -Nru php8.2-8.2.7/main/streams/plain_wrapper.c php8.2-8.2.18/main/streams/plain_wrapper.c --- php8.2-8.2.7/main/streams/plain_wrapper.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/main/streams/plain_wrapper.c 2024-04-09 18:46:23.000000000 +0000 @@ -40,6 +40,7 @@ # include "win32/time.h" # include "win32/ioutil.h" # include "win32/readdir.h" +# include #endif #define php_stream_fopen_from_fd_int(fd, mode, persistent_id) _php_stream_fopen_from_fd_int((fd), (mode), (persistent_id) STREAMS_CC) @@ -353,11 +354,7 @@ if (data->fd >= 0) { #ifdef PHP_WIN32 - ssize_t bytes_written; - if (ZEND_SIZE_T_UINT_OVFL(count)) { - count = UINT_MAX; - } - bytes_written = _write(data->fd, buf, (unsigned int)count); + ssize_t bytes_written = _write(data->fd, buf, (unsigned int)(count > INT_MAX ? INT_MAX : count)); #else ssize_t bytes_written = write(data->fd, buf, count); #endif diff -Nru php8.2-8.2.7/main/streams/streams.c php8.2-8.2.18/main/streams/streams.c --- php8.2-8.2.7/main/streams/streams.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/main/streams/streams.c 2024-04-09 18:46:23.000000000 +0000 @@ -1133,8 +1133,15 @@ stream->ops->seek(stream, stream->position, SEEK_SET, &stream->position); } + /* See GH-13071: userspace stream is subject to the memory limit. */ + size_t chunk_size = count; + if (php_stream_is(stream, PHP_STREAM_IS_USERSPACE)) { + /* If the stream is unbuffered, we can only write one byte at a time. */ + chunk_size = stream->chunk_size; + } + while (count > 0) { - ssize_t justwrote = stream->ops->write(stream, buf, count); + ssize_t justwrote = stream->ops->write(stream, buf, MIN(chunk_size, count)); if (justwrote <= 0) { /* If we already successfully wrote some bytes and a write error occurred * later, report the successfully written bytes. */ @@ -1294,8 +1301,13 @@ PHPAPI int _php_stream_seek(php_stream *stream, zend_off_t offset, int whence) { if (stream->fclose_stdiocast == PHP_STREAM_FCLOSE_FOPENCOOKIE) { - /* flush to commit data written to the fopencookie FILE* */ - fflush(stream->stdiocast); + /* flush can call seek internally so we need to prevent an infinite loop */ + if (!stream->fclose_stdiocast_flush_in_progress) { + stream->fclose_stdiocast_flush_in_progress = 1; + /* flush to commit data written to the fopencookie FILE* */ + fflush(stream->stdiocast); + stream->fclose_stdiocast_flush_in_progress = 0; + } } /* handle the case where we are in the buffer */ diff -Nru php8.2-8.2.7/main/streams/userspace.c php8.2-8.2.18/main/streams/userspace.c --- php8.2-8.2.7/main/streams/userspace.c 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/main/streams/userspace.c 2024-04-09 18:46:23.000000000 +0000 @@ -304,6 +304,12 @@ 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); @@ -341,6 +347,8 @@ us = emalloc(sizeof(*us)); us->wrapper = uwrap; + /* call_method_if_exists() may unregister the stream wrapper. Hold on to it. */ + GC_ADDREF(us->wrapper->resource); user_stream_create_object(uwrap, context, &us->object); if (Z_TYPE(us->object) == IS_UNDEF) { @@ -376,8 +384,6 @@ /* set wrapper data to be a reference to our object */ ZVAL_COPY(&stream->wrapperdata, &us->object); - - GC_ADDREF(us->wrapper->resource); } else { php_stream_wrapper_log_error(wrapper, options, "\"%s::" USERSTREAM_OPEN "\" call failed", ZSTR_VAL(us->wrapper->ce->name)); @@ -387,6 +393,7 @@ if (stream == NULL) { zval_ptr_dtor(&us->object); ZVAL_UNDEF(&us->object); + zend_list_delete(us->wrapper->resource); efree(us); } zval_ptr_dtor(&zretval); @@ -429,6 +436,8 @@ us = emalloc(sizeof(*us)); us->wrapper = uwrap; + /* call_method_if_exists() may unregister the stream wrapper. Hold on to it. */ + GC_ADDREF(us->wrapper->resource); user_stream_create_object(uwrap, context, &us->object); if (Z_TYPE(us->object) == IS_UNDEF) { @@ -451,8 +460,6 @@ /* set wrapper data to be a reference to our object */ ZVAL_COPY(&stream->wrapperdata, &us->object); - - GC_ADDREF(us->wrapper->resource); } else { php_stream_wrapper_log_error(wrapper, options, "\"%s::" USERSTREAM_DIR_OPEN "\" call failed", ZSTR_VAL(us->wrapper->ce->name)); @@ -462,6 +469,7 @@ if (stream == NULL) { zval_ptr_dtor(&us->object); ZVAL_UNDEF(&us->object); + zend_list_delete(us->wrapper->resource); efree(us); } zval_ptr_dtor(&zretval); diff -Nru php8.2-8.2.7/pear/install-pear-nozlib.phar php8.2-8.2.18/pear/install-pear-nozlib.phar --- php8.2-8.2.7/pear/install-pear-nozlib.phar 2023-06-06 21:28:56.000000000 +0000 +++ php8.2-8.2.18/pear/install-pear-nozlib.phar 2024-04-09 18:46:23.000000000 +0000 @@ -1282,8 +1282,11 @@ require_once 'phar://install-pear-nozlib.phar/index.php'; -__HALT_COMPILER();Finstall-pear-nozlib.pharArchive/Tar.php-Y*ýa-Yµ~úmArchive_Tar-1.4.14.tarþ*ýaþÈ1(]mConsole/Getopt.phph5*ýah5¡¤¥mConsole_Getopt-1.4.3.tarz*ýazÀUÚ/m index.php]+*ýa]+ÙÓm OS/Guess.php"-*ýa"-#Þ5mPEAR-1.10.13.tarJ*ýaJ ·¬9mPEAR.phpK*ýaKø ±[mPEAR/ChannelFile.phpŸÇ*ýaŸÇ>P¹mPEAR/ChannelFile/Parser.phpö*ýaö"™Ä‚mPEAR/Command.phpú0*ýaú0ZKK”mPEAR/Command/Common.php; *ýa; ¼ ?mPEAR/Command/Install.phpÏÇ*ýaÏÇŒ)ˆÌmPEAR/Command/Install.xmló!*ýaó!jÇ¢mPEAR/Common.phpÔh*ýaÔhQÄdmPEAR/Config.phpl*ýal[%€mPEAR/Dependency2.phpÇÅ*ýaÇÅ*‚7mPEAR/DependencyDB.php³^*ýa³^Üé‹[mPEAR/Downloader.php*ýaÑ·…mPEAR/Downloader/Package.php²**ýa²*l ømPEAR/ErrorStack.php1„*ýa1„öÿâ mPEAR/Frontend.php*ýa#胡mPEAR/Frontend/CLI.phprd*ýardñ¤Ú¿mPEAR/Installer.phpr*ýartŠ*ýaŸ>úUÀbm!PEAR/PackageFile/Generator/v1.phpEÅ*ýaEÅ9!ñ-m!PEAR/PackageFile/Generator/v2.php8‚*ýa8‚ÿˆhmPEAR/PackageFile/Parser/v1.php©@*ýa©@´[ÅÑmPEAR/PackageFile/Parser/v2.php *ýa È(—mPEAR/PackageFile/v1.php"Æ*ýa"ÆÆ?&mPEAR/PackageFile/v2.phpd*ýad+Á‚m!PEAR/PackageFile/v2/Validator.php€L*ýa€Lv25mPEAR/Proxy.php*ýaÃ+™mPEAR/Registry.php+*ýa+ä×*m PEAR/REST.php´A*ýa´A%©émPEAR/REST/10.php€*ýa€ O€¿mPEAR/Start.php :*ýa :—¥ncmPEAR/Start/CLI.phpTS*ýaTS¿øc‡mPEAR/Task/Common.phpD*ýaDÀ9ÃmPEAR/Task/Postinstallscript.phpÂ9*ýaÂ9ØÜm|m"PEAR/Task/Postinstallscript/rw.phpA*ýaAÈë3DmPEAR/Task/Replace.php*ýaÝ1ÜbmPEAR/Task/Replace/rw.php<*ýa<ïïºmPEAR/Task/Unixeol.php$ *ýa$ TÏmPEAR/Task/Unixeol/rw.phpA*ýaAÁµ€±mPEAR/Task/Windowseol.php *ýa 5é½€mPEAR/Task/Windowseol/rw.phpN*ýaNRvÐmPEAR/Validate.php?V*ýa?V˜ðò%mPEAR/Validator/PECL.php^*ýa^Q—ƒ}mPEAR/XMLParser.phpI*ýaIàîsêmStructures/Graph.phpi*ýaiC}Ÿãm,Structures/Graph/Manipulator/AcyclicTest.phpð*ýað1ôÈÂm2Structures/Graph/Manipulator/TopologicalSorter.php*ýa¬v°?mStructures/Graph/Node.phpj+*ýaj+]#imStructures_Graph-1.1.1.tar6*ýa6ïŽjám -System.php Q*ýa Q¤Å%m XML/Util.phpÕ}*ýaÕ}Æ|­mXML_Util-1.4.5.tar@*ýa@*B¡kmºìeŸ>ïÝ(âm!PEAR/PackageFile/Generator/v1.phpEźìeEÅ!ò¿m!PEAR/PackageFile/Generator/v2.php8‚ºìe8‚=B +mPEAR/PackageFile/Parser/v1.php©@ºìe©@—­QmPEAR/PackageFile/Parser/v2.php ºìe KÈÉ"mPEAR/PackageFile/v1.php"ƺìe"ÆH5ümPEAR/PackageFile/v2.phpdºìed„(åm!PEAR/PackageFile/v2/Validator.php€Lºìe€Lo¼/ŠmPEAR/Proxy.phpêºìeê(PzÖmPEAR/Registry.php+ºìe+=T×Vm PEAR/REST.php´Aºìe´A :OØmPEAR/REST/10.php€ºìe€MúVümPEAR/Start.php :ºìe :—¥ncmPEAR/Start/CLI.phpTSºìeTS¿øc‡mPEAR/Task/Common.phpDºìeDmÕ˜¨mPEAR/Task/Postinstallscript.phpÂ9ºìeÂ9Àé•pm"PEAR/Task/Postinstallscript/rw.phpAºìeA›E¸mPEAR/Task/Replace.phpºìeü²ýmPEAR/Task/Replace/rw.php<ºìe<  LwmPEAR/Task/Unixeol.php$ ºìe$ ‰€Ž +mPEAR/Task/Unixeol/rw.phpAºìeA$CˆmPEAR/Task/Windowseol.php ºìe AÑ4mPEAR/Task/Windowseol/rw.phpNºìeN‚‰…mPEAR/Validate.php?Vºìe?V e5òmPEAR/Validator/PECL.php^ºìe^Ê)÷mPEAR/XMLParser.phpIºìeIÓñmStructures/Graph.phpiºìeiC}Ÿãm,Structures/Graph/Manipulator/AcyclicTest.phpðºìeð1ôÈÂm2Structures/Graph/Manipulator/TopologicalSorter.phpºìe¬v°?mStructures/Graph/Node.phpj+ºìej+]#imStructures_Graph-1.1.1.tar6ºìe6ïŽjám +System.php Qºìe Q<»Ó`m XML/Util.phpÕ}ºìeÕ}Æ|­mXML_Util-1.4.5.tar@ºìe@*B¡km 'phar://install-pear-nozlib.phar/Console_Getopt-1.4.3.tar', 'Structures_Graph' => 'phar://install-pear-nozlib.phar/Structures_Graph-1.1.1.tar', 'XML_Util' => 'phar://install-pear-nozlib.phar/XML_Util-1.4.5.tar', -'PEAR' => 'phar://install-pear-nozlib.phar/PEAR-1.10.13.tar', +'PEAR' => 'phar://install-pear-nozlib.phar/PEAR-1.10.15.tar', ); array_shift($argv); $debug = false; @@ -9185,7 +9188,7 @@ * @author Gregory Beaver * @copyright 1997-2020 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 0.1 */ @@ -9344,7 +9347,7 @@ return array(); } if (!@file_exists('/usr/bin/cpp') || !@is_executable('/usr/bin/cpp')) { - return $this-_parseFeaturesHeaderFile($features_header_file); + return $this->_parseFeaturesHeaderFile($features_header_file); } // no cpp return $this->_fromGlibCTest(); @@ -9492,8 +9495,8 @@ * c-basic-offset: 4 * End: */ -package.xml0000664000175000017500000016473514104576430013071 0ustar ashnazgashnazg - +package.xml0000664000175000017500000016741514573135002013063 0ustar ashnazgashnazg + PEAR pear.php.net PEAR Base System @@ -9587,10 +9590,10 @@ mj@php.net no - 2021-08-10 - + 2024-03-09 + - 1.10.13 + 1.10.15 1.10.1 @@ -9599,42 +9602,42 @@ New BSD License -* PR #114: unsupported protocol - use --force to continue -* PR #117: Add $this operator to _determineIfPowerpc calls +* PR #132: cleanup uneeded test +* PR #135: Fix PHP Deprecated: Calling get_class() without arguments - + - + - + - + - + - + - + - + - + @@ -9643,77 +9646,77 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -9722,115 +9725,115 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -9839,13 +9842,13 @@ - + - + @@ -9886,12 +9889,12 @@ - - + + - + @@ -10797,9 +10800,49 @@ * PR #117: Add $this operator to _determineIfPowerpc calls + + 2023-11-26 + + 1.10.14 + 1.10.1 + + + stable + stable + + New BSD License + +* PR #112: Put glue and pieces parameters to implode in correct order for PHP 7.4+ +* PR #121: Fix PHP bug 81653: Typo in install-pear-nozlib.phar +* PR #122: add %S EXPECTF capability +* PR #124: Fix: Creation of dynamic property PEAR_Error::$callback is deprecated +* PR #125: Fixed extension loaded check for pecl binaries +* PR #126: Remove -n option from pecl.bat for shared extensions +* PR #127: fix Using ${var} in strings is deprecated +* PR #128: fix lingering license references to PHP license +* PR #129: Exclude tests from composer classmap +* PR #131: fix private lastError name + + + + 2024-03-09 + + 1.10.15 + 1.10.1 + + + stable + stable + + New BSD License + +* PR #132: cleanup uneeded test +* PR #135: Fix PHP Deprecated: Calling get_class() without arguments + + -PEAR-1.10.13/OS/Guess.php0000664000175000017500000002637514104576430014417 0ustar ashnazgashnazg * @copyright 1997-2020 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 0.1 */ @@ -11046,7 +11089,7 @@ return array(); } if (!@file_exists('/usr/bin/cpp') || !@is_executable('/usr/bin/cpp')) { - return $this-_parseFeaturesHeaderFile($features_header_file); + return $this->_parseFeaturesHeaderFile($features_header_file); } // no cpp return $this->_fromGlibCTest(); @@ -11194,7 +11237,7 @@ * c-basic-offset: 4 * End: */ -PEAR-1.10.13/PEAR/ChannelFile/Parser.php0000644000175000017500000000325414104576430017130 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -11260,7 +11303,7 @@ $ret->setPackagefile($file, $archive); return $ret; } -}PEAR-1.10.13/PEAR/Command/Auth.xml0000644000175000017500000000231414104576430016010 0ustar ashnazgashnazg +}PEAR-1.10.15/PEAR/Command/Auth.xml0000644000175000017500000000231414573135002016006 0ustar ashnazgashnazg Connects and authenticates to remote server [Deprecated in favor of channel-login] doLogin @@ -11289,7 +11332,7 @@ connect to the remote server, it only deletes the stored username and password from your user configuration. -PEAR-1.10.13/PEAR/Command/Auth.php0000644000175000017500000000501314104576430015776 0ustar ashnazgashnazgPEAR-1.10.15/PEAR/Command/Auth.php0000644000175000017500000000501314573135002015774 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 0.1 * @deprecated since 1.8.0alpha1 @@ -11369,7 +11412,7 @@ parent::__construct($ui, $config); } } -PEAR-1.10.13/PEAR/Command/Build.xml0000644000175000017500000000060414104576430016146 0ustar ashnazgashnazg +PEAR-1.10.15/PEAR/Command/Build.xml0000664000175000017500000000060414573135002016146 0ustar ashnazgashnazg Build an Extension From C Source doBuild @@ -11383,7 +11426,7 @@ [package.xml] Builds one or more extensions contained in a package. -PEAR-1.10.13/PEAR/Command/Build.php0000644000175000017500000000512314104576430016136 0ustar ashnazgashnazgPEAR-1.10.15/PEAR/Command/Build.php0000664000175000017500000000512314573135002016136 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 0.1 */ @@ -11474,7 +11517,7 @@ } } } -PEAR-1.10.13/PEAR/Command/Channels.xml0000644000175000017500000001017214104576430016643 0ustar ashnazgashnazg +PEAR-1.10.15/PEAR/Command/Channels.xml0000644000175000017500000001017214573135002016641 0ustar ashnazgashnazg List Available Channels doList @@ -11596,7 +11639,7 @@ remote server, it only deletes the stored username and password from your user configuration. -PEAR-1.10.13/PEAR/Command/Channels.php0000644000175000017500000010124514104576430016634 0ustar ashnazgashnazgPEAR-1.10.15/PEAR/Command/Channels.php0000664000175000017500000010124514573135002016634 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -12478,7 +12521,7 @@ return true; } } -PEAR-1.10.13/PEAR/Command/Common.php0000644000175000017500000002002614104576430016326 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 0.1 */ @@ -12750,7 +12793,7 @@ return $this->$func($command, $options, $params); } } -PEAR-1.10.13/PEAR/Command/Config.xml0000644000175000017500000000646614104576430016330 0ustar ashnazgashnazg +PEAR-1.10.15/PEAR/Command/Config.xml0000644000175000017500000000646614573135002016326 0ustar ashnazgashnazg Show All Settings doConfigShow @@ -12841,7 +12884,7 @@ and uninstall). -PEAR-1.10.13/PEAR/Command/Config.php0000644000175000017500000003615314104576430016313 0ustar ashnazgashnazgPEAR-1.10.15/PEAR/Command/Config.php0000664000175000017500000003615314573135002016313 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 0.1 */ @@ -13255,7 +13298,7 @@ return false; } } -PEAR-1.10.13/PEAR/Command/Install.xml0000644000175000017500000002076314104576430016525 0ustar ashnazgashnazg +PEAR-1.10.15/PEAR/Command/Install.xml0000664000175000017500000002076314573135002016525 0ustar ashnazgashnazg Install Package doInstall @@ -13534,7 +13577,7 @@ Run post-installation scripts in package <package>, if any exist. -PEAR-1.10.13/PEAR/Command/Install.php0000644000175000017500000014347314104576430016520 0ustar ashnazgashnazgPEAR-1.10.15/PEAR/Command/Install.php0000664000175000017500000014347314573135002016520 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 0.1 */ @@ -14807,7 +14850,7 @@ return $ret; } } -PEAR-1.10.13/PEAR/Command/Mirror.xml0000644000175000017500000000115114104576430016357 0ustar ashnazgashnazg +PEAR-1.10.15/PEAR/Command/Mirror.xml0000644000175000017500000000115114573135002016355 0ustar ashnazgashnazg Downloads each available package from the default channel doDownloadAll @@ -14824,7 +14867,7 @@ and downloads them to current working directory. Note: only packages within preferred_state ({config preferred_state}) will be downloaded -PEAR-1.10.13/PEAR/Command/Mirror.php0000644000175000017500000001063614104576430016356 0ustar ashnazgashnazgPEAR-1.10.15/PEAR/Command/Mirror.php0000644000175000017500000001063614573135002016354 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.2.0 */ @@ -14962,7 +15005,7 @@ return true; } } -PEAR-1.10.13/PEAR/Command/Package.xml0000644000175000017500000001606614104576430016453 0ustar ashnazgashnazg +PEAR-1.10.15/PEAR/Command/Package.xml0000644000175000017500000001606614573135002016451 0ustar ashnazgashnazg Build Package doPackage @@ -15198,7 +15241,7 @@ used for automated conversion or learning the format. -PEAR-1.10.13/PEAR/Command/Package.php0000644000175000017500000011633414104576430016441 0ustar ashnazgashnazgPEAR-1.10.15/PEAR/Command/Package.php0000664000175000017500000011633414573135002016441 0ustar ashnazgashnazg +PEAR-1.10.15/PEAR/Command/Pickle.xml0000644000175000017500000000223314573135002016314 0ustar ashnazgashnazg Build PECL Package doPackage @@ -16355,7 +16398,7 @@ generate both package.xml. -PEAR-1.10.13/PEAR/Command/Pickle.php0000644000175000017500000003702714104576430016316 0ustar ashnazgashnazgPEAR-1.10.15/PEAR/Command/Pickle.php0000644000175000017500000003702714573135002016314 0ustar ashnazgashnazg * @copyright 2005-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.1 */ @@ -16775,7 +16818,7 @@ $gen->toPackageFile('.'); } } -PEAR-1.10.13/PEAR/Command/Registry.xml0000644000175000017500000000337614104576430016730 0ustar ashnazgashnazg +PEAR-1.10.15/PEAR/Command/Registry.xml0000644000175000017500000000337614573135002016726 0ustar ashnazgashnazg List Installed Packages In The Default Channel doList @@ -16832,7 +16875,7 @@ local package file, an URL to a package file, or the name of an installed package. -PEAR-1.10.13/PEAR/Command/Registry.php0000644000175000017500000013231514104576430016713 0ustar ashnazgashnazgPEAR-1.10.15/PEAR/Command/Registry.php0000664000175000017500000013231514573135002016713 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 0.1 */ @@ -17977,7 +18020,7 @@ $this->ui->outputData($data, 'package-info'); } } -PEAR-1.10.13/PEAR/Command/Remote.xml0000644000175000017500000000635714104576430016355 0ustar ashnazgashnazg +PEAR-1.10.15/PEAR/Command/Remote.xml0000644000175000017500000000635714573135002016353 0ustar ashnazgashnazg Information About Remote Packages doRemoteInfo @@ -18085,7 +18128,7 @@ parameter. -PEAR-1.10.13/PEAR/Command/Remote.php0000644000175000017500000007244214104576430016342 0ustar ashnazgashnazgPEAR-1.10.15/PEAR/Command/Remote.php0000664000175000017500000007244214573135002016342 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 0.1 */ @@ -18894,7 +18937,7 @@ return $num; } } -PEAR-1.10.13/PEAR/Command/Test.xml0000644000175000017500000000315114104576430016026 0ustar ashnazgashnazg +PEAR-1.10.15/PEAR/Command/Test.xml0000644000175000017500000000315114573135002016024 0ustar ashnazgashnazg Run Regression Tests doRunTests @@ -18947,7 +18990,7 @@ [testfile|dir ...] Run regression tests with PHP's regression testing script (run-tests.php). -PEAR-1.10.13/PEAR/Command/Test.php0000644000175000017500000002755014104576430016026 0ustar ashnazgashnazgPEAR-1.10.15/PEAR/Command/Test.php0000644000175000017500000002755014573135002016024 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 0.1 */ @@ -19290,7 +19333,7 @@ return $this->raiseError('Some tests failed'); } } -PEAR-1.10.13/PEAR/Downloader/Package.php0000644000175000017500000022465714104576430017171 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -21271,7 +21314,7 @@ return $info; } } -PEAR-1.10.13/PEAR/Frontend/CLI.php0000644000175000017500000006211514104576430015713 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 0.1 */ @@ -22021,7 +22064,7 @@ print $text; } } -PEAR-1.10.13/PEAR/Installer/Role/Common.php0000644000175000017500000001410714104576430017611 0ustar ashnazgashnazg * @copyright 1997-2006 The PHP Group * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -22194,7 +22237,7 @@ } } ?> -PEAR-1.10.13/PEAR/Installer/Role/Cfg.xml0000644000175000017500000000064514104576430017073 0ustar ashnazgashnazg +PEAR-1.10.15/PEAR/Installer/Role/Cfg.xml0000644000175000017500000000064514573135002017071 0ustar ashnazgashnazg php extsrc extbin @@ -22208,7 +22251,7 @@ -PEAR-1.10.13/PEAR/Installer/Role/Cfg.php0000644000175000017500000000757714104576430017075 0ustar ashnazgashnazgPEAR-1.10.15/PEAR/Installer/Role/Cfg.php0000644000175000017500000000757714573135002017073 0ustar ashnazgashnazg * @copyright 2007-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.7.0 */ @@ -22312,7 +22355,7 @@ return $test; } -}PEAR-1.10.13/PEAR/Installer/Role/Data.xml0000644000175000017500000000062214104576430017240 0ustar ashnazgashnazg +}PEAR-1.10.15/PEAR/Installer/Role/Data.xml0000644000175000017500000000062214573135002017236 0ustar ashnazgashnazg php extsrc extbin @@ -22326,7 +22369,7 @@ -PEAR-1.10.13/PEAR/Installer/Role/Data.php0000644000175000017500000000141714104576430017232 0ustar ashnazgashnazgPEAR-1.10.15/PEAR/Installer/Role/Data.php0000644000175000017500000000141714573135002017230 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ class PEAR_Installer_Role_Data extends PEAR_Installer_Role_Common {} -?>PEAR-1.10.13/PEAR/Installer/Role/Doc.xml0000644000175000017500000000062114104576430017073 0ustar ashnazgashnazg +?>PEAR-1.10.15/PEAR/Installer/Role/Doc.xml0000644000175000017500000000062114573135002017071 0ustar ashnazgashnazg php extsrc extbin @@ -22366,7 +22409,7 @@ -PEAR-1.10.13/PEAR/Installer/Role/Doc.php0000644000175000017500000000141514104576430017064 0ustar ashnazgashnazgPEAR-1.10.15/PEAR/Installer/Role/Doc.php0000644000175000017500000000141514573135002017062 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ class PEAR_Installer_Role_Doc extends PEAR_Installer_Role_Common {} -?>PEAR-1.10.13/PEAR/Installer/Role/Ext.xml0000644000175000017500000000050214104576430017124 0ustar ashnazgashnazg +?>PEAR-1.10.15/PEAR/Installer/Role/Ext.xml0000644000175000017500000000050214573135002017122 0ustar ashnazgashnazg extbin zendextbin 1 @@ -22403,7 +22446,7 @@ 1 -PEAR-1.10.13/PEAR/Installer/Role/Ext.php0000644000175000017500000000141514104576430017117 0ustar ashnazgashnazgPEAR-1.10.15/PEAR/Installer/Role/Ext.php0000644000175000017500000000141514573135002017115 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ class PEAR_Installer_Role_Ext extends PEAR_Installer_Role_Common {} -?>PEAR-1.10.13/PEAR/Installer/Role/Man.xml0000644000175000017500000000064514104576430017107 0ustar ashnazgashnazg +?>PEAR-1.10.15/PEAR/Installer/Role/Man.xml0000644000175000017500000000064514573135002017105 0ustar ashnazgashnazg php extsrc extbin @@ -22444,7 +22487,7 @@ -PEAR-1.10.13/PEAR/Installer/Role/Man.php0000644000175000017500000000144514104576430017075 0ustar ashnazgashnazg * @copyright 2011 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.10.0 */ class PEAR_Installer_Role_Man extends PEAR_Installer_Role_Common {} ?> -PEAR-1.10.13/PEAR/Installer/Role/Php.xml0000644000175000017500000000065514104576430017124 0ustar ashnazgashnazg +PEAR-1.10.15/PEAR/Installer/Role/Php.xml0000644000175000017500000000065514573135002017122 0ustar ashnazgashnazg php extsrc extbin @@ -22486,7 +22529,7 @@ -PEAR-1.10.13/PEAR/Installer/Role/Php.php0000644000175000017500000000141514104576430017106 0ustar ashnazgashnazgPEAR-1.10.15/PEAR/Installer/Role/Php.php0000644000175000017500000000141514573135002017104 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ class PEAR_Installer_Role_Php extends PEAR_Installer_Role_Common {} -?>PEAR-1.10.13/PEAR/Installer/Role/Script.xml0000644000175000017500000000066014104576430017635 0ustar ashnazgashnazg +?>PEAR-1.10.15/PEAR/Installer/Role/Script.xml0000644000175000017500000000066014573135002017633 0ustar ashnazgashnazg php extsrc extbin @@ -22526,7 +22569,7 @@ 1 -PEAR-1.10.13/PEAR/Installer/Role/Script.php0000644000175000017500000000142314104576430017622 0ustar ashnazgashnazgPEAR-1.10.15/PEAR/Installer/Role/Script.php0000644000175000017500000000142314573135002017620 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ class PEAR_Installer_Role_Script extends PEAR_Installer_Role_Common {} -?>PEAR-1.10.13/PEAR/Installer/Role/Src.xml0000644000175000017500000000044214104576430017116 0ustar ashnazgashnazg +?>PEAR-1.10.15/PEAR/Installer/Role/Src.xml0000644000175000017500000000044214573135002017114 0ustar ashnazgashnazg extsrc zendextsrc 1 @@ -22563,7 +22606,7 @@ -PEAR-1.10.13/PEAR/Installer/Role/Src.php0000644000175000017500000000156214104576430017111 0ustar ashnazgashnazgPEAR-1.10.15/PEAR/Installer/Role/Src.php0000644000175000017500000000156214573135002017107 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -22595,7 +22638,7 @@ $installer->source_files++; } } -?>PEAR-1.10.13/PEAR/Installer/Role/Test.xml0000644000175000017500000000062214104576430017306 0ustar ashnazgashnazg +?>PEAR-1.10.15/PEAR/Installer/Role/Test.xml0000644000175000017500000000062214573135002017304 0ustar ashnazgashnazg php extsrc extbin @@ -22609,7 +22652,7 @@ -PEAR-1.10.13/PEAR/Installer/Role/Test.php0000644000175000017500000000141714104576430017300 0ustar ashnazgashnazgPEAR-1.10.15/PEAR/Installer/Role/Test.php0000644000175000017500000000141714573135002017276 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ class PEAR_Installer_Role_Test extends PEAR_Installer_Role_Common {} -?>PEAR-1.10.13/PEAR/Installer/Role/Www.xml0000644000175000017500000000064414104576430017157 0ustar ashnazgashnazg +?>PEAR-1.10.15/PEAR/Installer/Role/Www.xml0000644000175000017500000000064414573135002017155 0ustar ashnazgashnazg php extsrc extbin @@ -22649,7 +22692,7 @@ -PEAR-1.10.13/PEAR/Installer/Role/Www.php0000644000175000017500000000141114104576430017137 0ustar ashnazgashnazgPEAR-1.10.15/PEAR/Installer/Role/Www.php0000644000175000017500000000141114573135002017135 0ustar ashnazgashnazg * @copyright 2007-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.7.0 */ class PEAR_Installer_Role_Www extends PEAR_Installer_Role_Common {} -?>PEAR-1.10.13/PEAR/Installer/Role.php0000644000175000017500000001727414104576430016371 0ustar ashnazgashnazgPEAR-1.10.15/PEAR/Installer/Role.php0000664000175000017500000001727414573135002016371 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -22940,7 +22983,7 @@ PEAR_Installer_Role::getValidRoles('****', true); return true; } -}PEAR-1.10.13/PEAR/PackageFile/Generator/v1.php0000644000175000017500000014226114104576430020135 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -22987,7 +23030,7 @@ function getPackagerVersion() { - return '1.10.13'; + return '1.10.15'; } /** @@ -23138,7 +23181,7 @@ ); $ret = "\n"; $ret .= "\n"; - $ret .= "\n" . + $ret .= "\n" . " $pkginfo[package]"; if (isset($pkginfo['extends'])) { $ret .= "\n$pkginfo[extends]"; @@ -24226,7 +24269,7 @@ } } ?> -PEAR-1.10.13/PEAR/PackageFile/Generator/v2.php0000644000175000017500000010071114104576430020130 0ustar ashnazgashnazgoptions['beautifyFilelist'] = true; } - $arr['attribs']['packagerversion'] = '1.10.13'; + $arr['attribs']['packagerversion'] = '1.10.15'; if ($this->serialize($arr, $options)) { return $this->_serializedData . "\n"; } @@ -25112,7 +25155,7 @@ return $tag; } } -PEAR-1.10.13/PEAR/PackageFile/Parser/v1.php0000644000175000017500000004020714104576430017440 0ustar ashnazgashnazgPEAR-1.10.13/PEAR/PackageFile/Parser/v2.php0000644000175000017500000000611014104576430017434 0ustar ashnazgashnazgPEAR-1.10.15/PEAR/PackageFile/Parser/v2.php0000644000175000017500000000611014573135002017432 0ustar ashnazgashnazgsetPackagefile($file, $archive); return $ret; } -}PEAR-1.10.13/PEAR/PackageFile/v2/rw.php0000644000175000017500000017313714104576430016646 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a8 */ @@ -27282,7 +27325,7 @@ { unset($this->_packageInfo['changelog']); } -}PEAR-1.10.13/PEAR/PackageFile/v2/Validator.php0000644000175000017500000024620014104576430020133 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a8 * @access private @@ -27395,8 +27438,8 @@ isset($test['dependencies']['required']) && isset($test['dependencies']['required']['pearinstaller']) && isset($test['dependencies']['required']['pearinstaller']['min']) && - '1.10.13' != '@package' . '_version@' && - version_compare('1.10.13', + '1.10.15' != '@package' . '_version@' && + version_compare('1.10.15', $test['dependencies']['required']['pearinstaller']['min'], '<') ) { $this->_pearVersionTooLow($test['dependencies']['required']['pearinstaller']['min']); @@ -28634,7 +28677,7 @@ $this->_stack->push(__FUNCTION__, 'error', array('version' => $version), 'This package.xml requires PEAR version %version% to parse properly, we are ' . - 'version 1.10.13'); + 'version 1.10.15'); } function _invalidTagOrder($oktags, $actual, $root) @@ -29417,7 +29460,7 @@ return $providesret; } } -PEAR-1.10.13/PEAR/PackageFile/v1.php0000644000175000017500000014266314104576430016215 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -31019,7 +31062,7 @@ // }}} } ?> -PEAR-1.10.13/PEAR/PackageFile/v2.php0000644000175000017500000021050014104576430016200 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -33078,7 +33121,7 @@ } } ?> -PEAR-1.10.13/PEAR/REST/10.php0000644000175000017500000007762114104576430014532 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a12 */ @@ -33948,7 +33991,7 @@ } } } -PEAR-1.10.13/PEAR/REST/11.php0000644000175000017500000002575114104576430014530 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.3 */ @@ -34288,7 +34331,7 @@ } } ?> -PEAR-1.10.13/PEAR/REST/13.php0000644000175000017500000003542714104576430014533 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a12 */ @@ -34683,7 +34726,7 @@ return $ret; } -}PEAR-1.10.13/PEAR/Task/Postinstallscript/rw.php0000644000175000017500000001403414104576430020615 0ustar ashnazgashnazg - read/write version * @@ -34708,7 +34751,7 @@ * @author Greg Beaver * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a10 */ @@ -34865,7 +34908,7 @@ ); } } -PEAR-1.10.13/PEAR/Task/Replace/rw.php0000644000175000017500000000302714104576430016427 0ustar ashnazgashnazg - read/write version * @@ -34890,7 +34933,7 @@ * @author Greg Beaver * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a10 */ @@ -34924,7 +34967,7 @@ return $this->_params; } } -PEAR-1.10.13/PEAR/Task/Unixeol/rw.php0000644000175000017500000000243414104576430016500 0ustar ashnazgashnazg - read/write version * @@ -34949,7 +34992,7 @@ * @author Greg Beaver * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a10 */ @@ -34979,7 +35022,7 @@ } } ?> -PEAR-1.10.13/PEAR/Task/Windowseol/rw.php0000644000175000017500000000245114104576430017206 0ustar ashnazgashnazg - read/write version * @@ -35005,7 +35048,7 @@ * @author Greg Beaver * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a10 */ @@ -35035,7 +35078,7 @@ } } ?> -PEAR-1.10.13/PEAR/Task/Common.php0000644000175000017500000001403714104576430015657 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 * @abstract @@ -35242,7 +35285,7 @@ return PEAR::raiseError($msg, $code); } } -PEAR-1.10.13/PEAR/Task/Postinstallscript.php0000644000175000017500000003457014104576430020174 0ustar ashnazgashnazg * @@ -35271,7 +35314,7 @@ * @author Greg Beaver * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -35592,7 +35635,7 @@ { } } -PEAR-1.10.13/PEAR/Task/Replace.php0000644000175000017500000001537114104576430016004 0ustar ashnazgashnazg * @@ -35617,7 +35660,7 @@ * @author Greg Beaver * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -35778,7 +35821,7 @@ return $contents; } } -PEAR-1.10.13/PEAR/Task/Unixeol.php0000644000175000017500000000437714104576430016060 0ustar ashnazgashnazg * @@ -35803,7 +35846,7 @@ * @author Greg Beaver * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -35857,7 +35900,7 @@ return preg_replace("/\r\n|\n\r|\r|\n/", "\n", $contents); } } -PEAR-1.10.13/PEAR/Task/Windowseol.php0000644000175000017500000000436314104576430016562 0ustar ashnazgashnazg * @@ -35883,7 +35926,7 @@ * @author Greg Beaver * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -35937,7 +35980,7 @@ return preg_replace("/\r\n|\n\r|\r|\n/", "\r\n", $contents); } } -PEAR-1.10.13/PEAR/Validator/PECL.php0000644000175000017500000000407114104576430016172 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a5 */ @@ -35998,7 +36041,7 @@ return $ret; } } -?>PEAR-1.10.13/PEAR/Builder.php0000664000175000017500000004477314104576430015127 0ustar ashnazgashnazgPEAR-1.10.15/PEAR/Builder.php0000664000175000017500000004477314573135002015125 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since PHP 4.0.2 * @see http://pear.php.net/manual/en/core.ppm.pear-builder.php @@ -36445,7 +36488,7 @@ if (!file_exists($build_dir) || !is_dir($build_dir) || !chdir($build_dir)) { return $this->raiseError("could not chdir to $build_dir"); } - putenv('PHP_PEAR_VERSION=1.10.13'); + putenv('PHP_PEAR_VERSION=1.10.15'); foreach ($to_run as $cmd) { $err = $this->_runCommand($cmd, $callback); if (PEAR::isError($err)) { @@ -36557,7 +36600,7 @@ return parent::log($level, $msg, $append_crlf); } } -PEAR-1.10.13/PEAR/ChannelFile.php0000644000175000017500000014323414104576430015677 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -38117,7 +38160,7 @@ return time(); } } -PEAR-1.10.13/PEAR/Command.php0000644000175000017500000003021314104576430015075 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 0.1 */ @@ -38505,7 +38548,7 @@ return false; } // }}} -}PEAR-1.10.13/PEAR/Common.php0000644000175000017500000006354214104576430014762 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 * @deprecated This class will disappear, and its components will be spread @@ -39343,7 +39386,7 @@ require_once 'PEAR/Config.php'; require_once 'PEAR/PackageFile.php'; -PEAR-1.10.13/PEAR/Config.php0000644000175000017500000020755114104576430014737 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 0.1 */ @@ -40072,7 +40111,7 @@ $t_conf = new PEAR_Config($user_file, $system_file, false, $strict); if ($t_conf->_errorsFound > 0) { - return $t_conf->lastError; + return $t_conf->_lastError; } $GLOBALS['_PEAR_Config_instance'] = &$t_conf; @@ -40120,7 +40159,7 @@ } $this->_errorsFound++; - $this->lastError = $data; + $this->_lastError = $data; return $data; } @@ -40273,7 +40312,7 @@ } $this->_errorsFound++; - $this->lastError = $data; + $this->_lastError = $data; return $data; } @@ -41474,7 +41513,7 @@ } } } -PEAR-1.10.13/PEAR/DependencyDB.php0000664000175000017500000005715114104576430016017 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -42241,7 +42280,7 @@ } } } -PEAR-1.10.13/PEAR/Dependency2.php0000644000175000017500000014241614104576430015670 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -42783,7 +42822,7 @@ */ function getPEARVersion() { - return '1.10.13'; + return '1.10.15'; } function validatePearinstallerDependency($dep) @@ -43598,7 +43637,7 @@ $this->_currentPackage, true))); } } -PEAR-1.10.13/PEAR/Downloader.php0000664000175000017500000020073114104576430015623 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.3.0 */ @@ -45236,7 +45275,7 @@ } $request .= $ifmodifiedsince . - "User-Agent: PEAR/1.10.13/PHP/" . PHP_VERSION . "\r\n"; + "User-Agent: PEAR/1.10.15/PHP/" . PHP_VERSION . "\r\n"; if ($object !== null) { // only pass in authentication for non-static calls $username = $config->get('username', null, $channel); @@ -45365,7 +45404,7 @@ return $dest_file; } } -PEAR-1.10.13/PEAR/ErrorStack.php0000644000175000017500000010201414104576430015575 0ustar ashnazgashnazg * @author Greg Beaver - * @version 1.10.13 + * @version 1.10.15 * @package PEAR_ErrorStack * @category Debugging * @copyright 2004-2008 Greg Beaver @@ -46344,7 +46383,7 @@ $stack = &PEAR_ErrorStack::singleton('PEAR_ErrorStack'); $stack->pushCallback(array('PEAR_ErrorStack', '_handleError')); ?> -PEAR-1.10.13/PEAR/Exception.php0000644000175000017500000003315514104576430015465 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.3.3 * @@ -46731,7 +46770,7 @@ } return $causeMsg . $this->getTraceAsString(); } -}PEAR-1.10.13/PEAR/Frontend.php0000644000175000017500000001477214104576430015312 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -46954,7 +46993,7 @@ { } } -PEAR-1.10.13/PEAR/Installer.php0000644000175000017500000021066614104576430015470 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 0.1 */ @@ -48227,7 +48266,7 @@ if (count($test)) { $msg = "$channel/$pkgname: conflicting files found:\n"; $longest = max(array_map("strlen", array_keys($test))); - $fmt = "%${longest}s (%s)\n"; + $fmt = "%{$longest}s (%s)\n"; foreach ($test as $file => $info) { if (!is_array($info)) { $info = array('pear.php.net', $info); @@ -48485,11 +48524,11 @@ foreach ($built as $ext) { $bn = basename($ext['file']); list($_ext_name, $_ext_suff) = explode('.', $bn); - if ($_ext_suff == '.so' || $_ext_suff == '.dll') { + if ($_ext_suff == 'so' || $_ext_suff == 'dll') { if (extension_loaded($_ext_name)) { - $this->raiseError("Extension '$_ext_name' already loaded. " . - 'Please unload it in your php.ini file ' . - 'prior to install or upgrade'); + return $this->raiseError("Extension '$_ext_name' already loaded. " . + 'Please unload it in your php.ini file ' . + 'prior to install or upgrade'); } $role = 'ext'; } else { @@ -48761,7 +48800,7 @@ // }}} } -PEAR-1.10.13/PEAR/PackageFile.php0000644000175000017500000003674614104576430015673 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -49252,7 +49291,7 @@ return $info; } } -PEAR-1.10.13/PEAR/Packager.php0000644000175000017500000001704014104576430015237 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 0.1 */ @@ -49451,7 +49490,7 @@ return $dest_package; } -}PEAR-1.10.13/PEAR/Proxy.php0000644000175000017500000001302214104576430014637 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -52032,7 +52071,7 @@ return $ret; } } -PEAR-1.10.13/PEAR/REST.php0000644000175000017500000004050514104576430014301 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -52417,7 +52456,7 @@ } $request .= $ifmodifiedsince . - "User-Agent: PEAR/1.10.13/PHP/" . PHP_VERSION . "\r\n"; + "User-Agent: PEAR/1.10.15/PHP/" . PHP_VERSION . "\r\n"; $username = $this->config->get('username', null, $channel); $password = $this->config->get('password', null, $channel); @@ -52506,7 +52545,7 @@ return $data; } } -PEAR-1.10.13/PEAR/RunTest.php0000644000175000017500000010622314104576430015130 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.3.3 */ @@ -53020,6 +53059,7 @@ $wanted_re = preg_quote($wanted_re, '/'); // Stick to basics $wanted_re = str_replace("%s", ".+?", $wanted_re); //not greedy + $wanted_re = str_replace("%S", ".*?", $wanted_re); //not greedy $wanted_re = str_replace("%i", "[+\-]?[0-9]+", $wanted_re); $wanted_re = str_replace("%d", "[0-9]+", $wanted_re); $wanted_re = str_replace("%x", "[0-9a-fA-F]+", $wanted_re); @@ -53478,7 +53518,7 @@ } } } -PEAR-1.10.13/PEAR/Validate.php0000644000175000017500000005276514104576430015270 0ustar ashnazgashnazg * @copyright 1997-2009 The Authors * @license http://opensource.org/licenses/bsd-license.php New BSD License - * @version Release: 1.10.13 + * @version Release: 1.10.15 * @link http://pear.php.net/package/PEAR * @since Class available since Release 1.4.0a1 */ @@ -54102,7 +54142,7 @@ { return true; } -}PEAR-1.10.13/PEAR/XMLParser.php0000644000175000017500000001537714104576430015352 0ustar ashnazgashnazg_dataStack[$this->_depth] .= $cdata; } -}PEAR-1.10.13/scripts/pear.bat0000755000175000017500000001036114104576430015372 0ustar ashnazgashnazg@ECHO OFF +}PEAR-1.10.15/scripts/pear.bat0000755000175000017500000001036114573135002015370 0ustar ashnazgashnazg@ECHO OFF REM ---------------------------------------------------------------------- REM PHP version 5 @@ -54458,25 +54498,24 @@ :RUN "%PHP_PEAR_PHP_BIN%" -C -d date.timezone=UTC -d output_buffering=1 -d safe_mode=0 -d open_basedir="" -d auto_prepend_file="" -d auto_append_file="" -d variables_order=EGPCS -d register_argc_argv="On" -d "include_path='%PHP_PEAR_INSTALL_DIR%'" -f "%PHP_PEAR_INSTALL_DIR%\pearcmd.php" -- %1 %2 %3 %4 %5 %6 %7 %8 %9 :END -@ECHO ONPEAR-1.10.13/scripts/peardev.bat0000644000175000017500000001113714104576430016070 0ustar ashnazgashnazg@ECHO OFF +@ECHO ONPEAR-1.10.15/scripts/peardev.bat0000664000175000017500000001105014573135002016062 0ustar ashnazgashnazg@ECHO OFF REM ---------------------------------------------------------------------- REM PHP version 5 REM ---------------------------------------------------------------------- REM Copyright (c) 1997-2004 The PHP Group REM ---------------------------------------------------------------------- -REM This source file is subject to version 3.0 of the PHP license, +REM This source file is subject to the New BSD License, REM that is bundled with this package in the file LICENSE, and is REM available at through the world-wide-web at -REM http://www.php.net/license/3_0.txt. -REM If you did not receive a copy of the PHP license and are unable to +REM http://opensource.org/licenses/bsd-license.php. +REM If you did not receive a copy of the New BSD License and are unable to REM obtain it through the world-wide-web, please send a note to REM license@php.net so we can mail you a copy immediately. REM ---------------------------------------------------------------------- REM Authors: Alexander Merz (alexmerz@php.net) REM ---------------------------------------------------------------------- REM -REM $Id: peardev.bat,v 1.6 2007-09-03 03:00:17 cellog Exp $ REM change this lines to match the paths of your system REM ------------------- @@ -54572,25 +54611,25 @@ :RUN "%PHP_PEAR_PHP_BIN%" -C -d date.timezone=UTC -d memory_limit="-1" -d safe_mode=0 -d register_argc_argv="On" -d auto_prepend_file="" -d auto_append_file="" -d variables_order=EGPCS -d open_basedir="" -d output_buffering=1 -d "include_path='%PHP_PEAR_INSTALL_DIR%'" -f "%PHP_PEAR_INSTALL_DIR%\pearcmd.php" -- %1 %2 %3 %4 %5 %6 %7 %8 %9 :END -@ECHO ONPEAR-1.10.13/scripts/pecl.bat0000644000175000017500000001103014104576430015355 0ustar ashnazgashnazg@ECHO OFF +@ECHO ON +PEAR-1.10.15/scripts/pecl.bat0000664000175000017500000001072114573135002015363 0ustar ashnazgashnazg@ECHO OFF REM ---------------------------------------------------------------------- REM PHP version 5 REM ---------------------------------------------------------------------- REM Copyright (c) 1997-2004 The PHP Group REM ---------------------------------------------------------------------- -REM This source file is subject to version 3.0 of the PHP license, +REM This source file is subject to the New BSD License, REM that is bundled with this package in the file LICENSE, and is REM available at through the world-wide-web at -REM http://www.php.net/license/3_0.txt. -REM If you did not receive a copy of the PHP license and are unable to +REM http://opensource.org/licenses/bsd-license.php. +REM If you did not receive a copy of the New BSD License and are unable to REM obtain it through the world-wide-web, please send a note to REM license@php.net so we can mail you a copy immediately. REM ---------------------------------------------------------------------- REM Authors: Alexander Merz (alexmerz@php.net) REM ---------------------------------------------------------------------- REM -REM Last updated 02/08/2004 ($Id$ is not replaced if the file is binary) REM change this lines to match the paths of your system REM ------------------- @@ -54684,9 +54723,10 @@ ECHO %PHP_PEAR_PHP_BIN% GOTO END :RUN -"%PHP_PEAR_PHP_BIN%" -C -n -d date.timezone=UTC -d output_buffering=1 -d safe_mode=0 -d "include_path='%PHP_PEAR_INSTALL_DIR%'" -d register_argc_argv="On" -d variables_order=EGPCS -f "%PHP_PEAR_INSTALL_DIR%\peclcmd.php" -- %1 %2 %3 %4 %5 %6 %7 %8 %9 +"%PHP_PEAR_PHP_BIN%" -C -d date.timezone=UTC -d output_buffering=1 -d safe_mode=0 -d "include_path='%PHP_PEAR_INSTALL_DIR%'" -d register_argc_argv="On" -d variables_order=EGPCS -f "%PHP_PEAR_INSTALL_DIR%\peclcmd.php" -- %1 %2 %3 %4 %5 %6 %7 %8 %9 :END -@ECHO ONPEAR-1.10.13/scripts/pear.sh0000755000175000017500000000140414104576430015234 0ustar ashnazgashnazg#!/bin/sh +@ECHO ON +PEAR-1.10.15/scripts/pear.sh0000775000175000017500000000140414573135002015234 0ustar ashnazgashnazg#!/bin/sh # first find which PHP binary to use if test "x$PHP_PEAR_PHP_BIN" != "x"; then @@ -54714,7 +54754,7 @@ fi exec $PHP -C -q $INCARG -d date.timezone=UTC -d output_buffering=1 -d variables_order=EGPCS -d open_basedir="" -d safe_mode=0 -d register_argc_argv="On" -d auto_prepend_file="" -d auto_append_file="" $INCDIR/pearcmd.php "$@" -PEAR-1.10.13/scripts/peardev.sh0000755000175000017500000000143114104576430015733 0ustar ashnazgashnazg#!/bin/sh +PEAR-1.10.15/scripts/peardev.sh0000755000175000017500000000143114573135002015731 0ustar ashnazgashnazg#!/bin/sh # first find which PHP binary to use if test "x$PHP_PEAR_PHP_BIN" != "x"; then @@ -54742,7 +54782,7 @@ fi exec $PHP -d date.timezone=UTC -d memory_limit="-1" -C -q $INCARG -d output_buffering=1 -d open_basedir="" -d safe_mode=0 -d register_argc_argv="On" -d auto_prepend_file="" -d variables_order=EGPCS -d auto_append_file="" $INCDIR/pearcmd.php "$@" -PEAR-1.10.13/scripts/pecl.sh0000755000175000017500000000130214104576430015225 0ustar ashnazgashnazg#!/bin/sh +PEAR-1.10.15/scripts/pecl.sh0000755000175000017500000000130214573135002015223 0ustar ashnazgashnazg#!/bin/sh # first find which PHP binary to use if test "x$PHP_PEAR_PHP_BIN" != "x"; then @@ -54770,7 +54810,7 @@ fi exec $PHP -C -q $INCARG -d date.timezone=UTC -d output_buffering=1 -d variables_order=EGPCS -d safe_mode=0 -d register_argc_argv="On" $INCDIR/peclcmd.php "$@" -PEAR-1.10.13/scripts/pearcmd.php0000664000175000017500000003476014104576430016107 0ustar ashnazgashnazg -PEAR-1.10.13/LICENSE0000644000175000017500000000270514104576430013271 0ustar ashnazgashnazgCopyright (c) 1997-2009, +PEAR-1.10.15/LICENSE0000644000175000017500000000270514573135002013267 0ustar ashnazgashnazgCopyright (c) 1997-2009, Stig Bakken , Gregory Beaver , Helgi Þormar Þorbjörnsson , @@ -55328,7 +55368,7 @@ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -PEAR-1.10.13/INSTALL0000644000175000017500000000417014104576430013313 0ustar ashnazgashnazgPEAR - The PEAR Installer +PEAR-1.10.15/INSTALL0000644000175000017500000000417014573135002013311 0ustar ashnazgashnazgPEAR - The PEAR Installer ========================= Installing the PEAR Installer. @@ -55380,9 +55420,7 @@ related issues. Happy PHPing, we hope PEAR will be a great tool for your development work! -PEAR-1.10.13/package.dtd0000644000175000017500000000647714104576430014366 0ustar ashnazgashnazg