re2 1.20.0 → 1.20.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1492) hide show
  1. package/.github/actions/linux-alpine-node-16/entrypoint.sh +2 -0
  2. package/.github/actions/linux-alpine-node-18/entrypoint.sh +3 -1
  3. package/.github/actions/linux-alpine-node-20/entrypoint.sh +3 -1
  4. package/.github/actions/linux-node-12/entrypoint.sh +2 -0
  5. package/.github/actions/linux-node-18/entrypoint.sh +3 -1
  6. package/.github/actions/linux-node-20/entrypoint.sh +3 -1
  7. package/README.md +2 -0
  8. package/binding.gyp +1 -0
  9. package/package.json +2 -2
  10. package/vendor/abseil-cpp/.clang-format +4 -0
  11. package/vendor/abseil-cpp/.github/ISSUE_TEMPLATE/00-bug_report.yml +53 -0
  12. package/vendor/abseil-cpp/.github/ISSUE_TEMPLATE/config.yml +5 -0
  13. package/vendor/abseil-cpp/ABSEIL_ISSUE_TEMPLATE.md +22 -0
  14. package/vendor/abseil-cpp/AUTHORS +6 -0
  15. package/vendor/abseil-cpp/BUILD.bazel +25 -0
  16. package/vendor/abseil-cpp/CMake/AbseilDll.cmake +809 -0
  17. package/vendor/abseil-cpp/CMake/AbseilHelpers.cmake +466 -0
  18. package/vendor/abseil-cpp/CMake/Googletest/CMakeLists.txt.in +14 -0
  19. package/vendor/abseil-cpp/CMake/Googletest/DownloadGTest.cmake +41 -0
  20. package/vendor/abseil-cpp/CMake/README.md +188 -0
  21. package/vendor/abseil-cpp/CMake/abslConfig.cmake.in +8 -0
  22. package/vendor/abseil-cpp/CMake/install_test_project/CMakeLists.txt +25 -0
  23. package/vendor/abseil-cpp/CMake/install_test_project/simple.cc +32 -0
  24. package/vendor/abseil-cpp/CMake/install_test_project/test.sh +112 -0
  25. package/vendor/abseil-cpp/CMakeLists.txt +239 -0
  26. package/vendor/abseil-cpp/CONTRIBUTING.md +141 -0
  27. package/vendor/abseil-cpp/FAQ.md +167 -0
  28. package/vendor/abseil-cpp/LICENSE +203 -0
  29. package/vendor/abseil-cpp/README.md +163 -0
  30. package/vendor/abseil-cpp/UPGRADES.md +17 -0
  31. package/vendor/abseil-cpp/WORKSPACE +62 -0
  32. package/vendor/abseil-cpp/absl/BUILD.bazel +125 -0
  33. package/vendor/abseil-cpp/absl/CMakeLists.txt +44 -0
  34. package/vendor/abseil-cpp/absl/abseil.podspec.gen.py +229 -0
  35. package/vendor/abseil-cpp/absl/algorithm/BUILD.bazel +92 -0
  36. package/vendor/abseil-cpp/absl/algorithm/CMakeLists.txt +70 -0
  37. package/vendor/abseil-cpp/absl/algorithm/algorithm.h +159 -0
  38. package/vendor/abseil-cpp/absl/algorithm/algorithm_test.cc +191 -0
  39. package/vendor/abseil-cpp/absl/algorithm/container.h +1773 -0
  40. package/vendor/abseil-cpp/absl/algorithm/container_test.cc +1127 -0
  41. package/vendor/abseil-cpp/absl/algorithm/equal_benchmark.cc +126 -0
  42. package/vendor/abseil-cpp/absl/base/BUILD.bazel +783 -0
  43. package/vendor/abseil-cpp/absl/base/CMakeLists.txt +685 -0
  44. package/vendor/abseil-cpp/absl/base/attributes.h +782 -0
  45. package/vendor/abseil-cpp/absl/base/bit_cast_test.cc +109 -0
  46. package/vendor/abseil-cpp/absl/base/call_once.h +219 -0
  47. package/vendor/abseil-cpp/absl/base/call_once_test.cc +107 -0
  48. package/vendor/abseil-cpp/absl/base/casts.h +180 -0
  49. package/vendor/abseil-cpp/absl/base/config.h +954 -0
  50. package/vendor/abseil-cpp/absl/base/config_test.cc +60 -0
  51. package/vendor/abseil-cpp/absl/base/const_init.h +76 -0
  52. package/vendor/abseil-cpp/absl/base/dynamic_annotations.h +471 -0
  53. package/vendor/abseil-cpp/absl/base/exception_safety_testing_test.cc +959 -0
  54. package/vendor/abseil-cpp/absl/base/inline_variable_test.cc +64 -0
  55. package/vendor/abseil-cpp/absl/base/inline_variable_test_a.cc +27 -0
  56. package/vendor/abseil-cpp/absl/base/inline_variable_test_b.cc +27 -0
  57. package/vendor/abseil-cpp/absl/base/internal/atomic_hook.h +200 -0
  58. package/vendor/abseil-cpp/absl/base/internal/atomic_hook_test.cc +97 -0
  59. package/vendor/abseil-cpp/absl/base/internal/atomic_hook_test_helper.cc +32 -0
  60. package/vendor/abseil-cpp/absl/base/internal/atomic_hook_test_helper.h +34 -0
  61. package/vendor/abseil-cpp/absl/base/internal/cmake_thread_test.cc +22 -0
  62. package/vendor/abseil-cpp/absl/base/internal/cycleclock.cc +77 -0
  63. package/vendor/abseil-cpp/absl/base/internal/cycleclock.h +144 -0
  64. package/vendor/abseil-cpp/absl/base/internal/cycleclock_config.h +55 -0
  65. package/vendor/abseil-cpp/absl/base/internal/direct_mmap.h +170 -0
  66. package/vendor/abseil-cpp/absl/base/internal/dynamic_annotations.h +398 -0
  67. package/vendor/abseil-cpp/absl/base/internal/endian.h +282 -0
  68. package/vendor/abseil-cpp/absl/base/internal/endian_test.cc +263 -0
  69. package/vendor/abseil-cpp/absl/base/internal/errno_saver.h +43 -0
  70. package/vendor/abseil-cpp/absl/base/internal/errno_saver_test.cc +45 -0
  71. package/vendor/abseil-cpp/absl/base/internal/exception_safety_testing.cc +79 -0
  72. package/vendor/abseil-cpp/absl/base/internal/exception_safety_testing.h +1109 -0
  73. package/vendor/abseil-cpp/absl/base/internal/exception_testing.h +42 -0
  74. package/vendor/abseil-cpp/absl/base/internal/fast_type_id.h +50 -0
  75. package/vendor/abseil-cpp/absl/base/internal/fast_type_id_test.cc +123 -0
  76. package/vendor/abseil-cpp/absl/base/internal/hide_ptr.h +51 -0
  77. package/vendor/abseil-cpp/absl/base/internal/identity.h +37 -0
  78. package/vendor/abseil-cpp/absl/base/internal/inline_variable.h +107 -0
  79. package/vendor/abseil-cpp/absl/base/internal/inline_variable_testing.h +46 -0
  80. package/vendor/abseil-cpp/absl/base/internal/invoke.h +241 -0
  81. package/vendor/abseil-cpp/absl/base/internal/low_level_alloc.cc +620 -0
  82. package/vendor/abseil-cpp/absl/base/internal/low_level_alloc.h +126 -0
  83. package/vendor/abseil-cpp/absl/base/internal/low_level_alloc_test.cc +180 -0
  84. package/vendor/abseil-cpp/absl/base/internal/low_level_scheduling.h +134 -0
  85. package/vendor/abseil-cpp/absl/base/internal/per_thread_tls.h +52 -0
  86. package/vendor/abseil-cpp/absl/base/internal/prefetch.h +138 -0
  87. package/vendor/abseil-cpp/absl/base/internal/prefetch_test.cc +43 -0
  88. package/vendor/abseil-cpp/absl/base/internal/pretty_function.h +33 -0
  89. package/vendor/abseil-cpp/absl/base/internal/raw_logging.cc +253 -0
  90. package/vendor/abseil-cpp/absl/base/internal/raw_logging.h +195 -0
  91. package/vendor/abseil-cpp/absl/base/internal/scheduling_mode.h +58 -0
  92. package/vendor/abseil-cpp/absl/base/internal/scoped_set_env.cc +81 -0
  93. package/vendor/abseil-cpp/absl/base/internal/scoped_set_env.h +45 -0
  94. package/vendor/abseil-cpp/absl/base/internal/scoped_set_env_test.cc +99 -0
  95. package/vendor/abseil-cpp/absl/base/internal/spinlock.cc +232 -0
  96. package/vendor/abseil-cpp/absl/base/internal/spinlock.h +252 -0
  97. package/vendor/abseil-cpp/absl/base/internal/spinlock_akaros.inc +35 -0
  98. package/vendor/abseil-cpp/absl/base/internal/spinlock_benchmark.cc +52 -0
  99. package/vendor/abseil-cpp/absl/base/internal/spinlock_linux.inc +71 -0
  100. package/vendor/abseil-cpp/absl/base/internal/spinlock_posix.inc +46 -0
  101. package/vendor/abseil-cpp/absl/base/internal/spinlock_wait.cc +81 -0
  102. package/vendor/abseil-cpp/absl/base/internal/spinlock_wait.h +95 -0
  103. package/vendor/abseil-cpp/absl/base/internal/spinlock_win32.inc +40 -0
  104. package/vendor/abseil-cpp/absl/base/internal/strerror.cc +88 -0
  105. package/vendor/abseil-cpp/absl/base/internal/strerror.h +39 -0
  106. package/vendor/abseil-cpp/absl/base/internal/strerror_benchmark.cc +29 -0
  107. package/vendor/abseil-cpp/absl/base/internal/strerror_test.cc +88 -0
  108. package/vendor/abseil-cpp/absl/base/internal/sysinfo.cc +511 -0
  109. package/vendor/abseil-cpp/absl/base/internal/sysinfo.h +74 -0
  110. package/vendor/abseil-cpp/absl/base/internal/sysinfo_test.cc +88 -0
  111. package/vendor/abseil-cpp/absl/base/internal/thread_annotations.h +280 -0
  112. package/vendor/abseil-cpp/absl/base/internal/thread_identity.cc +156 -0
  113. package/vendor/abseil-cpp/absl/base/internal/thread_identity.h +269 -0
  114. package/vendor/abseil-cpp/absl/base/internal/thread_identity_benchmark.cc +38 -0
  115. package/vendor/abseil-cpp/absl/base/internal/thread_identity_test.cc +129 -0
  116. package/vendor/abseil-cpp/absl/base/internal/throw_delegate.cc +212 -0
  117. package/vendor/abseil-cpp/absl/base/internal/throw_delegate.h +75 -0
  118. package/vendor/abseil-cpp/absl/base/internal/tsan_mutex_interface.h +68 -0
  119. package/vendor/abseil-cpp/absl/base/internal/unaligned_access.h +82 -0
  120. package/vendor/abseil-cpp/absl/base/internal/unique_small_name_test.cc +77 -0
  121. package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +153 -0
  122. package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.h +96 -0
  123. package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +62 -0
  124. package/vendor/abseil-cpp/absl/base/invoke_test.cc +331 -0
  125. package/vendor/abseil-cpp/absl/base/log_severity.cc +55 -0
  126. package/vendor/abseil-cpp/absl/base/log_severity.h +172 -0
  127. package/vendor/abseil-cpp/absl/base/log_severity_test.cc +245 -0
  128. package/vendor/abseil-cpp/absl/base/macros.h +141 -0
  129. package/vendor/abseil-cpp/absl/base/optimization.h +304 -0
  130. package/vendor/abseil-cpp/absl/base/optimization_test.cc +129 -0
  131. package/vendor/abseil-cpp/absl/base/options.h +232 -0
  132. package/vendor/abseil-cpp/absl/base/policy_checks.h +113 -0
  133. package/vendor/abseil-cpp/absl/base/port.h +25 -0
  134. package/vendor/abseil-cpp/absl/base/raw_logging_test.cc +79 -0
  135. package/vendor/abseil-cpp/absl/base/spinlock_test_common.cc +272 -0
  136. package/vendor/abseil-cpp/absl/base/thread_annotations.h +335 -0
  137. package/vendor/abseil-cpp/absl/base/throw_delegate_test.cc +175 -0
  138. package/vendor/abseil-cpp/absl/cleanup/BUILD.bazel +65 -0
  139. package/vendor/abseil-cpp/absl/cleanup/CMakeLists.txt +56 -0
  140. package/vendor/abseil-cpp/absl/cleanup/cleanup.h +140 -0
  141. package/vendor/abseil-cpp/absl/cleanup/cleanup_test.cc +311 -0
  142. package/vendor/abseil-cpp/absl/cleanup/internal/cleanup.h +100 -0
  143. package/vendor/abseil-cpp/absl/container/BUILD.bazel +1031 -0
  144. package/vendor/abseil-cpp/absl/container/CMakeLists.txt +967 -0
  145. package/vendor/abseil-cpp/absl/container/btree_benchmark.cc +764 -0
  146. package/vendor/abseil-cpp/absl/container/btree_map.h +885 -0
  147. package/vendor/abseil-cpp/absl/container/btree_set.h +821 -0
  148. package/vendor/abseil-cpp/absl/container/btree_test.cc +3470 -0
  149. package/vendor/abseil-cpp/absl/container/btree_test.h +166 -0
  150. package/vendor/abseil-cpp/absl/container/fixed_array.h +531 -0
  151. package/vendor/abseil-cpp/absl/container/fixed_array_benchmark.cc +67 -0
  152. package/vendor/abseil-cpp/absl/container/fixed_array_exception_safety_test.cc +201 -0
  153. package/vendor/abseil-cpp/absl/container/fixed_array_test.cc +837 -0
  154. package/vendor/abseil-cpp/absl/container/flat_hash_map.h +613 -0
  155. package/vendor/abseil-cpp/absl/container/flat_hash_map_test.cc +325 -0
  156. package/vendor/abseil-cpp/absl/container/flat_hash_set.h +503 -0
  157. package/vendor/abseil-cpp/absl/container/flat_hash_set_test.cc +178 -0
  158. package/vendor/abseil-cpp/absl/container/inlined_vector.h +914 -0
  159. package/vendor/abseil-cpp/absl/container/inlined_vector_benchmark.cc +829 -0
  160. package/vendor/abseil-cpp/absl/container/inlined_vector_exception_safety_test.cc +508 -0
  161. package/vendor/abseil-cpp/absl/container/inlined_vector_test.cc +2060 -0
  162. package/vendor/abseil-cpp/absl/container/internal/btree.h +2982 -0
  163. package/vendor/abseil-cpp/absl/container/internal/btree_container.h +713 -0
  164. package/vendor/abseil-cpp/absl/container/internal/common.h +207 -0
  165. package/vendor/abseil-cpp/absl/container/internal/common_policy_traits.h +132 -0
  166. package/vendor/abseil-cpp/absl/container/internal/common_policy_traits_test.cc +120 -0
  167. package/vendor/abseil-cpp/absl/container/internal/compressed_tuple.h +290 -0
  168. package/vendor/abseil-cpp/absl/container/internal/compressed_tuple_test.cc +419 -0
  169. package/vendor/abseil-cpp/absl/container/internal/container_memory.h +454 -0
  170. package/vendor/abseil-cpp/absl/container/internal/container_memory_test.cc +257 -0
  171. package/vendor/abseil-cpp/absl/container/internal/counting_allocator.h +122 -0
  172. package/vendor/abseil-cpp/absl/container/internal/hash_function_defaults.h +163 -0
  173. package/vendor/abseil-cpp/absl/container/internal/hash_function_defaults_test.cc +383 -0
  174. package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.cc +76 -0
  175. package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.h +182 -0
  176. package/vendor/abseil-cpp/absl/container/internal/hash_policy_testing.h +184 -0
  177. package/vendor/abseil-cpp/absl/container/internal/hash_policy_testing_test.cc +45 -0
  178. package/vendor/abseil-cpp/absl/container/internal/hash_policy_traits.h +157 -0
  179. package/vendor/abseil-cpp/absl/container/internal/hash_policy_traits_test.cc +80 -0
  180. package/vendor/abseil-cpp/absl/container/internal/hashtable_debug.h +110 -0
  181. package/vendor/abseil-cpp/absl/container/internal/hashtable_debug_hooks.h +85 -0
  182. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +283 -0
  183. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.h +267 -0
  184. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +31 -0
  185. package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler_test.cc +428 -0
  186. package/vendor/abseil-cpp/absl/container/internal/inlined_vector.h +1031 -0
  187. package/vendor/abseil-cpp/absl/container/internal/layout.h +743 -0
  188. package/vendor/abseil-cpp/absl/container/internal/layout_benchmark.cc +122 -0
  189. package/vendor/abseil-cpp/absl/container/internal/layout_test.cc +1641 -0
  190. package/vendor/abseil-cpp/absl/container/internal/node_slot_policy.h +92 -0
  191. package/vendor/abseil-cpp/absl/container/internal/node_slot_policy_test.cc +69 -0
  192. package/vendor/abseil-cpp/absl/container/internal/raw_hash_map.h +198 -0
  193. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.cc +222 -0
  194. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.h +2685 -0
  195. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_allocator_test.cc +505 -0
  196. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_benchmark.cc +544 -0
  197. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_probe_benchmark.cc +590 -0
  198. package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_test.cc +2324 -0
  199. package/vendor/abseil-cpp/absl/container/internal/test_instance_tracker.cc +29 -0
  200. package/vendor/abseil-cpp/absl/container/internal/test_instance_tracker.h +274 -0
  201. package/vendor/abseil-cpp/absl/container/internal/test_instance_tracker_test.cc +184 -0
  202. package/vendor/abseil-cpp/absl/container/internal/tracked.h +83 -0
  203. package/vendor/abseil-cpp/absl/container/internal/unordered_map_constructor_test.h +494 -0
  204. package/vendor/abseil-cpp/absl/container/internal/unordered_map_lookup_test.h +117 -0
  205. package/vendor/abseil-cpp/absl/container/internal/unordered_map_members_test.h +87 -0
  206. package/vendor/abseil-cpp/absl/container/internal/unordered_map_modifiers_test.h +352 -0
  207. package/vendor/abseil-cpp/absl/container/internal/unordered_map_test.cc +50 -0
  208. package/vendor/abseil-cpp/absl/container/internal/unordered_set_constructor_test.h +496 -0
  209. package/vendor/abseil-cpp/absl/container/internal/unordered_set_lookup_test.h +91 -0
  210. package/vendor/abseil-cpp/absl/container/internal/unordered_set_members_test.h +86 -0
  211. package/vendor/abseil-cpp/absl/container/internal/unordered_set_modifiers_test.h +221 -0
  212. package/vendor/abseil-cpp/absl/container/internal/unordered_set_test.cc +41 -0
  213. package/vendor/abseil-cpp/absl/container/node_hash_map.h +604 -0
  214. package/vendor/abseil-cpp/absl/container/node_hash_map_test.cc +286 -0
  215. package/vendor/abseil-cpp/absl/container/node_hash_set.h +500 -0
  216. package/vendor/abseil-cpp/absl/container/node_hash_set_test.cc +143 -0
  217. package/vendor/abseil-cpp/absl/container/sample_element_size_test.cc +114 -0
  218. package/vendor/abseil-cpp/absl/copts/AbseilConfigureCopts.cmake +96 -0
  219. package/vendor/abseil-cpp/absl/copts/GENERATED_AbseilCopts.cmake +229 -0
  220. package/vendor/abseil-cpp/absl/copts/GENERATED_copts.bzl +230 -0
  221. package/vendor/abseil-cpp/absl/copts/configure_copts.bzl +82 -0
  222. package/vendor/abseil-cpp/absl/copts/copts.py +191 -0
  223. package/vendor/abseil-cpp/absl/copts/generate_copts.py +109 -0
  224. package/vendor/abseil-cpp/absl/crc/BUILD.bazel +210 -0
  225. package/vendor/abseil-cpp/absl/crc/CMakeLists.txt +176 -0
  226. package/vendor/abseil-cpp/absl/crc/crc32c.cc +99 -0
  227. package/vendor/abseil-cpp/absl/crc/crc32c.h +183 -0
  228. package/vendor/abseil-cpp/absl/crc/crc32c_benchmark.cc +183 -0
  229. package/vendor/abseil-cpp/absl/crc/crc32c_test.cc +194 -0
  230. package/vendor/abseil-cpp/absl/crc/internal/cpu_detect.cc +256 -0
  231. package/vendor/abseil-cpp/absl/crc/internal/cpu_detect.h +57 -0
  232. package/vendor/abseil-cpp/absl/crc/internal/crc.cc +468 -0
  233. package/vendor/abseil-cpp/absl/crc/internal/crc.h +91 -0
  234. package/vendor/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +269 -0
  235. package/vendor/abseil-cpp/absl/crc/internal/crc32c.h +39 -0
  236. package/vendor/abseil-cpp/absl/crc/internal/crc32c_inline.h +72 -0
  237. package/vendor/abseil-cpp/absl/crc/internal/crc_cord_state.cc +130 -0
  238. package/vendor/abseil-cpp/absl/crc/internal/crc_cord_state.h +159 -0
  239. package/vendor/abseil-cpp/absl/crc/internal/crc_cord_state_test.cc +124 -0
  240. package/vendor/abseil-cpp/absl/crc/internal/crc_internal.h +179 -0
  241. package/vendor/abseil-cpp/absl/crc/internal/crc_memcpy.h +119 -0
  242. package/vendor/abseil-cpp/absl/crc/internal/crc_memcpy_fallback.cc +75 -0
  243. package/vendor/abseil-cpp/absl/crc/internal/crc_memcpy_test.cc +169 -0
  244. package/vendor/abseil-cpp/absl/crc/internal/crc_memcpy_x86_64.cc +434 -0
  245. package/vendor/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc +93 -0
  246. package/vendor/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +725 -0
  247. package/vendor/abseil-cpp/absl/crc/internal/non_temporal_arm_intrinsics.h +79 -0
  248. package/vendor/abseil-cpp/absl/crc/internal/non_temporal_memcpy.h +180 -0
  249. package/vendor/abseil-cpp/absl/crc/internal/non_temporal_memcpy_test.cc +88 -0
  250. package/vendor/abseil-cpp/absl/debugging/BUILD.bazel +322 -0
  251. package/vendor/abseil-cpp/absl/debugging/CMakeLists.txt +294 -0
  252. package/vendor/abseil-cpp/absl/debugging/failure_signal_handler.cc +389 -0
  253. package/vendor/abseil-cpp/absl/debugging/failure_signal_handler.h +121 -0
  254. package/vendor/abseil-cpp/absl/debugging/failure_signal_handler_test.cc +165 -0
  255. package/vendor/abseil-cpp/absl/debugging/internal/address_is_readable.cc +96 -0
  256. package/vendor/abseil-cpp/absl/debugging/internal/address_is_readable.h +32 -0
  257. package/vendor/abseil-cpp/absl/debugging/internal/demangle.cc +1988 -0
  258. package/vendor/abseil-cpp/absl/debugging/internal/demangle.h +71 -0
  259. package/vendor/abseil-cpp/absl/debugging/internal/demangle_test.cc +243 -0
  260. package/vendor/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +386 -0
  261. package/vendor/abseil-cpp/absl/debugging/internal/elf_mem_image.h +139 -0
  262. package/vendor/abseil-cpp/absl/debugging/internal/examine_stack.cc +317 -0
  263. package/vendor/abseil-cpp/absl/debugging/internal/examine_stack.h +64 -0
  264. package/vendor/abseil-cpp/absl/debugging/internal/stack_consumption.cc +185 -0
  265. package/vendor/abseil-cpp/absl/debugging/internal/stack_consumption.h +50 -0
  266. package/vendor/abseil-cpp/absl/debugging/internal/stack_consumption_test.cc +50 -0
  267. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +206 -0
  268. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +139 -0
  269. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_config.h +88 -0
  270. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +110 -0
  271. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +108 -0
  272. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +258 -0
  273. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +191 -0
  274. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +24 -0
  275. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +94 -0
  276. package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +394 -0
  277. package/vendor/abseil-cpp/absl/debugging/internal/symbolize.h +153 -0
  278. package/vendor/abseil-cpp/absl/debugging/internal/vdso_support.cc +205 -0
  279. package/vendor/abseil-cpp/absl/debugging/internal/vdso_support.h +158 -0
  280. package/vendor/abseil-cpp/absl/debugging/leak_check.cc +73 -0
  281. package/vendor/abseil-cpp/absl/debugging/leak_check.h +150 -0
  282. package/vendor/abseil-cpp/absl/debugging/leak_check_fail_test.cc +41 -0
  283. package/vendor/abseil-cpp/absl/debugging/leak_check_test.cc +41 -0
  284. package/vendor/abseil-cpp/absl/debugging/stacktrace.cc +142 -0
  285. package/vendor/abseil-cpp/absl/debugging/stacktrace.h +231 -0
  286. package/vendor/abseil-cpp/absl/debugging/stacktrace_benchmark.cc +55 -0
  287. package/vendor/abseil-cpp/absl/debugging/stacktrace_test.cc +47 -0
  288. package/vendor/abseil-cpp/absl/debugging/symbolize.cc +43 -0
  289. package/vendor/abseil-cpp/absl/debugging/symbolize.h +99 -0
  290. package/vendor/abseil-cpp/absl/debugging/symbolize_darwin.inc +102 -0
  291. package/vendor/abseil-cpp/absl/debugging/symbolize_elf.inc +1637 -0
  292. package/vendor/abseil-cpp/absl/debugging/symbolize_emscripten.inc +72 -0
  293. package/vendor/abseil-cpp/absl/debugging/symbolize_test.cc +612 -0
  294. package/vendor/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +40 -0
  295. package/vendor/abseil-cpp/absl/debugging/symbolize_win32.inc +82 -0
  296. package/vendor/abseil-cpp/absl/flags/BUILD.bazel +583 -0
  297. package/vendor/abseil-cpp/absl/flags/CMakeLists.txt +471 -0
  298. package/vendor/abseil-cpp/absl/flags/commandlineflag.cc +34 -0
  299. package/vendor/abseil-cpp/absl/flags/commandlineflag.h +200 -0
  300. package/vendor/abseil-cpp/absl/flags/commandlineflag_test.cc +231 -0
  301. package/vendor/abseil-cpp/absl/flags/config.h +68 -0
  302. package/vendor/abseil-cpp/absl/flags/config_test.cc +61 -0
  303. package/vendor/abseil-cpp/absl/flags/declare.h +73 -0
  304. package/vendor/abseil-cpp/absl/flags/flag.cc +38 -0
  305. package/vendor/abseil-cpp/absl/flags/flag.h +310 -0
  306. package/vendor/abseil-cpp/absl/flags/flag_benchmark.cc +251 -0
  307. package/vendor/abseil-cpp/absl/flags/flag_benchmark.lds +13 -0
  308. package/vendor/abseil-cpp/absl/flags/flag_test.cc +1166 -0
  309. package/vendor/abseil-cpp/absl/flags/flag_test_defs.cc +24 -0
  310. package/vendor/abseil-cpp/absl/flags/internal/commandlineflag.cc +26 -0
  311. package/vendor/abseil-cpp/absl/flags/internal/commandlineflag.h +68 -0
  312. package/vendor/abseil-cpp/absl/flags/internal/flag.cc +615 -0
  313. package/vendor/abseil-cpp/absl/flags/internal/flag.h +800 -0
  314. package/vendor/abseil-cpp/absl/flags/internal/flag_msvc.inc +116 -0
  315. package/vendor/abseil-cpp/absl/flags/internal/parse.h +63 -0
  316. package/vendor/abseil-cpp/absl/flags/internal/path_util.h +62 -0
  317. package/vendor/abseil-cpp/absl/flags/internal/path_util_test.cc +46 -0
  318. package/vendor/abseil-cpp/absl/flags/internal/private_handle_accessor.cc +65 -0
  319. package/vendor/abseil-cpp/absl/flags/internal/private_handle_accessor.h +61 -0
  320. package/vendor/abseil-cpp/absl/flags/internal/program_name.cc +60 -0
  321. package/vendor/abseil-cpp/absl/flags/internal/program_name.h +50 -0
  322. package/vendor/abseil-cpp/absl/flags/internal/program_name_test.cc +61 -0
  323. package/vendor/abseil-cpp/absl/flags/internal/registry.h +97 -0
  324. package/vendor/abseil-cpp/absl/flags/internal/sequence_lock.h +187 -0
  325. package/vendor/abseil-cpp/absl/flags/internal/sequence_lock_test.cc +169 -0
  326. package/vendor/abseil-cpp/absl/flags/internal/usage.cc +526 -0
  327. package/vendor/abseil-cpp/absl/flags/internal/usage.h +104 -0
  328. package/vendor/abseil-cpp/absl/flags/internal/usage_test.cc +504 -0
  329. package/vendor/abseil-cpp/absl/flags/marshalling.cc +241 -0
  330. package/vendor/abseil-cpp/absl/flags/marshalling.h +356 -0
  331. package/vendor/abseil-cpp/absl/flags/marshalling_test.cc +1070 -0
  332. package/vendor/abseil-cpp/absl/flags/parse.cc +890 -0
  333. package/vendor/abseil-cpp/absl/flags/parse.h +60 -0
  334. package/vendor/abseil-cpp/absl/flags/parse_test.cc +1004 -0
  335. package/vendor/abseil-cpp/absl/flags/reflection.cc +354 -0
  336. package/vendor/abseil-cpp/absl/flags/reflection.h +90 -0
  337. package/vendor/abseil-cpp/absl/flags/reflection_test.cc +265 -0
  338. package/vendor/abseil-cpp/absl/flags/usage.cc +65 -0
  339. package/vendor/abseil-cpp/absl/flags/usage.h +43 -0
  340. package/vendor/abseil-cpp/absl/flags/usage_config.cc +165 -0
  341. package/vendor/abseil-cpp/absl/flags/usage_config.h +135 -0
  342. package/vendor/abseil-cpp/absl/flags/usage_config_test.cc +205 -0
  343. package/vendor/abseil-cpp/absl/functional/BUILD.bazel +128 -0
  344. package/vendor/abseil-cpp/absl/functional/CMakeLists.txt +109 -0
  345. package/vendor/abseil-cpp/absl/functional/any_invocable.h +316 -0
  346. package/vendor/abseil-cpp/absl/functional/any_invocable_test.cc +1719 -0
  347. package/vendor/abseil-cpp/absl/functional/bind_front.h +193 -0
  348. package/vendor/abseil-cpp/absl/functional/bind_front_test.cc +231 -0
  349. package/vendor/abseil-cpp/absl/functional/function_ref.h +143 -0
  350. package/vendor/abseil-cpp/absl/functional/function_ref_test.cc +258 -0
  351. package/vendor/abseil-cpp/absl/functional/function_type_benchmark.cc +176 -0
  352. package/vendor/abseil-cpp/absl/functional/internal/any_invocable.h +878 -0
  353. package/vendor/abseil-cpp/absl/functional/internal/front_binder.h +95 -0
  354. package/vendor/abseil-cpp/absl/functional/internal/function_ref.h +106 -0
  355. package/vendor/abseil-cpp/absl/hash/BUILD.bazel +176 -0
  356. package/vendor/abseil-cpp/absl/hash/CMakeLists.txt +160 -0
  357. package/vendor/abseil-cpp/absl/hash/hash.h +421 -0
  358. package/vendor/abseil-cpp/absl/hash/hash_benchmark.cc +323 -0
  359. package/vendor/abseil-cpp/absl/hash/hash_test.cc +1277 -0
  360. package/vendor/abseil-cpp/absl/hash/hash_testing.h +378 -0
  361. package/vendor/abseil-cpp/absl/hash/internal/city.cc +349 -0
  362. package/vendor/abseil-cpp/absl/hash/internal/city.h +78 -0
  363. package/vendor/abseil-cpp/absl/hash/internal/city_test.cc +597 -0
  364. package/vendor/abseil-cpp/absl/hash/internal/hash.cc +69 -0
  365. package/vendor/abseil-cpp/absl/hash/internal/hash.h +1305 -0
  366. package/vendor/abseil-cpp/absl/hash/internal/low_level_hash.cc +112 -0
  367. package/vendor/abseil-cpp/absl/hash/internal/low_level_hash.h +50 -0
  368. package/vendor/abseil-cpp/absl/hash/internal/low_level_hash_test.cc +532 -0
  369. package/vendor/abseil-cpp/absl/hash/internal/print_hash_of.cc +23 -0
  370. package/vendor/abseil-cpp/absl/hash/internal/spy_hash_state.h +266 -0
  371. package/vendor/abseil-cpp/absl/log/BUILD.bazel +596 -0
  372. package/vendor/abseil-cpp/absl/log/CMakeLists.txt +1042 -0
  373. package/vendor/abseil-cpp/absl/log/absl_check.h +105 -0
  374. package/vendor/abseil-cpp/absl/log/absl_check_test.cc +58 -0
  375. package/vendor/abseil-cpp/absl/log/absl_log.h +94 -0
  376. package/vendor/abseil-cpp/absl/log/absl_log_basic_test.cc +21 -0
  377. package/vendor/abseil-cpp/absl/log/check.h +183 -0
  378. package/vendor/abseil-cpp/absl/log/check_test.cc +58 -0
  379. package/vendor/abseil-cpp/absl/log/check_test_impl.h +528 -0
  380. package/vendor/abseil-cpp/absl/log/die_if_null.cc +32 -0
  381. package/vendor/abseil-cpp/absl/log/die_if_null.h +76 -0
  382. package/vendor/abseil-cpp/absl/log/die_if_null_test.cc +107 -0
  383. package/vendor/abseil-cpp/absl/log/flags.cc +112 -0
  384. package/vendor/abseil-cpp/absl/log/flags.h +43 -0
  385. package/vendor/abseil-cpp/absl/log/flags_test.cc +184 -0
  386. package/vendor/abseil-cpp/absl/log/globals.cc +148 -0
  387. package/vendor/abseil-cpp/absl/log/globals.h +165 -0
  388. package/vendor/abseil-cpp/absl/log/globals_test.cc +91 -0
  389. package/vendor/abseil-cpp/absl/log/initialize.cc +34 -0
  390. package/vendor/abseil-cpp/absl/log/initialize.h +45 -0
  391. package/vendor/abseil-cpp/absl/log/internal/BUILD.bazel +383 -0
  392. package/vendor/abseil-cpp/absl/log/internal/append_truncated.h +47 -0
  393. package/vendor/abseil-cpp/absl/log/internal/check_impl.h +150 -0
  394. package/vendor/abseil-cpp/absl/log/internal/check_op.cc +118 -0
  395. package/vendor/abseil-cpp/absl/log/internal/check_op.h +392 -0
  396. package/vendor/abseil-cpp/absl/log/internal/conditions.cc +83 -0
  397. package/vendor/abseil-cpp/absl/log/internal/conditions.h +222 -0
  398. package/vendor/abseil-cpp/absl/log/internal/config.h +45 -0
  399. package/vendor/abseil-cpp/absl/log/internal/flags.h +53 -0
  400. package/vendor/abseil-cpp/absl/log/internal/globals.cc +125 -0
  401. package/vendor/abseil-cpp/absl/log/internal/globals.h +101 -0
  402. package/vendor/abseil-cpp/absl/log/internal/log_format.cc +203 -0
  403. package/vendor/abseil-cpp/absl/log/internal/log_format.h +78 -0
  404. package/vendor/abseil-cpp/absl/log/internal/log_impl.h +212 -0
  405. package/vendor/abseil-cpp/absl/log/internal/log_message.cc +618 -0
  406. package/vendor/abseil-cpp/absl/log/internal/log_message.h +355 -0
  407. package/vendor/abseil-cpp/absl/log/internal/log_sink_set.cc +296 -0
  408. package/vendor/abseil-cpp/absl/log/internal/log_sink_set.h +54 -0
  409. package/vendor/abseil-cpp/absl/log/internal/nullguard.cc +35 -0
  410. package/vendor/abseil-cpp/absl/log/internal/nullguard.h +88 -0
  411. package/vendor/abseil-cpp/absl/log/internal/nullstream.h +134 -0
  412. package/vendor/abseil-cpp/absl/log/internal/proto.cc +220 -0
  413. package/vendor/abseil-cpp/absl/log/internal/proto.h +288 -0
  414. package/vendor/abseil-cpp/absl/log/internal/stderr_log_sink_test.cc +105 -0
  415. package/vendor/abseil-cpp/absl/log/internal/strip.h +71 -0
  416. package/vendor/abseil-cpp/absl/log/internal/structured.h +58 -0
  417. package/vendor/abseil-cpp/absl/log/internal/test_actions.cc +75 -0
  418. package/vendor/abseil-cpp/absl/log/internal/test_actions.h +90 -0
  419. package/vendor/abseil-cpp/absl/log/internal/test_helpers.cc +82 -0
  420. package/vendor/abseil-cpp/absl/log/internal/test_helpers.h +71 -0
  421. package/vendor/abseil-cpp/absl/log/internal/test_matchers.cc +217 -0
  422. package/vendor/abseil-cpp/absl/log/internal/test_matchers.h +94 -0
  423. package/vendor/abseil-cpp/absl/log/internal/voidify.h +44 -0
  424. package/vendor/abseil-cpp/absl/log/log.h +308 -0
  425. package/vendor/abseil-cpp/absl/log/log_basic_test.cc +21 -0
  426. package/vendor/abseil-cpp/absl/log/log_basic_test_impl.h +455 -0
  427. package/vendor/abseil-cpp/absl/log/log_benchmark.cc +97 -0
  428. package/vendor/abseil-cpp/absl/log/log_entry.cc +29 -0
  429. package/vendor/abseil-cpp/absl/log/log_entry.h +220 -0
  430. package/vendor/abseil-cpp/absl/log/log_entry_test.cc +468 -0
  431. package/vendor/abseil-cpp/absl/log/log_format_test.cc +1872 -0
  432. package/vendor/abseil-cpp/absl/log/log_macro_hygiene_test.cc +187 -0
  433. package/vendor/abseil-cpp/absl/log/log_modifier_methods_test.cc +233 -0
  434. package/vendor/abseil-cpp/absl/log/log_sink.cc +23 -0
  435. package/vendor/abseil-cpp/absl/log/log_sink.h +64 -0
  436. package/vendor/abseil-cpp/absl/log/log_sink_registry.h +61 -0
  437. package/vendor/abseil-cpp/absl/log/log_sink_test.cc +419 -0
  438. package/vendor/abseil-cpp/absl/log/log_streamer.h +171 -0
  439. package/vendor/abseil-cpp/absl/log/log_streamer_test.cc +365 -0
  440. package/vendor/abseil-cpp/absl/log/scoped_mock_log.cc +86 -0
  441. package/vendor/abseil-cpp/absl/log/scoped_mock_log.h +194 -0
  442. package/vendor/abseil-cpp/absl/log/scoped_mock_log_test.cc +290 -0
  443. package/vendor/abseil-cpp/absl/log/stripping_test.cc +340 -0
  444. package/vendor/abseil-cpp/absl/log/structured.h +70 -0
  445. package/vendor/abseil-cpp/absl/log/structured_test.cc +63 -0
  446. package/vendor/abseil-cpp/absl/memory/BUILD.bazel +52 -0
  447. package/vendor/abseil-cpp/absl/memory/CMakeLists.txt +41 -0
  448. package/vendor/abseil-cpp/absl/memory/memory.h +278 -0
  449. package/vendor/abseil-cpp/absl/memory/memory_test.cc +222 -0
  450. package/vendor/abseil-cpp/absl/meta/BUILD.bazel +50 -0
  451. package/vendor/abseil-cpp/absl/meta/CMakeLists.txt +53 -0
  452. package/vendor/abseil-cpp/absl/meta/type_traits.h +889 -0
  453. package/vendor/abseil-cpp/absl/meta/type_traits_test.cc +1448 -0
  454. package/vendor/abseil-cpp/absl/numeric/BUILD.bazel +127 -0
  455. package/vendor/abseil-cpp/absl/numeric/CMakeLists.txt +99 -0
  456. package/vendor/abseil-cpp/absl/numeric/bits.h +177 -0
  457. package/vendor/abseil-cpp/absl/numeric/bits_benchmark.cc +73 -0
  458. package/vendor/abseil-cpp/absl/numeric/bits_test.cc +573 -0
  459. package/vendor/abseil-cpp/absl/numeric/int128.cc +387 -0
  460. package/vendor/abseil-cpp/absl/numeric/int128.h +1165 -0
  461. package/vendor/abseil-cpp/absl/numeric/int128_benchmark.cc +282 -0
  462. package/vendor/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +296 -0
  463. package/vendor/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +311 -0
  464. package/vendor/abseil-cpp/absl/numeric/int128_stream_test.cc +1393 -0
  465. package/vendor/abseil-cpp/absl/numeric/int128_test.cc +1261 -0
  466. package/vendor/abseil-cpp/absl/numeric/internal/bits.h +358 -0
  467. package/vendor/abseil-cpp/absl/numeric/internal/representation.h +55 -0
  468. package/vendor/abseil-cpp/absl/profiling/BUILD.bazel +129 -0
  469. package/vendor/abseil-cpp/absl/profiling/CMakeLists.txt +93 -0
  470. package/vendor/abseil-cpp/absl/profiling/internal/exponential_biased.cc +93 -0
  471. package/vendor/abseil-cpp/absl/profiling/internal/exponential_biased.h +130 -0
  472. package/vendor/abseil-cpp/absl/profiling/internal/exponential_biased_test.cc +203 -0
  473. package/vendor/abseil-cpp/absl/profiling/internal/periodic_sampler.cc +53 -0
  474. package/vendor/abseil-cpp/absl/profiling/internal/periodic_sampler.h +211 -0
  475. package/vendor/abseil-cpp/absl/profiling/internal/periodic_sampler_benchmark.cc +79 -0
  476. package/vendor/abseil-cpp/absl/profiling/internal/periodic_sampler_test.cc +177 -0
  477. package/vendor/abseil-cpp/absl/profiling/internal/sample_recorder.h +253 -0
  478. package/vendor/abseil-cpp/absl/profiling/internal/sample_recorder_test.cc +184 -0
  479. package/vendor/abseil-cpp/absl/random/BUILD.bazel +517 -0
  480. package/vendor/abseil-cpp/absl/random/CMakeLists.txt +1216 -0
  481. package/vendor/abseil-cpp/absl/random/benchmarks.cc +383 -0
  482. package/vendor/abseil-cpp/absl/random/bernoulli_distribution.h +200 -0
  483. package/vendor/abseil-cpp/absl/random/bernoulli_distribution_test.cc +217 -0
  484. package/vendor/abseil-cpp/absl/random/beta_distribution.h +427 -0
  485. package/vendor/abseil-cpp/absl/random/beta_distribution_test.cc +620 -0
  486. package/vendor/abseil-cpp/absl/random/bit_gen_ref.h +185 -0
  487. package/vendor/abseil-cpp/absl/random/bit_gen_ref_test.cc +102 -0
  488. package/vendor/abseil-cpp/absl/random/discrete_distribution.cc +98 -0
  489. package/vendor/abseil-cpp/absl/random/discrete_distribution.h +247 -0
  490. package/vendor/abseil-cpp/absl/random/discrete_distribution_test.cc +251 -0
  491. package/vendor/abseil-cpp/absl/random/distributions.h +452 -0
  492. package/vendor/abseil-cpp/absl/random/distributions_test.cc +466 -0
  493. package/vendor/abseil-cpp/absl/random/examples_test.cc +99 -0
  494. package/vendor/abseil-cpp/absl/random/exponential_distribution.h +165 -0
  495. package/vendor/abseil-cpp/absl/random/exponential_distribution_test.cc +428 -0
  496. package/vendor/abseil-cpp/absl/random/gaussian_distribution.cc +104 -0
  497. package/vendor/abseil-cpp/absl/random/gaussian_distribution.h +275 -0
  498. package/vendor/abseil-cpp/absl/random/gaussian_distribution_test.cc +563 -0
  499. package/vendor/abseil-cpp/absl/random/generators_test.cc +185 -0
  500. package/vendor/abseil-cpp/absl/random/internal/BUILD.bazel +753 -0
  501. package/vendor/abseil-cpp/absl/random/internal/chi_square.cc +233 -0
  502. package/vendor/abseil-cpp/absl/random/internal/chi_square.h +89 -0
  503. package/vendor/abseil-cpp/absl/random/internal/chi_square_test.cc +365 -0
  504. package/vendor/abseil-cpp/absl/random/internal/distribution_caller.h +95 -0
  505. package/vendor/abseil-cpp/absl/random/internal/distribution_test_util.cc +418 -0
  506. package/vendor/abseil-cpp/absl/random/internal/distribution_test_util.h +113 -0
  507. package/vendor/abseil-cpp/absl/random/internal/distribution_test_util_test.cc +193 -0
  508. package/vendor/abseil-cpp/absl/random/internal/explicit_seed_seq.h +92 -0
  509. package/vendor/abseil-cpp/absl/random/internal/explicit_seed_seq_test.cc +237 -0
  510. package/vendor/abseil-cpp/absl/random/internal/fast_uniform_bits.h +270 -0
  511. package/vendor/abseil-cpp/absl/random/internal/fast_uniform_bits_test.cc +336 -0
  512. package/vendor/abseil-cpp/absl/random/internal/fastmath.h +57 -0
  513. package/vendor/abseil-cpp/absl/random/internal/fastmath_test.cc +97 -0
  514. package/vendor/abseil-cpp/absl/random/internal/gaussian_distribution_gentables.cc +143 -0
  515. package/vendor/abseil-cpp/absl/random/internal/generate_real.h +144 -0
  516. package/vendor/abseil-cpp/absl/random/internal/generate_real_test.cc +496 -0
  517. package/vendor/abseil-cpp/absl/random/internal/iostream_state_saver.h +245 -0
  518. package/vendor/abseil-cpp/absl/random/internal/iostream_state_saver_test.cc +372 -0
  519. package/vendor/abseil-cpp/absl/random/internal/mock_helpers.h +135 -0
  520. package/vendor/abseil-cpp/absl/random/internal/mock_overload_set.h +100 -0
  521. package/vendor/abseil-cpp/absl/random/internal/nanobenchmark.cc +804 -0
  522. package/vendor/abseil-cpp/absl/random/internal/nanobenchmark.h +172 -0
  523. package/vendor/abseil-cpp/absl/random/internal/nanobenchmark_test.cc +77 -0
  524. package/vendor/abseil-cpp/absl/random/internal/nonsecure_base.h +161 -0
  525. package/vendor/abseil-cpp/absl/random/internal/nonsecure_base_test.cc +227 -0
  526. package/vendor/abseil-cpp/absl/random/internal/pcg_engine.h +287 -0
  527. package/vendor/abseil-cpp/absl/random/internal/pcg_engine_test.cc +638 -0
  528. package/vendor/abseil-cpp/absl/random/internal/platform.h +171 -0
  529. package/vendor/abseil-cpp/absl/random/internal/pool_urbg.cc +253 -0
  530. package/vendor/abseil-cpp/absl/random/internal/pool_urbg.h +131 -0
  531. package/vendor/abseil-cpp/absl/random/internal/pool_urbg_test.cc +182 -0
  532. package/vendor/abseil-cpp/absl/random/internal/randen.cc +91 -0
  533. package/vendor/abseil-cpp/absl/random/internal/randen.h +96 -0
  534. package/vendor/abseil-cpp/absl/random/internal/randen_benchmarks.cc +174 -0
  535. package/vendor/abseil-cpp/absl/random/internal/randen_detect.cc +225 -0
  536. package/vendor/abseil-cpp/absl/random/internal/randen_detect.h +33 -0
  537. package/vendor/abseil-cpp/absl/random/internal/randen_engine.h +264 -0
  538. package/vendor/abseil-cpp/absl/random/internal/randen_engine_test.cc +656 -0
  539. package/vendor/abseil-cpp/absl/random/internal/randen_hwaes.cc +526 -0
  540. package/vendor/abseil-cpp/absl/random/internal/randen_hwaes.h +50 -0
  541. package/vendor/abseil-cpp/absl/random/internal/randen_hwaes_test.cc +99 -0
  542. package/vendor/abseil-cpp/absl/random/internal/randen_round_keys.cc +462 -0
  543. package/vendor/abseil-cpp/absl/random/internal/randen_slow.cc +471 -0
  544. package/vendor/abseil-cpp/absl/random/internal/randen_slow.h +40 -0
  545. package/vendor/abseil-cpp/absl/random/internal/randen_slow_test.cc +61 -0
  546. package/vendor/abseil-cpp/absl/random/internal/randen_test.cc +75 -0
  547. package/vendor/abseil-cpp/absl/random/internal/randen_traits.h +88 -0
  548. package/vendor/abseil-cpp/absl/random/internal/salted_seed_seq.h +165 -0
  549. package/vendor/abseil-cpp/absl/random/internal/salted_seed_seq_test.cc +168 -0
  550. package/vendor/abseil-cpp/absl/random/internal/seed_material.cc +267 -0
  551. package/vendor/abseil-cpp/absl/random/internal/seed_material.h +104 -0
  552. package/vendor/abseil-cpp/absl/random/internal/seed_material_test.cc +202 -0
  553. package/vendor/abseil-cpp/absl/random/internal/sequence_urbg.h +60 -0
  554. package/vendor/abseil-cpp/absl/random/internal/traits.h +149 -0
  555. package/vendor/abseil-cpp/absl/random/internal/traits_test.cc +126 -0
  556. package/vendor/abseil-cpp/absl/random/internal/uniform_helper.h +244 -0
  557. package/vendor/abseil-cpp/absl/random/internal/uniform_helper_test.cc +279 -0
  558. package/vendor/abseil-cpp/absl/random/internal/wide_multiply.h +96 -0
  559. package/vendor/abseil-cpp/absl/random/internal/wide_multiply_test.cc +119 -0
  560. package/vendor/abseil-cpp/absl/random/log_uniform_int_distribution.h +256 -0
  561. package/vendor/abseil-cpp/absl/random/log_uniform_int_distribution_test.cc +280 -0
  562. package/vendor/abseil-cpp/absl/random/mock_distributions.h +266 -0
  563. package/vendor/abseil-cpp/absl/random/mock_distributions_test.cc +72 -0
  564. package/vendor/abseil-cpp/absl/random/mocking_bit_gen.h +240 -0
  565. package/vendor/abseil-cpp/absl/random/mocking_bit_gen_test.cc +394 -0
  566. package/vendor/abseil-cpp/absl/random/poisson_distribution.h +261 -0
  567. package/vendor/abseil-cpp/absl/random/poisson_distribution_test.cc +573 -0
  568. package/vendor/abseil-cpp/absl/random/random.h +189 -0
  569. package/vendor/abseil-cpp/absl/random/seed_gen_exception.cc +46 -0
  570. package/vendor/abseil-cpp/absl/random/seed_gen_exception.h +55 -0
  571. package/vendor/abseil-cpp/absl/random/seed_sequences.cc +29 -0
  572. package/vendor/abseil-cpp/absl/random/seed_sequences.h +111 -0
  573. package/vendor/abseil-cpp/absl/random/seed_sequences_test.cc +126 -0
  574. package/vendor/abseil-cpp/absl/random/uniform_int_distribution.h +275 -0
  575. package/vendor/abseil-cpp/absl/random/uniform_int_distribution_test.cc +260 -0
  576. package/vendor/abseil-cpp/absl/random/uniform_real_distribution.h +202 -0
  577. package/vendor/abseil-cpp/absl/random/uniform_real_distribution_test.cc +395 -0
  578. package/vendor/abseil-cpp/absl/random/zipf_distribution.h +272 -0
  579. package/vendor/abseil-cpp/absl/random/zipf_distribution_test.cc +427 -0
  580. package/vendor/abseil-cpp/absl/status/BUILD.bazel +109 -0
  581. package/vendor/abseil-cpp/absl/status/CMakeLists.txt +91 -0
  582. package/vendor/abseil-cpp/absl/status/internal/status_internal.h +87 -0
  583. package/vendor/abseil-cpp/absl/status/internal/statusor_internal.h +396 -0
  584. package/vendor/abseil-cpp/absl/status/status.cc +623 -0
  585. package/vendor/abseil-cpp/absl/status/status.h +892 -0
  586. package/vendor/abseil-cpp/absl/status/status_payload_printer.cc +38 -0
  587. package/vendor/abseil-cpp/absl/status/status_payload_printer.h +51 -0
  588. package/vendor/abseil-cpp/absl/status/status_test.cc +509 -0
  589. package/vendor/abseil-cpp/absl/status/statusor.cc +103 -0
  590. package/vendor/abseil-cpp/absl/status/statusor.h +776 -0
  591. package/vendor/abseil-cpp/absl/status/statusor_test.cc +1847 -0
  592. package/vendor/abseil-cpp/absl/strings/BUILD.bazel +1319 -0
  593. package/vendor/abseil-cpp/absl/strings/CMakeLists.txt +1119 -0
  594. package/vendor/abseil-cpp/absl/strings/ascii.cc +200 -0
  595. package/vendor/abseil-cpp/absl/strings/ascii.h +242 -0
  596. package/vendor/abseil-cpp/absl/strings/ascii_benchmark.cc +120 -0
  597. package/vendor/abseil-cpp/absl/strings/ascii_test.cc +357 -0
  598. package/vendor/abseil-cpp/absl/strings/atod_manual_test.cc +193 -0
  599. package/vendor/abseil-cpp/absl/strings/charconv.cc +1422 -0
  600. package/vendor/abseil-cpp/absl/strings/charconv.h +120 -0
  601. package/vendor/abseil-cpp/absl/strings/charconv_benchmark.cc +204 -0
  602. package/vendor/abseil-cpp/absl/strings/charconv_test.cc +782 -0
  603. package/vendor/abseil-cpp/absl/strings/cord.cc +1380 -0
  604. package/vendor/abseil-cpp/absl/strings/cord.h +1633 -0
  605. package/vendor/abseil-cpp/absl/strings/cord_analysis.cc +188 -0
  606. package/vendor/abseil-cpp/absl/strings/cord_analysis.h +44 -0
  607. package/vendor/abseil-cpp/absl/strings/cord_buffer.cc +30 -0
  608. package/vendor/abseil-cpp/absl/strings/cord_buffer.h +575 -0
  609. package/vendor/abseil-cpp/absl/strings/cord_buffer_test.cc +320 -0
  610. package/vendor/abseil-cpp/absl/strings/cord_ring_reader_test.cc +180 -0
  611. package/vendor/abseil-cpp/absl/strings/cord_ring_test.cc +1454 -0
  612. package/vendor/abseil-cpp/absl/strings/cord_test.cc +3125 -0
  613. package/vendor/abseil-cpp/absl/strings/cord_test_helpers.h +122 -0
  614. package/vendor/abseil-cpp/absl/strings/cordz_test.cc +466 -0
  615. package/vendor/abseil-cpp/absl/strings/cordz_test_helpers.h +151 -0
  616. package/vendor/abseil-cpp/absl/strings/escaping.cc +960 -0
  617. package/vendor/abseil-cpp/absl/strings/escaping.h +169 -0
  618. package/vendor/abseil-cpp/absl/strings/escaping_benchmark.cc +94 -0
  619. package/vendor/abseil-cpp/absl/strings/escaping_test.cc +706 -0
  620. package/vendor/abseil-cpp/absl/strings/internal/char_map.h +158 -0
  621. package/vendor/abseil-cpp/absl/strings/internal/char_map_benchmark.cc +61 -0
  622. package/vendor/abseil-cpp/absl/strings/internal/char_map_test.cc +172 -0
  623. package/vendor/abseil-cpp/absl/strings/internal/charconv_bigint.cc +359 -0
  624. package/vendor/abseil-cpp/absl/strings/internal/charconv_bigint.h +423 -0
  625. package/vendor/abseil-cpp/absl/strings/internal/charconv_bigint_test.cc +260 -0
  626. package/vendor/abseil-cpp/absl/strings/internal/charconv_parse.cc +504 -0
  627. package/vendor/abseil-cpp/absl/strings/internal/charconv_parse.h +99 -0
  628. package/vendor/abseil-cpp/absl/strings/internal/charconv_parse_test.cc +357 -0
  629. package/vendor/abseil-cpp/absl/strings/internal/cord_data_edge.h +63 -0
  630. package/vendor/abseil-cpp/absl/strings/internal/cord_data_edge_test.cc +130 -0
  631. package/vendor/abseil-cpp/absl/strings/internal/cord_internal.cc +77 -0
  632. package/vendor/abseil-cpp/absl/strings/internal/cord_internal.h +915 -0
  633. package/vendor/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +1232 -0
  634. package/vendor/abseil-cpp/absl/strings/internal/cord_rep_btree.h +936 -0
  635. package/vendor/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +187 -0
  636. package/vendor/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +267 -0
  637. package/vendor/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator_test.cc +346 -0
  638. package/vendor/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +69 -0
  639. package/vendor/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +212 -0
  640. package/vendor/abseil-cpp/absl/strings/internal/cord_rep_btree_reader_test.cc +293 -0
  641. package/vendor/abseil-cpp/absl/strings/internal/cord_rep_btree_test.cc +1568 -0
  642. package/vendor/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +62 -0
  643. package/vendor/abseil-cpp/absl/strings/internal/cord_rep_consume.h +50 -0
  644. package/vendor/abseil-cpp/absl/strings/internal/cord_rep_crc.cc +56 -0
  645. package/vendor/abseil-cpp/absl/strings/internal/cord_rep_crc.h +103 -0
  646. package/vendor/abseil-cpp/absl/strings/internal/cord_rep_crc_test.cc +130 -0
  647. package/vendor/abseil-cpp/absl/strings/internal/cord_rep_flat.h +187 -0
  648. package/vendor/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +773 -0
  649. package/vendor/abseil-cpp/absl/strings/internal/cord_rep_ring.h +607 -0
  650. package/vendor/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +118 -0
  651. package/vendor/abseil-cpp/absl/strings/internal/cord_rep_test_util.h +205 -0
  652. package/vendor/abseil-cpp/absl/strings/internal/cordz_functions.cc +96 -0
  653. package/vendor/abseil-cpp/absl/strings/internal/cordz_functions.h +77 -0
  654. package/vendor/abseil-cpp/absl/strings/internal/cordz_functions_test.cc +149 -0
  655. package/vendor/abseil-cpp/absl/strings/internal/cordz_handle.cc +139 -0
  656. package/vendor/abseil-cpp/absl/strings/internal/cordz_handle.h +131 -0
  657. package/vendor/abseil-cpp/absl/strings/internal/cordz_handle_test.cc +265 -0
  658. package/vendor/abseil-cpp/absl/strings/internal/cordz_info.cc +421 -0
  659. package/vendor/abseil-cpp/absl/strings/internal/cordz_info.h +298 -0
  660. package/vendor/abseil-cpp/absl/strings/internal/cordz_info_statistics_test.cc +557 -0
  661. package/vendor/abseil-cpp/absl/strings/internal/cordz_info_test.cc +342 -0
  662. package/vendor/abseil-cpp/absl/strings/internal/cordz_sample_token.cc +64 -0
  663. package/vendor/abseil-cpp/absl/strings/internal/cordz_sample_token.h +97 -0
  664. package/vendor/abseil-cpp/absl/strings/internal/cordz_sample_token_test.cc +208 -0
  665. package/vendor/abseil-cpp/absl/strings/internal/cordz_statistics.h +88 -0
  666. package/vendor/abseil-cpp/absl/strings/internal/cordz_update_scope.h +71 -0
  667. package/vendor/abseil-cpp/absl/strings/internal/cordz_update_scope_test.cc +49 -0
  668. package/vendor/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +123 -0
  669. package/vendor/abseil-cpp/absl/strings/internal/cordz_update_tracker_test.cc +147 -0
  670. package/vendor/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc +93 -0
  671. package/vendor/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.h +34 -0
  672. package/vendor/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance_test.cc +99 -0
  673. package/vendor/abseil-cpp/absl/strings/internal/escaping.cc +183 -0
  674. package/vendor/abseil-cpp/absl/strings/internal/escaping.h +56 -0
  675. package/vendor/abseil-cpp/absl/strings/internal/escaping_test_common.h +133 -0
  676. package/vendor/abseil-cpp/absl/strings/internal/has_absl_stringify.h +55 -0
  677. package/vendor/abseil-cpp/absl/strings/internal/memutil.cc +115 -0
  678. package/vendor/abseil-cpp/absl/strings/internal/memutil.h +148 -0
  679. package/vendor/abseil-cpp/absl/strings/internal/memutil_benchmark.cc +323 -0
  680. package/vendor/abseil-cpp/absl/strings/internal/memutil_test.cc +179 -0
  681. package/vendor/abseil-cpp/absl/strings/internal/numbers_test_common.h +184 -0
  682. package/vendor/abseil-cpp/absl/strings/internal/ostringstream.cc +43 -0
  683. package/vendor/abseil-cpp/absl/strings/internal/ostringstream.h +114 -0
  684. package/vendor/abseil-cpp/absl/strings/internal/ostringstream_benchmark.cc +106 -0
  685. package/vendor/abseil-cpp/absl/strings/internal/ostringstream_test.cc +131 -0
  686. package/vendor/abseil-cpp/absl/strings/internal/pow10_helper.cc +122 -0
  687. package/vendor/abseil-cpp/absl/strings/internal/pow10_helper.h +40 -0
  688. package/vendor/abseil-cpp/absl/strings/internal/pow10_helper_test.cc +122 -0
  689. package/vendor/abseil-cpp/absl/strings/internal/resize_uninitialized.h +119 -0
  690. package/vendor/abseil-cpp/absl/strings/internal/resize_uninitialized_test.cc +133 -0
  691. package/vendor/abseil-cpp/absl/strings/internal/stl_type_traits.h +248 -0
  692. package/vendor/abseil-cpp/absl/strings/internal/str_format/arg.cc +555 -0
  693. package/vendor/abseil-cpp/absl/strings/internal/str_format/arg.h +623 -0
  694. package/vendor/abseil-cpp/absl/strings/internal/str_format/arg_test.cc +130 -0
  695. package/vendor/abseil-cpp/absl/strings/internal/str_format/bind.cc +259 -0
  696. package/vendor/abseil-cpp/absl/strings/internal/str_format/bind.h +249 -0
  697. package/vendor/abseil-cpp/absl/strings/internal/str_format/bind_test.cc +157 -0
  698. package/vendor/abseil-cpp/absl/strings/internal/str_format/checker.h +100 -0
  699. package/vendor/abseil-cpp/absl/strings/internal/str_format/checker_test.cc +176 -0
  700. package/vendor/abseil-cpp/absl/strings/internal/str_format/constexpr_parser.h +351 -0
  701. package/vendor/abseil-cpp/absl/strings/internal/str_format/convert_test.cc +1257 -0
  702. package/vendor/abseil-cpp/absl/strings/internal/str_format/extension.cc +75 -0
  703. package/vendor/abseil-cpp/absl/strings/internal/str_format/extension.h +450 -0
  704. package/vendor/abseil-cpp/absl/strings/internal/str_format/extension_test.cc +109 -0
  705. package/vendor/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +1457 -0
  706. package/vendor/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +37 -0
  707. package/vendor/abseil-cpp/absl/strings/internal/str_format/output.cc +72 -0
  708. package/vendor/abseil-cpp/absl/strings/internal/str_format/output.h +97 -0
  709. package/vendor/abseil-cpp/absl/strings/internal/str_format/output_test.cc +79 -0
  710. package/vendor/abseil-cpp/absl/strings/internal/str_format/parser.cc +140 -0
  711. package/vendor/abseil-cpp/absl/strings/internal/str_format/parser.h +268 -0
  712. package/vendor/abseil-cpp/absl/strings/internal/str_format/parser_test.cc +438 -0
  713. package/vendor/abseil-cpp/absl/strings/internal/str_join_internal.h +317 -0
  714. package/vendor/abseil-cpp/absl/strings/internal/str_split_internal.h +431 -0
  715. package/vendor/abseil-cpp/absl/strings/internal/string_constant.h +72 -0
  716. package/vendor/abseil-cpp/absl/strings/internal/string_constant_test.cc +60 -0
  717. package/vendor/abseil-cpp/absl/strings/internal/stringify_sink.cc +28 -0
  718. package/vendor/abseil-cpp/absl/strings/internal/stringify_sink.h +57 -0
  719. package/vendor/abseil-cpp/absl/strings/internal/utf8.cc +53 -0
  720. package/vendor/abseil-cpp/absl/strings/internal/utf8.h +50 -0
  721. package/vendor/abseil-cpp/absl/strings/internal/utf8_test.cc +66 -0
  722. package/vendor/abseil-cpp/absl/strings/match.cc +43 -0
  723. package/vendor/abseil-cpp/absl/strings/match.h +100 -0
  724. package/vendor/abseil-cpp/absl/strings/match_test.cc +127 -0
  725. package/vendor/abseil-cpp/absl/strings/numbers.cc +1096 -0
  726. package/vendor/abseil-cpp/absl/strings/numbers.h +303 -0
  727. package/vendor/abseil-cpp/absl/strings/numbers_benchmark.cc +286 -0
  728. package/vendor/abseil-cpp/absl/strings/numbers_test.cc +1722 -0
  729. package/vendor/abseil-cpp/absl/strings/str_cat.cc +249 -0
  730. package/vendor/abseil-cpp/absl/strings/str_cat.h +462 -0
  731. package/vendor/abseil-cpp/absl/strings/str_cat_benchmark.cc +187 -0
  732. package/vendor/abseil-cpp/absl/strings/str_cat_test.cc +665 -0
  733. package/vendor/abseil-cpp/absl/strings/str_format.h +874 -0
  734. package/vendor/abseil-cpp/absl/strings/str_format_test.cc +1212 -0
  735. package/vendor/abseil-cpp/absl/strings/str_join.h +287 -0
  736. package/vendor/abseil-cpp/absl/strings/str_join_benchmark.cc +97 -0
  737. package/vendor/abseil-cpp/absl/strings/str_join_test.cc +608 -0
  738. package/vendor/abseil-cpp/absl/strings/str_replace.cc +82 -0
  739. package/vendor/abseil-cpp/absl/strings/str_replace.h +219 -0
  740. package/vendor/abseil-cpp/absl/strings/str_replace_benchmark.cc +122 -0
  741. package/vendor/abseil-cpp/absl/strings/str_replace_test.cc +341 -0
  742. package/vendor/abseil-cpp/absl/strings/str_split.cc +139 -0
  743. package/vendor/abseil-cpp/absl/strings/str_split.h +547 -0
  744. package/vendor/abseil-cpp/absl/strings/str_split_benchmark.cc +180 -0
  745. package/vendor/abseil-cpp/absl/strings/str_split_test.cc +981 -0
  746. package/vendor/abseil-cpp/absl/strings/string_view.cc +219 -0
  747. package/vendor/abseil-cpp/absl/strings/string_view.h +704 -0
  748. package/vendor/abseil-cpp/absl/strings/string_view_benchmark.cc +381 -0
  749. package/vendor/abseil-cpp/absl/strings/string_view_test.cc +1308 -0
  750. package/vendor/abseil-cpp/absl/strings/strip.h +93 -0
  751. package/vendor/abseil-cpp/absl/strings/strip_test.cc +198 -0
  752. package/vendor/abseil-cpp/absl/strings/substitute.cc +174 -0
  753. package/vendor/abseil-cpp/absl/strings/substitute.h +755 -0
  754. package/vendor/abseil-cpp/absl/strings/substitute_test.cc +285 -0
  755. package/vendor/abseil-cpp/absl/synchronization/BUILD.bazel +333 -0
  756. package/vendor/abseil-cpp/absl/synchronization/CMakeLists.txt +235 -0
  757. package/vendor/abseil-cpp/absl/synchronization/barrier.cc +52 -0
  758. package/vendor/abseil-cpp/absl/synchronization/barrier.h +79 -0
  759. package/vendor/abseil-cpp/absl/synchronization/barrier_test.cc +75 -0
  760. package/vendor/abseil-cpp/absl/synchronization/blocking_counter.cc +67 -0
  761. package/vendor/abseil-cpp/absl/synchronization/blocking_counter.h +101 -0
  762. package/vendor/abseil-cpp/absl/synchronization/blocking_counter_benchmark.cc +83 -0
  763. package/vendor/abseil-cpp/absl/synchronization/blocking_counter_test.cc +80 -0
  764. package/vendor/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +143 -0
  765. package/vendor/abseil-cpp/absl/synchronization/internal/create_thread_identity.h +56 -0
  766. package/vendor/abseil-cpp/absl/synchronization/internal/futex.h +157 -0
  767. package/vendor/abseil-cpp/absl/synchronization/internal/graphcycles.cc +704 -0
  768. package/vendor/abseil-cpp/absl/synchronization/internal/graphcycles.h +141 -0
  769. package/vendor/abseil-cpp/absl/synchronization/internal/graphcycles_benchmark.cc +44 -0
  770. package/vendor/abseil-cpp/absl/synchronization/internal/graphcycles_test.cc +464 -0
  771. package/vendor/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +170 -0
  772. package/vendor/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +102 -0
  773. package/vendor/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +110 -0
  774. package/vendor/abseil-cpp/absl/synchronization/internal/per_thread_sem_test.cc +190 -0
  775. package/vendor/abseil-cpp/absl/synchronization/internal/thread_pool.h +96 -0
  776. package/vendor/abseil-cpp/absl/synchronization/internal/waiter.cc +403 -0
  777. package/vendor/abseil-cpp/absl/synchronization/internal/waiter.h +161 -0
  778. package/vendor/abseil-cpp/absl/synchronization/lifetime_test.cc +181 -0
  779. package/vendor/abseil-cpp/absl/synchronization/mutex.cc +2835 -0
  780. package/vendor/abseil-cpp/absl/synchronization/mutex.h +1129 -0
  781. package/vendor/abseil-cpp/absl/synchronization/mutex_benchmark.cc +310 -0
  782. package/vendor/abseil-cpp/absl/synchronization/mutex_method_pointer_test.cc +138 -0
  783. package/vendor/abseil-cpp/absl/synchronization/mutex_test.cc +1733 -0
  784. package/vendor/abseil-cpp/absl/synchronization/notification.cc +77 -0
  785. package/vendor/abseil-cpp/absl/synchronization/notification.h +123 -0
  786. package/vendor/abseil-cpp/absl/synchronization/notification_test.cc +133 -0
  787. package/vendor/abseil-cpp/absl/time/BUILD.bazel +148 -0
  788. package/vendor/abseil-cpp/absl/time/CMakeLists.txt +140 -0
  789. package/vendor/abseil-cpp/absl/time/civil_time.cc +199 -0
  790. package/vendor/abseil-cpp/absl/time/civil_time.h +563 -0
  791. package/vendor/abseil-cpp/absl/time/civil_time_benchmark.cc +127 -0
  792. package/vendor/abseil-cpp/absl/time/civil_time_test.cc +1243 -0
  793. package/vendor/abseil-cpp/absl/time/clock.cc +591 -0
  794. package/vendor/abseil-cpp/absl/time/clock.h +74 -0
  795. package/vendor/abseil-cpp/absl/time/clock_benchmark.cc +74 -0
  796. package/vendor/abseil-cpp/absl/time/clock_test.cc +122 -0
  797. package/vendor/abseil-cpp/absl/time/duration.cc +955 -0
  798. package/vendor/abseil-cpp/absl/time/duration_benchmark.cc +444 -0
  799. package/vendor/abseil-cpp/absl/time/duration_test.cc +1856 -0
  800. package/vendor/abseil-cpp/absl/time/flag_test.cc +147 -0
  801. package/vendor/abseil-cpp/absl/time/format.cc +161 -0
  802. package/vendor/abseil-cpp/absl/time/format_benchmark.cc +64 -0
  803. package/vendor/abseil-cpp/absl/time/format_test.cc +441 -0
  804. package/vendor/abseil-cpp/absl/time/internal/cctz/BUILD.bazel +159 -0
  805. package/vendor/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time.h +332 -0
  806. package/vendor/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +632 -0
  807. package/vendor/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +459 -0
  808. package/vendor/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +102 -0
  809. package/vendor/abseil-cpp/absl/time/internal/cctz/src/cctz_benchmark.cc +1033 -0
  810. package/vendor/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc +94 -0
  811. package/vendor/abseil-cpp/absl/time/internal/cctz/src/civil_time_test.cc +1066 -0
  812. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +140 -0
  813. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.h +52 -0
  814. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +1029 -0
  815. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format_test.cc +1688 -0
  816. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc +45 -0
  817. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +77 -0
  818. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +113 -0
  819. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +93 -0
  820. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +1048 -0
  821. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +137 -0
  822. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +315 -0
  823. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h +55 -0
  824. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +237 -0
  825. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup_test.cc +1504 -0
  826. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc +159 -0
  827. package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.h +132 -0
  828. package/vendor/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +122 -0
  829. package/vendor/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +116 -0
  830. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/README.zoneinfo +38 -0
  831. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/version +1 -0
  832. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Abidjan +0 -0
  833. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Accra +0 -0
  834. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Addis_Ababa +0 -0
  835. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Algiers +0 -0
  836. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Asmara +0 -0
  837. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Asmera +0 -0
  838. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Bamako +0 -0
  839. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Bangui +0 -0
  840. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Banjul +0 -0
  841. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Bissau +0 -0
  842. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Blantyre +0 -0
  843. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Brazzaville +0 -0
  844. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Bujumbura +0 -0
  845. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Cairo +0 -0
  846. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Casablanca +0 -0
  847. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Ceuta +0 -0
  848. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Conakry +0 -0
  849. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Dakar +0 -0
  850. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Dar_es_Salaam +0 -0
  851. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Djibouti +0 -0
  852. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Douala +0 -0
  853. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/El_Aaiun +0 -0
  854. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Freetown +0 -0
  855. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Gaborone +0 -0
  856. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Harare +0 -0
  857. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Johannesburg +0 -0
  858. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Juba +0 -0
  859. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Kampala +0 -0
  860. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Khartoum +0 -0
  861. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Kigali +0 -0
  862. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Kinshasa +0 -0
  863. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Lagos +0 -0
  864. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Libreville +0 -0
  865. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Lome +0 -0
  866. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Luanda +0 -0
  867. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Lubumbashi +0 -0
  868. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Lusaka +0 -0
  869. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Malabo +0 -0
  870. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Maputo +0 -0
  871. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Maseru +0 -0
  872. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Mbabane +0 -0
  873. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Mogadishu +0 -0
  874. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Monrovia +0 -0
  875. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Nairobi +0 -0
  876. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Ndjamena +0 -0
  877. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Niamey +0 -0
  878. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Nouakchott +0 -0
  879. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Ouagadougou +0 -0
  880. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Porto-Novo +0 -0
  881. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Sao_Tome +0 -0
  882. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Timbuktu +0 -0
  883. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Tripoli +0 -0
  884. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Tunis +0 -0
  885. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Windhoek +0 -0
  886. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Adak +0 -0
  887. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Anchorage +0 -0
  888. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Anguilla +0 -0
  889. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Antigua +0 -0
  890. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Araguaina +0 -0
  891. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Buenos_Aires +0 -0
  892. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Catamarca +0 -0
  893. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/ComodRivadavia +0 -0
  894. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Cordoba +0 -0
  895. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Jujuy +0 -0
  896. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/La_Rioja +0 -0
  897. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Mendoza +0 -0
  898. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Rio_Gallegos +0 -0
  899. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Salta +0 -0
  900. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/San_Juan +0 -0
  901. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/San_Luis +0 -0
  902. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Tucuman +0 -0
  903. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Ushuaia +0 -0
  904. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Aruba +0 -0
  905. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Asuncion +0 -0
  906. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Atikokan +0 -0
  907. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Atka +0 -0
  908. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Bahia +0 -0
  909. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Bahia_Banderas +0 -0
  910. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Barbados +0 -0
  911. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Belem +0 -0
  912. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Belize +0 -0
  913. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Blanc-Sablon +0 -0
  914. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Boa_Vista +0 -0
  915. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Bogota +0 -0
  916. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Boise +0 -0
  917. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Buenos_Aires +0 -0
  918. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Cambridge_Bay +0 -0
  919. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Campo_Grande +0 -0
  920. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Cancun +0 -0
  921. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Caracas +0 -0
  922. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Catamarca +0 -0
  923. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Cayenne +0 -0
  924. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Cayman +0 -0
  925. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Chicago +0 -0
  926. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Chihuahua +0 -0
  927. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Ciudad_Juarez +0 -0
  928. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Coral_Harbour +0 -0
  929. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Cordoba +0 -0
  930. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Costa_Rica +0 -0
  931. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Creston +0 -0
  932. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Cuiaba +0 -0
  933. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Curacao +0 -0
  934. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Danmarkshavn +0 -0
  935. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Dawson +0 -0
  936. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Dawson_Creek +0 -0
  937. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Denver +0 -0
  938. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Detroit +0 -0
  939. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Dominica +0 -0
  940. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Edmonton +0 -0
  941. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Eirunepe +0 -0
  942. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/El_Salvador +0 -0
  943. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Ensenada +0 -0
  944. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Fort_Nelson +0 -0
  945. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Fort_Wayne +0 -0
  946. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Fortaleza +0 -0
  947. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Glace_Bay +0 -0
  948. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Godthab +0 -0
  949. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Goose_Bay +0 -0
  950. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Grand_Turk +0 -0
  951. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Grenada +0 -0
  952. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Guadeloupe +0 -0
  953. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Guatemala +0 -0
  954. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Guayaquil +0 -0
  955. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Guyana +0 -0
  956. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Halifax +0 -0
  957. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Havana +0 -0
  958. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Hermosillo +0 -0
  959. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indiana/Indianapolis +0 -0
  960. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indiana/Knox +0 -0
  961. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indiana/Marengo +0 -0
  962. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indiana/Petersburg +0 -0
  963. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indiana/Tell_City +0 -0
  964. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indiana/Vevay +0 -0
  965. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indiana/Vincennes +0 -0
  966. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indiana/Winamac +0 -0
  967. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indianapolis +0 -0
  968. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Inuvik +0 -0
  969. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Iqaluit +0 -0
  970. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Jamaica +0 -0
  971. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Jujuy +0 -0
  972. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Juneau +0 -0
  973. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Kentucky/Louisville +0 -0
  974. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Kentucky/Monticello +0 -0
  975. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Knox_IN +0 -0
  976. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Kralendijk +0 -0
  977. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/La_Paz +0 -0
  978. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Lima +0 -0
  979. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Los_Angeles +0 -0
  980. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Louisville +0 -0
  981. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Lower_Princes +0 -0
  982. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Maceio +0 -0
  983. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Managua +0 -0
  984. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Manaus +0 -0
  985. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Marigot +0 -0
  986. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Martinique +0 -0
  987. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Matamoros +0 -0
  988. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Mazatlan +0 -0
  989. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Mendoza +0 -0
  990. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Menominee +0 -0
  991. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Merida +0 -0
  992. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Metlakatla +0 -0
  993. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Mexico_City +0 -0
  994. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Miquelon +0 -0
  995. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Moncton +0 -0
  996. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Monterrey +0 -0
  997. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Montevideo +0 -0
  998. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Montreal +0 -0
  999. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Montserrat +0 -0
  1000. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Nassau +0 -0
  1001. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/New_York +0 -0
  1002. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Nipigon +0 -0
  1003. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Nome +0 -0
  1004. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Noronha +0 -0
  1005. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/North_Dakota/Beulah +0 -0
  1006. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/North_Dakota/Center +0 -0
  1007. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/North_Dakota/New_Salem +0 -0
  1008. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Nuuk +0 -0
  1009. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Ojinaga +0 -0
  1010. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Panama +0 -0
  1011. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Pangnirtung +0 -0
  1012. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Paramaribo +0 -0
  1013. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Phoenix +0 -0
  1014. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Port-au-Prince +0 -0
  1015. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Port_of_Spain +0 -0
  1016. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Porto_Acre +0 -0
  1017. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Porto_Velho +0 -0
  1018. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Puerto_Rico +0 -0
  1019. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Punta_Arenas +0 -0
  1020. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Rainy_River +0 -0
  1021. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Rankin_Inlet +0 -0
  1022. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Recife +0 -0
  1023. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Regina +0 -0
  1024. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Resolute +0 -0
  1025. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Rio_Branco +0 -0
  1026. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Rosario +0 -0
  1027. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Santa_Isabel +0 -0
  1028. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Santarem +0 -0
  1029. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Santiago +0 -0
  1030. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Santo_Domingo +0 -0
  1031. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Sao_Paulo +0 -0
  1032. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Scoresbysund +0 -0
  1033. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Shiprock +0 -0
  1034. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Sitka +0 -0
  1035. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/St_Barthelemy +0 -0
  1036. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/St_Johns +0 -0
  1037. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/St_Kitts +0 -0
  1038. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/St_Lucia +0 -0
  1039. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/St_Thomas +0 -0
  1040. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/St_Vincent +0 -0
  1041. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Swift_Current +0 -0
  1042. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Tegucigalpa +0 -0
  1043. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Thule +0 -0
  1044. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Thunder_Bay +0 -0
  1045. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Tijuana +0 -0
  1046. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Toronto +0 -0
  1047. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Tortola +0 -0
  1048. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Vancouver +0 -0
  1049. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Virgin +0 -0
  1050. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Whitehorse +0 -0
  1051. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Winnipeg +0 -0
  1052. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Yakutat +0 -0
  1053. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Yellowknife +0 -0
  1054. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Casey +0 -0
  1055. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Davis +0 -0
  1056. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/DumontDUrville +0 -0
  1057. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Macquarie +0 -0
  1058. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Mawson +0 -0
  1059. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/McMurdo +0 -0
  1060. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Palmer +0 -0
  1061. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Rothera +0 -0
  1062. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/South_Pole +0 -0
  1063. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Syowa +0 -0
  1064. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Troll +0 -0
  1065. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Vostok +0 -0
  1066. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Arctic/Longyearbyen +0 -0
  1067. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Aden +0 -0
  1068. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Almaty +0 -0
  1069. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Amman +0 -0
  1070. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Anadyr +0 -0
  1071. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Aqtau +0 -0
  1072. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Aqtobe +0 -0
  1073. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ashgabat +0 -0
  1074. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ashkhabad +0 -0
  1075. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Atyrau +0 -0
  1076. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Baghdad +0 -0
  1077. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Bahrain +0 -0
  1078. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Baku +0 -0
  1079. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Bangkok +0 -0
  1080. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Barnaul +0 -0
  1081. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Beirut +0 -0
  1082. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Bishkek +0 -0
  1083. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Brunei +0 -0
  1084. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Calcutta +0 -0
  1085. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Chita +0 -0
  1086. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Choibalsan +0 -0
  1087. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Chongqing +0 -0
  1088. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Chungking +0 -0
  1089. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Colombo +0 -0
  1090. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Dacca +0 -0
  1091. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Damascus +0 -0
  1092. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Dhaka +0 -0
  1093. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Dili +0 -0
  1094. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Dubai +0 -0
  1095. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Dushanbe +0 -0
  1096. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Famagusta +0 -0
  1097. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Gaza +0 -0
  1098. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Harbin +0 -0
  1099. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Hebron +0 -0
  1100. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ho_Chi_Minh +0 -0
  1101. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Hong_Kong +0 -0
  1102. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Hovd +0 -0
  1103. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Irkutsk +0 -0
  1104. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Istanbul +0 -0
  1105. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Jakarta +0 -0
  1106. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Jayapura +0 -0
  1107. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Jerusalem +0 -0
  1108. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Kabul +0 -0
  1109. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Kamchatka +0 -0
  1110. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Karachi +0 -0
  1111. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Kashgar +0 -0
  1112. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Kathmandu +0 -0
  1113. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Katmandu +0 -0
  1114. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Khandyga +0 -0
  1115. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Kolkata +0 -0
  1116. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Krasnoyarsk +0 -0
  1117. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Kuala_Lumpur +0 -0
  1118. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Kuching +0 -0
  1119. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Kuwait +0 -0
  1120. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Macao +0 -0
  1121. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Macau +0 -0
  1122. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Magadan +0 -0
  1123. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Makassar +0 -0
  1124. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Manila +0 -0
  1125. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Muscat +0 -0
  1126. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Nicosia +0 -0
  1127. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Novokuznetsk +0 -0
  1128. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Novosibirsk +0 -0
  1129. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Omsk +0 -0
  1130. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Oral +0 -0
  1131. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Phnom_Penh +0 -0
  1132. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Pontianak +0 -0
  1133. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Pyongyang +0 -0
  1134. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Qatar +0 -0
  1135. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Qostanay +0 -0
  1136. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Qyzylorda +0 -0
  1137. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Rangoon +0 -0
  1138. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Riyadh +0 -0
  1139. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Saigon +0 -0
  1140. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Sakhalin +0 -0
  1141. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Samarkand +0 -0
  1142. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Seoul +0 -0
  1143. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Shanghai +0 -0
  1144. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Singapore +0 -0
  1145. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Srednekolymsk +0 -0
  1146. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Taipei +0 -0
  1147. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tashkent +0 -0
  1148. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tbilisi +0 -0
  1149. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tehran +0 -0
  1150. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tel_Aviv +0 -0
  1151. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Thimbu +0 -0
  1152. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Thimphu +0 -0
  1153. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tokyo +0 -0
  1154. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tomsk +0 -0
  1155. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ujung_Pandang +0 -0
  1156. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ulaanbaatar +0 -0
  1157. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ulan_Bator +0 -0
  1158. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Urumqi +0 -0
  1159. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ust-Nera +0 -0
  1160. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Vientiane +0 -0
  1161. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Vladivostok +0 -0
  1162. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Yakutsk +0 -0
  1163. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Yangon +0 -0
  1164. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Yekaterinburg +0 -0
  1165. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Yerevan +0 -0
  1166. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Azores +0 -0
  1167. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Bermuda +0 -0
  1168. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Canary +0 -0
  1169. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Cape_Verde +0 -0
  1170. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Faeroe +0 -0
  1171. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Faroe +0 -0
  1172. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Jan_Mayen +0 -0
  1173. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Madeira +0 -0
  1174. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Reykjavik +0 -0
  1175. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/South_Georgia +0 -0
  1176. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/St_Helena +0 -0
  1177. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Stanley +0 -0
  1178. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/ACT +0 -0
  1179. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Adelaide +0 -0
  1180. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Brisbane +0 -0
  1181. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Broken_Hill +0 -0
  1182. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Canberra +0 -0
  1183. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Currie +0 -0
  1184. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Darwin +0 -0
  1185. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Eucla +0 -0
  1186. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Hobart +0 -0
  1187. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/LHI +0 -0
  1188. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Lindeman +0 -0
  1189. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Lord_Howe +0 -0
  1190. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Melbourne +0 -0
  1191. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/NSW +0 -0
  1192. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/North +0 -0
  1193. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Perth +0 -0
  1194. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Queensland +0 -0
  1195. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/South +0 -0
  1196. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Sydney +0 -0
  1197. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Tasmania +0 -0
  1198. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Victoria +0 -0
  1199. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/West +0 -0
  1200. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Yancowinna +0 -0
  1201. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Brazil/Acre +0 -0
  1202. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Brazil/DeNoronha +0 -0
  1203. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Brazil/East +0 -0
  1204. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Brazil/West +0 -0
  1205. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/CET +0 -0
  1206. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/CST6CDT +0 -0
  1207. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Atlantic +0 -0
  1208. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Central +0 -0
  1209. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Eastern +0 -0
  1210. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Mountain +0 -0
  1211. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Newfoundland +0 -0
  1212. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Pacific +0 -0
  1213. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Saskatchewan +0 -0
  1214. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Yukon +0 -0
  1215. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Chile/Continental +0 -0
  1216. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Chile/EasterIsland +0 -0
  1217. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Cuba +0 -0
  1218. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/EET +0 -0
  1219. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/EST +0 -0
  1220. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/EST5EDT +0 -0
  1221. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Egypt +0 -0
  1222. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Eire +0 -0
  1223. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT +0 -0
  1224. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+0 +0 -0
  1225. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+1 +0 -0
  1226. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+10 +0 -0
  1227. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+11 +0 -0
  1228. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+12 +0 -0
  1229. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+2 +0 -0
  1230. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+3 +0 -0
  1231. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+4 +0 -0
  1232. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+5 +0 -0
  1233. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+6 +0 -0
  1234. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+7 +0 -0
  1235. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+8 +0 -0
  1236. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+9 +0 -0
  1237. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-0 +0 -0
  1238. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-1 +0 -0
  1239. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-10 +0 -0
  1240. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-11 +0 -0
  1241. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-12 +0 -0
  1242. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-13 +0 -0
  1243. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-14 +0 -0
  1244. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-2 +0 -0
  1245. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-3 +0 -0
  1246. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-4 +0 -0
  1247. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-5 +0 -0
  1248. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-6 +0 -0
  1249. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-7 +0 -0
  1250. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-8 +0 -0
  1251. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-9 +0 -0
  1252. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT0 +0 -0
  1253. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/Greenwich +0 -0
  1254. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/UCT +0 -0
  1255. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/UTC +0 -0
  1256. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/Universal +0 -0
  1257. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/Zulu +0 -0
  1258. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Amsterdam +0 -0
  1259. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Andorra +0 -0
  1260. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Astrakhan +0 -0
  1261. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Athens +0 -0
  1262. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Belfast +0 -0
  1263. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Belgrade +0 -0
  1264. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Berlin +0 -0
  1265. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Bratislava +0 -0
  1266. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Brussels +0 -0
  1267. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Bucharest +0 -0
  1268. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Budapest +0 -0
  1269. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Busingen +0 -0
  1270. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Chisinau +0 -0
  1271. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Copenhagen +0 -0
  1272. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Dublin +0 -0
  1273. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Gibraltar +0 -0
  1274. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Guernsey +0 -0
  1275. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Helsinki +0 -0
  1276. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Isle_of_Man +0 -0
  1277. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Istanbul +0 -0
  1278. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Jersey +0 -0
  1279. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Kaliningrad +0 -0
  1280. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Kiev +0 -0
  1281. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Kirov +0 -0
  1282. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Kyiv +0 -0
  1283. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Lisbon +0 -0
  1284. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Ljubljana +0 -0
  1285. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/London +0 -0
  1286. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Luxembourg +0 -0
  1287. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Madrid +0 -0
  1288. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Malta +0 -0
  1289. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Mariehamn +0 -0
  1290. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Minsk +0 -0
  1291. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Monaco +0 -0
  1292. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Moscow +0 -0
  1293. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Nicosia +0 -0
  1294. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Oslo +0 -0
  1295. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Paris +0 -0
  1296. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Podgorica +0 -0
  1297. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Prague +0 -0
  1298. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Riga +0 -0
  1299. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Rome +0 -0
  1300. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Samara +0 -0
  1301. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/San_Marino +0 -0
  1302. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Sarajevo +0 -0
  1303. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Saratov +0 -0
  1304. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Simferopol +0 -0
  1305. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Skopje +0 -0
  1306. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Sofia +0 -0
  1307. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Stockholm +0 -0
  1308. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Tallinn +0 -0
  1309. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Tirane +0 -0
  1310. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Tiraspol +0 -0
  1311. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Ulyanovsk +0 -0
  1312. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Uzhgorod +0 -0
  1313. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Vaduz +0 -0
  1314. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Vatican +0 -0
  1315. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Vienna +0 -0
  1316. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Vilnius +0 -0
  1317. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Volgograd +0 -0
  1318. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Warsaw +0 -0
  1319. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Zagreb +0 -0
  1320. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Zaporozhye +0 -0
  1321. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Zurich +0 -0
  1322. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Factory +0 -0
  1323. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/GB +0 -0
  1324. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/GB-Eire +0 -0
  1325. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/GMT +0 -0
  1326. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/GMT+0 +0 -0
  1327. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/GMT-0 +0 -0
  1328. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/GMT0 +0 -0
  1329. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Greenwich +0 -0
  1330. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/HST +0 -0
  1331. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Hongkong +0 -0
  1332. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Iceland +0 -0
  1333. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Antananarivo +0 -0
  1334. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Chagos +0 -0
  1335. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Christmas +0 -0
  1336. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Cocos +0 -0
  1337. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Comoro +0 -0
  1338. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Kerguelen +0 -0
  1339. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Mahe +0 -0
  1340. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Maldives +0 -0
  1341. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Mauritius +0 -0
  1342. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Mayotte +0 -0
  1343. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Reunion +0 -0
  1344. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Iran +0 -0
  1345. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Israel +0 -0
  1346. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Jamaica +0 -0
  1347. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Japan +0 -0
  1348. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Kwajalein +0 -0
  1349. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Libya +0 -0
  1350. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/MET +0 -0
  1351. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/MST +0 -0
  1352. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/MST7MDT +0 -0
  1353. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Mexico/BajaNorte +0 -0
  1354. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Mexico/BajaSur +0 -0
  1355. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Mexico/General +0 -0
  1356. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/NZ +0 -0
  1357. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/NZ-CHAT +0 -0
  1358. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Navajo +0 -0
  1359. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/PRC +0 -0
  1360. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/PST8PDT +0 -0
  1361. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Apia +0 -0
  1362. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Auckland +0 -0
  1363. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Bougainville +0 -0
  1364. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Chatham +0 -0
  1365. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Chuuk +0 -0
  1366. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Easter +0 -0
  1367. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Efate +0 -0
  1368. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Enderbury +0 -0
  1369. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Fakaofo +0 -0
  1370. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Fiji +0 -0
  1371. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Funafuti +0 -0
  1372. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Galapagos +0 -0
  1373. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Gambier +0 -0
  1374. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Guadalcanal +0 -0
  1375. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Guam +0 -0
  1376. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Honolulu +0 -0
  1377. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Johnston +0 -0
  1378. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Kanton +0 -0
  1379. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Kiritimati +0 -0
  1380. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Kosrae +0 -0
  1381. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Kwajalein +0 -0
  1382. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Majuro +0 -0
  1383. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Marquesas +0 -0
  1384. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Midway +0 -0
  1385. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Nauru +0 -0
  1386. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Niue +0 -0
  1387. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Norfolk +0 -0
  1388. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Noumea +0 -0
  1389. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Pago_Pago +0 -0
  1390. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Palau +0 -0
  1391. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Pitcairn +0 -0
  1392. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Pohnpei +0 -0
  1393. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Ponape +0 -0
  1394. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Port_Moresby +0 -0
  1395. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Rarotonga +0 -0
  1396. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Saipan +0 -0
  1397. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Samoa +0 -0
  1398. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Tahiti +0 -0
  1399. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Tarawa +0 -0
  1400. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Tongatapu +0 -0
  1401. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Truk +0 -0
  1402. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Wake +0 -0
  1403. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Wallis +0 -0
  1404. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Yap +0 -0
  1405. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Poland +0 -0
  1406. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Portugal +0 -0
  1407. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/ROC +0 -0
  1408. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/ROK +0 -0
  1409. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Singapore +0 -0
  1410. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Turkey +0 -0
  1411. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/UCT +0 -0
  1412. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Alaska +0 -0
  1413. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Aleutian +0 -0
  1414. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Arizona +0 -0
  1415. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Central +0 -0
  1416. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/East-Indiana +0 -0
  1417. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Eastern +0 -0
  1418. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Hawaii +0 -0
  1419. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Indiana-Starke +0 -0
  1420. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Michigan +0 -0
  1421. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Mountain +0 -0
  1422. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Pacific +0 -0
  1423. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Samoa +0 -0
  1424. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/UTC +0 -0
  1425. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Universal +0 -0
  1426. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/W-SU +0 -0
  1427. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/WET +0 -0
  1428. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Zulu +0 -0
  1429. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/iso3166.tab +274 -0
  1430. package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zone1970.tab +372 -0
  1431. package/vendor/abseil-cpp/absl/time/internal/get_current_time_chrono.inc +31 -0
  1432. package/vendor/abseil-cpp/absl/time/internal/get_current_time_posix.inc +24 -0
  1433. package/vendor/abseil-cpp/absl/time/internal/test_util.cc +32 -0
  1434. package/vendor/abseil-cpp/absl/time/internal/test_util.h +33 -0
  1435. package/vendor/abseil-cpp/absl/time/time.cc +500 -0
  1436. package/vendor/abseil-cpp/absl/time/time.h +1715 -0
  1437. package/vendor/abseil-cpp/absl/time/time_benchmark.cc +321 -0
  1438. package/vendor/abseil-cpp/absl/time/time_test.cc +1290 -0
  1439. package/vendor/abseil-cpp/absl/time/time_zone_test.cc +97 -0
  1440. package/vendor/abseil-cpp/absl/types/BUILD.bazel +336 -0
  1441. package/vendor/abseil-cpp/absl/types/CMakeLists.txt +371 -0
  1442. package/vendor/abseil-cpp/absl/types/any.h +517 -0
  1443. package/vendor/abseil-cpp/absl/types/any_exception_safety_test.cc +173 -0
  1444. package/vendor/abseil-cpp/absl/types/any_test.cc +778 -0
  1445. package/vendor/abseil-cpp/absl/types/bad_any_cast.cc +46 -0
  1446. package/vendor/abseil-cpp/absl/types/bad_any_cast.h +75 -0
  1447. package/vendor/abseil-cpp/absl/types/bad_optional_access.cc +48 -0
  1448. package/vendor/abseil-cpp/absl/types/bad_optional_access.h +78 -0
  1449. package/vendor/abseil-cpp/absl/types/bad_variant_access.cc +64 -0
  1450. package/vendor/abseil-cpp/absl/types/bad_variant_access.h +82 -0
  1451. package/vendor/abseil-cpp/absl/types/compare.h +599 -0
  1452. package/vendor/abseil-cpp/absl/types/compare_test.cc +389 -0
  1453. package/vendor/abseil-cpp/absl/types/internal/conformance_aliases.h +447 -0
  1454. package/vendor/abseil-cpp/absl/types/internal/conformance_archetype.h +978 -0
  1455. package/vendor/abseil-cpp/absl/types/internal/conformance_profile.h +933 -0
  1456. package/vendor/abseil-cpp/absl/types/internal/conformance_testing.h +1386 -0
  1457. package/vendor/abseil-cpp/absl/types/internal/conformance_testing_helpers.h +391 -0
  1458. package/vendor/abseil-cpp/absl/types/internal/conformance_testing_test.cc +1556 -0
  1459. package/vendor/abseil-cpp/absl/types/internal/optional.h +404 -0
  1460. package/vendor/abseil-cpp/absl/types/internal/parentheses.h +34 -0
  1461. package/vendor/abseil-cpp/absl/types/internal/span.h +139 -0
  1462. package/vendor/abseil-cpp/absl/types/internal/transform_args.h +246 -0
  1463. package/vendor/abseil-cpp/absl/types/internal/variant.h +1634 -0
  1464. package/vendor/abseil-cpp/absl/types/optional.h +779 -0
  1465. package/vendor/abseil-cpp/absl/types/optional_exception_safety_test.cc +292 -0
  1466. package/vendor/abseil-cpp/absl/types/optional_test.cc +1675 -0
  1467. package/vendor/abseil-cpp/absl/types/span.h +749 -0
  1468. package/vendor/abseil-cpp/absl/types/span_test.cc +848 -0
  1469. package/vendor/abseil-cpp/absl/types/variant.h +866 -0
  1470. package/vendor/abseil-cpp/absl/types/variant_benchmark.cc +222 -0
  1471. package/vendor/abseil-cpp/absl/types/variant_exception_safety_test.cc +532 -0
  1472. package/vendor/abseil-cpp/absl/types/variant_test.cc +2718 -0
  1473. package/vendor/abseil-cpp/absl/utility/BUILD.bazel +54 -0
  1474. package/vendor/abseil-cpp/absl/utility/CMakeLists.txt +44 -0
  1475. package/vendor/abseil-cpp/absl/utility/utility.h +350 -0
  1476. package/vendor/abseil-cpp/absl/utility/utility_test.cc +376 -0
  1477. package/vendor/abseil-cpp/ci/absl_alternate_options.h +29 -0
  1478. package/vendor/abseil-cpp/ci/cmake_common.sh +25 -0
  1479. package/vendor/abseil-cpp/ci/cmake_install_test.sh +58 -0
  1480. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_asan_bazel.sh +102 -0
  1481. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_bazel.sh +100 -0
  1482. package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_tsan_bazel.sh +97 -0
  1483. package/vendor/abseil-cpp/ci/linux_clang-latest_libstdcxx_bazel.sh +95 -0
  1484. package/vendor/abseil-cpp/ci/linux_docker_containers.sh +21 -0
  1485. package/vendor/abseil-cpp/ci/linux_gcc-floor_libstdcxx_bazel.sh +92 -0
  1486. package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_bazel.sh +98 -0
  1487. package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_cmake.sh +66 -0
  1488. package/vendor/abseil-cpp/ci/linux_gcc_alpine_cmake.sh +65 -0
  1489. package/vendor/abseil-cpp/ci/macos_xcode_bazel.sh +65 -0
  1490. package/vendor/abseil-cpp/ci/macos_xcode_cmake.sh +57 -0
  1491. package/vendor/abseil-cpp/conanfile.py +51 -0
  1492. package/vendor/abseil-cpp/create_lts.py +133 -0
@@ -0,0 +1,1688 @@
1
+ // Copyright 2016 Google Inc. All Rights Reserved.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // https://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ #include <chrono>
16
+ #include <cstdint>
17
+ #include <iomanip>
18
+ #include <sstream>
19
+ #include <string>
20
+
21
+ #include "absl/base/config.h"
22
+ #include "absl/time/internal/cctz/include/cctz/time_zone.h"
23
+ #if defined(__linux__)
24
+ #include <features.h>
25
+ #endif
26
+
27
+ #include "gmock/gmock.h"
28
+ #include "gtest/gtest.h"
29
+ #include "absl/time/internal/cctz/include/cctz/civil_time.h"
30
+
31
+ namespace chrono = std::chrono;
32
+
33
+ namespace absl {
34
+ ABSL_NAMESPACE_BEGIN
35
+ namespace time_internal {
36
+ namespace cctz {
37
+
38
+ namespace {
39
+
40
+ // This helper is a macro so that failed expectations show up with the
41
+ // correct line numbers.
42
+ #define ExpectTime(tp, tz, y, m, d, hh, mm, ss, off, isdst, zone) \
43
+ do { \
44
+ time_zone::absolute_lookup al = tz.lookup(tp); \
45
+ EXPECT_EQ(y, al.cs.year()); \
46
+ EXPECT_EQ(m, al.cs.month()); \
47
+ EXPECT_EQ(d, al.cs.day()); \
48
+ EXPECT_EQ(hh, al.cs.hour()); \
49
+ EXPECT_EQ(mm, al.cs.minute()); \
50
+ EXPECT_EQ(ss, al.cs.second()); \
51
+ EXPECT_EQ(off, al.offset); \
52
+ EXPECT_TRUE(isdst == al.is_dst); \
53
+ EXPECT_STREQ(zone, al.abbr); \
54
+ } while (0)
55
+
56
+ const char RFC3339_full[] = "%Y-%m-%d%ET%H:%M:%E*S%Ez";
57
+ const char RFC3339_sec[] = "%Y-%m-%d%ET%H:%M:%S%Ez";
58
+
59
+ const char RFC1123_full[] = "%a, %d %b %Y %H:%M:%S %z";
60
+ const char RFC1123_no_wday[] = "%d %b %Y %H:%M:%S %z";
61
+
62
+ // A helper that tests the given format specifier by itself, and with leading
63
+ // and trailing characters. For example: TestFormatSpecifier(tp, "%a", "Thu").
64
+ template <typename D>
65
+ void TestFormatSpecifier(time_point<D> tp, time_zone tz, const std::string& fmt,
66
+ const std::string& ans) {
67
+ EXPECT_EQ(ans, format(fmt, tp, tz)) << fmt;
68
+ EXPECT_EQ("xxx " + ans, format("xxx " + fmt, tp, tz));
69
+ EXPECT_EQ(ans + " yyy", format(fmt + " yyy", tp, tz));
70
+ EXPECT_EQ("xxx " + ans + " yyy", format("xxx " + fmt + " yyy", tp, tz));
71
+ }
72
+
73
+ } // namespace
74
+
75
+ //
76
+ // Testing format()
77
+ //
78
+
79
+ TEST(Format, TimePointResolution) {
80
+ const char kFmt[] = "%H:%M:%E*S";
81
+ const time_zone utc = utc_time_zone();
82
+ const time_point<chrono::nanoseconds> t0 =
83
+ chrono::system_clock::from_time_t(1420167845) +
84
+ chrono::milliseconds(123) + chrono::microseconds(456) +
85
+ chrono::nanoseconds(789);
86
+ EXPECT_EQ(
87
+ "03:04:05.123456789",
88
+ format(kFmt, chrono::time_point_cast<chrono::nanoseconds>(t0), utc));
89
+ EXPECT_EQ(
90
+ "03:04:05.123456",
91
+ format(kFmt, chrono::time_point_cast<chrono::microseconds>(t0), utc));
92
+ EXPECT_EQ(
93
+ "03:04:05.123",
94
+ format(kFmt, chrono::time_point_cast<chrono::milliseconds>(t0), utc));
95
+ EXPECT_EQ("03:04:05",
96
+ format(kFmt, chrono::time_point_cast<chrono::seconds>(t0), utc));
97
+ EXPECT_EQ(
98
+ "03:04:05",
99
+ format(kFmt,
100
+ chrono::time_point_cast<absl::time_internal::cctz::seconds>(t0),
101
+ utc));
102
+ EXPECT_EQ("03:04:00",
103
+ format(kFmt, chrono::time_point_cast<chrono::minutes>(t0), utc));
104
+ EXPECT_EQ("03:00:00",
105
+ format(kFmt, chrono::time_point_cast<chrono::hours>(t0), utc));
106
+ }
107
+
108
+ TEST(Format, TimePointExtendedResolution) {
109
+ const char kFmt[] = "%H:%M:%E*S";
110
+ const time_zone utc = utc_time_zone();
111
+ const time_point<absl::time_internal::cctz::seconds> tp =
112
+ chrono::time_point_cast<absl::time_internal::cctz::seconds>(
113
+ chrono::system_clock::from_time_t(0)) +
114
+ chrono::hours(12) + chrono::minutes(34) + chrono::seconds(56);
115
+
116
+ EXPECT_EQ(
117
+ "12:34:56.123456789012345",
118
+ detail::format(kFmt, tp, detail::femtoseconds(123456789012345), utc));
119
+ EXPECT_EQ(
120
+ "12:34:56.012345678901234",
121
+ detail::format(kFmt, tp, detail::femtoseconds(12345678901234), utc));
122
+ EXPECT_EQ("12:34:56.001234567890123",
123
+ detail::format(kFmt, tp, detail::femtoseconds(1234567890123), utc));
124
+ EXPECT_EQ("12:34:56.000123456789012",
125
+ detail::format(kFmt, tp, detail::femtoseconds(123456789012), utc));
126
+
127
+ EXPECT_EQ("12:34:56.000000000000123",
128
+ detail::format(kFmt, tp, detail::femtoseconds(123), utc));
129
+ EXPECT_EQ("12:34:56.000000000000012",
130
+ detail::format(kFmt, tp, detail::femtoseconds(12), utc));
131
+ EXPECT_EQ("12:34:56.000000000000001",
132
+ detail::format(kFmt, tp, detail::femtoseconds(1), utc));
133
+ }
134
+
135
+ TEST(Format, Basics) {
136
+ time_zone tz = utc_time_zone();
137
+ time_point<chrono::nanoseconds> tp = chrono::system_clock::from_time_t(0);
138
+
139
+ // Starts with a couple basic edge cases.
140
+ EXPECT_EQ("", format("", tp, tz));
141
+ EXPECT_EQ(" ", format(" ", tp, tz));
142
+ EXPECT_EQ(" ", format(" ", tp, tz));
143
+ EXPECT_EQ("xxx", format("xxx", tp, tz));
144
+ std::string big(128, 'x');
145
+ EXPECT_EQ(big, format(big, tp, tz));
146
+ // Cause the 1024-byte buffer to grow.
147
+ std::string bigger(100000, 'x');
148
+ EXPECT_EQ(bigger, format(bigger, tp, tz));
149
+
150
+ tp += chrono::hours(13) + chrono::minutes(4) + chrono::seconds(5);
151
+ tp += chrono::milliseconds(6) + chrono::microseconds(7) +
152
+ chrono::nanoseconds(8);
153
+ EXPECT_EQ("1970-01-01", format("%Y-%m-%d", tp, tz));
154
+ EXPECT_EQ("13:04:05", format("%H:%M:%S", tp, tz));
155
+ EXPECT_EQ("13:04:05.006", format("%H:%M:%E3S", tp, tz));
156
+ EXPECT_EQ("13:04:05.006007", format("%H:%M:%E6S", tp, tz));
157
+ EXPECT_EQ("13:04:05.006007008", format("%H:%M:%E9S", tp, tz));
158
+ }
159
+
160
+ TEST(Format, PosixConversions) {
161
+ const time_zone tz = utc_time_zone();
162
+ auto tp = chrono::system_clock::from_time_t(0);
163
+
164
+ TestFormatSpecifier(tp, tz, "%d", "01");
165
+ TestFormatSpecifier(tp, tz, "%e", " 1"); // extension but internal support
166
+ TestFormatSpecifier(tp, tz, "%H", "00");
167
+ TestFormatSpecifier(tp, tz, "%I", "12");
168
+ TestFormatSpecifier(tp, tz, "%j", "001");
169
+ TestFormatSpecifier(tp, tz, "%m", "01");
170
+ TestFormatSpecifier(tp, tz, "%M", "00");
171
+ TestFormatSpecifier(tp, tz, "%S", "00");
172
+ TestFormatSpecifier(tp, tz, "%U", "00");
173
+ #if !defined(__EMSCRIPTEN__)
174
+ TestFormatSpecifier(tp, tz, "%w", "4"); // 4=Thursday
175
+ #endif
176
+ TestFormatSpecifier(tp, tz, "%W", "00");
177
+ TestFormatSpecifier(tp, tz, "%y", "70");
178
+ TestFormatSpecifier(tp, tz, "%Y", "1970");
179
+ TestFormatSpecifier(tp, tz, "%z", "+0000");
180
+ TestFormatSpecifier(tp, tz, "%Z", "UTC");
181
+ TestFormatSpecifier(tp, tz, "%%", "%");
182
+
183
+ #if defined(__linux__)
184
+ // SU/C99/TZ extensions
185
+ TestFormatSpecifier(tp, tz, "%C", "19");
186
+ TestFormatSpecifier(tp, tz, "%D", "01/01/70");
187
+ TestFormatSpecifier(tp, tz, "%F", "1970-01-01");
188
+ TestFormatSpecifier(tp, tz, "%g", "70");
189
+ TestFormatSpecifier(tp, tz, "%G", "1970");
190
+ #if defined(__GLIBC__)
191
+ TestFormatSpecifier(tp, tz, "%k", " 0");
192
+ TestFormatSpecifier(tp, tz, "%l", "12");
193
+ #endif
194
+ TestFormatSpecifier(tp, tz, "%n", "\n");
195
+ TestFormatSpecifier(tp, tz, "%R", "00:00");
196
+ TestFormatSpecifier(tp, tz, "%t", "\t");
197
+ TestFormatSpecifier(tp, tz, "%T", "00:00:00");
198
+ TestFormatSpecifier(tp, tz, "%u", "4"); // 4=Thursday
199
+ TestFormatSpecifier(tp, tz, "%V", "01");
200
+ TestFormatSpecifier(tp, tz, "%s", "0");
201
+ #endif
202
+ }
203
+
204
+ TEST(Format, LocaleSpecific) {
205
+ const time_zone tz = utc_time_zone();
206
+ auto tp = chrono::system_clock::from_time_t(0);
207
+
208
+ TestFormatSpecifier(tp, tz, "%a", "Thu");
209
+ TestFormatSpecifier(tp, tz, "%A", "Thursday");
210
+ TestFormatSpecifier(tp, tz, "%b", "Jan");
211
+ TestFormatSpecifier(tp, tz, "%B", "January");
212
+
213
+ // %c should at least produce the numeric year and time-of-day.
214
+ const std::string s = format("%c", tp, utc_time_zone());
215
+ EXPECT_THAT(s, testing::HasSubstr("1970"));
216
+ EXPECT_THAT(s, testing::HasSubstr("00:00:00"));
217
+
218
+ TestFormatSpecifier(tp, tz, "%p", "AM");
219
+ TestFormatSpecifier(tp, tz, "%x", "01/01/70");
220
+ TestFormatSpecifier(tp, tz, "%X", "00:00:00");
221
+
222
+ #if defined(__linux__)
223
+ // SU/C99/TZ extensions
224
+ TestFormatSpecifier(tp, tz, "%h", "Jan"); // Same as %b
225
+ #if defined(__GLIBC__)
226
+ TestFormatSpecifier(tp, tz, "%P", "am");
227
+ #endif
228
+ TestFormatSpecifier(tp, tz, "%r", "12:00:00 AM");
229
+
230
+ // Modified conversion specifiers %E_
231
+ TestFormatSpecifier(tp, tz, "%Ec", "Thu Jan 1 00:00:00 1970");
232
+ TestFormatSpecifier(tp, tz, "%EC", "19");
233
+ TestFormatSpecifier(tp, tz, "%Ex", "01/01/70");
234
+ TestFormatSpecifier(tp, tz, "%EX", "00:00:00");
235
+ TestFormatSpecifier(tp, tz, "%Ey", "70");
236
+ TestFormatSpecifier(tp, tz, "%EY", "1970");
237
+
238
+ // Modified conversion specifiers %O_
239
+ TestFormatSpecifier(tp, tz, "%Od", "01");
240
+ TestFormatSpecifier(tp, tz, "%Oe", " 1");
241
+ TestFormatSpecifier(tp, tz, "%OH", "00");
242
+ TestFormatSpecifier(tp, tz, "%OI", "12");
243
+ TestFormatSpecifier(tp, tz, "%Om", "01");
244
+ TestFormatSpecifier(tp, tz, "%OM", "00");
245
+ TestFormatSpecifier(tp, tz, "%OS", "00");
246
+ TestFormatSpecifier(tp, tz, "%Ou", "4"); // 4=Thursday
247
+ TestFormatSpecifier(tp, tz, "%OU", "00");
248
+ TestFormatSpecifier(tp, tz, "%OV", "01");
249
+ TestFormatSpecifier(tp, tz, "%Ow", "4"); // 4=Thursday
250
+ TestFormatSpecifier(tp, tz, "%OW", "00");
251
+ TestFormatSpecifier(tp, tz, "%Oy", "70");
252
+ #endif
253
+ }
254
+
255
+ TEST(Format, Escaping) {
256
+ const time_zone tz = utc_time_zone();
257
+ auto tp = chrono::system_clock::from_time_t(0);
258
+
259
+ TestFormatSpecifier(tp, tz, "%%", "%");
260
+ TestFormatSpecifier(tp, tz, "%%a", "%a");
261
+ TestFormatSpecifier(tp, tz, "%%b", "%b");
262
+ TestFormatSpecifier(tp, tz, "%%Ea", "%Ea");
263
+ TestFormatSpecifier(tp, tz, "%%Es", "%Es");
264
+ TestFormatSpecifier(tp, tz, "%%E3S", "%E3S");
265
+ TestFormatSpecifier(tp, tz, "%%OS", "%OS");
266
+ TestFormatSpecifier(tp, tz, "%%O3S", "%O3S");
267
+
268
+ // Multiple levels of escaping.
269
+ TestFormatSpecifier(tp, tz, "%%%Y", "%1970");
270
+ TestFormatSpecifier(tp, tz, "%%%E3S", "%00.000");
271
+ TestFormatSpecifier(tp, tz, "%%%%E3S", "%%E3S");
272
+ }
273
+
274
+ TEST(Format, ExtendedSeconds) {
275
+ const time_zone tz = utc_time_zone();
276
+
277
+ // No subseconds.
278
+ time_point<chrono::nanoseconds> tp = chrono::system_clock::from_time_t(0);
279
+ tp += chrono::seconds(5);
280
+ EXPECT_EQ("05", format("%E*S", tp, tz));
281
+ EXPECT_EQ("05", format("%E0S", tp, tz));
282
+ EXPECT_EQ("05.0", format("%E1S", tp, tz));
283
+ EXPECT_EQ("05.00", format("%E2S", tp, tz));
284
+ EXPECT_EQ("05.000", format("%E3S", tp, tz));
285
+ EXPECT_EQ("05.0000", format("%E4S", tp, tz));
286
+ EXPECT_EQ("05.00000", format("%E5S", tp, tz));
287
+ EXPECT_EQ("05.000000", format("%E6S", tp, tz));
288
+ EXPECT_EQ("05.0000000", format("%E7S", tp, tz));
289
+ EXPECT_EQ("05.00000000", format("%E8S", tp, tz));
290
+ EXPECT_EQ("05.000000000", format("%E9S", tp, tz));
291
+ EXPECT_EQ("05.0000000000", format("%E10S", tp, tz));
292
+ EXPECT_EQ("05.00000000000", format("%E11S", tp, tz));
293
+ EXPECT_EQ("05.000000000000", format("%E12S", tp, tz));
294
+ EXPECT_EQ("05.0000000000000", format("%E13S", tp, tz));
295
+ EXPECT_EQ("05.00000000000000", format("%E14S", tp, tz));
296
+ EXPECT_EQ("05.000000000000000", format("%E15S", tp, tz));
297
+
298
+ // With subseconds.
299
+ tp += chrono::milliseconds(6) + chrono::microseconds(7) +
300
+ chrono::nanoseconds(8);
301
+ EXPECT_EQ("05.006007008", format("%E*S", tp, tz));
302
+ EXPECT_EQ("05", format("%E0S", tp, tz));
303
+ EXPECT_EQ("05.0", format("%E1S", tp, tz));
304
+ EXPECT_EQ("05.00", format("%E2S", tp, tz));
305
+ EXPECT_EQ("05.006", format("%E3S", tp, tz));
306
+ EXPECT_EQ("05.0060", format("%E4S", tp, tz));
307
+ EXPECT_EQ("05.00600", format("%E5S", tp, tz));
308
+ EXPECT_EQ("05.006007", format("%E6S", tp, tz));
309
+ EXPECT_EQ("05.0060070", format("%E7S", tp, tz));
310
+ EXPECT_EQ("05.00600700", format("%E8S", tp, tz));
311
+ EXPECT_EQ("05.006007008", format("%E9S", tp, tz));
312
+ EXPECT_EQ("05.0060070080", format("%E10S", tp, tz));
313
+ EXPECT_EQ("05.00600700800", format("%E11S", tp, tz));
314
+ EXPECT_EQ("05.006007008000", format("%E12S", tp, tz));
315
+ EXPECT_EQ("05.0060070080000", format("%E13S", tp, tz));
316
+ EXPECT_EQ("05.00600700800000", format("%E14S", tp, tz));
317
+ EXPECT_EQ("05.006007008000000", format("%E15S", tp, tz));
318
+
319
+ // Times before the Unix epoch.
320
+ tp = chrono::system_clock::from_time_t(0) + chrono::microseconds(-1);
321
+ EXPECT_EQ("1969-12-31 23:59:59.999999",
322
+ format("%Y-%m-%d %H:%M:%E*S", tp, tz));
323
+
324
+ // Here is a "%E*S" case we got wrong for a while. While the first
325
+ // instant below is correctly rendered as "...:07.333304", the second
326
+ // one used to appear as "...:07.33330499999999999".
327
+ tp = chrono::system_clock::from_time_t(0) +
328
+ chrono::microseconds(1395024427333304);
329
+ EXPECT_EQ("2014-03-17 02:47:07.333304",
330
+ format("%Y-%m-%d %H:%M:%E*S", tp, tz));
331
+ tp += chrono::microseconds(1);
332
+ EXPECT_EQ("2014-03-17 02:47:07.333305",
333
+ format("%Y-%m-%d %H:%M:%E*S", tp, tz));
334
+ }
335
+
336
+ TEST(Format, ExtendedSubeconds) {
337
+ const time_zone tz = utc_time_zone();
338
+
339
+ // No subseconds.
340
+ time_point<chrono::nanoseconds> tp = chrono::system_clock::from_time_t(0);
341
+ tp += chrono::seconds(5);
342
+ EXPECT_EQ("0", format("%E*f", tp, tz));
343
+ EXPECT_EQ("", format("%E0f", tp, tz));
344
+ EXPECT_EQ("0", format("%E1f", tp, tz));
345
+ EXPECT_EQ("00", format("%E2f", tp, tz));
346
+ EXPECT_EQ("000", format("%E3f", tp, tz));
347
+ EXPECT_EQ("0000", format("%E4f", tp, tz));
348
+ EXPECT_EQ("00000", format("%E5f", tp, tz));
349
+ EXPECT_EQ("000000", format("%E6f", tp, tz));
350
+ EXPECT_EQ("0000000", format("%E7f", tp, tz));
351
+ EXPECT_EQ("00000000", format("%E8f", tp, tz));
352
+ EXPECT_EQ("000000000", format("%E9f", tp, tz));
353
+ EXPECT_EQ("0000000000", format("%E10f", tp, tz));
354
+ EXPECT_EQ("00000000000", format("%E11f", tp, tz));
355
+ EXPECT_EQ("000000000000", format("%E12f", tp, tz));
356
+ EXPECT_EQ("0000000000000", format("%E13f", tp, tz));
357
+ EXPECT_EQ("00000000000000", format("%E14f", tp, tz));
358
+ EXPECT_EQ("000000000000000", format("%E15f", tp, tz));
359
+
360
+ // With subseconds.
361
+ tp += chrono::milliseconds(6) + chrono::microseconds(7) +
362
+ chrono::nanoseconds(8);
363
+ EXPECT_EQ("006007008", format("%E*f", tp, tz));
364
+ EXPECT_EQ("", format("%E0f", tp, tz));
365
+ EXPECT_EQ("0", format("%E1f", tp, tz));
366
+ EXPECT_EQ("00", format("%E2f", tp, tz));
367
+ EXPECT_EQ("006", format("%E3f", tp, tz));
368
+ EXPECT_EQ("0060", format("%E4f", tp, tz));
369
+ EXPECT_EQ("00600", format("%E5f", tp, tz));
370
+ EXPECT_EQ("006007", format("%E6f", tp, tz));
371
+ EXPECT_EQ("0060070", format("%E7f", tp, tz));
372
+ EXPECT_EQ("00600700", format("%E8f", tp, tz));
373
+ EXPECT_EQ("006007008", format("%E9f", tp, tz));
374
+ EXPECT_EQ("0060070080", format("%E10f", tp, tz));
375
+ EXPECT_EQ("00600700800", format("%E11f", tp, tz));
376
+ EXPECT_EQ("006007008000", format("%E12f", tp, tz));
377
+ EXPECT_EQ("0060070080000", format("%E13f", tp, tz));
378
+ EXPECT_EQ("00600700800000", format("%E14f", tp, tz));
379
+ EXPECT_EQ("006007008000000", format("%E15f", tp, tz));
380
+
381
+ // Times before the Unix epoch.
382
+ tp = chrono::system_clock::from_time_t(0) + chrono::microseconds(-1);
383
+ EXPECT_EQ("1969-12-31 23:59:59.999999",
384
+ format("%Y-%m-%d %H:%M:%S.%E*f", tp, tz));
385
+
386
+ // Here is a "%E*S" case we got wrong for a while. While the first
387
+ // instant below is correctly rendered as "...:07.333304", the second
388
+ // one used to appear as "...:07.33330499999999999".
389
+ tp = chrono::system_clock::from_time_t(0) +
390
+ chrono::microseconds(1395024427333304);
391
+ EXPECT_EQ("2014-03-17 02:47:07.333304",
392
+ format("%Y-%m-%d %H:%M:%S.%E*f", tp, tz));
393
+ tp += chrono::microseconds(1);
394
+ EXPECT_EQ("2014-03-17 02:47:07.333305",
395
+ format("%Y-%m-%d %H:%M:%S.%E*f", tp, tz));
396
+ }
397
+
398
+ TEST(Format, CompareExtendSecondsVsSubseconds) {
399
+ const time_zone tz = utc_time_zone();
400
+
401
+ // This test case illustrates the differences/similarities between:
402
+ // fmt_A: %E<prec>S
403
+ // fmt_B: %S.%E<prec>f
404
+ auto fmt_A = [](const std::string& prec) { return "%E" + prec + "S"; };
405
+ auto fmt_B = [](const std::string& prec) { return "%S.%E" + prec + "f"; };
406
+
407
+ // No subseconds:
408
+ time_point<chrono::nanoseconds> tp = chrono::system_clock::from_time_t(0);
409
+ tp += chrono::seconds(5);
410
+ // ... %E*S and %S.%E*f are different.
411
+ EXPECT_EQ("05", format(fmt_A("*"), tp, tz));
412
+ EXPECT_EQ("05.0", format(fmt_B("*"), tp, tz));
413
+ // ... %E0S and %S.%E0f are different.
414
+ EXPECT_EQ("05", format(fmt_A("0"), tp, tz));
415
+ EXPECT_EQ("05.", format(fmt_B("0"), tp, tz));
416
+ // ... %E<prec>S and %S.%E<prec>f are the same for prec in [1:15].
417
+ for (int prec = 1; prec <= 15; ++prec) {
418
+ const std::string a = format(fmt_A(std::to_string(prec)), tp, tz);
419
+ const std::string b = format(fmt_B(std::to_string(prec)), tp, tz);
420
+ EXPECT_EQ(a, b) << "prec=" << prec;
421
+ }
422
+
423
+ // With subseconds:
424
+ // ... %E*S and %S.%E*f are the same.
425
+ tp += chrono::milliseconds(6) + chrono::microseconds(7) +
426
+ chrono::nanoseconds(8);
427
+ EXPECT_EQ("05.006007008", format(fmt_A("*"), tp, tz));
428
+ EXPECT_EQ("05.006007008", format(fmt_B("*"), tp, tz));
429
+ // ... %E0S and %S.%E0f are different.
430
+ EXPECT_EQ("05", format(fmt_A("0"), tp, tz));
431
+ EXPECT_EQ("05.", format(fmt_B("0"), tp, tz));
432
+ // ... %E<prec>S and %S.%E<prec>f are the same for prec in [1:15].
433
+ for (int prec = 1; prec <= 15; ++prec) {
434
+ const std::string a = format(fmt_A(std::to_string(prec)), tp, tz);
435
+ const std::string b = format(fmt_B(std::to_string(prec)), tp, tz);
436
+ EXPECT_EQ(a, b) << "prec=" << prec;
437
+ }
438
+ }
439
+
440
+ TEST(Format, ExtendedOffset) {
441
+ const auto tp = chrono::system_clock::from_time_t(0);
442
+
443
+ auto tz = fixed_time_zone(absl::time_internal::cctz::seconds::zero());
444
+ TestFormatSpecifier(tp, tz, "%z", "+0000");
445
+ TestFormatSpecifier(tp, tz, "%:z", "+00:00");
446
+ TestFormatSpecifier(tp, tz, "%Ez", "+00:00");
447
+
448
+ tz = fixed_time_zone(chrono::seconds(56));
449
+ TestFormatSpecifier(tp, tz, "%z", "+0000");
450
+ TestFormatSpecifier(tp, tz, "%:z", "+00:00");
451
+ TestFormatSpecifier(tp, tz, "%Ez", "+00:00");
452
+
453
+ tz = fixed_time_zone(-chrono::seconds(56)); // NOTE: +00:00
454
+ TestFormatSpecifier(tp, tz, "%z", "+0000");
455
+ TestFormatSpecifier(tp, tz, "%:z", "+00:00");
456
+ TestFormatSpecifier(tp, tz, "%Ez", "+00:00");
457
+
458
+ tz = fixed_time_zone(chrono::minutes(34));
459
+ TestFormatSpecifier(tp, tz, "%z", "+0034");
460
+ TestFormatSpecifier(tp, tz, "%:z", "+00:34");
461
+ TestFormatSpecifier(tp, tz, "%Ez", "+00:34");
462
+
463
+ tz = fixed_time_zone(-chrono::minutes(34));
464
+ TestFormatSpecifier(tp, tz, "%z", "-0034");
465
+ TestFormatSpecifier(tp, tz, "%:z", "-00:34");
466
+ TestFormatSpecifier(tp, tz, "%Ez", "-00:34");
467
+
468
+ tz = fixed_time_zone(chrono::minutes(34) + chrono::seconds(56));
469
+ TestFormatSpecifier(tp, tz, "%z", "+0034");
470
+ TestFormatSpecifier(tp, tz, "%:z", "+00:34");
471
+ TestFormatSpecifier(tp, tz, "%Ez", "+00:34");
472
+
473
+ tz = fixed_time_zone(-chrono::minutes(34) - chrono::seconds(56));
474
+ TestFormatSpecifier(tp, tz, "%z", "-0034");
475
+ TestFormatSpecifier(tp, tz, "%:z", "-00:34");
476
+ TestFormatSpecifier(tp, tz, "%Ez", "-00:34");
477
+
478
+ tz = fixed_time_zone(chrono::hours(12));
479
+ TestFormatSpecifier(tp, tz, "%z", "+1200");
480
+ TestFormatSpecifier(tp, tz, "%:z", "+12:00");
481
+ TestFormatSpecifier(tp, tz, "%Ez", "+12:00");
482
+
483
+ tz = fixed_time_zone(-chrono::hours(12));
484
+ TestFormatSpecifier(tp, tz, "%z", "-1200");
485
+ TestFormatSpecifier(tp, tz, "%:z", "-12:00");
486
+ TestFormatSpecifier(tp, tz, "%Ez", "-12:00");
487
+
488
+ tz = fixed_time_zone(chrono::hours(12) + chrono::seconds(56));
489
+ TestFormatSpecifier(tp, tz, "%z", "+1200");
490
+ TestFormatSpecifier(tp, tz, "%:z", "+12:00");
491
+ TestFormatSpecifier(tp, tz, "%Ez", "+12:00");
492
+
493
+ tz = fixed_time_zone(-chrono::hours(12) - chrono::seconds(56));
494
+ TestFormatSpecifier(tp, tz, "%z", "-1200");
495
+ TestFormatSpecifier(tp, tz, "%:z", "-12:00");
496
+ TestFormatSpecifier(tp, tz, "%Ez", "-12:00");
497
+
498
+ tz = fixed_time_zone(chrono::hours(12) + chrono::minutes(34));
499
+ TestFormatSpecifier(tp, tz, "%z", "+1234");
500
+ TestFormatSpecifier(tp, tz, "%:z", "+12:34");
501
+ TestFormatSpecifier(tp, tz, "%Ez", "+12:34");
502
+
503
+ tz = fixed_time_zone(-chrono::hours(12) - chrono::minutes(34));
504
+ TestFormatSpecifier(tp, tz, "%z", "-1234");
505
+ TestFormatSpecifier(tp, tz, "%:z", "-12:34");
506
+ TestFormatSpecifier(tp, tz, "%Ez", "-12:34");
507
+
508
+ tz = fixed_time_zone(chrono::hours(12) + chrono::minutes(34) +
509
+ chrono::seconds(56));
510
+ TestFormatSpecifier(tp, tz, "%z", "+1234");
511
+ TestFormatSpecifier(tp, tz, "%:z", "+12:34");
512
+ TestFormatSpecifier(tp, tz, "%Ez", "+12:34");
513
+
514
+ tz = fixed_time_zone(-chrono::hours(12) - chrono::minutes(34) -
515
+ chrono::seconds(56));
516
+ TestFormatSpecifier(tp, tz, "%z", "-1234");
517
+ TestFormatSpecifier(tp, tz, "%:z", "-12:34");
518
+ TestFormatSpecifier(tp, tz, "%Ez", "-12:34");
519
+ }
520
+
521
+ TEST(Format, ExtendedSecondOffset) {
522
+ const auto tp = chrono::system_clock::from_time_t(0);
523
+
524
+ auto tz = fixed_time_zone(absl::time_internal::cctz::seconds::zero());
525
+ TestFormatSpecifier(tp, tz, "%E*z", "+00:00:00");
526
+ TestFormatSpecifier(tp, tz, "%::z", "+00:00:00");
527
+ TestFormatSpecifier(tp, tz, "%:::z", "+00");
528
+
529
+ tz = fixed_time_zone(chrono::seconds(56));
530
+ TestFormatSpecifier(tp, tz, "%E*z", "+00:00:56");
531
+ TestFormatSpecifier(tp, tz, "%::z", "+00:00:56");
532
+ TestFormatSpecifier(tp, tz, "%:::z", "+00:00:56");
533
+
534
+ tz = fixed_time_zone(-chrono::seconds(56));
535
+ TestFormatSpecifier(tp, tz, "%E*z", "-00:00:56");
536
+ TestFormatSpecifier(tp, tz, "%::z", "-00:00:56");
537
+ TestFormatSpecifier(tp, tz, "%:::z", "-00:00:56");
538
+
539
+ tz = fixed_time_zone(chrono::minutes(34));
540
+ TestFormatSpecifier(tp, tz, "%E*z", "+00:34:00");
541
+ TestFormatSpecifier(tp, tz, "%::z", "+00:34:00");
542
+ TestFormatSpecifier(tp, tz, "%:::z", "+00:34");
543
+
544
+ tz = fixed_time_zone(-chrono::minutes(34));
545
+ TestFormatSpecifier(tp, tz, "%E*z", "-00:34:00");
546
+ TestFormatSpecifier(tp, tz, "%::z", "-00:34:00");
547
+ TestFormatSpecifier(tp, tz, "%:::z", "-00:34");
548
+
549
+ tz = fixed_time_zone(chrono::minutes(34) + chrono::seconds(56));
550
+ TestFormatSpecifier(tp, tz, "%E*z", "+00:34:56");
551
+ TestFormatSpecifier(tp, tz, "%::z", "+00:34:56");
552
+ TestFormatSpecifier(tp, tz, "%:::z", "+00:34:56");
553
+
554
+ tz = fixed_time_zone(-chrono::minutes(34) - chrono::seconds(56));
555
+ TestFormatSpecifier(tp, tz, "%E*z", "-00:34:56");
556
+ TestFormatSpecifier(tp, tz, "%::z", "-00:34:56");
557
+ TestFormatSpecifier(tp, tz, "%:::z", "-00:34:56");
558
+
559
+ tz = fixed_time_zone(chrono::hours(12));
560
+ TestFormatSpecifier(tp, tz, "%E*z", "+12:00:00");
561
+ TestFormatSpecifier(tp, tz, "%::z", "+12:00:00");
562
+ TestFormatSpecifier(tp, tz, "%:::z", "+12");
563
+
564
+ tz = fixed_time_zone(-chrono::hours(12));
565
+ TestFormatSpecifier(tp, tz, "%E*z", "-12:00:00");
566
+ TestFormatSpecifier(tp, tz, "%::z", "-12:00:00");
567
+ TestFormatSpecifier(tp, tz, "%:::z", "-12");
568
+
569
+ tz = fixed_time_zone(chrono::hours(12) + chrono::seconds(56));
570
+ TestFormatSpecifier(tp, tz, "%E*z", "+12:00:56");
571
+ TestFormatSpecifier(tp, tz, "%::z", "+12:00:56");
572
+ TestFormatSpecifier(tp, tz, "%:::z", "+12:00:56");
573
+
574
+ tz = fixed_time_zone(-chrono::hours(12) - chrono::seconds(56));
575
+ TestFormatSpecifier(tp, tz, "%E*z", "-12:00:56");
576
+ TestFormatSpecifier(tp, tz, "%::z", "-12:00:56");
577
+ TestFormatSpecifier(tp, tz, "%:::z", "-12:00:56");
578
+
579
+ tz = fixed_time_zone(chrono::hours(12) + chrono::minutes(34));
580
+ TestFormatSpecifier(tp, tz, "%E*z", "+12:34:00");
581
+ TestFormatSpecifier(tp, tz, "%::z", "+12:34:00");
582
+ TestFormatSpecifier(tp, tz, "%:::z", "+12:34");
583
+
584
+ tz = fixed_time_zone(-chrono::hours(12) - chrono::minutes(34));
585
+ TestFormatSpecifier(tp, tz, "%E*z", "-12:34:00");
586
+ TestFormatSpecifier(tp, tz, "%::z", "-12:34:00");
587
+ TestFormatSpecifier(tp, tz, "%:::z", "-12:34");
588
+
589
+ tz = fixed_time_zone(chrono::hours(12) + chrono::minutes(34) +
590
+ chrono::seconds(56));
591
+ TestFormatSpecifier(tp, tz, "%E*z", "+12:34:56");
592
+ TestFormatSpecifier(tp, tz, "%::z", "+12:34:56");
593
+ TestFormatSpecifier(tp, tz, "%:::z", "+12:34:56");
594
+
595
+ tz = fixed_time_zone(-chrono::hours(12) - chrono::minutes(34) -
596
+ chrono::seconds(56));
597
+ TestFormatSpecifier(tp, tz, "%E*z", "-12:34:56");
598
+ TestFormatSpecifier(tp, tz, "%::z", "-12:34:56");
599
+ TestFormatSpecifier(tp, tz, "%:::z", "-12:34:56");
600
+ }
601
+
602
+ TEST(Format, ExtendedYears) {
603
+ const time_zone utc = utc_time_zone();
604
+ const char e4y_fmt[] = "%E4Y%m%d"; // no separators
605
+
606
+ // %E4Y zero-pads the year to produce at least 4 chars, including the sign.
607
+ auto tp = convert(civil_second(-999, 11, 27, 0, 0, 0), utc);
608
+ EXPECT_EQ("-9991127", format(e4y_fmt, tp, utc));
609
+ tp = convert(civil_second(-99, 11, 27, 0, 0, 0), utc);
610
+ EXPECT_EQ("-0991127", format(e4y_fmt, tp, utc));
611
+ tp = convert(civil_second(-9, 11, 27, 0, 0, 0), utc);
612
+ EXPECT_EQ("-0091127", format(e4y_fmt, tp, utc));
613
+ tp = convert(civil_second(-1, 11, 27, 0, 0, 0), utc);
614
+ EXPECT_EQ("-0011127", format(e4y_fmt, tp, utc));
615
+ tp = convert(civil_second(0, 11, 27, 0, 0, 0), utc);
616
+ EXPECT_EQ("00001127", format(e4y_fmt, tp, utc));
617
+ tp = convert(civil_second(1, 11, 27, 0, 0, 0), utc);
618
+ EXPECT_EQ("00011127", format(e4y_fmt, tp, utc));
619
+ tp = convert(civil_second(9, 11, 27, 0, 0, 0), utc);
620
+ EXPECT_EQ("00091127", format(e4y_fmt, tp, utc));
621
+ tp = convert(civil_second(99, 11, 27, 0, 0, 0), utc);
622
+ EXPECT_EQ("00991127", format(e4y_fmt, tp, utc));
623
+ tp = convert(civil_second(999, 11, 27, 0, 0, 0), utc);
624
+ EXPECT_EQ("09991127", format(e4y_fmt, tp, utc));
625
+ tp = convert(civil_second(9999, 11, 27, 0, 0, 0), utc);
626
+ EXPECT_EQ("99991127", format(e4y_fmt, tp, utc));
627
+
628
+ // When the year is outside [-999:9999], more than 4 chars are produced.
629
+ tp = convert(civil_second(-1000, 11, 27, 0, 0, 0), utc);
630
+ EXPECT_EQ("-10001127", format(e4y_fmt, tp, utc));
631
+ tp = convert(civil_second(10000, 11, 27, 0, 0, 0), utc);
632
+ EXPECT_EQ("100001127", format(e4y_fmt, tp, utc));
633
+ }
634
+
635
+ TEST(Format, RFC3339Format) {
636
+ time_zone tz;
637
+ EXPECT_TRUE(load_time_zone("America/Los_Angeles", &tz));
638
+
639
+ time_point<chrono::nanoseconds> tp =
640
+ convert(civil_second(1977, 6, 28, 9, 8, 7), tz);
641
+ EXPECT_EQ("1977-06-28T09:08:07-07:00", format(RFC3339_full, tp, tz));
642
+ EXPECT_EQ("1977-06-28T09:08:07-07:00", format(RFC3339_sec, tp, tz));
643
+
644
+ tp += chrono::milliseconds(100);
645
+ EXPECT_EQ("1977-06-28T09:08:07.1-07:00", format(RFC3339_full, tp, tz));
646
+ EXPECT_EQ("1977-06-28T09:08:07-07:00", format(RFC3339_sec, tp, tz));
647
+
648
+ tp += chrono::milliseconds(20);
649
+ EXPECT_EQ("1977-06-28T09:08:07.12-07:00", format(RFC3339_full, tp, tz));
650
+ EXPECT_EQ("1977-06-28T09:08:07-07:00", format(RFC3339_sec, tp, tz));
651
+
652
+ tp += chrono::milliseconds(3);
653
+ EXPECT_EQ("1977-06-28T09:08:07.123-07:00", format(RFC3339_full, tp, tz));
654
+ EXPECT_EQ("1977-06-28T09:08:07-07:00", format(RFC3339_sec, tp, tz));
655
+
656
+ tp += chrono::microseconds(400);
657
+ EXPECT_EQ("1977-06-28T09:08:07.1234-07:00", format(RFC3339_full, tp, tz));
658
+ EXPECT_EQ("1977-06-28T09:08:07-07:00", format(RFC3339_sec, tp, tz));
659
+
660
+ tp += chrono::microseconds(50);
661
+ EXPECT_EQ("1977-06-28T09:08:07.12345-07:00", format(RFC3339_full, tp, tz));
662
+ EXPECT_EQ("1977-06-28T09:08:07-07:00", format(RFC3339_sec, tp, tz));
663
+
664
+ tp += chrono::microseconds(6);
665
+ EXPECT_EQ("1977-06-28T09:08:07.123456-07:00", format(RFC3339_full, tp, tz));
666
+ EXPECT_EQ("1977-06-28T09:08:07-07:00", format(RFC3339_sec, tp, tz));
667
+
668
+ tp += chrono::nanoseconds(700);
669
+ EXPECT_EQ("1977-06-28T09:08:07.1234567-07:00", format(RFC3339_full, tp, tz));
670
+ EXPECT_EQ("1977-06-28T09:08:07-07:00", format(RFC3339_sec, tp, tz));
671
+
672
+ tp += chrono::nanoseconds(80);
673
+ EXPECT_EQ("1977-06-28T09:08:07.12345678-07:00", format(RFC3339_full, tp, tz));
674
+ EXPECT_EQ("1977-06-28T09:08:07-07:00", format(RFC3339_sec, tp, tz));
675
+
676
+ tp += chrono::nanoseconds(9);
677
+ EXPECT_EQ("1977-06-28T09:08:07.123456789-07:00",
678
+ format(RFC3339_full, tp, tz));
679
+ EXPECT_EQ("1977-06-28T09:08:07-07:00", format(RFC3339_sec, tp, tz));
680
+ }
681
+
682
+ TEST(Format, RFC1123Format) { // locale specific
683
+ time_zone tz;
684
+ EXPECT_TRUE(load_time_zone("America/Los_Angeles", &tz));
685
+
686
+ auto tp = convert(civil_second(1977, 6, 28, 9, 8, 7), tz);
687
+ EXPECT_EQ("Tue, 28 Jun 1977 09:08:07 -0700", format(RFC1123_full, tp, tz));
688
+ EXPECT_EQ("28 Jun 1977 09:08:07 -0700", format(RFC1123_no_wday, tp, tz));
689
+ }
690
+
691
+ TEST(Format, Week) {
692
+ const time_zone utc = utc_time_zone();
693
+
694
+ auto tp = convert(civil_second(2017, 1, 1, 0, 0, 0), utc);
695
+ EXPECT_EQ("2017-01-7", format("%Y-%U-%u", tp, utc));
696
+ EXPECT_EQ("2017-00-0", format("%Y-%W-%w", tp, utc));
697
+
698
+ tp = convert(civil_second(2017, 12, 31, 0, 0, 0), utc);
699
+ EXPECT_EQ("2017-53-7", format("%Y-%U-%u", tp, utc));
700
+ EXPECT_EQ("2017-52-0", format("%Y-%W-%w", tp, utc));
701
+
702
+ tp = convert(civil_second(2018, 1, 1, 0, 0, 0), utc);
703
+ EXPECT_EQ("2018-00-1", format("%Y-%U-%u", tp, utc));
704
+ EXPECT_EQ("2018-01-1", format("%Y-%W-%w", tp, utc));
705
+
706
+ tp = convert(civil_second(2018, 12, 31, 0, 0, 0), utc);
707
+ EXPECT_EQ("2018-52-1", format("%Y-%U-%u", tp, utc));
708
+ EXPECT_EQ("2018-53-1", format("%Y-%W-%w", tp, utc));
709
+
710
+ tp = convert(civil_second(2019, 1, 1, 0, 0, 0), utc);
711
+ EXPECT_EQ("2019-00-2", format("%Y-%U-%u", tp, utc));
712
+ EXPECT_EQ("2019-00-2", format("%Y-%W-%w", tp, utc));
713
+
714
+ tp = convert(civil_second(2019, 12, 31, 0, 0, 0), utc);
715
+ EXPECT_EQ("2019-52-2", format("%Y-%U-%u", tp, utc));
716
+ EXPECT_EQ("2019-52-2", format("%Y-%W-%w", tp, utc));
717
+ }
718
+
719
+ //
720
+ // Testing parse()
721
+ //
722
+
723
+ TEST(Parse, TimePointResolution) {
724
+ const char kFmt[] = "%H:%M:%E*S";
725
+ const time_zone utc = utc_time_zone();
726
+
727
+ time_point<chrono::nanoseconds> tp_ns;
728
+ EXPECT_TRUE(parse(kFmt, "03:04:05.123456789", utc, &tp_ns));
729
+ EXPECT_EQ("03:04:05.123456789", format(kFmt, tp_ns, utc));
730
+ EXPECT_TRUE(parse(kFmt, "03:04:05.123456", utc, &tp_ns));
731
+ EXPECT_EQ("03:04:05.123456", format(kFmt, tp_ns, utc));
732
+
733
+ time_point<chrono::microseconds> tp_us;
734
+ EXPECT_TRUE(parse(kFmt, "03:04:05.123456789", utc, &tp_us));
735
+ EXPECT_EQ("03:04:05.123456", format(kFmt, tp_us, utc));
736
+ EXPECT_TRUE(parse(kFmt, "03:04:05.123456", utc, &tp_us));
737
+ EXPECT_EQ("03:04:05.123456", format(kFmt, tp_us, utc));
738
+ EXPECT_TRUE(parse(kFmt, "03:04:05.123", utc, &tp_us));
739
+ EXPECT_EQ("03:04:05.123", format(kFmt, tp_us, utc));
740
+
741
+ time_point<chrono::milliseconds> tp_ms;
742
+ EXPECT_TRUE(parse(kFmt, "03:04:05.123456", utc, &tp_ms));
743
+ EXPECT_EQ("03:04:05.123", format(kFmt, tp_ms, utc));
744
+ EXPECT_TRUE(parse(kFmt, "03:04:05.123", utc, &tp_ms));
745
+ EXPECT_EQ("03:04:05.123", format(kFmt, tp_ms, utc));
746
+ EXPECT_TRUE(parse(kFmt, "03:04:05", utc, &tp_ms));
747
+ EXPECT_EQ("03:04:05", format(kFmt, tp_ms, utc));
748
+
749
+ time_point<chrono::seconds> tp_s;
750
+ EXPECT_TRUE(parse(kFmt, "03:04:05.123", utc, &tp_s));
751
+ EXPECT_EQ("03:04:05", format(kFmt, tp_s, utc));
752
+ EXPECT_TRUE(parse(kFmt, "03:04:05", utc, &tp_s));
753
+ EXPECT_EQ("03:04:05", format(kFmt, tp_s, utc));
754
+
755
+ time_point<chrono::minutes> tp_m;
756
+ EXPECT_TRUE(parse(kFmt, "03:04:05", utc, &tp_m));
757
+ EXPECT_EQ("03:04:00", format(kFmt, tp_m, utc));
758
+
759
+ time_point<chrono::hours> tp_h;
760
+ EXPECT_TRUE(parse(kFmt, "03:04:05", utc, &tp_h));
761
+ EXPECT_EQ("03:00:00", format(kFmt, tp_h, utc));
762
+ }
763
+
764
+ TEST(Parse, TimePointExtendedResolution) {
765
+ const char kFmt[] = "%H:%M:%E*S";
766
+ const time_zone utc = utc_time_zone();
767
+
768
+ time_point<absl::time_internal::cctz::seconds> tp;
769
+ detail::femtoseconds fs;
770
+ EXPECT_TRUE(detail::parse(kFmt, "12:34:56.123456789012345", utc, &tp, &fs));
771
+ EXPECT_EQ("12:34:56.123456789012345", detail::format(kFmt, tp, fs, utc));
772
+ EXPECT_TRUE(detail::parse(kFmt, "12:34:56.012345678901234", utc, &tp, &fs));
773
+ EXPECT_EQ("12:34:56.012345678901234", detail::format(kFmt, tp, fs, utc));
774
+ EXPECT_TRUE(detail::parse(kFmt, "12:34:56.001234567890123", utc, &tp, &fs));
775
+ EXPECT_EQ("12:34:56.001234567890123", detail::format(kFmt, tp, fs, utc));
776
+ EXPECT_TRUE(detail::parse(kFmt, "12:34:56.000000000000123", utc, &tp, &fs));
777
+ EXPECT_EQ("12:34:56.000000000000123", detail::format(kFmt, tp, fs, utc));
778
+ EXPECT_TRUE(detail::parse(kFmt, "12:34:56.000000000000012", utc, &tp, &fs));
779
+ EXPECT_EQ("12:34:56.000000000000012", detail::format(kFmt, tp, fs, utc));
780
+ EXPECT_TRUE(detail::parse(kFmt, "12:34:56.000000000000001", utc, &tp, &fs));
781
+ EXPECT_EQ("12:34:56.000000000000001", detail::format(kFmt, tp, fs, utc));
782
+ }
783
+
784
+ TEST(Parse, Basics) {
785
+ time_zone tz = utc_time_zone();
786
+ time_point<chrono::nanoseconds> tp =
787
+ chrono::system_clock::from_time_t(1234567890);
788
+
789
+ // Simple edge cases.
790
+ EXPECT_TRUE(parse("", "", tz, &tp));
791
+ EXPECT_EQ(chrono::system_clock::from_time_t(0), tp); // everything defaulted
792
+ EXPECT_TRUE(parse(" ", " ", tz, &tp));
793
+ EXPECT_TRUE(parse(" ", " ", tz, &tp));
794
+ EXPECT_TRUE(parse("x", "x", tz, &tp));
795
+ EXPECT_TRUE(parse("xxx", "xxx", tz, &tp));
796
+
797
+ EXPECT_TRUE(
798
+ parse("%Y-%m-%d %H:%M:%S %z", "2013-06-28 19:08:09 -0800", tz, &tp));
799
+ ExpectTime(tp, tz, 2013, 6, 29, 3, 8, 9, 0, false, "UTC");
800
+ }
801
+
802
+ TEST(Parse, WithTimeZone) {
803
+ time_zone tz;
804
+ EXPECT_TRUE(load_time_zone("America/Los_Angeles", &tz));
805
+ time_point<chrono::nanoseconds> tp;
806
+
807
+ // We can parse a string without a UTC offset if we supply a timezone.
808
+ EXPECT_TRUE(parse("%Y-%m-%d %H:%M:%S", "2013-06-28 19:08:09", tz, &tp));
809
+ ExpectTime(tp, tz, 2013, 6, 28, 19, 8, 9, -7 * 60 * 60, true, "PDT");
810
+
811
+ // But the timezone is ignored when a UTC offset is present.
812
+ EXPECT_TRUE(parse("%Y-%m-%d %H:%M:%S %z", "2013-06-28 19:08:09 +0800",
813
+ utc_time_zone(), &tp));
814
+ ExpectTime(tp, tz, 2013, 6, 28, 19 - 8 - 7, 8, 9, -7 * 60 * 60, true, "PDT");
815
+
816
+ // Check a skipped time (a Spring DST transition). parse() uses the
817
+ // pre-transition offset.
818
+ EXPECT_TRUE(parse("%Y-%m-%d %H:%M:%S", "2011-03-13 02:15:00", tz, &tp));
819
+ ExpectTime(tp, tz, 2011, 3, 13, 3, 15, 0, -7 * 60 * 60, true, "PDT");
820
+
821
+ // Check a repeated time (a Fall DST transition). parse() uses the
822
+ // pre-transition offset.
823
+ EXPECT_TRUE(parse("%Y-%m-%d %H:%M:%S", "2011-11-06 01:15:00", tz, &tp));
824
+ ExpectTime(tp, tz, 2011, 11, 6, 1, 15, 0, -7 * 60 * 60, true, "PDT");
825
+ }
826
+
827
+ TEST(Parse, LeapSecond) {
828
+ time_zone tz;
829
+ EXPECT_TRUE(load_time_zone("America/Los_Angeles", &tz));
830
+ time_point<chrono::nanoseconds> tp;
831
+
832
+ // ":59" -> ":59"
833
+ EXPECT_TRUE(parse(RFC3339_full, "2013-06-28T07:08:59-08:00", tz, &tp));
834
+ ExpectTime(tp, tz, 2013, 6, 28, 8, 8, 59, -7 * 60 * 60, true, "PDT");
835
+
836
+ // ":59.5" -> ":59.5"
837
+ EXPECT_TRUE(parse(RFC3339_full, "2013-06-28T07:08:59.5-08:00", tz, &tp));
838
+ ExpectTime(tp, tz, 2013, 6, 28, 8, 8, 59, -7 * 60 * 60, true, "PDT");
839
+
840
+ // ":60" -> ":00"
841
+ EXPECT_TRUE(parse(RFC3339_full, "2013-06-28T07:08:60-08:00", tz, &tp));
842
+ ExpectTime(tp, tz, 2013, 6, 28, 8, 9, 0, -7 * 60 * 60, true, "PDT");
843
+
844
+ // ":60.5" -> ":00.0"
845
+ EXPECT_TRUE(parse(RFC3339_full, "2013-06-28T07:08:60.5-08:00", tz, &tp));
846
+ ExpectTime(tp, tz, 2013, 6, 28, 8, 9, 0, -7 * 60 * 60, true, "PDT");
847
+
848
+ // ":61" -> error
849
+ EXPECT_FALSE(parse(RFC3339_full, "2013-06-28T07:08:61-08:00", tz, &tp));
850
+ }
851
+
852
+ TEST(Parse, ErrorCases) {
853
+ const time_zone tz = utc_time_zone();
854
+ auto tp = chrono::system_clock::from_time_t(0);
855
+
856
+ // Illegal trailing data.
857
+ EXPECT_FALSE(parse("%S", "123", tz, &tp));
858
+
859
+ // Can't parse an illegal format specifier.
860
+ EXPECT_FALSE(parse("%Q", "x", tz, &tp));
861
+
862
+ // Fails because of trailing, unparsed data "blah".
863
+ EXPECT_FALSE(parse("%m-%d", "2-3 blah", tz, &tp));
864
+
865
+ // Trailing whitespace is allowed.
866
+ EXPECT_TRUE(parse("%m-%d", "2-3 ", tz, &tp));
867
+ EXPECT_EQ(2, convert(tp, utc_time_zone()).month());
868
+ EXPECT_EQ(3, convert(tp, utc_time_zone()).day());
869
+
870
+ // Feb 31 requires normalization.
871
+ EXPECT_FALSE(parse("%m-%d", "2-31", tz, &tp));
872
+
873
+ // Check that we cannot have spaces in UTC offsets.
874
+ EXPECT_TRUE(parse("%z", "-0203", tz, &tp));
875
+ EXPECT_FALSE(parse("%z", "- 2 3", tz, &tp));
876
+ EXPECT_TRUE(parse("%Ez", "-02:03", tz, &tp));
877
+ EXPECT_FALSE(parse("%Ez", "- 2: 3", tz, &tp));
878
+
879
+ // Check that we reject other malformed UTC offsets.
880
+ EXPECT_FALSE(parse("%Ez", "+-08:00", tz, &tp));
881
+ EXPECT_FALSE(parse("%Ez", "-+08:00", tz, &tp));
882
+
883
+ // Check that we do not accept "-0" in fields that allow zero.
884
+ EXPECT_FALSE(parse("%Y", "-0", tz, &tp));
885
+ EXPECT_FALSE(parse("%E4Y", "-0", tz, &tp));
886
+ EXPECT_FALSE(parse("%H", "-0", tz, &tp));
887
+ EXPECT_FALSE(parse("%M", "-0", tz, &tp));
888
+ EXPECT_FALSE(parse("%S", "-0", tz, &tp));
889
+ EXPECT_FALSE(parse("%z", "+-000", tz, &tp));
890
+ EXPECT_FALSE(parse("%Ez", "+-0:00", tz, &tp));
891
+ EXPECT_FALSE(parse("%z", "-00-0", tz, &tp));
892
+ EXPECT_FALSE(parse("%Ez", "-00:-0", tz, &tp));
893
+ }
894
+
895
+ TEST(Parse, PosixConversions) {
896
+ time_zone tz = utc_time_zone();
897
+ auto tp = chrono::system_clock::from_time_t(0);
898
+ const auto reset = convert(civil_second(1977, 6, 28, 9, 8, 7), tz);
899
+
900
+ tp = reset;
901
+ EXPECT_TRUE(parse("%d", "15", tz, &tp));
902
+ EXPECT_EQ(15, convert(tp, tz).day());
903
+
904
+ // %e is an extension, but is supported internally.
905
+ tp = reset;
906
+ EXPECT_TRUE(parse("%e", "15", tz, &tp));
907
+ EXPECT_EQ(15, convert(tp, tz).day()); // Equivalent to %d
908
+
909
+ tp = reset;
910
+ EXPECT_TRUE(parse("%H", "17", tz, &tp));
911
+ EXPECT_EQ(17, convert(tp, tz).hour());
912
+
913
+ tp = reset;
914
+ EXPECT_TRUE(parse("%I", "5", tz, &tp));
915
+ EXPECT_EQ(5, convert(tp, tz).hour());
916
+
917
+ // %j is parsed but ignored.
918
+ EXPECT_TRUE(parse("%j", "32", tz, &tp));
919
+
920
+ tp = reset;
921
+ EXPECT_TRUE(parse("%m", "11", tz, &tp));
922
+ EXPECT_EQ(11, convert(tp, tz).month());
923
+
924
+ tp = reset;
925
+ EXPECT_TRUE(parse("%M", "33", tz, &tp));
926
+ EXPECT_EQ(33, convert(tp, tz).minute());
927
+
928
+ tp = reset;
929
+ EXPECT_TRUE(parse("%S", "55", tz, &tp));
930
+ EXPECT_EQ(55, convert(tp, tz).second());
931
+
932
+ // %U is parsed but ignored.
933
+ EXPECT_TRUE(parse("%U", "15", tz, &tp));
934
+
935
+ // %w is parsed but ignored.
936
+ EXPECT_TRUE(parse("%w", "2", tz, &tp));
937
+
938
+ // %W is parsed but ignored.
939
+ EXPECT_TRUE(parse("%W", "22", tz, &tp));
940
+
941
+ tp = reset;
942
+ EXPECT_TRUE(parse("%y", "04", tz, &tp));
943
+ EXPECT_EQ(2004, convert(tp, tz).year());
944
+
945
+ tp = reset;
946
+ EXPECT_TRUE(parse("%Y", "2004", tz, &tp));
947
+ EXPECT_EQ(2004, convert(tp, tz).year());
948
+
949
+ EXPECT_TRUE(parse("%%", "%", tz, &tp));
950
+
951
+ #if defined(__linux__)
952
+ // SU/C99/TZ extensions
953
+
954
+ // Because we handle each (non-internal) specifier in a separate call
955
+ // to strptime(), there is no way to group %C and %y together. So we
956
+ // just skip the %C/%y case.
957
+ #if 0
958
+ tp = reset;
959
+ EXPECT_TRUE(parse("%C %y", "20 04", tz, &tp));
960
+ EXPECT_EQ(2004, convert(tp, tz).year());
961
+ #endif
962
+
963
+ tp = reset;
964
+ EXPECT_TRUE(parse("%D", "02/03/04", tz, &tp));
965
+ EXPECT_EQ(2, convert(tp, tz).month());
966
+ EXPECT_EQ(3, convert(tp, tz).day());
967
+ EXPECT_EQ(2004, convert(tp, tz).year());
968
+
969
+ EXPECT_TRUE(parse("%n", "\n", tz, &tp));
970
+
971
+ tp = reset;
972
+ EXPECT_TRUE(parse("%R", "03:44", tz, &tp));
973
+ EXPECT_EQ(3, convert(tp, tz).hour());
974
+ EXPECT_EQ(44, convert(tp, tz).minute());
975
+
976
+ EXPECT_TRUE(parse("%t", "\t\v\f\n\r ", tz, &tp));
977
+
978
+ tp = reset;
979
+ EXPECT_TRUE(parse("%T", "03:44:55", tz, &tp));
980
+ EXPECT_EQ(3, convert(tp, tz).hour());
981
+ EXPECT_EQ(44, convert(tp, tz).minute());
982
+ EXPECT_EQ(55, convert(tp, tz).second());
983
+
984
+ tp = reset;
985
+ EXPECT_TRUE(parse("%s", "1234567890", tz, &tp));
986
+ EXPECT_EQ(chrono::system_clock::from_time_t(1234567890), tp);
987
+
988
+ // %s conversion, like %z/%Ez, pays no heed to the optional zone.
989
+ time_zone lax;
990
+ EXPECT_TRUE(load_time_zone("America/Los_Angeles", &lax));
991
+ tp = reset;
992
+ EXPECT_TRUE(parse("%s", "1234567890", lax, &tp));
993
+ EXPECT_EQ(chrono::system_clock::from_time_t(1234567890), tp);
994
+
995
+ // This is most important when the time has the same YMDhms
996
+ // breakdown in the zone as some other time. For example, ...
997
+ // 1414917000 in US/Pacific -> Sun Nov 2 01:30:00 2014 (PDT)
998
+ // 1414920600 in US/Pacific -> Sun Nov 2 01:30:00 2014 (PST)
999
+ tp = reset;
1000
+ EXPECT_TRUE(parse("%s", "1414917000", lax, &tp));
1001
+ EXPECT_EQ(chrono::system_clock::from_time_t(1414917000), tp);
1002
+ tp = reset;
1003
+ EXPECT_TRUE(parse("%s", "1414920600", lax, &tp));
1004
+ EXPECT_EQ(chrono::system_clock::from_time_t(1414920600), tp);
1005
+ #endif
1006
+ }
1007
+
1008
+ TEST(Parse, LocaleSpecific) {
1009
+ time_zone tz = utc_time_zone();
1010
+ auto tp = chrono::system_clock::from_time_t(0);
1011
+ const auto reset = convert(civil_second(1977, 6, 28, 9, 8, 7), tz);
1012
+
1013
+ // %a is parsed but ignored.
1014
+ EXPECT_TRUE(parse("%a", "Mon", tz, &tp));
1015
+
1016
+ // %A is parsed but ignored.
1017
+ EXPECT_TRUE(parse("%A", "Monday", tz, &tp));
1018
+
1019
+ tp = reset;
1020
+ EXPECT_TRUE(parse("%b", "Feb", tz, &tp));
1021
+ EXPECT_EQ(2, convert(tp, tz).month());
1022
+
1023
+ tp = reset;
1024
+ EXPECT_TRUE(parse("%B", "February", tz, &tp));
1025
+ EXPECT_EQ(2, convert(tp, tz).month());
1026
+
1027
+ // %p is parsed but ignored if it's alone. But it's used with %I.
1028
+ EXPECT_TRUE(parse("%p", "AM", tz, &tp));
1029
+ tp = reset;
1030
+ EXPECT_TRUE(parse("%I %p", "5 PM", tz, &tp));
1031
+ EXPECT_EQ(17, convert(tp, tz).hour());
1032
+
1033
+ tp = reset;
1034
+ EXPECT_TRUE(parse("%x", "02/03/04", tz, &tp));
1035
+ if (convert(tp, tz).month() == 2) {
1036
+ EXPECT_EQ(3, convert(tp, tz).day());
1037
+ } else {
1038
+ EXPECT_EQ(2, convert(tp, tz).day());
1039
+ EXPECT_EQ(3, convert(tp, tz).month());
1040
+ }
1041
+ EXPECT_EQ(2004, convert(tp, tz).year());
1042
+
1043
+ tp = reset;
1044
+ EXPECT_TRUE(parse("%X", "15:44:55", tz, &tp));
1045
+ EXPECT_EQ(15, convert(tp, tz).hour());
1046
+ EXPECT_EQ(44, convert(tp, tz).minute());
1047
+ EXPECT_EQ(55, convert(tp, tz).second());
1048
+
1049
+ #if defined(__linux__)
1050
+ // SU/C99/TZ extensions
1051
+
1052
+ tp = reset;
1053
+ EXPECT_TRUE(parse("%h", "Feb", tz, &tp));
1054
+ EXPECT_EQ(2, convert(tp, tz).month()); // Equivalent to %b
1055
+
1056
+ #if defined(__GLIBC__)
1057
+ tp = reset;
1058
+ EXPECT_TRUE(parse("%l %p", "5 PM", tz, &tp));
1059
+ EXPECT_EQ(17, convert(tp, tz).hour());
1060
+ #endif
1061
+
1062
+ tp = reset;
1063
+ EXPECT_TRUE(parse("%r", "03:44:55 PM", tz, &tp));
1064
+ EXPECT_EQ(15, convert(tp, tz).hour());
1065
+ EXPECT_EQ(44, convert(tp, tz).minute());
1066
+ EXPECT_EQ(55, convert(tp, tz).second());
1067
+
1068
+ #if defined(__GLIBC__)
1069
+ tp = reset;
1070
+ EXPECT_TRUE(parse("%Ec", "Tue Nov 19 05:06:07 2013", tz, &tp));
1071
+ EXPECT_EQ(convert(civil_second(2013, 11, 19, 5, 6, 7), tz), tp);
1072
+
1073
+ // Modified conversion specifiers %E_
1074
+
1075
+ tp = reset;
1076
+ EXPECT_TRUE(parse("%Ex", "02/03/04", tz, &tp));
1077
+ EXPECT_EQ(2, convert(tp, tz).month());
1078
+ EXPECT_EQ(3, convert(tp, tz).day());
1079
+ EXPECT_EQ(2004, convert(tp, tz).year());
1080
+
1081
+ tp = reset;
1082
+ EXPECT_TRUE(parse("%EX", "15:44:55", tz, &tp));
1083
+ EXPECT_EQ(15, convert(tp, tz).hour());
1084
+ EXPECT_EQ(44, convert(tp, tz).minute());
1085
+ EXPECT_EQ(55, convert(tp, tz).second());
1086
+
1087
+ // %Ey, the year offset from %EC, doesn't really make sense alone as there
1088
+ // is no way to represent it in tm_year (%EC is not simply the century).
1089
+ // Yet, because we handle each (non-internal) specifier in a separate call
1090
+ // to strptime(), there is no way to group %EC and %Ey either. So we just
1091
+ // skip the %EC and %Ey cases.
1092
+
1093
+ tp = reset;
1094
+ EXPECT_TRUE(parse("%EY", "2004", tz, &tp));
1095
+ EXPECT_EQ(2004, convert(tp, tz).year());
1096
+
1097
+ // Modified conversion specifiers %O_
1098
+
1099
+ tp = reset;
1100
+ EXPECT_TRUE(parse("%Od", "15", tz, &tp));
1101
+ EXPECT_EQ(15, convert(tp, tz).day());
1102
+
1103
+ tp = reset;
1104
+ EXPECT_TRUE(parse("%Oe", "15", tz, &tp));
1105
+ EXPECT_EQ(15, convert(tp, tz).day()); // Equivalent to %d
1106
+
1107
+ tp = reset;
1108
+ EXPECT_TRUE(parse("%OH", "17", tz, &tp));
1109
+ EXPECT_EQ(17, convert(tp, tz).hour());
1110
+
1111
+ tp = reset;
1112
+ EXPECT_TRUE(parse("%OI", "5", tz, &tp));
1113
+ EXPECT_EQ(5, convert(tp, tz).hour());
1114
+
1115
+ tp = reset;
1116
+ EXPECT_TRUE(parse("%Om", "11", tz, &tp));
1117
+ EXPECT_EQ(11, convert(tp, tz).month());
1118
+
1119
+ tp = reset;
1120
+ EXPECT_TRUE(parse("%OM", "33", tz, &tp));
1121
+ EXPECT_EQ(33, convert(tp, tz).minute());
1122
+
1123
+ tp = reset;
1124
+ EXPECT_TRUE(parse("%OS", "55", tz, &tp));
1125
+ EXPECT_EQ(55, convert(tp, tz).second());
1126
+
1127
+ // %OU is parsed but ignored.
1128
+ EXPECT_TRUE(parse("%OU", "15", tz, &tp));
1129
+
1130
+ // %Ow is parsed but ignored.
1131
+ EXPECT_TRUE(parse("%Ow", "2", tz, &tp));
1132
+
1133
+ // %OW is parsed but ignored.
1134
+ EXPECT_TRUE(parse("%OW", "22", tz, &tp));
1135
+
1136
+ tp = reset;
1137
+ EXPECT_TRUE(parse("%Oy", "04", tz, &tp));
1138
+ EXPECT_EQ(2004, convert(tp, tz).year());
1139
+ #endif
1140
+ #endif
1141
+ }
1142
+
1143
+ TEST(Parse, ExtendedSeconds) {
1144
+ const time_zone tz = utc_time_zone();
1145
+ const time_point<chrono::nanoseconds> unix_epoch =
1146
+ chrono::system_clock::from_time_t(0);
1147
+
1148
+ // All %E<prec>S cases are treated the same as %E*S on input.
1149
+ auto precisions = {"*", "0", "1", "2", "3", "4", "5", "6", "7",
1150
+ "8", "9", "10", "11", "12", "13", "14", "15"};
1151
+ for (const std::string prec : precisions) {
1152
+ const std::string fmt = "%E" + prec + "S";
1153
+ SCOPED_TRACE(fmt);
1154
+ time_point<chrono::nanoseconds> tp = unix_epoch;
1155
+ EXPECT_TRUE(parse(fmt, "5", tz, &tp));
1156
+ EXPECT_EQ(unix_epoch + chrono::seconds(5), tp);
1157
+ tp = unix_epoch;
1158
+ EXPECT_TRUE(parse(fmt, "05", tz, &tp));
1159
+ EXPECT_EQ(unix_epoch + chrono::seconds(5), tp);
1160
+ tp = unix_epoch;
1161
+ EXPECT_TRUE(parse(fmt, "05.0", tz, &tp));
1162
+ EXPECT_EQ(unix_epoch + chrono::seconds(5), tp);
1163
+ tp = unix_epoch;
1164
+ EXPECT_TRUE(parse(fmt, "05.00", tz, &tp));
1165
+ EXPECT_EQ(unix_epoch + chrono::seconds(5), tp);
1166
+ tp = unix_epoch;
1167
+ EXPECT_TRUE(parse(fmt, "05.6", tz, &tp));
1168
+ EXPECT_EQ(unix_epoch + chrono::seconds(5) + chrono::milliseconds(600), tp);
1169
+ tp = unix_epoch;
1170
+ EXPECT_TRUE(parse(fmt, "05.60", tz, &tp));
1171
+ EXPECT_EQ(unix_epoch + chrono::seconds(5) + chrono::milliseconds(600), tp);
1172
+ tp = unix_epoch;
1173
+ EXPECT_TRUE(parse(fmt, "05.600", tz, &tp));
1174
+ EXPECT_EQ(unix_epoch + chrono::seconds(5) + chrono::milliseconds(600), tp);
1175
+ tp = unix_epoch;
1176
+ EXPECT_TRUE(parse(fmt, "05.67", tz, &tp));
1177
+ EXPECT_EQ(unix_epoch + chrono::seconds(5) + chrono::milliseconds(670), tp);
1178
+ tp = unix_epoch;
1179
+ EXPECT_TRUE(parse(fmt, "05.670", tz, &tp));
1180
+ EXPECT_EQ(unix_epoch + chrono::seconds(5) + chrono::milliseconds(670), tp);
1181
+ tp = unix_epoch;
1182
+ EXPECT_TRUE(parse(fmt, "05.678", tz, &tp));
1183
+ EXPECT_EQ(unix_epoch + chrono::seconds(5) + chrono::milliseconds(678), tp);
1184
+ }
1185
+
1186
+ // Here is a "%E*S" case we got wrong for a while. The fractional
1187
+ // part of the first instant is less than 2^31 and was correctly
1188
+ // parsed, while the second (and any subsecond field >=2^31) failed.
1189
+ time_point<chrono::nanoseconds> tp = unix_epoch;
1190
+ EXPECT_TRUE(parse("%E*S", "0.2147483647", tz, &tp));
1191
+ EXPECT_EQ(unix_epoch + chrono::nanoseconds(214748364), tp);
1192
+ tp = unix_epoch;
1193
+ EXPECT_TRUE(parse("%E*S", "0.2147483648", tz, &tp));
1194
+ EXPECT_EQ(unix_epoch + chrono::nanoseconds(214748364), tp);
1195
+
1196
+ // We should also be able to specify long strings of digits far
1197
+ // beyond the current resolution and have them convert the same way.
1198
+ tp = unix_epoch;
1199
+ EXPECT_TRUE(parse(
1200
+ "%E*S", "0.214748364801234567890123456789012345678901234567890123456789",
1201
+ tz, &tp));
1202
+ EXPECT_EQ(unix_epoch + chrono::nanoseconds(214748364), tp);
1203
+ }
1204
+
1205
+ TEST(Parse, ExtendedSecondsScan) {
1206
+ const time_zone tz = utc_time_zone();
1207
+ time_point<chrono::nanoseconds> tp;
1208
+ for (int ms = 0; ms < 1000; ms += 111) {
1209
+ for (int us = 0; us < 1000; us += 27) {
1210
+ const int micros = ms * 1000 + us;
1211
+ for (int ns = 0; ns < 1000; ns += 9) {
1212
+ const auto expected = chrono::system_clock::from_time_t(0) +
1213
+ chrono::nanoseconds(micros * 1000 + ns);
1214
+ std::ostringstream oss;
1215
+ oss << "0." << std::setfill('0') << std::setw(3);
1216
+ oss << ms << std::setw(3) << us << std::setw(3) << ns;
1217
+ const std::string input = oss.str();
1218
+ EXPECT_TRUE(parse("%E*S", input, tz, &tp));
1219
+ EXPECT_EQ(expected, tp) << input;
1220
+ }
1221
+ }
1222
+ }
1223
+ }
1224
+
1225
+ TEST(Parse, ExtendedSubeconds) {
1226
+ const time_zone tz = utc_time_zone();
1227
+ const time_point<chrono::nanoseconds> unix_epoch =
1228
+ chrono::system_clock::from_time_t(0);
1229
+
1230
+ // All %E<prec>f cases are treated the same as %E*f on input.
1231
+ auto precisions = {"*", "0", "1", "2", "3", "4", "5", "6", "7",
1232
+ "8", "9", "10", "11", "12", "13", "14", "15"};
1233
+ for (const std::string prec : precisions) {
1234
+ const std::string fmt = "%E" + prec + "f";
1235
+ SCOPED_TRACE(fmt);
1236
+ time_point<chrono::nanoseconds> tp = unix_epoch - chrono::seconds(1);
1237
+ EXPECT_TRUE(parse(fmt, "", tz, &tp));
1238
+ EXPECT_EQ(unix_epoch, tp);
1239
+ tp = unix_epoch;
1240
+ EXPECT_TRUE(parse(fmt, "6", tz, &tp));
1241
+ EXPECT_EQ(unix_epoch + chrono::milliseconds(600), tp);
1242
+ tp = unix_epoch;
1243
+ EXPECT_TRUE(parse(fmt, "60", tz, &tp));
1244
+ EXPECT_EQ(unix_epoch + chrono::milliseconds(600), tp);
1245
+ tp = unix_epoch;
1246
+ EXPECT_TRUE(parse(fmt, "600", tz, &tp));
1247
+ EXPECT_EQ(unix_epoch + chrono::milliseconds(600), tp);
1248
+ tp = unix_epoch;
1249
+ EXPECT_TRUE(parse(fmt, "67", tz, &tp));
1250
+ EXPECT_EQ(unix_epoch + chrono::milliseconds(670), tp);
1251
+ tp = unix_epoch;
1252
+ EXPECT_TRUE(parse(fmt, "670", tz, &tp));
1253
+ EXPECT_EQ(unix_epoch + chrono::milliseconds(670), tp);
1254
+ tp = unix_epoch;
1255
+ EXPECT_TRUE(parse(fmt, "678", tz, &tp));
1256
+ EXPECT_EQ(unix_epoch + chrono::milliseconds(678), tp);
1257
+ tp = unix_epoch;
1258
+ EXPECT_TRUE(parse(fmt, "6789", tz, &tp));
1259
+ EXPECT_EQ(
1260
+ unix_epoch + chrono::milliseconds(678) + chrono::microseconds(900), tp);
1261
+ }
1262
+
1263
+ // Here is a "%E*f" case we got wrong for a while. The fractional
1264
+ // part of the first instant is less than 2^31 and was correctly
1265
+ // parsed, while the second (and any subsecond field >=2^31) failed.
1266
+ time_point<chrono::nanoseconds> tp = unix_epoch;
1267
+ EXPECT_TRUE(parse("%E*f", "2147483647", tz, &tp));
1268
+ EXPECT_EQ(unix_epoch + chrono::nanoseconds(214748364), tp);
1269
+ tp = unix_epoch;
1270
+ EXPECT_TRUE(parse("%E*f", "2147483648", tz, &tp));
1271
+ EXPECT_EQ(unix_epoch + chrono::nanoseconds(214748364), tp);
1272
+
1273
+ // We should also be able to specify long strings of digits far
1274
+ // beyond the current resolution and have them convert the same way.
1275
+ tp = unix_epoch;
1276
+ EXPECT_TRUE(parse(
1277
+ "%E*f", "214748364801234567890123456789012345678901234567890123456789",
1278
+ tz, &tp));
1279
+ EXPECT_EQ(unix_epoch + chrono::nanoseconds(214748364), tp);
1280
+ }
1281
+
1282
+ TEST(Parse, ExtendedSubecondsScan) {
1283
+ time_point<chrono::nanoseconds> tp;
1284
+ const time_zone tz = utc_time_zone();
1285
+ for (int ms = 0; ms < 1000; ms += 111) {
1286
+ for (int us = 0; us < 1000; us += 27) {
1287
+ const int micros = ms * 1000 + us;
1288
+ for (int ns = 0; ns < 1000; ns += 9) {
1289
+ std::ostringstream oss;
1290
+ oss << std::setfill('0') << std::setw(3) << ms;
1291
+ oss << std::setw(3) << us << std::setw(3) << ns;
1292
+ const std::string nanos = oss.str();
1293
+ const auto expected = chrono::system_clock::from_time_t(0) +
1294
+ chrono::nanoseconds(micros * 1000 + ns);
1295
+ for (int ps = 0; ps < 1000; ps += 250) {
1296
+ std::ostringstream ps_oss;
1297
+ oss << std::setfill('0') << std::setw(3) << ps;
1298
+ const std::string input = nanos + ps_oss.str() + "999";
1299
+ EXPECT_TRUE(parse("%E*f", input, tz, &tp));
1300
+ EXPECT_EQ(expected + chrono::nanoseconds(ps) / 1000, tp) << input;
1301
+ }
1302
+ }
1303
+ }
1304
+ }
1305
+ }
1306
+
1307
+ TEST(Parse, ExtendedOffset) {
1308
+ const time_zone utc = utc_time_zone();
1309
+ time_point<absl::time_internal::cctz::seconds> tp;
1310
+
1311
+ EXPECT_TRUE(parse("%Ez", "+00:00", utc, &tp));
1312
+ EXPECT_EQ(convert(civil_second(1970, 1, 1, 0, 0, 0), utc), tp);
1313
+ EXPECT_TRUE(parse("%Ez", "-12:34", utc, &tp));
1314
+ EXPECT_EQ(convert(civil_second(1970, 1, 1, 12, 34, 0), utc), tp);
1315
+ EXPECT_TRUE(parse("%Ez", "+12:34", utc, &tp));
1316
+ EXPECT_EQ(convert(civil_second(1969, 12, 31, 11, 26, 0), utc), tp);
1317
+ EXPECT_FALSE(parse("%Ez", "-12:3", utc, &tp));
1318
+
1319
+ for (auto fmt : {"%Ez", "%z"}) {
1320
+ EXPECT_TRUE(parse(fmt, "+0000", utc, &tp));
1321
+ EXPECT_EQ(convert(civil_second(1970, 1, 1, 0, 0, 0), utc), tp);
1322
+ EXPECT_TRUE(parse(fmt, "-1234", utc, &tp));
1323
+ EXPECT_EQ(convert(civil_second(1970, 1, 1, 12, 34, 0), utc), tp);
1324
+ EXPECT_TRUE(parse(fmt, "+1234", utc, &tp));
1325
+ EXPECT_EQ(convert(civil_second(1969, 12, 31, 11, 26, 0), utc), tp);
1326
+ EXPECT_FALSE(parse(fmt, "-123", utc, &tp));
1327
+
1328
+ EXPECT_TRUE(parse(fmt, "+00", utc, &tp));
1329
+ EXPECT_EQ(convert(civil_second(1970, 1, 1, 0, 0, 0), utc), tp);
1330
+ EXPECT_TRUE(parse(fmt, "-12", utc, &tp));
1331
+ EXPECT_EQ(convert(civil_second(1970, 1, 1, 12, 0, 0), utc), tp);
1332
+ EXPECT_TRUE(parse(fmt, "+12", utc, &tp));
1333
+ EXPECT_EQ(convert(civil_second(1969, 12, 31, 12, 0, 0), utc), tp);
1334
+ EXPECT_FALSE(parse(fmt, "-1", utc, &tp));
1335
+ }
1336
+ }
1337
+
1338
+ TEST(Parse, ExtendedSecondOffset) {
1339
+ const time_zone utc = utc_time_zone();
1340
+ time_point<absl::time_internal::cctz::seconds> tp;
1341
+
1342
+ for (auto fmt : {"%Ez", "%E*z", "%:z", "%::z", "%:::z"}) {
1343
+ EXPECT_TRUE(parse(fmt, "+00:00:00", utc, &tp));
1344
+ EXPECT_EQ(convert(civil_second(1970, 1, 1, 0, 0, 0), utc), tp);
1345
+ EXPECT_TRUE(parse(fmt, "-12:34:56", utc, &tp));
1346
+ EXPECT_EQ(convert(civil_second(1970, 1, 1, 12, 34, 56), utc), tp);
1347
+ EXPECT_TRUE(parse(fmt, "+12:34:56", utc, &tp));
1348
+ EXPECT_EQ(convert(civil_second(1969, 12, 31, 11, 25, 4), utc), tp);
1349
+ EXPECT_FALSE(parse(fmt, "-12:34:5", utc, &tp));
1350
+
1351
+ EXPECT_TRUE(parse(fmt, "+000000", utc, &tp));
1352
+ EXPECT_EQ(convert(civil_second(1970, 1, 1, 0, 0, 0), utc), tp);
1353
+ EXPECT_TRUE(parse(fmt, "-123456", utc, &tp));
1354
+ EXPECT_EQ(convert(civil_second(1970, 1, 1, 12, 34, 56), utc), tp);
1355
+ EXPECT_TRUE(parse(fmt, "+123456", utc, &tp));
1356
+ EXPECT_EQ(convert(civil_second(1969, 12, 31, 11, 25, 4), utc), tp);
1357
+ EXPECT_FALSE(parse(fmt, "-12345", utc, &tp));
1358
+
1359
+ EXPECT_TRUE(parse(fmt, "+00:00", utc, &tp));
1360
+ EXPECT_EQ(convert(civil_second(1970, 1, 1, 0, 0, 0), utc), tp);
1361
+ EXPECT_TRUE(parse(fmt, "-12:34", utc, &tp));
1362
+ EXPECT_EQ(convert(civil_second(1970, 1, 1, 12, 34, 0), utc), tp);
1363
+ EXPECT_TRUE(parse(fmt, "+12:34", utc, &tp));
1364
+ EXPECT_EQ(convert(civil_second(1969, 12, 31, 11, 26, 0), utc), tp);
1365
+ EXPECT_FALSE(parse(fmt, "-12:3", utc, &tp));
1366
+
1367
+ EXPECT_TRUE(parse(fmt, "+0000", utc, &tp));
1368
+ EXPECT_EQ(convert(civil_second(1970, 1, 1, 0, 0, 0), utc), tp);
1369
+ EXPECT_TRUE(parse(fmt, "-1234", utc, &tp));
1370
+ EXPECT_EQ(convert(civil_second(1970, 1, 1, 12, 34, 0), utc), tp);
1371
+ EXPECT_TRUE(parse(fmt, "+1234", utc, &tp));
1372
+ EXPECT_EQ(convert(civil_second(1969, 12, 31, 11, 26, 0), utc), tp);
1373
+ EXPECT_FALSE(parse(fmt, "-123", utc, &tp));
1374
+
1375
+ EXPECT_TRUE(parse(fmt, "+00", utc, &tp));
1376
+ EXPECT_EQ(convert(civil_second(1970, 1, 1, 0, 0, 0), utc), tp);
1377
+ EXPECT_TRUE(parse(fmt, "-12", utc, &tp));
1378
+ EXPECT_EQ(convert(civil_second(1970, 1, 1, 12, 0, 0), utc), tp);
1379
+ EXPECT_TRUE(parse(fmt, "+12", utc, &tp));
1380
+ EXPECT_EQ(convert(civil_second(1969, 12, 31, 12, 0, 0), utc), tp);
1381
+ EXPECT_FALSE(parse(fmt, "-1", utc, &tp));
1382
+ }
1383
+ }
1384
+
1385
+ TEST(Parse, ExtendedYears) {
1386
+ const time_zone utc = utc_time_zone();
1387
+ const char e4y_fmt[] = "%E4Y%m%d"; // no separators
1388
+ time_point<absl::time_internal::cctz::seconds> tp;
1389
+
1390
+ // %E4Y consumes exactly four chars, including any sign.
1391
+ EXPECT_TRUE(parse(e4y_fmt, "-9991127", utc, &tp));
1392
+ EXPECT_EQ(convert(civil_second(-999, 11, 27, 0, 0, 0), utc), tp);
1393
+ EXPECT_TRUE(parse(e4y_fmt, "-0991127", utc, &tp));
1394
+ EXPECT_EQ(convert(civil_second(-99, 11, 27, 0, 0, 0), utc), tp);
1395
+ EXPECT_TRUE(parse(e4y_fmt, "-0091127", utc, &tp));
1396
+ EXPECT_EQ(convert(civil_second(-9, 11, 27, 0, 0, 0), utc), tp);
1397
+ EXPECT_TRUE(parse(e4y_fmt, "-0011127", utc, &tp));
1398
+ EXPECT_EQ(convert(civil_second(-1, 11, 27, 0, 0, 0), utc), tp);
1399
+ EXPECT_TRUE(parse(e4y_fmt, "00001127", utc, &tp));
1400
+ EXPECT_EQ(convert(civil_second(0, 11, 27, 0, 0, 0), utc), tp);
1401
+ EXPECT_TRUE(parse(e4y_fmt, "00011127", utc, &tp));
1402
+ EXPECT_EQ(convert(civil_second(1, 11, 27, 0, 0, 0), utc), tp);
1403
+ EXPECT_TRUE(parse(e4y_fmt, "00091127", utc, &tp));
1404
+ EXPECT_EQ(convert(civil_second(9, 11, 27, 0, 0, 0), utc), tp);
1405
+ EXPECT_TRUE(parse(e4y_fmt, "00991127", utc, &tp));
1406
+ EXPECT_EQ(convert(civil_second(99, 11, 27, 0, 0, 0), utc), tp);
1407
+ EXPECT_TRUE(parse(e4y_fmt, "09991127", utc, &tp));
1408
+ EXPECT_EQ(convert(civil_second(999, 11, 27, 0, 0, 0), utc), tp);
1409
+ EXPECT_TRUE(parse(e4y_fmt, "99991127", utc, &tp));
1410
+ EXPECT_EQ(convert(civil_second(9999, 11, 27, 0, 0, 0), utc), tp);
1411
+
1412
+ // When the year is outside [-999:9999], the parse fails.
1413
+ EXPECT_FALSE(parse(e4y_fmt, "-10001127", utc, &tp));
1414
+ EXPECT_FALSE(parse(e4y_fmt, "100001127", utc, &tp));
1415
+ }
1416
+
1417
+ TEST(Parse, RFC3339Format) {
1418
+ const time_zone tz = utc_time_zone();
1419
+ time_point<chrono::nanoseconds> tp;
1420
+ EXPECT_TRUE(parse(RFC3339_sec, "2014-02-12T20:21:00+00:00", tz, &tp));
1421
+ ExpectTime(tp, tz, 2014, 2, 12, 20, 21, 0, 0, false, "UTC");
1422
+
1423
+ // Check that %ET also accepts "t".
1424
+ time_point<chrono::nanoseconds> tp2;
1425
+ EXPECT_TRUE(parse(RFC3339_sec, "2014-02-12t20:21:00+00:00", tz, &tp2));
1426
+ EXPECT_EQ(tp, tp2);
1427
+
1428
+ // Check that %Ez also accepts "Z" as a synonym for "+00:00".
1429
+ time_point<chrono::nanoseconds> tp3;
1430
+ EXPECT_TRUE(parse(RFC3339_sec, "2014-02-12T20:21:00Z", tz, &tp3));
1431
+ EXPECT_EQ(tp, tp3);
1432
+
1433
+ // Check that %Ez also accepts "z" as a synonym for "+00:00".
1434
+ time_point<chrono::nanoseconds> tp4;
1435
+ EXPECT_TRUE(parse(RFC3339_sec, "2014-02-12T20:21:00z", tz, &tp4));
1436
+ EXPECT_EQ(tp, tp4);
1437
+ }
1438
+
1439
+ TEST(Parse, Week) {
1440
+ const time_zone utc = utc_time_zone();
1441
+ time_point<absl::time_internal::cctz::seconds> tp;
1442
+
1443
+ auto exp = convert(civil_second(2017, 1, 1, 0, 0, 0), utc);
1444
+ EXPECT_TRUE(parse("%Y-%U-%u", "2017-01-7", utc, &tp));
1445
+ EXPECT_EQ(exp, tp);
1446
+ EXPECT_TRUE(parse("%Y-%W-%w", "2017-00-0", utc, &tp));
1447
+ EXPECT_EQ(exp, tp);
1448
+
1449
+ exp = convert(civil_second(2017, 12, 31, 0, 0, 0), utc);
1450
+ EXPECT_TRUE(parse("%Y-%U-%u", "2017-53-7", utc, &tp));
1451
+ EXPECT_EQ(exp, tp);
1452
+ EXPECT_TRUE(parse("%Y-%W-%w", "2017-52-0", utc, &tp));
1453
+ EXPECT_EQ(exp, tp);
1454
+
1455
+ exp = convert(civil_second(2018, 1, 1, 0, 0, 0), utc);
1456
+ EXPECT_TRUE(parse("%Y-%U-%u", "2018-00-1", utc, &tp));
1457
+ EXPECT_EQ(exp, tp);
1458
+ EXPECT_TRUE(parse("%Y-%W-%w", "2018-01-1", utc, &tp));
1459
+ EXPECT_EQ(exp, tp);
1460
+
1461
+ exp = convert(civil_second(2018, 12, 31, 0, 0, 0), utc);
1462
+ EXPECT_TRUE(parse("%Y-%U-%u", "2018-52-1", utc, &tp));
1463
+ EXPECT_EQ(exp, tp);
1464
+ EXPECT_TRUE(parse("%Y-%W-%w", "2018-53-1", utc, &tp));
1465
+ EXPECT_EQ(exp, tp);
1466
+
1467
+ exp = convert(civil_second(2019, 1, 1, 0, 0, 0), utc);
1468
+ EXPECT_TRUE(parse("%Y-%U-%u", "2019-00-2", utc, &tp));
1469
+ EXPECT_EQ(exp, tp);
1470
+ EXPECT_TRUE(parse("%Y-%W-%w", "2019-00-2", utc, &tp));
1471
+ EXPECT_EQ(exp, tp);
1472
+
1473
+ exp = convert(civil_second(2019, 12, 31, 0, 0, 0), utc);
1474
+ EXPECT_TRUE(parse("%Y-%U-%u", "2019-52-2", utc, &tp));
1475
+ EXPECT_EQ(exp, tp);
1476
+ EXPECT_TRUE(parse("%Y-%W-%w", "2019-52-2", utc, &tp));
1477
+ EXPECT_EQ(exp, tp);
1478
+ }
1479
+
1480
+ TEST(Parse, WeekYearShift) {
1481
+ // %U/%W conversions with week values in {0, 52, 53} can slip
1482
+ // into the previous/following calendar years.
1483
+ const time_zone utc = utc_time_zone();
1484
+ time_point<absl::time_internal::cctz::seconds> tp;
1485
+
1486
+ auto exp = convert(civil_second(2019, 12, 31, 0, 0, 0), utc);
1487
+ EXPECT_TRUE(parse("%Y-%U-%u", "2020-00-2", utc, &tp));
1488
+ EXPECT_EQ(exp, tp);
1489
+ EXPECT_TRUE(parse("%Y-%W-%w", "2020-00-2", utc, &tp));
1490
+ EXPECT_EQ(exp, tp);
1491
+
1492
+ exp = convert(civil_second(2021, 1, 1, 0, 0, 0), utc);
1493
+ EXPECT_TRUE(parse("%Y-%U-%u", "2020-52-5", utc, &tp));
1494
+ EXPECT_EQ(exp, tp);
1495
+ EXPECT_TRUE(parse("%Y-%W-%w", "2020-52-5", utc, &tp));
1496
+ EXPECT_EQ(exp, tp);
1497
+
1498
+ // Slipping into the previous/following calendar years should fail when
1499
+ // we're already at the extremes.
1500
+ EXPECT_FALSE(parse("%Y-%U-%u", "-9223372036854775808-0-7", utc, &tp));
1501
+ EXPECT_FALSE(parse("%Y-%U-%u", "9223372036854775807-53-7", utc, &tp));
1502
+ }
1503
+
1504
+ TEST(Parse, MaxRange) {
1505
+ const time_zone utc = utc_time_zone();
1506
+ time_point<absl::time_internal::cctz::seconds> tp;
1507
+
1508
+ // tests the upper limit using +00:00 offset
1509
+ EXPECT_TRUE(
1510
+ parse(RFC3339_sec, "292277026596-12-04T15:30:07+00:00", utc, &tp));
1511
+ EXPECT_EQ(tp, time_point<absl::time_internal::cctz::seconds>::max());
1512
+ EXPECT_FALSE(
1513
+ parse(RFC3339_sec, "292277026596-12-04T15:30:08+00:00", utc, &tp));
1514
+
1515
+ // tests the upper limit using -01:00 offset
1516
+ EXPECT_TRUE(
1517
+ parse(RFC3339_sec, "292277026596-12-04T14:30:07-01:00", utc, &tp));
1518
+ EXPECT_EQ(tp, time_point<absl::time_internal::cctz::seconds>::max());
1519
+ EXPECT_FALSE(
1520
+ parse(RFC3339_sec, "292277026596-12-04T14:30:08-01:00", utc, &tp));
1521
+
1522
+ // tests the lower limit using +00:00 offset
1523
+ EXPECT_TRUE(
1524
+ parse(RFC3339_sec, "-292277022657-01-27T08:29:52+00:00", utc, &tp));
1525
+ EXPECT_EQ(tp, time_point<absl::time_internal::cctz::seconds>::min());
1526
+ EXPECT_FALSE(
1527
+ parse(RFC3339_sec, "-292277022657-01-27T08:29:51+00:00", utc, &tp));
1528
+
1529
+ // tests the lower limit using +01:00 offset
1530
+ EXPECT_TRUE(
1531
+ parse(RFC3339_sec, "-292277022657-01-27T09:29:52+01:00", utc, &tp));
1532
+ EXPECT_EQ(tp, time_point<absl::time_internal::cctz::seconds>::min());
1533
+ EXPECT_FALSE(
1534
+ parse(RFC3339_sec, "-292277022657-01-27T08:29:51+01:00", utc, &tp));
1535
+
1536
+ // tests max/min civil-second overflow
1537
+ EXPECT_FALSE(
1538
+ parse(RFC3339_sec, "9223372036854775807-12-31T23:59:59-00:01", utc, &tp));
1539
+ EXPECT_FALSE(parse(RFC3339_sec, "-9223372036854775808-01-01T00:00:00+00:01",
1540
+ utc, &tp));
1541
+ }
1542
+
1543
+ TEST(Parse, TimePointOverflow) {
1544
+ const time_zone utc = utc_time_zone();
1545
+
1546
+ using D = chrono::duration<std::int64_t, std::nano>;
1547
+ time_point<D> tp;
1548
+
1549
+ EXPECT_TRUE(
1550
+ parse(RFC3339_full, "2262-04-11T23:47:16.8547758079+00:00", utc, &tp));
1551
+ EXPECT_EQ(tp, time_point<D>::max());
1552
+ EXPECT_EQ("2262-04-11T23:47:16.854775807+00:00",
1553
+ format(RFC3339_full, tp, utc));
1554
+ #if 0
1555
+ // TODO(#199): Will fail until cctz::parse() properly detects overflow.
1556
+ EXPECT_FALSE(
1557
+ parse(RFC3339_full, "2262-04-11T23:47:16.8547758080+00:00", utc, &tp));
1558
+ EXPECT_TRUE(
1559
+ parse(RFC3339_full, "1677-09-21T00:12:43.1452241920+00:00", utc, &tp));
1560
+ EXPECT_EQ(tp, time_point<D>::min());
1561
+ EXPECT_EQ("1677-09-21T00:12:43.145224192+00:00",
1562
+ format(RFC3339_full, tp, utc));
1563
+ EXPECT_FALSE(
1564
+ parse(RFC3339_full, "1677-09-21T00:12:43.1452241919+00:00", utc, &tp));
1565
+ #endif
1566
+
1567
+ using DS = chrono::duration<std::int8_t, chrono::seconds::period>;
1568
+ time_point<DS> stp;
1569
+
1570
+ EXPECT_TRUE(parse(RFC3339_full, "1970-01-01T00:02:07.9+00:00", utc, &stp));
1571
+ EXPECT_EQ(stp, time_point<DS>::max());
1572
+ EXPECT_EQ("1970-01-01T00:02:07+00:00", format(RFC3339_full, stp, utc));
1573
+ EXPECT_FALSE(parse(RFC3339_full, "1970-01-01T00:02:08+00:00", utc, &stp));
1574
+
1575
+ EXPECT_TRUE(parse(RFC3339_full, "1969-12-31T23:57:52+00:00", utc, &stp));
1576
+ EXPECT_EQ(stp, time_point<DS>::min());
1577
+ EXPECT_EQ("1969-12-31T23:57:52+00:00", format(RFC3339_full, stp, utc));
1578
+ EXPECT_FALSE(parse(RFC3339_full, "1969-12-31T23:57:51.9+00:00", utc, &stp));
1579
+
1580
+ using DM = chrono::duration<std::int8_t, chrono::minutes::period>;
1581
+ time_point<DM> mtp;
1582
+
1583
+ EXPECT_TRUE(parse(RFC3339_full, "1970-01-01T02:07:59+00:00", utc, &mtp));
1584
+ EXPECT_EQ(mtp, time_point<DM>::max());
1585
+ EXPECT_EQ("1970-01-01T02:07:00+00:00", format(RFC3339_full, mtp, utc));
1586
+ EXPECT_FALSE(parse(RFC3339_full, "1970-01-01T02:08:00+00:00", utc, &mtp));
1587
+
1588
+ EXPECT_TRUE(parse(RFC3339_full, "1969-12-31T21:52:00+00:00", utc, &mtp));
1589
+ EXPECT_EQ(mtp, time_point<DM>::min());
1590
+ EXPECT_EQ("1969-12-31T21:52:00+00:00", format(RFC3339_full, mtp, utc));
1591
+ EXPECT_FALSE(parse(RFC3339_full, "1969-12-31T21:51:59+00:00", utc, &mtp));
1592
+ }
1593
+
1594
+ TEST(Parse, TimePointOverflowFloor) {
1595
+ const time_zone utc = utc_time_zone();
1596
+
1597
+ using D = chrono::duration<std::int64_t, std::micro>;
1598
+ time_point<D> tp;
1599
+
1600
+ EXPECT_TRUE(
1601
+ parse(RFC3339_full, "294247-01-10T04:00:54.7758079+00:00", utc, &tp));
1602
+ EXPECT_EQ(tp, time_point<D>::max());
1603
+ EXPECT_EQ("294247-01-10T04:00:54.775807+00:00",
1604
+ format(RFC3339_full, tp, utc));
1605
+ #if 0
1606
+ // TODO(#199): Will fail until cctz::parse() properly detects overflow.
1607
+ EXPECT_FALSE(
1608
+ parse(RFC3339_full, "294247-01-10T04:00:54.7758080+00:00", utc, &tp));
1609
+ EXPECT_TRUE(
1610
+ parse(RFC3339_full, "-290308-12-21T19:59:05.2241920+00:00", utc, &tp));
1611
+ EXPECT_EQ(tp, time_point<D>::min());
1612
+ EXPECT_EQ("-290308-12-21T19:59:05.224192+00:00",
1613
+ format(RFC3339_full, tp, utc));
1614
+ EXPECT_FALSE(
1615
+ parse(RFC3339_full, "-290308-12-21T19:59:05.2241919+00:00", utc, &tp));
1616
+ #endif
1617
+ }
1618
+
1619
+ //
1620
+ // Roundtrip test for format()/parse().
1621
+ //
1622
+
1623
+ TEST(FormatParse, RoundTrip) {
1624
+ time_zone lax;
1625
+ EXPECT_TRUE(load_time_zone("America/Los_Angeles", &lax));
1626
+ const auto in = convert(civil_second(1977, 6, 28, 9, 8, 7), lax);
1627
+ const auto subseconds = chrono::nanoseconds(654321);
1628
+
1629
+ // RFC3339, which renders subseconds.
1630
+ {
1631
+ time_point<chrono::nanoseconds> out;
1632
+ const std::string s = format(RFC3339_full, in + subseconds, lax);
1633
+ EXPECT_TRUE(parse(RFC3339_full, s, lax, &out)) << s;
1634
+ EXPECT_EQ(in + subseconds, out); // RFC3339_full includes %Ez
1635
+ }
1636
+
1637
+ // RFC1123, which only does whole seconds.
1638
+ {
1639
+ time_point<chrono::nanoseconds> out;
1640
+ const std::string s = format(RFC1123_full, in, lax);
1641
+ EXPECT_TRUE(parse(RFC1123_full, s, lax, &out)) << s;
1642
+ EXPECT_EQ(in, out); // RFC1123_full includes %z
1643
+ }
1644
+
1645
+ #if defined(_WIN32) || defined(_WIN64)
1646
+ // Initial investigations indicate the %c does not roundtrip on Windows.
1647
+ // TODO: Figure out what is going on here (perhaps a locale problem).
1648
+ #elif defined(__EMSCRIPTEN__)
1649
+ // strftime() and strptime() use different defintions for "%c" under
1650
+ // emscripten (see https://github.com/kripken/emscripten/pull/7491),
1651
+ // causing its round-trip test to fail.
1652
+ #else
1653
+ // Even though we don't know what %c will produce, it should roundtrip,
1654
+ // but only in the 0-offset timezone.
1655
+ {
1656
+ time_point<chrono::nanoseconds> out;
1657
+ time_zone utc = utc_time_zone();
1658
+ const std::string s = format("%c", in, utc);
1659
+ EXPECT_TRUE(parse("%c", s, utc, &out)) << s;
1660
+ EXPECT_EQ(in, out);
1661
+ }
1662
+ #endif
1663
+ }
1664
+
1665
+ TEST(FormatParse, RoundTripDistantFuture) {
1666
+ const time_zone utc = utc_time_zone();
1667
+ const time_point<absl::time_internal::cctz::seconds> in =
1668
+ time_point<absl::time_internal::cctz::seconds>::max();
1669
+ const std::string s = format(RFC3339_full, in, utc);
1670
+ time_point<absl::time_internal::cctz::seconds> out;
1671
+ EXPECT_TRUE(parse(RFC3339_full, s, utc, &out)) << s;
1672
+ EXPECT_EQ(in, out);
1673
+ }
1674
+
1675
+ TEST(FormatParse, RoundTripDistantPast) {
1676
+ const time_zone utc = utc_time_zone();
1677
+ const time_point<absl::time_internal::cctz::seconds> in =
1678
+ time_point<absl::time_internal::cctz::seconds>::min();
1679
+ const std::string s = format(RFC3339_full, in, utc);
1680
+ time_point<absl::time_internal::cctz::seconds> out;
1681
+ EXPECT_TRUE(parse(RFC3339_full, s, utc, &out)) << s;
1682
+ EXPECT_EQ(in, out);
1683
+ }
1684
+
1685
+ } // namespace cctz
1686
+ } // namespace time_internal
1687
+ ABSL_NAMESPACE_END
1688
+ } // namespace absl