You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by aa...@apache.org on 2022/07/28 09:16:47 UTC

[rocketmq-clients] branch java_dev updated (af6500d -> 0af0a27)

This is an automated email from the ASF dual-hosted git repository.

aaronai pushed a change to branch java_dev
in repository https://gitbox.apache.org/repos/asf/rocketmq-clients.git


 discard af6500d  Polish code
    omit 014fa57  1. Enable message type validate 2. Remove ReceiveMessageResult#ok
     add fbac59a  1. Enable message type validate (#75)
     add 1a0c24e  Fix license checker issue (#76)
     add 99d423f  Add error handling for MESSAGE_PROPERTY_CONFLICT_WITH_TYPE (#73)
     add 15e2844  Support build with CMake (#77)
     add 13c1426  Polish readme and build examples with cmake (#78)
     add 884ad96  Retry after 20ms if receiving message is throttled (#79)
     add dc9331f  Minor polishment of transactional message example
     add a4718c8  Retry ack/nack/forward-to-dlq of messages unless the lifecycle completes: success or receipt-handle becomes invalid (#82)
     new 0af0a27  Polish code

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (af6500d)
            \
             N -- N -- N   refs/heads/java_dev (0af0a27)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .github/workflows/cpp_build.yml                    |    4 +-
 .licenserc.yaml                                    |   20 +
 cpp/CMakeLists.txt                                 |   33 +
 cpp/README.md                                      |   29 +
 cpp/bazel/rocketmq_deps.bzl                        |   15 +-
 cpp/cmake/FindProtobufWithTargets.cmake            |  203 +
 cpp/cmake/FindgRPC.cmake                           |  357 ++
 cpp/cmake/OpenCensusHelpers.cmake                  |   90 +
 cpp/examples/CMakeLists.txt                        |   12 +
 .../ExampleProducerWithTransactionalMessage.cpp    |    4 +
 cpp/proto/CMakeLists.txt                           |   19 +
 cpp/source/CMakeLists.txt                          |   59 +
 cpp/source/admin/CMakeLists.txt                    |   13 +
 cpp/source/base/CMakeLists.txt                     |   15 +
 cpp/source/base/MixAll.cpp                         |    3 +-
 cpp/source/base/UniqueIdGenerator.cpp              |    7 +-
 cpp/source/base/UtilAll.cpp                        |    3 +-
 cpp/source/base/include/InvocationContext.h        |    3 +-
 cpp/source/base/tests/AssignmentTest.cpp           |   17 +
 cpp/source/base/tests/MessageQueueTest.cpp         |   17 +
 cpp/source/client/CMakeLists.txt                   |   18 +
 cpp/source/client/ClientManagerImpl.cpp            |   12 +-
 cpp/source/client/ReceiveMessageStreamReader.cpp   |    7 +-
 cpp/source/client/SessionImpl.cpp                  |    3 +-
 cpp/source/client/TelemetryBidiReactor.cpp         |    5 +-
 cpp/source/client/TopicAssignmentInfo.cpp          |    3 +-
 .../client/include/InsecureCertificateVerifier.h   |   16 +
 cpp/source/client/include/TopicAssignmentInfo.h    |    2 +-
 cpp/source/concurrent/CMakeLists.txt               |    9 +
 cpp/source/concurrent/CountdownLatch.cpp           |    4 +-
 cpp/source/log/CMakeLists.txt                      |   11 +
 cpp/source/remoting/BUILD.bazel                    |   32 -
 cpp/source/remoting/BrokerData.cpp                 |   43 -
 cpp/source/remoting/QueryRouteRequestHeader.cpp    |   29 -
 cpp/source/remoting/QueueData.cpp                  |   49 -
 cpp/source/remoting/RemotingCommand.cpp            |  113 -
 cpp/source/remoting/TopicRouteData.cpp             |   46 -
 cpp/source/remoting/include/BrokerData.h           |   38 -
 cpp/source/remoting/include/CommandCustomHeader.h  |   33 -
 cpp/source/remoting/include/LanguageCode.h         |   41 -
 .../remoting/include/QueryRouteRequestHeader.h     |   46 -
 cpp/source/remoting/include/QueueData.h            |   44 -
 cpp/source/remoting/include/RemotingCommand.h      |  106 -
 cpp/source/remoting/include/RemotingCommandType.h  |   31 -
 cpp/source/remoting/include/RequestCode.h          |   32 -
 cpp/source/remoting/include/ResponseCode.h         |   32 -
 cpp/source/remoting/include/TopicRouteData.h       |   44 -
 cpp/source/remoting/include/Version.h              |   31 -
 .../rocketmq/AsyncReceiveMessageCallback.cpp       |   21 +-
 cpp/source/rocketmq/CMakeLists.txt                 |   22 +
 cpp/source/rocketmq/ClientImpl.cpp                 |    4 +-
 cpp/source/rocketmq/ConsumeMessageServiceImpl.cpp  |    3 +-
 cpp/source/rocketmq/ConsumeTask.cpp                |   61 +-
 cpp/source/rocketmq/Producer.cpp                   |    3 +-
 cpp/source/rocketmq/StaticNameServerResolver.cpp   |    3 +-
 cpp/source/rocketmq/TopicPublishInfo.cpp           |    3 +-
 .../rocketmq/include/AsyncReceiveMessageCallback.h |    2 +-
 cpp/source/rocketmq/include/ClientImpl.h           |    8 +
 cpp/source/rocketmq/include/ConsumeTask.h          |    2 +
 cpp/source/rocketmq/include/ProcessQueueImpl.h     |    3 -
 cpp/source/rocketmq/tests/SendContextTest.cpp      |   16 +
 cpp/source/scheduler/CMakeLists.txt                |   10 +
 cpp/source/stats/CMakeLists.txt                    |   17 +
 cpp/source/stats/MetricBidiReactor.cpp             |    3 +-
 cpp/source/stats/StdoutHandler.cpp                 |    4 +-
 cpp/source/trace/CMakeLists.txt                    |   13 +
 cpp/third_party/CMakeLists.txt                     |    8 +
 cpp/third_party/asio/1.18.2/CMakeLists.txt         |    4 +
 cpp/third_party/asio/1.18.2/include/Makefile.am    |  566 ++
 cpp/third_party/asio/1.18.2/include/Makefile.in    | 1105 ++++
 cpp/third_party/asio/1.18.2/include/asio.hpp       |  182 +
 .../asio/1.18.2/include/asio/any_io_executor.hpp   |  300 +
 .../1.18.2/include/asio/associated_allocator.hpp   |  125 +
 .../1.18.2/include/asio/associated_executor.hpp    |  166 +
 .../asio/1.18.2/include/asio/async_result.hpp      |  582 ++
 .../asio/1.18.2/include/asio/awaitable.hpp         |  133 +
 .../1.18.2/include/asio/basic_datagram_socket.hpp  | 1223 ++++
 .../1.18.2/include/asio/basic_deadline_timer.hpp   |  693 +++
 .../asio/1.18.2/include/asio/basic_io_object.hpp   |  290 +
 .../asio/1.18.2/include/asio/basic_raw_socket.hpp  | 1214 ++++
 .../include/asio/basic_seq_packet_socket.hpp       |  768 +++
 .../asio/1.18.2/include/asio/basic_serial_port.hpp |  907 +++
 .../asio/1.18.2/include/asio/basic_signal_set.hpp  |  576 ++
 .../asio/1.18.2/include/asio/basic_socket.hpp      | 1895 ++++++
 .../1.18.2/include/asio/basic_socket_acceptor.hpp  | 2508 ++++++++
 .../1.18.2/include/asio/basic_socket_iostream.hpp  |  407 ++
 .../1.18.2/include/asio/basic_socket_streambuf.hpp |  687 +++
 .../1.18.2/include/asio/basic_stream_socket.hpp    | 1060 ++++
 .../asio/1.18.2/include/asio/basic_streambuf.hpp   |  452 ++
 .../1.18.2/include/asio/basic_streambuf_fwd.hpp    |   36 +
 .../1.18.2/include/asio/basic_waitable_timer.hpp   |  811 +++
 .../asio/1.18.2/include/asio/bind_executor.hpp     |  575 ++
 .../asio/1.18.2/include/asio/buffer.hpp            | 2496 ++++++++
 .../1.18.2/include/asio/buffered_read_stream.hpp   |  253 +
 .../include/asio/buffered_read_stream_fwd.hpp      |   25 +
 .../asio/1.18.2/include/asio/buffered_stream.hpp   |  279 +
 .../1.18.2/include/asio/buffered_stream_fwd.hpp    |   25 +
 .../1.18.2/include/asio/buffered_write_stream.hpp  |  245 +
 .../include/asio/buffered_write_stream_fwd.hpp     |   25 +
 .../asio/1.18.2/include/asio/buffers_iterator.hpp  |  521 ++
 .../asio/1.18.2/include/asio/co_spawn.hpp          |  471 ++
 .../1.18.2/include/asio/completion_condition.hpp   |  218 +
 .../asio/1.18.2/include/asio/compose.hpp           |  136 +
 .../asio/1.18.2/include/asio/connect.hpp           | 1076 ++++
 .../asio/1.18.2/include/asio/coroutine.hpp         |  328 ++
 .../asio/1.18.2/include/asio/deadline_timer.hpp    |   38 +
 cpp/third_party/asio/1.18.2/include/asio/defer.hpp |  130 +
 .../asio/1.18.2/include/asio/detached.hpp          |  112 +
 .../asio/1.18.2/include/asio/detail/array.hpp      |   38 +
 .../asio/1.18.2/include/asio/detail/array_fwd.hpp  |   34 +
 .../asio/1.18.2/include/asio/detail/assert.hpp     |   32 +
 .../1.18.2/include/asio/detail/atomic_count.hpp    |   64 +
 .../asio/detail/base_from_completion_cond.hpp      |   69 +
 .../1.18.2/include/asio/detail/bind_handler.hpp    |  938 +++
 .../include/asio/detail/blocking_executor_op.hpp   |  107 +
 .../include/asio/detail/buffer_resize_guard.hpp    |   66 +
 .../asio/detail/buffer_sequence_adapter.hpp        |  650 +++
 .../asio/detail/buffered_stream_storage.hpp        |  126 +
 .../include/asio/detail/bulk_executor_op.hpp       |   88 +
 .../asio/1.18.2/include/asio/detail/call_stack.hpp |  125 +
 .../asio/1.18.2/include/asio/detail/chrono.hpp     |   66 +
 .../include/asio/detail/chrono_time_traits.hpp     |  190 +
 .../include/asio/detail/completion_handler.hpp     |   88 +
 .../include/asio/detail/concurrency_hint.hpp       |   94 +
 .../asio/detail/conditionally_enabled_event.hpp    |  120 +
 .../asio/detail/conditionally_enabled_mutex.hpp    |  149 +
 .../asio/1.18.2/include/asio/detail/config.hpp     | 1865 ++++++
 .../include/asio/detail/consuming_buffers.hpp      |  414 ++
 .../asio/1.18.2/include/asio/detail/cstddef.hpp    |   31 +
 .../asio/1.18.2/include/asio/detail/cstdint.hpp    |   60 +
 .../1.18.2/include/asio/detail/date_time_fwd.hpp   |   34 +
 .../include/asio/detail/deadline_timer_service.hpp |  295 +
 .../1.18.2/include/asio/detail/dependent_type.hpp  |   36 +
 .../1.18.2/include/asio/detail/descriptor_ops.hpp  |  139 +
 .../include/asio/detail/descriptor_read_op.hpp     |  148 +
 .../include/asio/detail/descriptor_write_op.hpp    |  148 +
 .../include/asio/detail/dev_poll_reactor.hpp       |  218 +
 .../1.18.2/include/asio/detail/epoll_reactor.hpp   |  266 +
 .../asio/1.18.2/include/asio/detail/event.hpp      |   48 +
 .../asio/detail/eventfd_select_interrupter.hpp     |   83 +
 .../include/asio/detail/executor_function.hpp      |  204 +
 .../1.18.2/include/asio/detail/executor_op.hpp     |   84 +
 .../1.18.2/include/asio/detail/fd_set_adapter.hpp  |   39 +
 .../1.18.2/include/asio/detail/fenced_block.hpp    |   80 +
 .../asio/1.18.2/include/asio/detail/functional.hpp |   38 +
 .../asio/1.18.2/include/asio/detail/future.hpp     |   33 +
 .../include/asio/detail/gcc_arm_fenced_block.hpp   |   91 +
 .../include/asio/detail/gcc_hppa_fenced_block.hpp  |   68 +
 .../include/asio/detail/gcc_sync_fenced_block.hpp  |   65 +
 .../include/asio/detail/gcc_x86_fenced_block.hpp   |   99 +
 .../asio/1.18.2/include/asio/detail/global.hpp     |   52 +
 .../include/asio/detail/handler_alloc_helpers.hpp  |  284 +
 .../include/asio/detail/handler_cont_helpers.hpp   |   45 +
 .../include/asio/detail/handler_invoke_helpers.hpp |   80 +
 .../include/asio/detail/handler_tracking.hpp       |  264 +
 .../asio/detail/handler_type_requirements.hpp      |  556 ++
 .../1.18.2/include/asio/detail/handler_work.hpp    |  514 ++
 .../asio/1.18.2/include/asio/detail/hash_map.hpp   |  331 ++
 .../asio/detail/impl/buffer_sequence_adapter.ipp   |  118 +
 .../include/asio/detail/impl/descriptor_ops.ipp    |  608 ++
 .../include/asio/detail/impl/dev_poll_reactor.hpp  |   91 +
 .../include/asio/detail/impl/dev_poll_reactor.ipp  |  446 ++
 .../include/asio/detail/impl/epoll_reactor.hpp     |   89 +
 .../include/asio/detail/impl/epoll_reactor.ipp     |  787 +++
 .../detail/impl/eventfd_select_interrupter.ipp     |  171 +
 .../include/asio/detail/impl/handler_tracking.ipp  |  396 ++
 .../include/asio/detail/impl/kqueue_reactor.hpp    |   93 +
 .../include/asio/detail/impl/kqueue_reactor.ipp    |  570 ++
 .../1.18.2/include/asio/detail/impl/null_event.ipp |   74 +
 .../asio/detail/impl/pipe_select_interrupter.ipp   |  129 +
 .../include/asio/detail/impl/posix_event.ipp       |   63 +
 .../include/asio/detail/impl/posix_mutex.ipp       |   46 +
 .../include/asio/detail/impl/posix_thread.ipp      |   84 +
 .../include/asio/detail/impl/posix_tss_ptr.ipp     |   46 +
 .../detail/impl/reactive_descriptor_service.ipp    |  223 +
 .../detail/impl/reactive_serial_port_service.ipp   |  149 +
 .../detail/impl/reactive_socket_service_base.ipp   |  300 +
 .../asio/detail/impl/resolver_service_base.ipp     |  158 +
 .../1.18.2/include/asio/detail/impl/scheduler.ipp  |  659 +++
 .../include/asio/detail/impl/select_reactor.hpp    |  100 +
 .../include/asio/detail/impl/select_reactor.ipp    |  338 ++
 .../include/asio/detail/impl/service_registry.hpp  |   94 +
 .../include/asio/detail/impl/service_registry.ipp  |  197 +
 .../asio/detail/impl/signal_set_service.ipp        |  668 +++
 .../1.18.2/include/asio/detail/impl/socket_ops.ipp | 3964 +++++++++++++
 .../asio/detail/impl/socket_select_interrupter.ipp |  185 +
 .../asio/detail/impl/strand_executor_service.hpp   |  352 ++
 .../asio/detail/impl/strand_executor_service.ipp   |  158 +
 .../include/asio/detail/impl/strand_service.hpp    |   87 +
 .../include/asio/detail/impl/strand_service.ipp    |  202 +
 .../include/asio/detail/impl/thread_context.ipp    |   35 +
 .../include/asio/detail/impl/throw_error.ipp       |   60 +
 .../include/asio/detail/impl/timer_queue_ptime.ipp |   91 +
 .../include/asio/detail/impl/timer_queue_set.ipp   |  101 +
 .../1.18.2/include/asio/detail/impl/win_event.ipp  |   76 +
 .../asio/detail/impl/win_iocp_handle_service.ipp   |  525 ++
 .../asio/detail/impl/win_iocp_io_context.hpp       |  104 +
 .../asio/detail/impl/win_iocp_io_context.ipp       |  608 ++
 .../detail/impl/win_iocp_serial_port_service.ipp   |  192 +
 .../detail/impl/win_iocp_socket_service_base.ipp   |  801 +++
 .../1.18.2/include/asio/detail/impl/win_mutex.ipp  |   84 +
 .../asio/detail/impl/win_object_handle_service.ipp |  448 ++
 .../include/asio/detail/impl/win_static_mutex.ipp  |  136 +
 .../1.18.2/include/asio/detail/impl/win_thread.ipp |  150 +
 .../include/asio/detail/impl/win_tss_ptr.ipp       |   57 +
 .../detail/impl/winrt_ssocket_service_base.ipp     |  626 ++
 .../asio/detail/impl/winrt_timer_scheduler.hpp     |   92 +
 .../asio/detail/impl/winrt_timer_scheduler.ipp     |  121 +
 .../include/asio/detail/impl/winsock_init.ipp      |   82 +
 .../asio/1.18.2/include/asio/detail/io_control.hpp |   84 +
 .../1.18.2/include/asio/detail/io_object_impl.hpp  |  172 +
 .../include/asio/detail/is_buffer_sequence.hpp     |  312 +
 .../1.18.2/include/asio/detail/is_executor.hpp     |  126 +
 .../1.18.2/include/asio/detail/keyword_tss_ptr.hpp |   70 +
 .../1.18.2/include/asio/detail/kqueue_reactor.hpp  |  242 +
 .../asio/1.18.2/include/asio/detail/limits.hpp     |   26 +
 .../asio/detail/local_free_on_block_exit.hpp       |   59 +
 .../include/asio/detail/macos_fenced_block.hpp     |   62 +
 .../asio/1.18.2/include/asio/detail/memory.hpp     |   73 +
 .../asio/1.18.2/include/asio/detail/mutex.hpp      |   48 +
 .../include/asio/detail/non_const_lvalue.hpp       |   54 +
 .../1.18.2/include/asio/detail/noncopyable.hpp     |   43 +
 .../asio/1.18.2/include/asio/detail/null_event.hpp |  106 +
 .../include/asio/detail/null_fenced_block.hpp      |   47 +
 .../1.18.2/include/asio/detail/null_global.hpp     |   59 +
 .../asio/1.18.2/include/asio/detail/null_mutex.hpp |   64 +
 .../1.18.2/include/asio/detail/null_reactor.hpp    |   68 +
 .../include/asio/detail/null_signal_blocker.hpp    |   69 +
 .../include/asio/detail/null_socket_service.hpp    |  519 ++
 .../include/asio/detail/null_static_mutex.hpp      |   60 +
 .../1.18.2/include/asio/detail/null_thread.hpp     |   67 +
 .../1.18.2/include/asio/detail/null_tss_ptr.hpp    |   68 +
 .../1.18.2/include/asio/detail/object_pool.hpp     |  171 +
 .../include/asio/detail/old_win_sdk_compat.hpp     |  214 +
 .../asio/1.18.2/include/asio/detail/op_queue.hpp   |  162 +
 .../asio/1.18.2/include/asio/detail/operation.hpp  |   38 +
 .../asio/detail/pipe_select_interrupter.hpp        |   89 +
 .../1.18.2/include/asio/detail/pop_options.hpp     |  141 +
 .../1.18.2/include/asio/detail/posix_event.hpp     |  175 +
 .../include/asio/detail/posix_fd_set_adapter.hpp   |  118 +
 .../1.18.2/include/asio/detail/posix_global.hpp    |   80 +
 .../1.18.2/include/asio/detail/posix_mutex.hpp     |   76 +
 .../include/asio/detail/posix_signal_blocker.hpp   |   85 +
 .../include/asio/detail/posix_static_mutex.hpp     |   64 +
 .../1.18.2/include/asio/detail/posix_thread.hpp    |  109 +
 .../1.18.2/include/asio/detail/posix_tss_ptr.hpp   |   79 +
 .../1.18.2/include/asio/detail/push_options.hpp    |  191 +
 .../asio/detail/reactive_descriptor_service.hpp    |  416 ++
 .../asio/detail/reactive_null_buffers_op.hpp       |   98 +
 .../asio/detail/reactive_serial_port_service.hpp   |  237 +
 .../asio/detail/reactive_socket_accept_op.hpp      |  242 +
 .../asio/detail/reactive_socket_connect_op.hpp     |  123 +
 .../asio/detail/reactive_socket_recv_op.hpp        |  159 +
 .../asio/detail/reactive_socket_recvfrom_op.hpp    |  164 +
 .../asio/detail/reactive_socket_recvmsg_op.hpp     |  145 +
 .../asio/detail/reactive_socket_send_op.hpp        |  162 +
 .../asio/detail/reactive_socket_sendto_op.hpp      |  156 +
 .../asio/detail/reactive_socket_service.hpp        |  528 ++
 .../asio/detail/reactive_socket_service_base.hpp   |  541 ++
 .../include/asio/detail/reactive_wait_op.hpp       |   98 +
 .../asio/1.18.2/include/asio/detail/reactor.hpp    |   32 +
 .../1.18.2/include/asio/detail/reactor_fwd.hpp     |   40 +
 .../asio/1.18.2/include/asio/detail/reactor_op.hpp |   67 +
 .../include/asio/detail/reactor_op_queue.hpp       |  168 +
 .../include/asio/detail/recycling_allocator.hpp    |  104 +
 .../asio/1.18.2/include/asio/detail/regex_fwd.hpp  |   44 +
 .../include/asio/detail/resolve_endpoint_op.hpp    |  140 +
 .../asio/1.18.2/include/asio/detail/resolve_op.hpp |   45 +
 .../include/asio/detail/resolve_query_op.hpp       |  150 +
 .../include/asio/detail/resolver_service.hpp       |  145 +
 .../include/asio/detail/resolver_service_base.hpp  |  158 +
 .../asio/1.18.2/include/asio/detail/scheduler.hpp  |  229 +
 .../include/asio/detail/scheduler_operation.hpp    |   78 +
 .../include/asio/detail/scheduler_thread_info.hpp  |   40 +
 .../1.18.2/include/asio/detail/scoped_lock.hpp     |  101 +
 .../asio/1.18.2/include/asio/detail/scoped_ptr.hpp |   87 +
 .../include/asio/detail/select_interrupter.hpp     |   46 +
 .../1.18.2/include/asio/detail/select_reactor.hpp  |  238 +
 .../include/asio/detail/service_registry.hpp       |  164 +
 .../1.18.2/include/asio/detail/signal_blocker.hpp  |   44 +
 .../1.18.2/include/asio/detail/signal_handler.hpp  |   90 +
 .../1.18.2/include/asio/detail/signal_init.hpp     |   47 +
 .../asio/1.18.2/include/asio/detail/signal_op.hpp  |   49 +
 .../include/asio/detail/signal_set_service.hpp     |  229 +
 .../1.18.2/include/asio/detail/socket_holder.hpp   |   98 +
 .../asio/1.18.2/include/asio/detail/socket_ops.hpp |  383 ++
 .../1.18.2/include/asio/detail/socket_option.hpp   |  316 +
 .../asio/detail/socket_select_interrupter.hpp      |   91 +
 .../1.18.2/include/asio/detail/socket_types.hpp    |  417 ++
 .../include/asio/detail/solaris_fenced_block.hpp   |   62 +
 .../1.18.2/include/asio/detail/source_location.hpp |   45 +
 .../1.18.2/include/asio/detail/static_mutex.hpp    |   52 +
 .../asio/1.18.2/include/asio/detail/std_event.hpp  |  188 +
 .../include/asio/detail/std_fenced_block.hpp       |   62 +
 .../asio/1.18.2/include/asio/detail/std_global.hpp |   70 +
 .../asio/1.18.2/include/asio/detail/std_mutex.hpp  |   73 +
 .../include/asio/detail/std_static_mutex.hpp       |   81 +
 .../asio/1.18.2/include/asio/detail/std_thread.hpp |   71 +
 .../asio/detail/strand_executor_service.hpp        |  173 +
 .../1.18.2/include/asio/detail/strand_service.hpp  |  144 +
 .../1.18.2/include/asio/detail/string_view.hpp     |   47 +
 .../asio/1.18.2/include/asio/detail/thread.hpp     |   60 +
 .../1.18.2/include/asio/detail/thread_context.hpp  |   51 +
 .../1.18.2/include/asio/detail/thread_group.hpp    |   99 +
 .../include/asio/detail/thread_info_base.hpp       |  190 +
 .../1.18.2/include/asio/detail/throw_error.hpp     |   53 +
 .../1.18.2/include/asio/detail/throw_exception.hpp |   51 +
 .../1.18.2/include/asio/detail/timer_queue.hpp     |  360 ++
 .../include/asio/detail/timer_queue_base.hpp       |   68 +
 .../include/asio/detail/timer_queue_ptime.hpp      |   99 +
 .../1.18.2/include/asio/detail/timer_queue_set.hpp |   66 +
 .../1.18.2/include/asio/detail/timer_scheduler.hpp |   35 +
 .../include/asio/detail/timer_scheduler_fwd.hpp    |   40 +
 .../asio/1.18.2/include/asio/detail/tss_ptr.hpp    |   69 +
 .../1.18.2/include/asio/detail/type_traits.hpp     |  156 +
 .../include/asio/detail/variadic_templates.hpp     |  294 +
 .../1.18.2/include/asio/detail/wait_handler.hpp    |   90 +
 .../asio/1.18.2/include/asio/detail/wait_op.hpp    |   45 +
 .../asio/1.18.2/include/asio/detail/win_event.hpp  |  164 +
 .../include/asio/detail/win_fd_set_adapter.hpp     |  149 +
 .../include/asio/detail/win_fenced_block.hpp       |   90 +
 .../asio/1.18.2/include/asio/detail/win_global.hpp |   71 +
 .../asio/detail/win_iocp_handle_read_op.hpp        |  117 +
 .../asio/detail/win_iocp_handle_service.hpp        |  335 ++
 .../asio/detail/win_iocp_handle_write_op.hpp       |  110 +
 .../include/asio/detail/win_iocp_io_context.hpp    |  339 ++
 .../asio/detail/win_iocp_null_buffers_op.hpp       |  127 +
 .../include/asio/detail/win_iocp_operation.hpp     |   96 +
 .../include/asio/detail/win_iocp_overlapped_op.hpp |   96 +
 .../asio/detail/win_iocp_overlapped_ptr.hpp        |  171 +
 .../asio/detail/win_iocp_serial_port_service.hpp   |  232 +
 .../asio/detail/win_iocp_socket_accept_op.hpp      |  312 +
 .../asio/detail/win_iocp_socket_connect_op.hpp     |  135 +
 .../asio/detail/win_iocp_socket_recv_op.hpp        |  124 +
 .../asio/detail/win_iocp_socket_recvfrom_op.hpp    |  133 +
 .../asio/detail/win_iocp_socket_recvmsg_op.hpp     |  125 +
 .../asio/detail/win_iocp_socket_send_op.hpp        |  118 +
 .../asio/detail/win_iocp_socket_service.hpp        |  581 ++
 .../asio/detail/win_iocp_socket_service_base.hpp   |  600 ++
 .../include/asio/detail/win_iocp_thread_info.hpp   |   34 +
 .../include/asio/detail/win_iocp_wait_op.hpp       |  128 +
 .../asio/1.18.2/include/asio/detail/win_mutex.hpp  |   78 +
 .../asio/detail/win_object_handle_service.hpp      |  195 +
 .../include/asio/detail/win_static_mutex.hpp       |   74 +
 .../asio/1.18.2/include/asio/detail/win_thread.hpp |  147 +
 .../1.18.2/include/asio/detail/win_tss_ptr.hpp     |   79 +
 .../1.18.2/include/asio/detail/winapp_thread.hpp   |  124 +
 .../1.18.2/include/asio/detail/wince_thread.hpp    |  124 +
 .../include/asio/detail/winrt_async_manager.hpp    |  305 +
 .../1.18.2/include/asio/detail/winrt_async_op.hpp  |   65 +
 .../include/asio/detail/winrt_resolve_op.hpp       |  125 +
 .../include/asio/detail/winrt_resolver_service.hpp |  212 +
 .../asio/detail/winrt_socket_connect_op.hpp        |   98 +
 .../include/asio/detail/winrt_socket_recv_op.hpp   |  119 +
 .../include/asio/detail/winrt_socket_send_op.hpp   |  110 +
 .../include/asio/detail/winrt_ssocket_service.hpp  |  250 +
 .../asio/detail/winrt_ssocket_service_base.hpp     |  362 ++
 .../include/asio/detail/winrt_timer_scheduler.hpp  |  147 +
 .../1.18.2/include/asio/detail/winrt_utils.hpp     |  106 +
 .../1.18.2/include/asio/detail/winsock_init.hpp    |  128 +
 .../1.18.2/include/asio/detail/work_dispatcher.hpp |  148 +
 .../1.18.2/include/asio/detail/wrapped_handler.hpp |  327 ++
 .../asio/1.18.2/include/asio/dispatch.hpp          |  121 +
 cpp/third_party/asio/1.18.2/include/asio/error.hpp |  356 ++
 .../asio/1.18.2/include/asio/error_code.hpp        |  202 +
 .../asio/1.18.2/include/asio/execution.hpp         |   48 +
 .../1.18.2/include/asio/execution/allocator.hpp    |  337 ++
 .../1.18.2/include/asio/execution/any_executor.hpp | 2346 ++++++++
 .../1.18.2/include/asio/execution/bad_executor.hpp |   47 +
 .../1.18.2/include/asio/execution/blocking.hpp     | 1551 +++++
 .../include/asio/execution/blocking_adaptation.hpp | 1212 ++++
 .../1.18.2/include/asio/execution/bulk_execute.hpp |  395 ++
 .../include/asio/execution/bulk_guarantee.hpp      | 1215 ++++
 .../asio/1.18.2/include/asio/execution/connect.hpp |  489 ++
 .../asio/1.18.2/include/asio/execution/context.hpp |  233 +
 .../1.18.2/include/asio/execution/context_as.hpp   |  221 +
 .../include/asio/execution/detail/as_invocable.hpp |  152 +
 .../include/asio/execution/detail/as_operation.hpp |  105 +
 .../include/asio/execution/detail/as_receiver.hpp  |  128 +
 .../include/asio/execution/detail/bulk_sender.hpp  |  261 +
 .../asio/execution/detail/submit_receiver.hpp      |  233 +
 .../asio/execution/detail/void_receiver.hpp        |   90 +
 .../asio/1.18.2/include/asio/execution/execute.hpp |  283 +
 .../1.18.2/include/asio/execution/executor.hpp     |  252 +
 .../include/asio/execution/impl/bad_executor.ipp   |   40 +
 .../execution/impl/receiver_invocation_error.ipp   |   36 +
 .../include/asio/execution/invocable_archetype.hpp |   71 +
 .../asio/1.18.2/include/asio/execution/mapping.hpp | 1116 ++++
 .../1.18.2/include/asio/execution/occupancy.hpp    |  226 +
 .../include/asio/execution/operation_state.hpp     |   94 +
 .../include/asio/execution/outstanding_work.hpp    |  867 +++
 .../1.18.2/include/asio/execution/prefer_only.hpp  |  331 ++
 .../1.18.2/include/asio/execution/receiver.hpp     |  280 +
 .../asio/execution/receiver_invocation_error.hpp   |   48 +
 .../1.18.2/include/asio/execution/relationship.hpp |  865 +++
 .../1.18.2/include/asio/execution/schedule.hpp     |  287 +
 .../1.18.2/include/asio/execution/scheduler.hpp    |   86 +
 .../asio/1.18.2/include/asio/execution/sender.hpp  |  311 +
 .../1.18.2/include/asio/execution/set_done.hpp     |  250 +
 .../1.18.2/include/asio/execution/set_error.hpp    |  250 +
 .../1.18.2/include/asio/execution/set_value.hpp    |  483 ++
 .../asio/1.18.2/include/asio/execution/start.hpp   |  247 +
 .../asio/1.18.2/include/asio/execution/submit.hpp  |  450 ++
 .../asio/1.18.2/include/asio/execution_context.hpp |  412 ++
 .../asio/1.18.2/include/asio/executor.hpp          |  347 ++
 .../1.18.2/include/asio/executor_work_guard.hpp    |  302 +
 .../1.18.2/include/asio/experimental/as_single.hpp |  135 +
 .../include/asio/experimental/impl/as_single.hpp   |  243 +
 .../1.18.2/include/asio/generic/basic_endpoint.hpp |  193 +
 .../include/asio/generic/datagram_protocol.hpp     |  123 +
 .../include/asio/generic/detail/endpoint.hpp       |  133 +
 .../include/asio/generic/detail/impl/endpoint.ipp  |  110 +
 .../1.18.2/include/asio/generic/raw_protocol.hpp   |  121 +
 .../include/asio/generic/seq_packet_protocol.hpp   |  122 +
 .../include/asio/generic/stream_protocol.hpp       |  127 +
 .../1.18.2/include/asio/handler_alloc_hook.hpp     |  104 +
 .../include/asio/handler_continuation_hook.hpp     |   54 +
 .../1.18.2/include/asio/handler_invoke_hook.hpp    |  111 +
 .../1.18.2/include/asio/high_resolution_timer.hpp  |   44 +
 .../asio/1.18.2/include/asio/impl/awaitable.hpp    |  436 ++
 .../include/asio/impl/buffered_read_stream.hpp     |  529 ++
 .../include/asio/impl/buffered_write_stream.hpp    |  509 ++
 .../asio/1.18.2/include/asio/impl/co_spawn.hpp     |  298 +
 .../asio/1.18.2/include/asio/impl/compose.hpp      |  637 +++
 .../asio/1.18.2/include/asio/impl/connect.hpp      |  916 +++
 .../asio/1.18.2/include/asio/impl/defer.hpp        |  252 +
 .../asio/1.18.2/include/asio/impl/detached.hpp     |  130 +
 .../asio/1.18.2/include/asio/impl/dispatch.hpp     |  247 +
 .../asio/1.18.2/include/asio/impl/error.ipp        |  128 +
 .../asio/1.18.2/include/asio/impl/error_code.ipp   |  206 +
 .../1.18.2/include/asio/impl/execution_context.hpp |  109 +
 .../1.18.2/include/asio/impl/execution_context.ipp |   82 +
 .../asio/1.18.2/include/asio/impl/executor.hpp     |  300 +
 .../asio/1.18.2/include/asio/impl/executor.ipp     |   43 +
 .../include/asio/impl/handler_alloc_hook.ipp       |   61 +
 .../asio/1.18.2/include/asio/impl/io_context.hpp   |  444 ++
 .../asio/1.18.2/include/asio/impl/io_context.ipp   |  175 +
 .../include/asio/impl/multiple_exceptions.ipp      |   49 +
 .../asio/1.18.2/include/asio/impl/post.hpp         |  252 +
 .../asio/1.18.2/include/asio/impl/read.hpp         | 1214 ++++
 .../asio/1.18.2/include/asio/impl/read_at.hpp      |  744 +++
 .../asio/1.18.2/include/asio/impl/read_until.hpp   | 3371 +++++++++++
 .../1.18.2/include/asio/impl/redirect_error.hpp    |  391 ++
 .../1.18.2/include/asio/impl/serial_port_base.hpp  |   59 +
 .../1.18.2/include/asio/impl/serial_port_base.ipp  |  554 ++
 .../asio/1.18.2/include/asio/impl/spawn.hpp        |  527 ++
 .../asio/1.18.2/include/asio/impl/src.hpp          |   86 +
 .../1.18.2/include/asio/impl/system_context.hpp    |   34 +
 .../1.18.2/include/asio/impl/system_context.ipp    |   92 +
 .../1.18.2/include/asio/impl/system_executor.hpp   |  185 +
 .../asio/1.18.2/include/asio/impl/thread_pool.hpp  |  354 ++
 .../asio/1.18.2/include/asio/impl/thread_pool.ipp  |  141 +
 .../1.18.2/include/asio/impl/use_awaitable.hpp     |  279 +
 .../asio/1.18.2/include/asio/impl/use_future.hpp   | 1028 ++++
 .../asio/1.18.2/include/asio/impl/write.hpp        | 1116 ++++
 .../asio/1.18.2/include/asio/impl/write_at.hpp     |  666 +++
 .../asio/1.18.2/include/asio/io_context.hpp        | 1550 +++++
 .../asio/1.18.2/include/asio/io_context_strand.hpp |  376 ++
 .../asio/1.18.2/include/asio/io_service.hpp        |   33 +
 .../asio/1.18.2/include/asio/io_service_strand.hpp |   20 +
 .../asio/1.18.2/include/asio/ip/address.hpp        |  290 +
 .../asio/1.18.2/include/asio/ip/address_v4.hpp     |  355 ++
 .../1.18.2/include/asio/ip/address_v4_iterator.hpp |  162 +
 .../1.18.2/include/asio/ip/address_v4_range.hpp    |  134 +
 .../asio/1.18.2/include/asio/ip/address_v6.hpp     |  382 ++
 .../1.18.2/include/asio/ip/address_v6_iterator.hpp |  183 +
 .../1.18.2/include/asio/ip/address_v6_range.hpp    |  129 +
 .../1.18.2/include/asio/ip/bad_address_cast.hpp    |   53 +
 .../asio/1.18.2/include/asio/ip/basic_endpoint.hpp |  291 +
 .../asio/1.18.2/include/asio/ip/basic_resolver.hpp | 1076 ++++
 .../include/asio/ip/basic_resolver_entry.hpp       |  113 +
 .../include/asio/ip/basic_resolver_iterator.hpp    |  192 +
 .../include/asio/ip/basic_resolver_query.hpp       |  244 +
 .../include/asio/ip/basic_resolver_results.hpp     |  311 +
 .../1.18.2/include/asio/ip/detail/endpoint.hpp     |  141 +
 .../include/asio/ip/detail/impl/endpoint.ipp       |  199 +
 .../include/asio/ip/detail/socket_option.hpp       |  566 ++
 .../asio/1.18.2/include/asio/ip/host_name.hpp      |   42 +
 .../asio/1.18.2/include/asio/ip/icmp.hpp           |  115 +
 .../asio/1.18.2/include/asio/ip/impl/address.hpp   |   67 +
 .../asio/1.18.2/include/asio/ip/impl/address.ipp   |  239 +
 .../1.18.2/include/asio/ip/impl/address_v4.hpp     |   67 +
 .../1.18.2/include/asio/ip/impl/address_v4.ipp     |  210 +
 .../1.18.2/include/asio/ip/impl/address_v6.hpp     |   67 +
 .../1.18.2/include/asio/ip/impl/address_v6.ipp     |  350 ++
 .../1.18.2/include/asio/ip/impl/basic_endpoint.hpp |   43 +
 .../asio/1.18.2/include/asio/ip/impl/host_name.ipp |   54 +
 .../1.18.2/include/asio/ip/impl/network_v4.hpp     |   54 +
 .../1.18.2/include/asio/ip/impl/network_v4.ipp     |  216 +
 .../1.18.2/include/asio/ip/impl/network_v6.hpp     |   53 +
 .../1.18.2/include/asio/ip/impl/network_v6.ipp     |  185 +
 .../asio/1.18.2/include/asio/ip/multicast.hpp      |  191 +
 .../asio/1.18.2/include/asio/ip/network_v4.hpp     |  261 +
 .../asio/1.18.2/include/asio/ip/network_v6.hpp     |  235 +
 .../asio/1.18.2/include/asio/ip/resolver_base.hpp  |  129 +
 .../1.18.2/include/asio/ip/resolver_query_base.hpp |   43 +
 .../asio/1.18.2/include/asio/ip/tcp.hpp            |  155 +
 .../asio/1.18.2/include/asio/ip/udp.hpp            |  111 +
 .../asio/1.18.2/include/asio/ip/unicast.hpp        |   70 +
 .../asio/1.18.2/include/asio/ip/v6_only.hpp        |   69 +
 .../1.18.2/include/asio/is_applicable_property.hpp |   61 +
 .../asio/1.18.2/include/asio/is_executor.hpp       |   46 +
 .../asio/1.18.2/include/asio/is_read_buffered.hpp  |   59 +
 .../asio/1.18.2/include/asio/is_write_buffered.hpp |   59 +
 .../1.18.2/include/asio/local/basic_endpoint.hpp   |  247 +
 .../1.18.2/include/asio/local/connect_pair.hpp     |  101 +
 .../include/asio/local/datagram_protocol.hpp       |   80 +
 .../1.18.2/include/asio/local/detail/endpoint.hpp  |  139 +
 .../include/asio/local/detail/impl/endpoint.ipp    |  136 +
 .../1.18.2/include/asio/local/stream_protocol.hpp  |   90 +
 .../1.18.2/include/asio/multiple_exceptions.hpp    |   58 +
 .../asio/1.18.2/include/asio/packaged_task.hpp     |  126 +
 .../asio/1.18.2/include/asio/placeholders.hpp      |  151 +
 .../1.18.2/include/asio/posix/basic_descriptor.hpp |  698 +++
 .../include/asio/posix/basic_stream_descriptor.hpp |  481 ++
 .../asio/1.18.2/include/asio/posix/descriptor.hpp  |   37 +
 .../1.18.2/include/asio/posix/descriptor_base.hpp  |   90 +
 .../include/asio/posix/stream_descriptor.hpp       |   37 +
 cpp/third_party/asio/1.18.2/include/asio/post.hpp  |  126 +
 .../asio/1.18.2/include/asio/prefer.hpp            |  734 +++
 cpp/third_party/asio/1.18.2/include/asio/query.hpp |  324 ++
 cpp/third_party/asio/1.18.2/include/asio/read.hpp  | 1300 +++++
 .../asio/1.18.2/include/asio/read_at.hpp           |  694 +++
 .../asio/1.18.2/include/asio/read_until.hpp        | 2899 ++++++++++
 .../asio/1.18.2/include/asio/redirect_error.hpp    |   66 +
 .../asio/1.18.2/include/asio/require.hpp           |  571 ++
 .../asio/1.18.2/include/asio/require_concept.hpp   |  352 ++
 .../asio/1.18.2/include/asio/serial_port.hpp       |   36 +
 .../asio/1.18.2/include/asio/serial_port_base.hpp  |  167 +
 .../asio/1.18.2/include/asio/signal_set.hpp        |   28 +
 .../asio/1.18.2/include/asio/socket_base.hpp       |  559 ++
 cpp/third_party/asio/1.18.2/include/asio/spawn.hpp |  344 ++
 cpp/third_party/asio/1.18.2/include/asio/ssl.hpp   |   28 +
 .../asio/1.18.2/include/asio/ssl/context.hpp       |  761 +++
 .../asio/1.18.2/include/asio/ssl/context_base.hpp  |  209 +
 .../asio/ssl/detail/buffered_handshake_op.hpp      |  119 +
 .../asio/1.18.2/include/asio/ssl/detail/engine.hpp |  165 +
 .../include/asio/ssl/detail/handshake_op.hpp       |   67 +
 .../1.18.2/include/asio/ssl/detail/impl/engine.ipp |  349 ++
 .../include/asio/ssl/detail/impl/openssl_init.ipp  |  165 +
 .../asio/1.18.2/include/asio/ssl/detail/io.hpp     |  416 ++
 .../include/asio/ssl/detail/openssl_init.hpp       |  101 +
 .../include/asio/ssl/detail/openssl_types.hpp      |   34 +
 .../include/asio/ssl/detail/password_callback.hpp  |   66 +
 .../1.18.2/include/asio/ssl/detail/read_op.hpp     |   72 +
 .../1.18.2/include/asio/ssl/detail/shutdown_op.hpp |   69 +
 .../1.18.2/include/asio/ssl/detail/stream_core.hpp |  169 +
 .../include/asio/ssl/detail/verify_callback.hpp    |   62 +
 .../1.18.2/include/asio/ssl/detail/write_op.hpp    |   76 +
 .../asio/1.18.2/include/asio/ssl/error.hpp         |  125 +
 .../include/asio/ssl/host_name_verification.hpp    |   90 +
 .../asio/1.18.2/include/asio/ssl/impl/context.hpp  |   67 +
 .../asio/1.18.2/include/asio/ssl/impl/context.ipp  | 1238 ++++
 .../asio/1.18.2/include/asio/ssl/impl/error.ipp    |  102 +
 .../asio/ssl/impl/host_name_verification.ipp       |   73 +
 .../include/asio/ssl/impl/rfc2818_verification.ipp |  164 +
 .../asio/1.18.2/include/asio/ssl/impl/src.hpp      |   29 +
 .../include/asio/ssl/rfc2818_verification.hpp      |   98 +
 .../asio/1.18.2/include/asio/ssl/stream.hpp        |  900 +++
 .../asio/1.18.2/include/asio/ssl/stream_base.hpp   |   52 +
 .../1.18.2/include/asio/ssl/verify_context.hpp     |   67 +
 .../asio/1.18.2/include/asio/ssl/verify_mode.hpp   |   63 +
 .../1.18.2/include/asio/static_thread_pool.hpp     |   31 +
 .../asio/1.18.2/include/asio/steady_timer.hpp      |   42 +
 .../asio/1.18.2/include/asio/strand.hpp            |  569 ++
 .../asio/1.18.2/include/asio/streambuf.hpp         |   33 +
 .../asio/1.18.2/include/asio/system_context.hpp    |   90 +
 .../asio/1.18.2/include/asio/system_error.hpp      |  131 +
 .../asio/1.18.2/include/asio/system_executor.hpp   |  684 +++
 .../asio/1.18.2/include/asio/system_timer.hpp      |   42 +
 .../asio/1.18.2/include/asio/this_coro.hpp         |   45 +
 .../asio/1.18.2/include/asio/thread.hpp            |   92 +
 .../asio/1.18.2/include/asio/thread_pool.hpp       | 1131 ++++
 .../asio/1.18.2/include/asio/time_traits.hpp       |   86 +
 .../include/asio/traits/bulk_execute_free.hpp      |  114 +
 .../include/asio/traits/bulk_execute_member.hpp    |  114 +
 .../1.18.2/include/asio/traits/connect_free.hpp    |  112 +
 .../1.18.2/include/asio/traits/connect_member.hpp  |  112 +
 .../include/asio/traits/equality_comparable.hpp    |  104 +
 .../1.18.2/include/asio/traits/execute_free.hpp    |  108 +
 .../1.18.2/include/asio/traits/execute_member.hpp  |  108 +
 .../1.18.2/include/asio/traits/prefer_free.hpp     |  108 +
 .../1.18.2/include/asio/traits/prefer_member.hpp   |  108 +
 .../asio/1.18.2/include/asio/traits/query_free.hpp |  108 +
 .../1.18.2/include/asio/traits/query_member.hpp    |  108 +
 .../asio/traits/query_static_constexpr_member.hpp  |  108 +
 .../include/asio/traits/require_concept_free.hpp   |  108 +
 .../include/asio/traits/require_concept_member.hpp |  108 +
 .../1.18.2/include/asio/traits/require_free.hpp    |  108 +
 .../1.18.2/include/asio/traits/require_member.hpp  |  108 +
 .../1.18.2/include/asio/traits/schedule_free.hpp   |  108 +
 .../1.18.2/include/asio/traits/schedule_member.hpp |  108 +
 .../1.18.2/include/asio/traits/set_done_free.hpp   |  108 +
 .../1.18.2/include/asio/traits/set_done_member.hpp |  108 +
 .../1.18.2/include/asio/traits/set_error_free.hpp  |  112 +
 .../include/asio/traits/set_error_member.hpp       |  112 +
 .../1.18.2/include/asio/traits/set_value_free.hpp  |  234 +
 .../include/asio/traits/set_value_member.hpp       |  234 +
 .../asio/1.18.2/include/asio/traits/start_free.hpp |  108 +
 .../1.18.2/include/asio/traits/start_member.hpp    |  108 +
 .../1.18.2/include/asio/traits/static_query.hpp    |  108 +
 .../1.18.2/include/asio/traits/static_require.hpp  |  123 +
 .../include/asio/traits/static_require_concept.hpp |  124 +
 .../1.18.2/include/asio/traits/submit_free.hpp     |  112 +
 .../1.18.2/include/asio/traits/submit_member.hpp   |  112 +
 .../asio/1.18.2/include/asio/ts/buffer.hpp         |   24 +
 .../asio/1.18.2/include/asio/ts/executor.hpp       |   35 +
 .../asio/1.18.2/include/asio/ts/internet.hpp       |   40 +
 .../asio/1.18.2/include/asio/ts/io_context.hpp     |   20 +
 .../asio/1.18.2/include/asio/ts/net.hpp            |   26 +
 .../asio/1.18.2/include/asio/ts/netfwd.hpp         |  254 +
 .../asio/1.18.2/include/asio/ts/socket.hpp         |   27 +
 .../asio/1.18.2/include/asio/ts/timer.hpp          |   26 +
 .../asio/1.18.2/include/asio/unyield.hpp           |   21 +
 .../asio/1.18.2/include/asio/use_awaitable.hpp     |  169 +
 .../asio/1.18.2/include/asio/use_future.hpp        |  160 +
 .../asio/1.18.2/include/asio/uses_executor.hpp     |   71 +
 .../asio/1.18.2/include/asio/version.hpp           |   23 +
 .../asio/1.18.2/include/asio/wait_traits.hpp       |   56 +
 .../include/asio/windows/basic_object_handle.hpp   |  435 ++
 .../asio/windows/basic_overlapped_handle.hpp       |  361 ++
 .../asio/windows/basic_random_access_handle.hpp    |  490 ++
 .../include/asio/windows/basic_stream_handle.hpp   |  474 ++
 .../1.18.2/include/asio/windows/object_handle.hpp  |   38 +
 .../include/asio/windows/overlapped_handle.hpp     |   39 +
 .../1.18.2/include/asio/windows/overlapped_ptr.hpp |  145 +
 .../include/asio/windows/random_access_handle.hpp  |   37 +
 .../1.18.2/include/asio/windows/stream_handle.hpp  |   37 +
 cpp/third_party/asio/1.18.2/include/asio/write.hpp | 1258 ++++
 .../asio/1.18.2/include/asio/write_at.hpp          |  702 +++
 cpp/third_party/asio/1.18.2/include/asio/yield.hpp |   23 +
 cpp/third_party/filesystem/1.5.12/CMakeLists.txt   |    4 +
 .../filesystem/1.5.12/include/ghc/filesystem.hpp   | 6049 ++++++++++++++++++++
 .../filesystem/1.5.12/include/ghc/fs_fwd.hpp       |   38 +
 .../filesystem/1.5.12/include/ghc/fs_impl.hpp      |   35 +
 .../filesystem/1.5.12/include/ghc/fs_std.hpp       |   60 +
 .../filesystem/1.5.12/include/ghc/fs_std_fwd.hpp   |   63 +
 .../filesystem/1.5.12/include/ghc/fs_std_impl.hpp  |   46 +
 cpp/third_party/fmt/9.0.0/CMakeLists.txt           |    5 +
 cpp/third_party/fmt/9.0.0/include/fmt/args.h       |  234 +
 cpp/third_party/fmt/9.0.0/include/fmt/chrono.h     | 2080 +++++++
 cpp/third_party/fmt/9.0.0/include/fmt/color.h      |  651 +++
 cpp/third_party/fmt/9.0.0/include/fmt/compile.h    |  603 ++
 cpp/third_party/fmt/9.0.0/include/fmt/core.h       | 3280 +++++++++++
 cpp/third_party/fmt/9.0.0/include/fmt/format-inl.h | 1733 ++++++
 cpp/third_party/fmt/9.0.0/include/fmt/format.h     | 4192 ++++++++++++++
 cpp/third_party/fmt/9.0.0/include/fmt/os.h         |  478 ++
 cpp/third_party/fmt/9.0.0/include/fmt/ostream.h    |  213 +
 cpp/third_party/fmt/9.0.0/include/fmt/printf.h     |  640 +++
 cpp/third_party/fmt/9.0.0/include/fmt/ranges.h     |  631 ++
 cpp/third_party/fmt/9.0.0/include/fmt/std.h        |  176 +
 cpp/third_party/fmt/9.0.0/include/fmt/xchar.h      |  232 +
 .../opencensus/0.5.0-alpha/CMakeLists.txt          |    4 +
 cpp/third_party/opencensus/0.5.0-alpha/README.md   |    4 +
 .../0.5.0-alpha/opencensus/CMakeLists.txt          |   20 +
 .../0.5.0-alpha/opencensus/common/CMakeLists.txt   |   15 +
 .../opencensus/common/internal/CMakeLists.txt      |   49 +
 .../opencensus/common/internal/grpc/status.cc      |   80 +
 .../opencensus/common/internal/grpc/status.h       |   31 +
 .../opencensus/common/internal/grpc/status_test.cc |   40 +
 .../common/internal/grpc/with_user_agent.cc        |   30 +
 .../common/internal/grpc/with_user_agent.h         |   30 +
 .../opencensus/common/internal/hostname.cc         |   69 +
 .../opencensus/common/internal/hostname.h          |   33 +
 .../opencensus/common/internal/hostname_test.cc    |   33 +
 .../opencensus/common/internal/random.cc           |   59 +
 .../opencensus/common/internal/random.h            |   77 +
 .../opencensus/common/internal/random_benchmark.cc |   49 +
 .../opencensus/common/internal/random_test.cc      |   37 +
 .../opencensus/common/internal/stats_object.h      |  557 ++
 .../common/internal/stats_object_test.cc           |  559 ++
 .../common/internal/string_vector_hash.h           |   36 +
 .../opencensus/common/internal/timestamp.cc        |   33 +
 .../opencensus/common/internal/timestamp.h         |   30 +
 .../common/internal/timestamp_benchmark.cc         |   34 +
 .../opencensus/common/internal/timestamp_test.cc   |   40 +
 .../opencensus/common/internal/varint.cc           |   59 +
 .../opencensus/common/internal/varint.h            |   36 +
 .../opencensus/common/internal/varint_test.cc      |   75 +
 .../0.5.0-alpha/opencensus/common/version.h        |   22 +
 .../0.5.0-alpha/opencensus/context/CMakeLists.txt  |   37 +
 .../0.5.0-alpha/opencensus/context/README.md       |    7 +
 .../0.5.0-alpha/opencensus/context/context.h       |   83 +
 .../opencensus/context/internal/context.cc         |   74 +
 .../context/internal/context_benchmark.cc          |   54 +
 .../opencensus/context/internal/context_test.cc    |  115 +
 .../opencensus/context/internal/with_context.cc    |   64 +
 .../context/internal/with_context_test.cc          |   62 +
 .../0.5.0-alpha/opencensus/context/with_context.h  |   61 +
 .../0.5.0-alpha/opencensus/doc/benchmarks.md       |   59 +
 .../0.5.0-alpha/opencensus/doc/context.md          |  133 +
 .../0.5.0-alpha/opencensus/doc/conventions.md      |   89 +
 .../0.5.0-alpha/opencensus/doc/fuzzing.md          |   20 +
 .../opencensus/exporters/CMakeLists.txt            |   16 +
 .../opencensus/exporters/stats/CMakeLists.txt      |   15 +
 .../exporters/stats/stdout/CMakeLists.txt          |   27 +
 .../stats/stdout/internal/stdout_exporter.cc       |  134 +
 .../stats/stdout/internal/stdout_exporter_test.cc  |   66 +
 .../exporters/stats/stdout/stdout_exporter.h       |   35 +
 .../opencensus/exporters/trace/CMakeLists.txt      |   19 +
 .../opencensus/exporters/trace/ocagent/README.md   |   75 +
 .../trace/ocagent/internal/ocagent_exporter.cc     |  359 ++
 .../ocagent/internal/ocagent_exporter_test.cc      |   72 +
 .../exporters/trace/ocagent/ocagent_exporter.h     |   60 +
 .../exporters/trace/stackdriver/README.md          |    3 +
 .../stackdriver/internal/stackdriver_exporter.cc   |  292 +
 .../trace/stackdriver/stackdriver_exporter.h       |   78 +
 .../exporters/trace/stdout/CMakeLists.txt          |   26 +
 .../trace/stdout/internal/stdout_exporter.cc       |   56 +
 .../trace/stdout/internal/stdout_exporter_test.cc  |   65 +
 .../exporters/trace/stdout/stdout_exporter.h       |   34 +
 .../opencensus/exporters/trace/zipkin/README.md    |   52 +
 .../trace/zipkin/internal/zipkin_exporter.cc       |  393 ++
 .../trace/zipkin/internal/zipkin_exporter_test.cc  |   69 +
 .../exporters/trace/zipkin/zipkin_exporter.h       |   76 +
 .../0.5.0-alpha/opencensus/stats/CMakeLists.txt    |  115 +
 .../0.5.0-alpha/opencensus/stats/README.md         |   19 +
 .../0.5.0-alpha/opencensus/stats/aggregation.h     |   90 +
 .../opencensus/stats/bucket_boundaries.h           |   88 +
 .../0.5.0-alpha/opencensus/stats/distribution.h    |   87 +
 .../opencensus/stats/examples/exporter_example.cc  |  132 +
 .../stats/examples/view_and_recording_example.cc   |   98 +
 .../opencensus/stats/internal/aggregation.cc       |   41 +
 .../stats/internal/aggregation_window.cc           |   39 +
 .../opencensus/stats/internal/aggregation_window.h |   78 +
 .../opencensus/stats/internal/bucket_boundaries.cc |   81 +
 .../stats/internal/bucket_boundaries_test.cc       |   83 +
 .../opencensus/stats/internal/debug_string_test.cc |   91 +
 .../opencensus/stats/internal/delta_producer.cc    |  143 +
 .../opencensus/stats/internal/delta_producer.h     |  130 +
 .../opencensus/stats/internal/distribution.cc      |   51 +
 .../opencensus/stats/internal/distribution_test.cc |  177 +
 .../opencensus/stats/internal/measure.cc           |   60 +
 .../opencensus/stats/internal/measure_data.cc      |  111 +
 .../opencensus/stats/internal/measure_data.h       |   75 +
 .../opencensus/stats/internal/measure_data_test.cc |  143 +
 .../stats/internal/measure_descriptor.cc           |   29 +
 .../opencensus/stats/internal/measure_registry.cc  |   39 +
 .../stats/internal/measure_registry_impl.cc        |  162 +
 .../stats/internal/measure_registry_impl.h         |  119 +
 .../stats/internal/measure_registry_test.cc        |  166 +
 .../opencensus/stats/internal/recording.cc         |   38 +
 .../stats/internal/set_aggregation_window.cc       |   29 +
 .../stats/internal/set_aggregation_window.h        |   34 +
 .../opencensus/stats/internal/stats_exporter.cc    |  146 +
 .../stats/internal/stats_exporter_impl.h           |   71 +
 .../stats/internal/stats_exporter_test.cc          |  185 +
 .../opencensus/stats/internal/stats_manager.cc     |  208 +
 .../opencensus/stats/internal/stats_manager.h      |  139 +
 .../stats/internal/stats_manager_benchmark.cc      |  191 +
 .../stats/internal/stats_manager_test.cc           |  462 ++
 .../0.5.0-alpha/opencensus/stats/internal/view.cc  |   51 +
 .../opencensus/stats/internal/view_data.cc         |  101 +
 .../opencensus/stats/internal/view_data_impl.cc    |  364 ++
 .../opencensus/stats/internal/view_data_impl.h     |  177 +
 .../stats/internal/view_data_impl_test.cc          |  328 ++
 .../opencensus/stats/internal/view_data_test.cc    |  124 +
 .../opencensus/stats/internal/view_descriptor.cc   |  115 +
 .../0.5.0-alpha/opencensus/stats/measure.h         |  125 +
 .../opencensus/stats/measure_descriptor.h          |   73 +
 .../opencensus/stats/measure_registry.h            |   47 +
 .../0.5.0-alpha/opencensus/stats/recording.h       |   50 +
 .../0.5.0-alpha/opencensus/stats/stats.h           |   34 +
 .../0.5.0-alpha/opencensus/stats/stats_exporter.h  |   81 +
 .../0.5.0-alpha/opencensus/stats/tag_key.h         |   35 +
 .../0.5.0-alpha/opencensus/stats/tag_set.h         |   35 +
 .../opencensus/stats/testing/test_utils.cc         |   81 +
 .../opencensus/stats/testing/test_utils.h          |   66 +
 .../opencensus/0.5.0-alpha/opencensus/stats/view.h |   66 +
 .../0.5.0-alpha/opencensus/stats/view_data.h       |   97 +
 .../0.5.0-alpha/opencensus/stats/view_descriptor.h |  127 +
 .../0.5.0-alpha/opencensus/tags/CMakeLists.txt     |   77 +
 .../0.5.0-alpha/opencensus/tags/README.md          |   13 +
 .../0.5.0-alpha/opencensus/tags/context_util.h     |   33 +
 .../opencensus/tags/internal/context_util.cc       |   41 +
 .../opencensus/tags/internal/context_util_test.cc  |   53 +
 .../opencensus/tags/internal/grpc_tags_bin.cc      |  129 +
 .../tags/internal/grpc_tags_bin_benchmark.cc       |   54 +
 .../tags/internal/grpc_tags_bin_corpus/kv          |  Bin 0 -> 9 bytes
 .../tags/internal/grpc_tags_bin_fuzzer.cc          |   23 +
 .../opencensus/tags/internal/grpc_tags_bin_test.cc |  169 +
 .../opencensus/tags/internal/tag_key.cc            |   80 +
 .../opencensus/tags/internal/tag_key_test.cc       |   58 +
 .../opencensus/tags/internal/tag_map.cc            |   84 +
 .../opencensus/tags/internal/tag_map_benchmark.cc  |   48 +
 .../opencensus/tags/internal/tag_map_test.cc       |  118 +
 .../opencensus/tags/internal/with_tag_map.cc       |   68 +
 .../tags/internal/with_tag_map_benchmark.cc        |   79 +
 .../opencensus/tags/internal/with_tag_map_test.cc  |  144 +
 .../opencensus/tags/propagation/grpc_tags_bin.h    |   42 +
 .../0.5.0-alpha/opencensus/tags/tag_key.h          |   65 +
 .../0.5.0-alpha/opencensus/tags/tag_map.h          |   72 +
 .../0.5.0-alpha/opencensus/tags/with_tag_map.h     |   62 +
 .../0.5.0-alpha/opencensus/trace/CMakeLists.txt    |  229 +
 .../0.5.0-alpha/opencensus/trace/README.md         |   59 +
 .../opencensus/trace/attribute_value_ref.h         |  105 +
 .../0.5.0-alpha/opencensus/trace/context_util.h    |   33 +
 .../opencensus/trace/examples/span_example.cc      |   87 +
 .../opencensus/trace/exporter/annotation.h         |   58 +
 .../opencensus/trace/exporter/attribute_value.h    |   79 +
 .../0.5.0-alpha/opencensus/trace/exporter/link.h   |   74 +
 .../opencensus/trace/exporter/message_event.h      |   65 +
 .../opencensus/trace/exporter/span_data.h          |  163 +
 .../opencensus/trace/exporter/span_exporter.h      |   72 +
 .../0.5.0-alpha/opencensus/trace/exporter/status.h |   68 +
 .../opencensus/trace/internal/annotation.cc        |   48 +
 .../opencensus/trace/internal/annotation_test.cc   |   56 +
 .../opencensus/trace/internal/attribute_list.cc    |   56 +
 .../opencensus/trace/internal/attribute_list.h     |   63 +
 .../opencensus/trace/internal/attribute_value.cc   |  159 +
 .../trace/internal/attribute_value_ref.cc          |   74 +
 .../internal/attribute_value_ref_benchmark.cc      |   42 +
 .../trace/internal/attribute_value_ref_test.cc     |  125 +
 .../trace/internal/attribute_value_test.cc         |  115 +
 .../0.5.0-alpha/opencensus/trace/internal/b3.cc    |  113 +
 .../opencensus/trace/internal/b3_benchmark.cc      |   51 +
 .../trace/internal/b3_corpus/trace_id_64bit        |    1 +
 .../opencensus/trace/internal/b3_fuzzer.cc         |   33 +
 .../opencensus/trace/internal/b3_test.cc           |  118 +
 .../trace/internal/cloud_trace_context.cc          |  111 +
 .../internal/cloud_trace_context_benchmark.cc      |   65 +
 .../cloud_trace_context_corpus/span_id_overflow    |    1 +
 .../internal/cloud_trace_context_corpus/valid      |    1 +
 .../trace/internal/cloud_trace_context_fuzzer.cc   |   30 +
 .../trace/internal/cloud_trace_context_test.cc     |   96 +
 .../opencensus/trace/internal/context_util.cc      |   39 +
 .../opencensus/trace/internal/context_util_test.cc |   55 +
 .../opencensus/trace/internal/event_with_time.h    |   38 +
 .../opencensus/trace/internal/grpc_trace_bin.cc    |   88 +
 .../trace/internal/grpc_trace_bin_benchmark.cc     |   77 +
 .../trace/internal/grpc_trace_bin_corpus/valid     |  Bin 0 -> 29 bytes
 .../trace/internal/grpc_trace_bin_fuzzer.cc        |   32 +
 .../trace/internal/grpc_trace_bin_test.cc          |  136 +
 .../0.5.0-alpha/opencensus/trace/internal/link.cc  |   32 +
 .../opencensus/trace/internal/link_test.cc         |   45 +
 .../opencensus/trace/internal/local_span_store.cc  |   46 +
 .../opencensus/trace/internal/local_span_store.h   |  110 +
 .../trace/internal/local_span_store_impl.cc        |  162 +
 .../trace/internal/local_span_store_impl.h         |   85 +
 .../trace/internal/local_span_store_test.cc        |   53 +
 .../opencensus/trace/internal/message_event.cc     |   36 +
 .../trace/internal/running_span_store.cc           |   36 +
 .../opencensus/trace/internal/running_span_store.h |   72 +
 .../trace/internal/running_span_store_impl.cc      |  101 +
 .../trace/internal/running_span_store_impl.h       |   74 +
 .../trace/internal/running_span_store_test.cc      |  110 +
 .../opencensus/trace/internal/sampler.cc           |   69 +
 .../opencensus/trace/internal/sampler_benchmark.cc |   53 +
 .../opencensus/trace/internal/sampler_test.cc      |   75 +
 .../0.5.0-alpha/opencensus/trace/internal/span.cc  |  236 +
 .../opencensus/trace/internal/span_benchmark.cc    |   93 +
 .../opencensus/trace/internal/span_context.cc      |   40 +
 .../opencensus/trace/internal/span_context_test.cc |   65 +
 .../opencensus/trace/internal/span_data.cc         |  129 +
 .../opencensus/trace/internal/span_exporter.cc     |   49 +
 .../trace/internal/span_exporter_impl.cc           |  130 +
 .../opencensus/trace/internal/span_exporter_impl.h |  101 +
 .../trace/internal/span_exporter_test.cc           |   97 +
 .../opencensus/trace/internal/span_id.cc           |   50 +
 .../opencensus/trace/internal/span_id_benchmark.cc |   85 +
 .../opencensus/trace/internal/span_id_test.cc      |   49 +
 .../opencensus/trace/internal/span_impl.cc         |  188 +
 .../opencensus/trace/internal/span_impl.h          |  148 +
 .../opencensus/trace/internal/span_options_test.cc |   77 +
 .../opencensus/trace/internal/span_test.cc         |  370 ++
 .../opencensus/trace/internal/status.cc            |   83 +
 .../opencensus/trace/internal/status_test.cc       |   57 +
 .../opencensus/trace/internal/trace_config.cc      |   27 +
 .../opencensus/trace/internal/trace_config_impl.cc |   46 +
 .../opencensus/trace/internal/trace_config_impl.h  |   51 +
 .../opencensus/trace/internal/trace_config_test.cc |   67 +
 .../opencensus/trace/internal/trace_context.cc     |   97 +
 .../trace/internal/trace_context_benchmark.cc      |   47 +
 .../internal/trace_context_corpus/bad_options      |    1 +
 .../internal/trace_context_corpus/bad_span_id      |    1 +
 .../internal/trace_context_corpus/bad_trace_id     |    1 +
 .../trace/internal/trace_context_corpus/valid      |    1 +
 .../trace/internal/trace_context_fuzzer.cc         |   30 +
 .../trace/internal/trace_context_test.cc           |   86 +
 .../opencensus/trace/internal/trace_events.h       |  100 +
 .../opencensus/trace/internal/trace_id.cc          |   51 +
 .../opencensus/trace/internal/trace_options.cc     |   53 +
 .../trace/internal/trace_options_test.cc           |   54 +
 .../opencensus/trace/internal/trace_params_impl.h  |   69 +
 .../opencensus/trace/internal/with_span.cc         |   61 +
 .../trace/internal/with_span_benchmark.cc          |   66 +
 .../opencensus/trace/internal/with_span_test.cc    |  138 +
 .../0.5.0-alpha/opencensus/trace/propagation/b3.h  |   68 +
 .../trace/propagation/cloud_trace_context.h        |   53 +
 .../opencensus/trace/propagation/grpc_trace_bin.h  |   67 +
 .../opencensus/trace/propagation/trace_context.h   |   51 +
 .../0.5.0-alpha/opencensus/trace/sampler.h         |   99 +
 .../opencensus/0.5.0-alpha/opencensus/trace/span.h |  207 +
 .../0.5.0-alpha/opencensus/trace/span_context.h    |   78 +
 .../0.5.0-alpha/opencensus/trace/span_id.h         |   58 +
 .../0.5.0-alpha/opencensus/trace/status_code.h     |  183 +
 .../0.5.0-alpha/opencensus/trace/trace_config.h    |   35 +
 .../0.5.0-alpha/opencensus/trace/trace_id.h        |   58 +
 .../0.5.0-alpha/opencensus/trace/trace_options.h   |   64 +
 .../0.5.0-alpha/opencensus/trace/trace_params.h    |   41 +
 .../0.5.0-alpha/opencensus/trace/with_span.h       |   67 +
 cpp/third_party/opencensus/proto/CMakeLists.txt    |   21 +
 .../proto/opencensus/proto/agent/README.md         |   13 +
 .../opencensus/proto/agent/common/v1/common.proto  |   98 +
 .../proto/agent/metrics/v1/metrics_service.proto   |   56 +
 .../proto/agent/trace/v1/trace_service.proto       |   85 +
 .../proto/agent/trace/v1/trace_service_http.yaml   |    9 +
 .../opencensus/proto/metrics/v1/metrics.proto      |  301 +
 .../opencensus/proto/resource/v1/resource.proto    |   33 +
 .../proto/opencensus/proto/stats/v1/stats.proto    |  136 +
 .../proto/opencensus/proto/trace/v1/trace.proto    |  417 ++
 .../opencensus/proto/trace/v1/trace_config.proto   |   79 +
 cpp/third_party/spdlog/1.10.0/CMakeLists.txt       |    4 +
 .../spdlog/1.10.0/include/spdlog/async.h           |   99 +
 .../1.10.0/include/spdlog/async_logger-inl.h       |   92 +
 .../spdlog/1.10.0/include/spdlog/async_logger.h    |   68 +
 .../spdlog/1.10.0/include/spdlog/cfg/argv.h        |   44 +
 .../spdlog/1.10.0/include/spdlog/cfg/env.h         |   38 +
 .../spdlog/1.10.0/include/spdlog/cfg/helpers-inl.h |  120 +
 .../spdlog/1.10.0/include/spdlog/cfg/helpers.h     |   29 +
 .../spdlog/1.10.0/include/spdlog/common-inl.h      |   82 +
 .../spdlog/1.10.0/include/spdlog/common.h          |  359 ++
 .../1.10.0/include/spdlog/details/backtracer-inl.h |   69 +
 .../1.10.0/include/spdlog/details/backtracer.h     |   45 +
 .../1.10.0/include/spdlog/details/circular_q.h     |  141 +
 .../include/spdlog/details/console_globals.h       |   32 +
 .../include/spdlog/details/file_helper-inl.h       |  172 +
 .../1.10.0/include/spdlog/details/file_helper.h    |   61 +
 .../1.10.0/include/spdlog/details/fmt_helper.h     |  169 +
 .../1.10.0/include/spdlog/details/log_msg-inl.h    |   37 +
 .../spdlog/1.10.0/include/spdlog/details/log_msg.h |   37 +
 .../include/spdlog/details/log_msg_buffer-inl.h    |   58 +
 .../1.10.0/include/spdlog/details/log_msg_buffer.h |   33 +
 .../include/spdlog/details/mpmc_blocking_q.h       |  126 +
 .../1.10.0/include/spdlog/details/null_mutex.h     |   49 +
 .../spdlog/1.10.0/include/spdlog/details/os-inl.h  |  610 ++
 .../spdlog/1.10.0/include/spdlog/details/os.h      |  118 +
 .../include/spdlog/details/periodic_worker-inl.h   |   49 +
 .../include/spdlog/details/periodic_worker.h       |   40 +
 .../1.10.0/include/spdlog/details/registry-inl.h   |  313 +
 .../1.10.0/include/spdlog/details/registry.h       |  115 +
 .../include/spdlog/details/synchronous_factory.h   |   24 +
 .../include/spdlog/details/tcp_client-windows.h    |  160 +
 .../1.10.0/include/spdlog/details/tcp_client.h     |  145 +
 .../include/spdlog/details/thread_pool-inl.h       |  136 +
 .../1.10.0/include/spdlog/details/thread_pool.h    |  121 +
 .../include/spdlog/details/udp_client-windows.h    |  111 +
 .../1.10.0/include/spdlog/details/udp_client.h     |   94 +
 .../include/spdlog/details/windows_include.h       |   11 +
 .../spdlog/1.10.0/include/spdlog/fmt/bin_to_hex.h  |  246 +
 .../1.10.0/include/spdlog/fmt/bundled/args.h       |  234 +
 .../1.10.0/include/spdlog/fmt/bundled/chrono.h     | 2067 +++++++
 .../1.10.0/include/spdlog/fmt/bundled/color.h      |  638 +++
 .../1.10.0/include/spdlog/fmt/bundled/compile.h    |  642 +++
 .../1.10.0/include/spdlog/fmt/bundled/core.h       | 3236 +++++++++++
 .../include/spdlog/fmt/bundled/fmt.license.rst     |   27 +
 .../1.10.0/include/spdlog/fmt/bundled/format-inl.h | 2643 +++++++++
 .../1.10.0/include/spdlog/fmt/bundled/format.h     | 3104 ++++++++++
 .../1.10.0/include/spdlog/fmt/bundled/locale.h     |    2 +
 .../spdlog/1.10.0/include/spdlog/fmt/bundled/os.h  |  527 ++
 .../1.10.0/include/spdlog/fmt/bundled/ostream.h    |  135 +
 .../1.10.0/include/spdlog/fmt/bundled/printf.h     |  657 +++
 .../1.10.0/include/spdlog/fmt/bundled/ranges.h     |  793 +++
 .../1.10.0/include/spdlog/fmt/bundled/xchar.h      |  236 +
 .../spdlog/1.10.0/include/spdlog/fmt/chrono.h      |   22 +
 .../spdlog/1.10.0/include/spdlog/fmt/compile.h     |   22 +
 .../spdlog/1.10.0/include/spdlog/fmt/fmt.h         |   29 +
 .../spdlog/1.10.0/include/spdlog/fmt/ostr.h        |   22 +
 .../spdlog/1.10.0/include/spdlog/fmt/ranges.h      |   22 +
 .../spdlog/1.10.0/include/spdlog/fmt/xchar.h       |   22 +
 .../spdlog/1.10.0/include/spdlog/formatter.h       |   18 +
 cpp/third_party/spdlog/1.10.0/include/spdlog/fwd.h |   18 +
 .../spdlog/1.10.0/include/spdlog/logger-inl.h      |  257 +
 .../spdlog/1.10.0/include/spdlog/logger.h          |  447 ++
 .../1.10.0/include/spdlog/pattern_formatter-inl.h  | 1425 +++++
 .../1.10.0/include/spdlog/pattern_formatter.h      |  127 +
 .../1.10.0/include/spdlog/sinks/android_sink.h     |  119 +
 .../include/spdlog/sinks/ansicolor_sink-inl.h      |  145 +
 .../1.10.0/include/spdlog/sinks/ansicolor_sink.h   |  118 +
 .../1.10.0/include/spdlog/sinks/base_sink-inl.h    |   63 +
 .../spdlog/1.10.0/include/spdlog/sinks/base_sink.h |   52 +
 .../include/spdlog/sinks/basic_file_sink-inl.h     |   44 +
 .../1.10.0/include/spdlog/sinks/basic_file_sink.h  |   60 +
 .../1.10.0/include/spdlog/sinks/daily_file_sink.h  |  294 +
 .../spdlog/1.10.0/include/spdlog/sinks/dist_sink.h |   97 +
 .../1.10.0/include/spdlog/sinks/dup_filter_sink.h  |   94 +
 .../1.10.0/include/spdlog/sinks/hourly_file_sink.h |  196 +
 .../1.10.0/include/spdlog/sinks/mongo_sink.h       |   99 +
 .../spdlog/1.10.0/include/spdlog/sinks/msvc_sink.h |   52 +
 .../spdlog/1.10.0/include/spdlog/sinks/null_sink.h |   44 +
 .../1.10.0/include/spdlog/sinks/ostream_sink.h     |   50 +
 .../spdlog/1.10.0/include/spdlog/sinks/qt_sinks.h  |  102 +
 .../1.10.0/include/spdlog/sinks/ringbuffer_sink.h  |   78 +
 .../include/spdlog/sinks/rotating_file_sink-inl.h  |  152 +
 .../include/spdlog/sinks/rotating_file_sink.h      |   81 +
 .../spdlog/1.10.0/include/spdlog/sinks/sink-inl.h  |   25 +
 .../spdlog/1.10.0/include/spdlog/sinks/sink.h      |   35 +
 .../include/spdlog/sinks/stdout_color_sinks-inl.h  |   38 +
 .../include/spdlog/sinks/stdout_color_sinks.h      |   45 +
 .../1.10.0/include/spdlog/sinks/stdout_sinks-inl.h |  139 +
 .../1.10.0/include/spdlog/sinks/stdout_sinks.h     |   87 +
 .../1.10.0/include/spdlog/sinks/syslog_sink.h      |  109 +
 .../1.10.0/include/spdlog/sinks/systemd_sink.h     |  119 +
 .../spdlog/1.10.0/include/spdlog/sinks/tcp_sink.h  |   81 +
 .../spdlog/1.10.0/include/spdlog/sinks/udp_sink.h  |   74 +
 .../include/spdlog/sinks/win_eventlog_sink.h       |  289 +
 .../include/spdlog/sinks/wincolor_sink-inl.h       |  175 +
 .../1.10.0/include/spdlog/sinks/wincolor_sink.h    |   85 +
 .../spdlog/1.10.0/include/spdlog/spdlog-inl.h      |  125 +
 .../spdlog/1.10.0/include/spdlog/spdlog.h          |  345 ++
 .../spdlog/1.10.0/include/spdlog/stopwatch.h       |   68 +
 .../spdlog/1.10.0/include/spdlog/tweakme.h         |  134 +
 .../spdlog/1.10.0/include/spdlog/version.h         |   10 +
 cpp/tools/coverage.sh                              |   16 +
 cpp/tools/fix_copyright.py                         |   16 +
 cpp/tools/format.sh                                |   16 +
 cpp/tools/trouble_shooting.sh                      |   15 +
 cpp/tools/use_clang.sh                             |   15 +
 csharp/examples/Program.cs                         |   28 +-
 csharp/rocketmq-client-csharp/MqLogManager.cs      |   16 +
 .../rocketmq-client-csharp.nlog                    |   14 +
 csharp/tests/MqLogManagerTest.cs                   |   16 +
 csharp/tests/UnitTest1.cs                          |   52 +-
 golang/client_manager.go                           |   17 +
 golang/protocol/v2/admin_grpc.pb.go                |   16 +
 golang/protocol/v2/service_grpc.pb.go              |   16 +
 golang/publishing_loadBalancer.go                  |   17 +
 golang/publishing_message.go                       |   17 +
 golang/utils/utils.go                              |   17 +
 java/client-apis/pom.xml                           |   15 +
 java/client-shade/pom.xml                          |   15 +
 .../src/main/resources/rocketmq.logback.xml        |   15 +
 java/client/pom.xml                                |   15 +
 java/client/src/main/resources/logback.xml         |   15 +
 java/pom.xml                                       |   15 +
 java/style/spotbugs-suppressions.xml               |   16 +-
 1036 files changed, 216264 insertions(+), 879 deletions(-)
 create mode 100644 cpp/CMakeLists.txt
 create mode 100644 cpp/cmake/FindProtobufWithTargets.cmake
 create mode 100644 cpp/cmake/FindgRPC.cmake
 create mode 100644 cpp/cmake/OpenCensusHelpers.cmake
 create mode 100644 cpp/examples/CMakeLists.txt
 create mode 100644 cpp/proto/CMakeLists.txt
 create mode 100644 cpp/source/CMakeLists.txt
 create mode 100644 cpp/source/admin/CMakeLists.txt
 create mode 100644 cpp/source/base/CMakeLists.txt
 create mode 100644 cpp/source/client/CMakeLists.txt
 create mode 100644 cpp/source/concurrent/CMakeLists.txt
 create mode 100644 cpp/source/log/CMakeLists.txt
 delete mode 100644 cpp/source/remoting/BUILD.bazel
 delete mode 100644 cpp/source/remoting/BrokerData.cpp
 delete mode 100644 cpp/source/remoting/QueryRouteRequestHeader.cpp
 delete mode 100644 cpp/source/remoting/QueueData.cpp
 delete mode 100644 cpp/source/remoting/RemotingCommand.cpp
 delete mode 100644 cpp/source/remoting/TopicRouteData.cpp
 delete mode 100644 cpp/source/remoting/include/BrokerData.h
 delete mode 100644 cpp/source/remoting/include/CommandCustomHeader.h
 delete mode 100644 cpp/source/remoting/include/LanguageCode.h
 delete mode 100644 cpp/source/remoting/include/QueryRouteRequestHeader.h
 delete mode 100644 cpp/source/remoting/include/QueueData.h
 delete mode 100644 cpp/source/remoting/include/RemotingCommand.h
 delete mode 100644 cpp/source/remoting/include/RemotingCommandType.h
 delete mode 100644 cpp/source/remoting/include/RequestCode.h
 delete mode 100644 cpp/source/remoting/include/ResponseCode.h
 delete mode 100644 cpp/source/remoting/include/TopicRouteData.h
 delete mode 100644 cpp/source/remoting/include/Version.h
 create mode 100644 cpp/source/rocketmq/CMakeLists.txt
 create mode 100644 cpp/source/scheduler/CMakeLists.txt
 create mode 100644 cpp/source/stats/CMakeLists.txt
 create mode 100644 cpp/source/trace/CMakeLists.txt
 create mode 100644 cpp/third_party/CMakeLists.txt
 create mode 100644 cpp/third_party/asio/1.18.2/CMakeLists.txt
 create mode 100644 cpp/third_party/asio/1.18.2/include/Makefile.am
 create mode 100644 cpp/third_party/asio/1.18.2/include/Makefile.in
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/any_io_executor.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/associated_allocator.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/associated_executor.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/async_result.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/awaitable.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/basic_datagram_socket.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/basic_deadline_timer.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/basic_io_object.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/basic_raw_socket.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/basic_seq_packet_socket.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/basic_serial_port.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/basic_signal_set.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/basic_socket.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/basic_socket_acceptor.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/basic_socket_iostream.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/basic_socket_streambuf.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/basic_stream_socket.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/basic_streambuf.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/basic_streambuf_fwd.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/basic_waitable_timer.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/bind_executor.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/buffer.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/buffered_read_stream.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/buffered_read_stream_fwd.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/buffered_stream.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/buffered_stream_fwd.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/buffered_write_stream.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/buffered_write_stream_fwd.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/buffers_iterator.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/co_spawn.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/completion_condition.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/compose.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/connect.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/coroutine.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/deadline_timer.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/defer.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detached.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/array.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/array_fwd.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/assert.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/atomic_count.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/base_from_completion_cond.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/bind_handler.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/blocking_executor_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/buffer_resize_guard.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/buffer_sequence_adapter.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/buffered_stream_storage.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/bulk_executor_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/call_stack.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/chrono.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/chrono_time_traits.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/completion_handler.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/concurrency_hint.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/conditionally_enabled_event.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/conditionally_enabled_mutex.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/config.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/consuming_buffers.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/cstddef.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/cstdint.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/date_time_fwd.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/deadline_timer_service.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/dependent_type.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/descriptor_ops.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/descriptor_read_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/descriptor_write_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/dev_poll_reactor.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/epoll_reactor.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/event.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/eventfd_select_interrupter.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/executor_function.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/executor_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/fd_set_adapter.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/fenced_block.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/functional.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/future.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/gcc_arm_fenced_block.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/gcc_hppa_fenced_block.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/gcc_sync_fenced_block.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/gcc_x86_fenced_block.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/global.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/handler_alloc_helpers.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/handler_cont_helpers.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/handler_invoke_helpers.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/handler_tracking.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/handler_type_requirements.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/handler_work.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/hash_map.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/buffer_sequence_adapter.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/descriptor_ops.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/dev_poll_reactor.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/dev_poll_reactor.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/epoll_reactor.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/epoll_reactor.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/eventfd_select_interrupter.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/handler_tracking.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/kqueue_reactor.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/kqueue_reactor.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/null_event.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/pipe_select_interrupter.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/posix_event.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/posix_mutex.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/posix_thread.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/posix_tss_ptr.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/reactive_descriptor_service.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/reactive_serial_port_service.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/reactive_socket_service_base.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/resolver_service_base.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/scheduler.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/select_reactor.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/select_reactor.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/service_registry.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/service_registry.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/signal_set_service.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/socket_ops.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/socket_select_interrupter.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/strand_executor_service.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/strand_executor_service.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/strand_service.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/strand_service.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/thread_context.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/throw_error.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/timer_queue_ptime.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/timer_queue_set.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/win_event.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/win_iocp_handle_service.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/win_iocp_io_context.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/win_iocp_io_context.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/win_iocp_serial_port_service.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/win_iocp_socket_service_base.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/win_mutex.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/win_object_handle_service.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/win_static_mutex.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/win_thread.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/win_tss_ptr.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/winrt_ssocket_service_base.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/winrt_timer_scheduler.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/winrt_timer_scheduler.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/impl/winsock_init.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/io_control.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/io_object_impl.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/is_buffer_sequence.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/is_executor.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/keyword_tss_ptr.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/kqueue_reactor.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/limits.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/local_free_on_block_exit.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/macos_fenced_block.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/memory.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/mutex.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/non_const_lvalue.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/noncopyable.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/null_event.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/null_fenced_block.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/null_global.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/null_mutex.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/null_reactor.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/null_signal_blocker.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/null_socket_service.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/null_static_mutex.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/null_thread.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/null_tss_ptr.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/object_pool.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/old_win_sdk_compat.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/op_queue.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/operation.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/pipe_select_interrupter.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/pop_options.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/posix_event.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/posix_fd_set_adapter.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/posix_global.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/posix_mutex.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/posix_signal_blocker.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/posix_static_mutex.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/posix_thread.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/posix_tss_ptr.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/push_options.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/reactive_descriptor_service.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/reactive_null_buffers_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/reactive_serial_port_service.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/reactive_socket_accept_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/reactive_socket_connect_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/reactive_socket_recv_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/reactive_socket_recvfrom_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/reactive_socket_recvmsg_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/reactive_socket_send_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/reactive_socket_sendto_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/reactive_socket_service.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/reactive_socket_service_base.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/reactive_wait_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/reactor.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/reactor_fwd.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/reactor_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/reactor_op_queue.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/recycling_allocator.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/regex_fwd.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/resolve_endpoint_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/resolve_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/resolve_query_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/resolver_service.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/resolver_service_base.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/scheduler.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/scheduler_operation.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/scheduler_thread_info.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/scoped_lock.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/scoped_ptr.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/select_interrupter.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/select_reactor.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/service_registry.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/signal_blocker.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/signal_handler.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/signal_init.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/signal_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/signal_set_service.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/socket_holder.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/socket_ops.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/socket_option.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/socket_select_interrupter.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/socket_types.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/solaris_fenced_block.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/source_location.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/static_mutex.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/std_event.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/std_fenced_block.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/std_global.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/std_mutex.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/std_static_mutex.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/std_thread.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/strand_executor_service.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/strand_service.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/string_view.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/thread.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/thread_context.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/thread_group.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/thread_info_base.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/throw_error.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/throw_exception.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/timer_queue.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/timer_queue_base.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/timer_queue_ptime.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/timer_queue_set.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/timer_scheduler.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/timer_scheduler_fwd.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/tss_ptr.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/type_traits.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/variadic_templates.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/wait_handler.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/wait_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/win_event.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/win_fd_set_adapter.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/win_fenced_block.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/win_global.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/win_iocp_handle_read_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/win_iocp_handle_service.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/win_iocp_handle_write_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/win_iocp_io_context.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/win_iocp_null_buffers_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/win_iocp_operation.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/win_iocp_overlapped_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/win_iocp_overlapped_ptr.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/win_iocp_serial_port_service.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/win_iocp_socket_accept_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/win_iocp_socket_connect_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/win_iocp_socket_recv_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/win_iocp_socket_recvfrom_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/win_iocp_socket_recvmsg_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/win_iocp_socket_send_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/win_iocp_socket_service.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/win_iocp_socket_service_base.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/win_iocp_thread_info.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/win_iocp_wait_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/win_mutex.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/win_object_handle_service.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/win_static_mutex.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/win_thread.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/win_tss_ptr.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/winapp_thread.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/wince_thread.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/winrt_async_manager.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/winrt_async_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/winrt_resolve_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/winrt_resolver_service.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/winrt_socket_connect_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/winrt_socket_recv_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/winrt_socket_send_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/winrt_ssocket_service.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/winrt_ssocket_service_base.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/winrt_timer_scheduler.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/winrt_utils.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/winsock_init.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/work_dispatcher.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/detail/wrapped_handler.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/dispatch.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/error.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/error_code.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/allocator.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/any_executor.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/bad_executor.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/blocking.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/blocking_adaptation.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/bulk_execute.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/bulk_guarantee.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/connect.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/context.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/context_as.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/detail/as_invocable.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/detail/as_operation.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/detail/as_receiver.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/detail/bulk_sender.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/detail/submit_receiver.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/detail/void_receiver.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/execute.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/executor.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/impl/bad_executor.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/impl/receiver_invocation_error.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/invocable_archetype.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/mapping.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/occupancy.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/operation_state.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/outstanding_work.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/prefer_only.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/receiver.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/receiver_invocation_error.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/relationship.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/schedule.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/scheduler.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/sender.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/set_done.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/set_error.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/set_value.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/start.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution/submit.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/execution_context.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/executor.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/executor_work_guard.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/experimental/as_single.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/experimental/impl/as_single.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/generic/basic_endpoint.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/generic/datagram_protocol.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/generic/detail/endpoint.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/generic/detail/impl/endpoint.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/generic/raw_protocol.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/generic/seq_packet_protocol.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/generic/stream_protocol.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/handler_alloc_hook.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/handler_continuation_hook.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/handler_invoke_hook.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/high_resolution_timer.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/awaitable.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/buffered_read_stream.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/buffered_write_stream.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/co_spawn.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/compose.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/connect.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/defer.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/detached.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/dispatch.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/error.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/error_code.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/execution_context.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/execution_context.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/executor.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/executor.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/handler_alloc_hook.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/io_context.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/io_context.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/multiple_exceptions.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/post.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/read.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/read_at.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/read_until.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/redirect_error.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/serial_port_base.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/serial_port_base.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/spawn.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/src.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/system_context.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/system_context.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/system_executor.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/thread_pool.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/thread_pool.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/use_awaitable.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/use_future.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/write.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/impl/write_at.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/io_context.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/io_context_strand.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/io_service.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/io_service_strand.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/address.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/address_v4.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/address_v4_iterator.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/address_v4_range.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/address_v6.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/address_v6_iterator.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/address_v6_range.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/bad_address_cast.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/basic_endpoint.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/basic_resolver.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/basic_resolver_entry.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/basic_resolver_iterator.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/basic_resolver_query.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/basic_resolver_results.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/detail/endpoint.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/detail/impl/endpoint.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/detail/socket_option.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/host_name.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/icmp.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/impl/address.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/impl/address.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/impl/address_v4.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/impl/address_v4.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/impl/address_v6.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/impl/address_v6.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/impl/basic_endpoint.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/impl/host_name.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/impl/network_v4.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/impl/network_v4.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/impl/network_v6.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/impl/network_v6.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/multicast.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/network_v4.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/network_v6.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/resolver_base.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/resolver_query_base.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/tcp.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/udp.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/unicast.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ip/v6_only.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/is_applicable_property.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/is_executor.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/is_read_buffered.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/is_write_buffered.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/local/basic_endpoint.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/local/connect_pair.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/local/datagram_protocol.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/local/detail/endpoint.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/local/detail/impl/endpoint.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/local/stream_protocol.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/multiple_exceptions.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/packaged_task.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/placeholders.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/posix/basic_descriptor.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/posix/basic_stream_descriptor.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/posix/descriptor.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/posix/descriptor_base.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/posix/stream_descriptor.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/post.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/prefer.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/query.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/read.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/read_at.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/read_until.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/redirect_error.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/require.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/require_concept.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/serial_port.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/serial_port_base.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/signal_set.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/socket_base.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/spawn.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ssl.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ssl/context.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ssl/context_base.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ssl/detail/buffered_handshake_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ssl/detail/engine.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ssl/detail/handshake_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ssl/detail/impl/engine.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ssl/detail/impl/openssl_init.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ssl/detail/io.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ssl/detail/openssl_init.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ssl/detail/openssl_types.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ssl/detail/password_callback.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ssl/detail/read_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ssl/detail/shutdown_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ssl/detail/stream_core.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ssl/detail/verify_callback.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ssl/detail/write_op.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ssl/error.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ssl/host_name_verification.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ssl/impl/context.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ssl/impl/context.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ssl/impl/error.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ssl/impl/host_name_verification.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ssl/impl/rfc2818_verification.ipp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ssl/impl/src.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ssl/rfc2818_verification.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ssl/stream.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ssl/stream_base.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ssl/verify_context.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ssl/verify_mode.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/static_thread_pool.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/steady_timer.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/strand.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/streambuf.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/system_context.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/system_error.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/system_executor.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/system_timer.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/this_coro.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/thread.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/thread_pool.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/time_traits.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/traits/bulk_execute_free.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/traits/bulk_execute_member.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/traits/connect_free.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/traits/connect_member.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/traits/equality_comparable.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/traits/execute_free.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/traits/execute_member.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/traits/prefer_free.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/traits/prefer_member.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/traits/query_free.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/traits/query_member.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/traits/query_static_constexpr_member.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/traits/require_concept_free.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/traits/require_concept_member.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/traits/require_free.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/traits/require_member.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/traits/schedule_free.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/traits/schedule_member.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/traits/set_done_free.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/traits/set_done_member.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/traits/set_error_free.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/traits/set_error_member.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/traits/set_value_free.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/traits/set_value_member.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/traits/start_free.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/traits/start_member.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/traits/static_query.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/traits/static_require.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/traits/static_require_concept.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/traits/submit_free.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/traits/submit_member.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ts/buffer.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ts/executor.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ts/internet.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ts/io_context.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ts/net.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ts/netfwd.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ts/socket.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/ts/timer.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/unyield.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/use_awaitable.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/use_future.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/uses_executor.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/version.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/wait_traits.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/windows/basic_object_handle.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/windows/basic_overlapped_handle.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/windows/basic_random_access_handle.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/windows/basic_stream_handle.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/windows/object_handle.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/windows/overlapped_handle.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/windows/overlapped_ptr.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/windows/random_access_handle.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/windows/stream_handle.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/write.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/write_at.hpp
 create mode 100644 cpp/third_party/asio/1.18.2/include/asio/yield.hpp
 create mode 100644 cpp/third_party/filesystem/1.5.12/CMakeLists.txt
 create mode 100644 cpp/third_party/filesystem/1.5.12/include/ghc/filesystem.hpp
 create mode 100644 cpp/third_party/filesystem/1.5.12/include/ghc/fs_fwd.hpp
 create mode 100644 cpp/third_party/filesystem/1.5.12/include/ghc/fs_impl.hpp
 create mode 100644 cpp/third_party/filesystem/1.5.12/include/ghc/fs_std.hpp
 create mode 100644 cpp/third_party/filesystem/1.5.12/include/ghc/fs_std_fwd.hpp
 create mode 100644 cpp/third_party/filesystem/1.5.12/include/ghc/fs_std_impl.hpp
 create mode 100644 cpp/third_party/fmt/9.0.0/CMakeLists.txt
 create mode 100644 cpp/third_party/fmt/9.0.0/include/fmt/args.h
 create mode 100644 cpp/third_party/fmt/9.0.0/include/fmt/chrono.h
 create mode 100644 cpp/third_party/fmt/9.0.0/include/fmt/color.h
 create mode 100644 cpp/third_party/fmt/9.0.0/include/fmt/compile.h
 create mode 100644 cpp/third_party/fmt/9.0.0/include/fmt/core.h
 create mode 100644 cpp/third_party/fmt/9.0.0/include/fmt/format-inl.h
 create mode 100644 cpp/third_party/fmt/9.0.0/include/fmt/format.h
 create mode 100644 cpp/third_party/fmt/9.0.0/include/fmt/os.h
 create mode 100644 cpp/third_party/fmt/9.0.0/include/fmt/ostream.h
 create mode 100644 cpp/third_party/fmt/9.0.0/include/fmt/printf.h
 create mode 100644 cpp/third_party/fmt/9.0.0/include/fmt/ranges.h
 create mode 100644 cpp/third_party/fmt/9.0.0/include/fmt/std.h
 create mode 100644 cpp/third_party/fmt/9.0.0/include/fmt/xchar.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/CMakeLists.txt
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/README.md
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/CMakeLists.txt
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/common/CMakeLists.txt
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/common/internal/CMakeLists.txt
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/common/internal/grpc/status.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/common/internal/grpc/status.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/common/internal/grpc/status_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/common/internal/grpc/with_user_agent.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/common/internal/grpc/with_user_agent.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/common/internal/hostname.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/common/internal/hostname.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/common/internal/hostname_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/common/internal/random.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/common/internal/random.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/common/internal/random_benchmark.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/common/internal/random_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/common/internal/stats_object.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/common/internal/stats_object_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/common/internal/string_vector_hash.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/common/internal/timestamp.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/common/internal/timestamp.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/common/internal/timestamp_benchmark.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/common/internal/timestamp_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/common/internal/varint.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/common/internal/varint.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/common/internal/varint_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/common/version.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/context/CMakeLists.txt
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/context/README.md
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/context/context.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/context/internal/context.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/context/internal/context_benchmark.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/context/internal/context_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/context/internal/with_context.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/context/internal/with_context_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/context/with_context.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/doc/benchmarks.md
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/doc/context.md
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/doc/conventions.md
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/doc/fuzzing.md
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/exporters/CMakeLists.txt
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/exporters/stats/CMakeLists.txt
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/exporters/stats/stdout/CMakeLists.txt
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/exporters/stats/stdout/internal/stdout_exporter.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/exporters/stats/stdout/internal/stdout_exporter_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/exporters/stats/stdout/stdout_exporter.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/exporters/trace/CMakeLists.txt
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/exporters/trace/ocagent/README.md
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/exporters/trace/ocagent/internal/ocagent_exporter.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/exporters/trace/ocagent/internal/ocagent_exporter_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/exporters/trace/ocagent/ocagent_exporter.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/exporters/trace/stackdriver/README.md
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/exporters/trace/stackdriver/internal/stackdriver_exporter.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/exporters/trace/stackdriver/stackdriver_exporter.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/exporters/trace/stdout/CMakeLists.txt
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/exporters/trace/stdout/internal/stdout_exporter.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/exporters/trace/stdout/internal/stdout_exporter_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/exporters/trace/stdout/stdout_exporter.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/exporters/trace/zipkin/README.md
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/exporters/trace/zipkin/internal/zipkin_exporter.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/exporters/trace/zipkin/internal/zipkin_exporter_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/exporters/trace/zipkin/zipkin_exporter.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/CMakeLists.txt
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/README.md
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/aggregation.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/bucket_boundaries.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/distribution.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/examples/exporter_example.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/examples/view_and_recording_example.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/aggregation.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/aggregation_window.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/aggregation_window.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/bucket_boundaries.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/bucket_boundaries_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/debug_string_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/delta_producer.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/delta_producer.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/distribution.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/distribution_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/measure.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/measure_data.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/measure_data.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/measure_data_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/measure_descriptor.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/measure_registry.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/measure_registry_impl.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/measure_registry_impl.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/measure_registry_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/recording.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/set_aggregation_window.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/set_aggregation_window.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/stats_exporter.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/stats_exporter_impl.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/stats_exporter_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/stats_manager.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/stats_manager.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/stats_manager_benchmark.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/stats_manager_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/view.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/view_data.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/view_data_impl.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/view_data_impl.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/view_data_impl_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/view_data_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/internal/view_descriptor.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/measure.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/measure_descriptor.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/measure_registry.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/recording.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/stats.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/stats_exporter.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/tag_key.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/tag_set.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/testing/test_utils.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/testing/test_utils.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/view.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/view_data.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/stats/view_descriptor.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/tags/CMakeLists.txt
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/tags/README.md
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/tags/context_util.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/tags/internal/context_util.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/tags/internal/context_util_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/tags/internal/grpc_tags_bin.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/tags/internal/grpc_tags_bin_benchmark.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/tags/internal/grpc_tags_bin_corpus/kv
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/tags/internal/grpc_tags_bin_fuzzer.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/tags/internal/grpc_tags_bin_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/tags/internal/tag_key.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/tags/internal/tag_key_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/tags/internal/tag_map.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/tags/internal/tag_map_benchmark.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/tags/internal/tag_map_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/tags/internal/with_tag_map.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/tags/internal/with_tag_map_benchmark.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/tags/internal/with_tag_map_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/tags/propagation/grpc_tags_bin.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/tags/tag_key.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/tags/tag_map.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/tags/with_tag_map.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/CMakeLists.txt
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/README.md
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/attribute_value_ref.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/context_util.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/examples/span_example.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/exporter/annotation.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/exporter/attribute_value.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/exporter/link.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/exporter/message_event.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/exporter/span_data.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/exporter/span_exporter.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/exporter/status.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/annotation.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/annotation_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/attribute_list.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/attribute_list.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/attribute_value.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/attribute_value_ref.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/attribute_value_ref_benchmark.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/attribute_value_ref_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/attribute_value_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/b3.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/b3_benchmark.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/b3_corpus/trace_id_64bit
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/b3_fuzzer.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/b3_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/cloud_trace_context.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/cloud_trace_context_benchmark.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/cloud_trace_context_corpus/span_id_overflow
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/cloud_trace_context_corpus/valid
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/cloud_trace_context_fuzzer.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/cloud_trace_context_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/context_util.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/context_util_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/event_with_time.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/grpc_trace_bin.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/grpc_trace_bin_benchmark.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/grpc_trace_bin_corpus/valid
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/grpc_trace_bin_fuzzer.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/grpc_trace_bin_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/link.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/link_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/local_span_store.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/local_span_store.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/local_span_store_impl.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/local_span_store_impl.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/local_span_store_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/message_event.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/running_span_store.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/running_span_store.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/running_span_store_impl.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/running_span_store_impl.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/running_span_store_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/sampler.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/sampler_benchmark.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/sampler_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/span.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/span_benchmark.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/span_context.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/span_context_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/span_data.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/span_exporter.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/span_exporter_impl.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/span_exporter_impl.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/span_exporter_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/span_id.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/span_id_benchmark.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/span_id_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/span_impl.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/span_impl.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/span_options_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/span_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/status.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/status_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/trace_config.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/trace_config_impl.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/trace_config_impl.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/trace_config_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/trace_context.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/trace_context_benchmark.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/trace_context_corpus/bad_options
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/trace_context_corpus/bad_span_id
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/trace_context_corpus/bad_trace_id
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/trace_context_corpus/valid
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/trace_context_fuzzer.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/trace_context_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/trace_events.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/trace_id.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/trace_options.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/trace_options_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/trace_params_impl.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/with_span.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/with_span_benchmark.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/internal/with_span_test.cc
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/propagation/b3.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/propagation/cloud_trace_context.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/propagation/grpc_trace_bin.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/propagation/trace_context.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/sampler.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/span.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/span_context.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/span_id.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/status_code.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/trace_config.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/trace_id.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/trace_options.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/trace_params.h
 create mode 100644 cpp/third_party/opencensus/0.5.0-alpha/opencensus/trace/with_span.h
 create mode 100644 cpp/third_party/opencensus/proto/CMakeLists.txt
 create mode 100644 cpp/third_party/opencensus/proto/opencensus/proto/agent/README.md
 create mode 100644 cpp/third_party/opencensus/proto/opencensus/proto/agent/common/v1/common.proto
 create mode 100644 cpp/third_party/opencensus/proto/opencensus/proto/agent/metrics/v1/metrics_service.proto
 create mode 100644 cpp/third_party/opencensus/proto/opencensus/proto/agent/trace/v1/trace_service.proto
 create mode 100644 cpp/third_party/opencensus/proto/opencensus/proto/agent/trace/v1/trace_service_http.yaml
 create mode 100644 cpp/third_party/opencensus/proto/opencensus/proto/metrics/v1/metrics.proto
 create mode 100644 cpp/third_party/opencensus/proto/opencensus/proto/resource/v1/resource.proto
 create mode 100644 cpp/third_party/opencensus/proto/opencensus/proto/stats/v1/stats.proto
 create mode 100644 cpp/third_party/opencensus/proto/opencensus/proto/trace/v1/trace.proto
 create mode 100644 cpp/third_party/opencensus/proto/opencensus/proto/trace/v1/trace_config.proto
 create mode 100644 cpp/third_party/spdlog/1.10.0/CMakeLists.txt
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/async.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/async_logger-inl.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/async_logger.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/cfg/argv.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/cfg/env.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/cfg/helpers-inl.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/cfg/helpers.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/common-inl.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/common.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/details/backtracer-inl.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/details/backtracer.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/details/circular_q.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/details/console_globals.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/details/file_helper-inl.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/details/file_helper.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/details/fmt_helper.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/details/log_msg-inl.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/details/log_msg.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/details/log_msg_buffer-inl.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/details/log_msg_buffer.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/details/mpmc_blocking_q.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/details/null_mutex.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/details/os-inl.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/details/os.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/details/periodic_worker-inl.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/details/periodic_worker.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/details/registry-inl.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/details/registry.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/details/synchronous_factory.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/details/tcp_client-windows.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/details/tcp_client.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/details/thread_pool-inl.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/details/thread_pool.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/details/udp_client-windows.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/details/udp_client.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/details/windows_include.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/fmt/bin_to_hex.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/fmt/bundled/args.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/fmt/bundled/chrono.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/fmt/bundled/color.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/fmt/bundled/compile.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/fmt/bundled/core.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/fmt/bundled/fmt.license.rst
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/fmt/bundled/format-inl.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/fmt/bundled/format.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/fmt/bundled/locale.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/fmt/bundled/os.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/fmt/bundled/ostream.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/fmt/bundled/printf.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/fmt/bundled/ranges.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/fmt/bundled/xchar.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/fmt/chrono.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/fmt/compile.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/fmt/fmt.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/fmt/ostr.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/fmt/ranges.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/fmt/xchar.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/formatter.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/fwd.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/logger-inl.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/logger.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/pattern_formatter-inl.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/pattern_formatter.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/sinks/android_sink.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/sinks/ansicolor_sink-inl.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/sinks/ansicolor_sink.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/sinks/base_sink-inl.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/sinks/base_sink.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/sinks/basic_file_sink-inl.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/sinks/basic_file_sink.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/sinks/daily_file_sink.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/sinks/dist_sink.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/sinks/dup_filter_sink.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/sinks/hourly_file_sink.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/sinks/mongo_sink.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/sinks/msvc_sink.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/sinks/null_sink.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/sinks/ostream_sink.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/sinks/qt_sinks.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/sinks/ringbuffer_sink.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/sinks/rotating_file_sink-inl.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/sinks/rotating_file_sink.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/sinks/sink-inl.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/sinks/sink.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/sinks/stdout_color_sinks-inl.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/sinks/stdout_color_sinks.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/sinks/stdout_sinks-inl.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/sinks/stdout_sinks.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/sinks/syslog_sink.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/sinks/systemd_sink.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/sinks/tcp_sink.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/sinks/udp_sink.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/sinks/win_eventlog_sink.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/sinks/wincolor_sink-inl.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/sinks/wincolor_sink.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/spdlog-inl.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/spdlog.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/stopwatch.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/tweakme.h
 create mode 100644 cpp/third_party/spdlog/1.10.0/include/spdlog/version.h


[rocketmq-clients] 01/01: Polish code

Posted by aa...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

aaronai pushed a commit to branch java_dev
in repository https://gitbox.apache.org/repos/asf/rocketmq-clients.git

commit 0af0a27819ba3fb8ba38fb592ff773022e3caf14
Author: Aaron Ai <ya...@gmail.com>
AuthorDate: Thu Jul 28 14:01:22 2022 +0800

    Polish code
---
 .../rocketmq/client/java/impl/ClientImpl.java      | 346 ++++++++++-----------
 .../client/java/impl/ClientSessionImpl.java        | 137 ++++----
 .../java/impl/consumer/ProcessQueueImpl.java       |  12 +-
 .../java/impl/consumer/PushConsumerImpl.java       |  15 +-
 .../java/impl/consumer/SimpleConsumerImpl.java     |  13 +-
 .../impl/consumer/SubscriptionLoadBalancer.java    |  37 +--
 ...ionProcessor.java => ClientSessionHandler.java} |  14 +-
 .../client/java/impl/producer/ProducerImpl.java    |  29 +-
 .../java/impl/producer/PublishingLoadBalancer.java |  42 +--
 .../client/java/route/TopicRouteDataResult.java    | 125 --------
 10 files changed, 289 insertions(+), 481 deletions(-)

diff --git a/java/client/src/main/java/org/apache/rocketmq/client/java/impl/ClientImpl.java b/java/client/src/main/java/org/apache/rocketmq/client/java/impl/ClientImpl.java
index cc93fe9..bc2f68f 100644
--- a/java/client/src/main/java/org/apache/rocketmq/client/java/impl/ClientImpl.java
+++ b/java/client/src/main/java/org/apache/rocketmq/client/java/impl/ClientImpl.java
@@ -22,6 +22,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
 import apache.rocketmq.v2.Code;
 import apache.rocketmq.v2.HeartbeatRequest;
 import apache.rocketmq.v2.HeartbeatResponse;
+import apache.rocketmq.v2.MessageQueue;
 import apache.rocketmq.v2.NotifyClientTerminationRequest;
 import apache.rocketmq.v2.PrintThreadStackTraceCommand;
 import apache.rocketmq.v2.QueryRouteRequest;
@@ -69,12 +70,16 @@ import java.util.concurrent.locks.ReentrantReadWriteLock;
 import java.util.stream.Collectors;
 import org.apache.rocketmq.client.apis.ClientConfiguration;
 import org.apache.rocketmq.client.apis.ClientException;
+import org.apache.rocketmq.client.java.exception.BadRequestException;
 import org.apache.rocketmq.client.java.exception.InternalErrorException;
 import org.apache.rocketmq.client.java.exception.NotFoundException;
+import org.apache.rocketmq.client.java.exception.ProxyTimeoutException;
+import org.apache.rocketmq.client.java.exception.TooManyRequestsException;
+import org.apache.rocketmq.client.java.exception.UnsupportedException;
 import org.apache.rocketmq.client.java.hook.MessageHookPoints;
 import org.apache.rocketmq.client.java.hook.MessageHookPointsStatus;
 import org.apache.rocketmq.client.java.hook.MessageInterceptor;
-import org.apache.rocketmq.client.java.impl.producer.ClientSessionProcessor;
+import org.apache.rocketmq.client.java.impl.producer.ClientSessionHandler;
 import org.apache.rocketmq.client.java.message.MessageCommon;
 import org.apache.rocketmq.client.java.metrics.ClientMeterProvider;
 import org.apache.rocketmq.client.java.metrics.Metric;
@@ -82,18 +87,16 @@ import org.apache.rocketmq.client.java.misc.ExecutorServices;
 import org.apache.rocketmq.client.java.misc.ThreadFactoryImpl;
 import org.apache.rocketmq.client.java.misc.Utilities;
 import org.apache.rocketmq.client.java.route.Endpoints;
-import org.apache.rocketmq.client.java.route.TopicRouteDataResult;
+import org.apache.rocketmq.client.java.route.TopicRouteData;
 import org.apache.rocketmq.client.java.rpc.RpcInvocation;
 import org.apache.rocketmq.client.java.rpc.Signature;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"UnstableApiUsage", "NullableProblems"})
-public abstract class ClientImpl extends AbstractIdleService implements Client, ClientSessionProcessor,
+public abstract class ClientImpl extends AbstractIdleService implements Client, ClientSessionHandler,
     MessageInterceptor {
     private static final Logger LOGGER = LoggerFactory.getLogger(ClientImpl.class);
-    private static final Duration TOPIC_ROUTE_AWAIT_DURATION_DURING_STARTUP = Duration.ofSeconds(3);
-
     private static final Duration TELEMETRY_TIMEOUT = Duration.ofDays(102 * 365);
 
     protected final ClientManager clientManager;
@@ -111,15 +114,15 @@ public abstract class ClientImpl extends AbstractIdleService implements Client,
     protected final String clientId;
 
     private volatile ScheduledFuture<?> updateRouteCacheFuture;
-    private final ConcurrentMap<String, TopicRouteDataResult> topicRouteResultCache;
+    private final ConcurrentMap<String, TopicRouteData> topicRouteCache;
 
     @GuardedBy("inflightRouteFutureLock")
-    private final Map<String /* topic */, Set<SettableFuture<TopicRouteDataResult>>> inflightRouteFutureTable;
+    private final Map<String /* topic */, Set<SettableFuture<TopicRouteData>>> inflightRouteFutureTable;
     private final Lock inflightRouteFutureLock;
 
-    @GuardedBy("endpointsSessionsLock")
-    private final Map<Endpoints, ClientSessionImpl> endpointsSessionTable;
-    private final ReadWriteLock endpointsSessionsLock;
+    @GuardedBy("sessionsLock")
+    private final Map<Endpoints, ClientSessionImpl> sessionsTable;
+    private final ReadWriteLock sessionsLock;
 
     @GuardedBy("messageInterceptorsLock")
     private final List<MessageInterceptor> messageInterceptors;
@@ -132,13 +135,13 @@ public abstract class ClientImpl extends AbstractIdleService implements Client,
         // Generate client id firstly.
         this.clientId = Utilities.genClientId();
 
-        this.topicRouteResultCache = new ConcurrentHashMap<>();
+        this.topicRouteCache = new ConcurrentHashMap<>();
 
         this.inflightRouteFutureTable = new ConcurrentHashMap<>();
         this.inflightRouteFutureLock = new ReentrantLock();
 
-        this.endpointsSessionTable = new HashMap<>();
-        this.endpointsSessionsLock = new ReentrantReadWriteLock();
+        this.sessionsTable = new HashMap<>();
+        this.sessionsLock = new ReentrantReadWriteLock();
 
         this.isolated = Collections.newSetFromMap(new ConcurrentHashMap<>());
 
@@ -180,21 +183,10 @@ public abstract class ClientImpl extends AbstractIdleService implements Client,
         // Fetch topic route from remote.
         LOGGER.info("Begin to fetch topic(s) route data from remote during client startup, clientId={}, topics={}",
             clientId, topics);
-        // Aggregate all topic route data futures into a composited future.
-        final List<ListenableFuture<TopicRouteDataResult>> futures = topics.stream()
-            .map(this::getRouteDataResult)
-            .collect(Collectors.toList());
-        List<TopicRouteDataResult> results;
-        try {
-            results = Futures.allAsList(futures).get(TOPIC_ROUTE_AWAIT_DURATION_DURING_STARTUP.toNanos(),
-                TimeUnit.NANOSECONDS);
-        } catch (Throwable t) {
-            LOGGER.error("Failed to get topic route data result from remote during client startup, clientId={}, "
-                + "topics={}", clientId, topics, t);
-            throw new NotFoundException(t);
-        }
-        for (TopicRouteDataResult result : results) {
-            result.checkAndGetTopicRouteData();
+        final List<ListenableFuture<TopicRouteData>> futures =
+            topics.stream().map(this::fetchTopicRoute).collect(Collectors.toList());
+        for (ListenableFuture<TopicRouteData> future : futures) {
+            future.get();
         }
         LOGGER.info("Fetch topic route data from remote successfully during startup, clientId={}, topics={}",
             clientId, topics);
@@ -282,7 +274,7 @@ public abstract class ClientImpl extends AbstractIdleService implements Client,
     }
 
     @Override
-    public TelemetryCommand getSettingsCommand() {
+    public TelemetryCommand settingsCommand() {
         final Settings settings = this.getClientSettings().toProtobuf();
         return TelemetryCommand.newBuilder().setSettings(settings).build();
     }
@@ -301,7 +293,13 @@ public abstract class ClientImpl extends AbstractIdleService implements Client,
     }
 
     @Override
-    public ListenableFuture<Void> register() {
+    public boolean isEndpointsDeprecated(Endpoints endpoints) {
+        final Set<Endpoints> totalRouteEndpoints = getTotalRouteEndpoints();
+        return totalRouteEndpoints.contains(endpoints);
+    }
+
+    @Override
+    public ListenableFuture<Void> awaitSettingSynchronized() {
         return Futures.transformAsync(this.getClientSettings().arrivedFuture,
             (clientSettings) -> Futures.immediateVoidFuture(), clientCallbackExecutor);
     }
@@ -325,7 +323,7 @@ public abstract class ClientImpl extends AbstractIdleService implements Client,
                     .setThreadStackTrace(threadStackTrace)
                     .setStatus(status)
                     .build();
-                telemeter(endpoints, telemetryCommand);
+                telemetry(endpoints, telemetryCommand);
             } catch (Throwable t) {
                 LOGGER.error("Failed to send thread stack trace to remote, endpoints={}, nonce={}, clientId={}",
                     endpoints, nonce, clientId, t);
@@ -351,7 +349,6 @@ public abstract class ClientImpl extends AbstractIdleService implements Client,
     public final void onSettingsCommand(Endpoints endpoints, Settings settings) {
         final Metric metric = new Metric(settings.getMetric());
         clientMeterProvider.reset(metric);
-        LOGGER.info("Receive settings from remote, endpoints={}", endpoints);
         this.getClientSettings().applySettingsCommand(settings);
     }
 
@@ -365,127 +362,81 @@ public abstract class ClientImpl extends AbstractIdleService implements Client,
         final Set<Endpoints> totalRouteEndpoints = getTotalRouteEndpoints();
         for (Endpoints endpoints : totalRouteEndpoints) {
             try {
-                telemeter(endpoints, command);
+                telemetry(endpoints, command);
             } catch (Throwable t) {
                 LOGGER.error("Failed to telemeter settings, clientId={}, endpoints={}", clientId, endpoints, t);
             }
         }
     }
 
-    /**
-     * Telemeter command to remote endpoints.
-     *
-     * @param endpoints remote endpoints to telemeter.
-     * @param command   command to telemeter.
-     */
-    public void telemeter(Endpoints endpoints, TelemetryCommand command) {
-        final ListenableFuture<ClientSessionImpl> future = registerTelemetrySession(endpoints);
-        Futures.addCallback(future, new FutureCallback<ClientSessionImpl>() {
-            @Override
-            public void onSuccess(ClientSessionImpl session) {
-                try {
-                    session.publish(command);
-                } catch (Throwable t) {
-                    LOGGER.error("Failed to telemeter command, endpoints={}, command={}", endpoints, command);
-                }
-            }
-
-            @Override
-            public void onFailure(Throwable t) {
-                LOGGER.error("Failed to telemeter command to remote, endpoints={}, command={}", endpoints, command, t);
-            }
-        }, MoreExecutors.directExecutor());
+    public void telemetry(Endpoints endpoints, TelemetryCommand command) {
+        final ClientSessionImpl clientSession = getClientSession(endpoints);
+        try {
+            clientSession.fireWrite(command);
+        } catch (Throwable t) {
+            LOGGER.error("Failed to fire write telemetry command, clientId={}, endpoints={}", clientId, endpoints, t);
+        }
     }
 
     private void releaseClientSessions() {
-        endpointsSessionsLock.readLock().lock();
+        sessionsLock.readLock().lock();
         try {
-            endpointsSessionTable.values().forEach(ClientSessionImpl::release);
+            sessionsTable.values().forEach(ClientSessionImpl::release);
         } finally {
-            endpointsSessionsLock.readLock().unlock();
+            sessionsLock.readLock().unlock();
         }
     }
 
-    /**
-     * Try to register telemetry session, return it directly if session is existed already.
-     */
-    public ListenableFuture<ClientSessionImpl> registerTelemetrySession(Endpoints endpoints) {
-        final SettableFuture<ClientSessionImpl> future0 = SettableFuture.create();
-        endpointsSessionsLock.readLock().lock();
+    public ClientSessionImpl getClientSession(Endpoints endpoints) {
+        sessionsLock.readLock().lock();
         try {
-            ClientSessionImpl clientSessionImpl = endpointsSessionTable.get(endpoints);
-            // Return is directly if session is existed already.
-            if (null != clientSessionImpl) {
-                future0.set(clientSessionImpl);
-                return future0;
+            final ClientSessionImpl session = sessionsTable.get(endpoints);
+            if (null != session) {
+                return session;
             }
         } finally {
-            endpointsSessionsLock.readLock().unlock();
+            sessionsLock.readLock().unlock();
         }
-        // Future's exception has been logged during the registration.
-        final ListenableFuture<ClientSessionImpl> future = new ClientSessionImpl(this, endpoints).register();
-        return Futures.transform(future, session -> {
-            endpointsSessionsLock.writeLock().lock();
-            try {
-                ClientSessionImpl existed = endpointsSessionTable.get(endpoints);
-                if (null != existed) {
-                    session.release();
-                    return existed;
-                }
-                endpointsSessionTable.put(endpoints, session);
+        sessionsLock.writeLock().lock();
+        try {
+            ClientSessionImpl session = sessionsTable.get(endpoints);
+            if (null != session) {
                 return session;
-            } finally {
-                endpointsSessionsLock.writeLock().unlock();
             }
-        }, MoreExecutors.directExecutor());
+            session = new ClientSessionImpl(this, endpoints);
+            sessionsTable.put(endpoints, session);
+            return session;
+        } finally {
+            sessionsLock.writeLock().unlock();
+        }
+    }
+
+    public ListenableFuture<Void> syncSettingsSafely(Endpoints endpoints) {
+        final ClientSessionImpl clientSession = getClientSession(endpoints);
+        return clientSession.syncSettingsSafely();
     }
 
     /**
-     * Triggered when {@link TopicRouteDataResult} is fetched from remote.
+     * Triggered when {@link TopicRouteData} is fetched from remote.
      *
      * <p>Never thrown any exception.
      */
-    public ListenableFuture<Void> onTopicRouteDataResultFetched(String topic,
-        TopicRouteDataResult topicRouteDataResult) {
-        final ListenableFuture<List<ClientSessionImpl>> future =
-            Futures.allAsList(topicRouteDataResult.getTopicRouteData()
-                .getMessageQueues().stream()
-                .map(mq -> mq.getBroker().getEndpoints())
-                .collect(Collectors.toSet())
-                .stream().map(this::registerTelemetrySession)
-                .collect(Collectors.toList()));
-        SettableFuture<Void> future0 = SettableFuture.create();
-        Futures.addCallback(future, new FutureCallback<List<ClientSessionImpl>>() {
-            @Override
-            public void onSuccess(List<ClientSessionImpl> sessions) {
-                LOGGER.info("Register session successfully, current route will be cached, topic={}, "
-                    + "topicRouteDataResult={}", topic, topicRouteDataResult);
-                final TopicRouteDataResult old = topicRouteResultCache.put(topic, topicRouteDataResult);
-                if (topicRouteDataResult.equals(old)) {
-                    // Log if topic route result remains the same.
-                    LOGGER.info("Topic route result remains the same, topic={}, route={}, clientId={}", topic, old,
-                        clientId);
-                } else {
-                    // Log if topic route result is updated.
-                    LOGGER.info("Topic route result is updated, topic={}, clientId={}, {} => {}", topic, clientId,
-                        old, topicRouteDataResult);
-                }
-                future0.setFuture(Futures.immediateVoidFuture());
-                onTopicRouteDataResultUpdate0(topic, topicRouteDataResult);
-            }
-
-            @Override
-            public void onFailure(Throwable t) {
-                // Note: Topic route would not be updated if failed to register session.
-                LOGGER.error("Failed to register session, current route will NOT be cached, topic={}, "
-                    + "topicRouteDataResult={}", topic, topicRouteDataResult);
-                future0.setException(t);
-            }
-        }, MoreExecutors.directExecutor());
-        return future0;
+    public ListenableFuture<TopicRouteData> onTopicRouteDataFetched(String topic, TopicRouteData topicRouteData) {
+        final List<ListenableFuture<Void>> futures = topicRouteData
+            .getMessageQueues().stream()
+            .map(mq -> mq.getBroker().getEndpoints())
+            .collect(Collectors.toSet())
+            .stream().map(this::syncSettingsSafely)
+            .collect(Collectors.toList());
+        // TODO: Record exception.
+        return Futures.whenAllSucceed(futures).callAsync(() -> {
+            topicRouteCache.put(topic, topicRouteData);
+            onTopicRouteDataUpdate0(topic, topicRouteData);
+            return Futures.immediateFuture(topicRouteData);
+        }, clientCallbackExecutor);
     }
 
-    public void onTopicRouteDataResultUpdate0(String topic, TopicRouteDataResult topicRouteDataResult) {
+    public void onTopicRouteDataUpdate0(String topic, TopicRouteData topicRouteData) {
     }
 
     /**
@@ -506,7 +457,7 @@ public abstract class ClientImpl extends AbstractIdleService implements Client,
             .setStatus(status)
             .build();
         try {
-            telemeter(endpoints, telemetryCommand);
+            telemetry(endpoints, telemetryCommand);
         } catch (Throwable t) {
             LOGGER.warn("Failed to send message verification result, clientId={}", clientId, t);
         }
@@ -520,20 +471,17 @@ public abstract class ClientImpl extends AbstractIdleService implements Client,
      */
     @Override
     public void onRecoverOrphanedTransactionCommand(Endpoints endpoints, RecoverOrphanedTransactionCommand command) {
-        LOGGER.warn("Ignore orphaned transaction recovery command from remote, which is not expected, client id={}, "
+        LOGGER.warn("Ignore orphaned transaction recovery command from remote, which is not expected, clientId={}, "
             + "command={}", clientId, command);
     }
 
     private void updateRouteCache() {
         LOGGER.info("Start to update route cache for a new round, clientId={}", clientId);
-        topicRouteResultCache.keySet().forEach(topic -> {
-            // Set timeout for future on purpose.
-            final ListenableFuture<TopicRouteDataResult> future = Futures.withTimeout(fetchTopicRoute(topic),
-                TOPIC_ROUTE_AWAIT_DURATION_DURING_STARTUP, getScheduler());
-            Futures.addCallback(future, new FutureCallback<TopicRouteDataResult>() {
+        topicRouteCache.keySet().forEach(topic -> {
+            final ListenableFuture<TopicRouteData> future = fetchTopicRoute(topic);
+            Futures.addCallback(future, new FutureCallback<TopicRouteData>() {
                 @Override
-                public void onSuccess(TopicRouteDataResult topicRouteDataResult) {
-                    onTopicRouteDataResultFetched(topic, topicRouteDataResult);
+                public void onSuccess(TopicRouteData topicRouteData) {
                 }
 
                 @Override
@@ -648,7 +596,25 @@ public abstract class ClientImpl extends AbstractIdleService implements Client,
     public void doStats() {
     }
 
-    private ListenableFuture<TopicRouteDataResult> fetchTopicRoute(final String topic) {
+    private ListenableFuture<TopicRouteData> fetchTopicRoute(final String topic) {
+        final ListenableFuture<TopicRouteData> future = Futures.transformAsync(fetchTopicRoute0(topic),
+            topicRouteData -> onTopicRouteDataFetched(topic, topicRouteData), MoreExecutors.directExecutor());
+        Futures.addCallback(future, new FutureCallback<TopicRouteData>() {
+            @Override
+            public void onSuccess(TopicRouteData topicRouteData) {
+                LOGGER.info("Fetch topic route successfully, clientId={}, topic={}, topicRouteData={}", clientId,
+                    topic, topicRouteData);
+            }
+
+            @Override
+            public void onFailure(Throwable t) {
+                LOGGER.error("Failed to fetch topic route, clientId={}, topic={}", clientId, topic, t);
+            }
+        }, MoreExecutors.directExecutor());
+        return future;
+    }
+
+    private ListenableFuture<TopicRouteData> fetchTopicRoute0(final String topic) {
         try {
             Resource topicResource = Resource.newBuilder().setName(topic).build();
             final QueryRouteRequest request = QueryRouteRequest.newBuilder().setTopic(topicResource)
@@ -656,17 +622,37 @@ public abstract class ClientImpl extends AbstractIdleService implements Client,
             final Metadata metadata = sign();
             final ListenableFuture<RpcInvocation<QueryRouteResponse>> future =
                 clientManager.queryRoute(endpoints, metadata, request, clientConfiguration.getRequestTimeout());
-            return Futures.transform(future, invocation -> {
+            return Futures.transformAsync(future, invocation -> {
                 final QueryRouteResponse response = invocation.getResponse();
                 final String requestId = invocation.getContext().getRequestId();
                 final Status status = response.getStatus();
+                final String statusMessage = status.getMessage();
                 final Code code = status.getCode();
-                if (Code.OK != code) {
-                    LOGGER.error("Exception raised while fetch topic route from remote, topic={}, " +
-                            "clientId={}, requestId={}, endpoints={}, code={}, status message=[{}]", topic, clientId,
-                        requestId, endpoints, code, status.getMessage());
+                final int codeNumber = code.getNumber();
+                switch (code) {
+                    case OK:
+                        break;
+                    case BAD_REQUEST:
+                    case ILLEGAL_ACCESS_POINT:
+                    case ILLEGAL_TOPIC:
+                    case CLIENT_ID_REQUIRED:
+                        throw new BadRequestException(codeNumber, requestId, statusMessage);
+                    case NOT_FOUND:
+                    case TOPIC_NOT_FOUND:
+                        throw new NotFoundException(codeNumber, requestId, statusMessage);
+                    case TOO_MANY_REQUESTS:
+                        throw new TooManyRequestsException(codeNumber, requestId, statusMessage);
+                    case INTERNAL_ERROR:
+                    case INTERNAL_SERVER_ERROR:
+                        throw new InternalErrorException(codeNumber, requestId, statusMessage);
+                    case PROXY_TIMEOUT:
+                        throw new ProxyTimeoutException(codeNumber, requestId, statusMessage);
+                    default:
+                        throw new UnsupportedException(codeNumber, requestId, statusMessage);
                 }
-                return new TopicRouteDataResult(invocation);
+                final List<MessageQueue> messageQueuesList = response.getMessageQueuesList();
+                final TopicRouteData topicRouteData = new TopicRouteData(messageQueuesList);
+                return Futures.immediateFuture(topicRouteData);
             }, MoreExecutors.directExecutor());
         } catch (Throwable t) {
             return Futures.immediateFailedFuture(t);
@@ -675,29 +661,29 @@ public abstract class ClientImpl extends AbstractIdleService implements Client,
 
     protected Set<Endpoints> getTotalRouteEndpoints() {
         Set<Endpoints> totalRouteEndpoints = new HashSet<>();
-        for (TopicRouteDataResult result : topicRouteResultCache.values()) {
-            totalRouteEndpoints.addAll(result.getTopicRouteData().getTotalEndpoints());
+        for (TopicRouteData topicRouteData : topicRouteCache.values()) {
+            totalRouteEndpoints.addAll(topicRouteData.getTotalEndpoints());
         }
         return totalRouteEndpoints;
     }
 
-    protected ListenableFuture<TopicRouteDataResult> getRouteDataResult(final String topic) {
-        SettableFuture<TopicRouteDataResult> future0 = SettableFuture.create();
-        TopicRouteDataResult topicRouteDataResult = topicRouteResultCache.get(topic);
+    protected ListenableFuture<TopicRouteData> getRouteData(final String topic) {
+        SettableFuture<TopicRouteData> future0 = SettableFuture.create();
+        TopicRouteData topicRouteData = topicRouteCache.get(topic);
         // If route result was cached before, get it directly.
-        if (null != topicRouteDataResult) {
-            future0.set(topicRouteDataResult);
+        if (null != topicRouteData) {
+            future0.set(topicRouteData);
             return future0;
         }
         inflightRouteFutureLock.lock();
         try {
             // If route was fetched by last in-flight request, get it directly.
-            topicRouteDataResult = topicRouteResultCache.get(topic);
-            if (null != topicRouteDataResult) {
-                future0.set(topicRouteDataResult);
+            topicRouteData = topicRouteCache.get(topic);
+            if (null != topicRouteData) {
+                future0.set(topicRouteData);
                 return future0;
             }
-            Set<SettableFuture<TopicRouteDataResult>> inflightFutures = inflightRouteFutureTable.get(topic);
+            Set<SettableFuture<TopicRouteData>> inflightFutures = inflightRouteFutureTable.get(topic);
             // Request is in-flight, return future directly.
             if (null != inflightFutures) {
                 inflightFutures.add(future0);
@@ -709,52 +695,48 @@ public abstract class ClientImpl extends AbstractIdleService implements Client,
         } finally {
             inflightRouteFutureLock.unlock();
         }
-        final ListenableFuture<TopicRouteDataResult> future = fetchTopicRoute(topic);
-        Futures.addCallback(future, new FutureCallback<TopicRouteDataResult>() {
+        final ListenableFuture<TopicRouteData> future = fetchTopicRoute(topic);
+        Futures.addCallback(future, new FutureCallback<TopicRouteData>() {
             @Override
-            public void onSuccess(TopicRouteDataResult result) {
-                final ListenableFuture<Void> updateFuture = onTopicRouteDataResultFetched(topic, result);
-                // TODO: all succeed?
-                Futures.whenAllSucceed(updateFuture).run(() -> {
-                    inflightRouteFutureLock.lock();
-                    try {
-                        final Set<SettableFuture<TopicRouteDataResult>> newFutureSet =
-                            inflightRouteFutureTable.remove(topic);
-                        if (null == newFutureSet) {
-                            // Should never reach here.
-                            LOGGER.error("[Bug] in-flight route futures was empty, topic={}, clientId={}", topic,
-                                clientId);
-                            return;
-                        }
-                        LOGGER.debug("Fetch topic route successfully, topic={}, in-flight route future "
-                            + "size={}, clientId={}", topic, newFutureSet.size(), clientId);
-                        for (SettableFuture<TopicRouteDataResult> newFuture : newFutureSet) {
-                            newFuture.set(result);
-                        }
-                    } catch (Throwable t) {
+            public void onSuccess(TopicRouteData topicRouteData) {
+                inflightRouteFutureLock.lock();
+                try {
+                    final Set<SettableFuture<TopicRouteData>> newFutureSet =
+                        inflightRouteFutureTable.remove(topic);
+                    if (null == newFutureSet) {
                         // Should never reach here.
-                        LOGGER.error("[Bug] Exception raised while update route data, topic={}, clientId={}", topic,
-                            clientId, t);
-                    } finally {
-                        inflightRouteFutureLock.unlock();
+                        LOGGER.error("[Bug] in-flight route futures was empty, topic={}, clientId={}", topic,
+                            clientId);
+                        return;
                     }
-                }, MoreExecutors.directExecutor());
+                    LOGGER.debug("Fetch topic route successfully, topic={}, in-flight route future "
+                        + "size={}, clientId={}", topic, newFutureSet.size(), clientId);
+                    for (SettableFuture<TopicRouteData> newFuture : newFutureSet) {
+                        newFuture.set(topicRouteData);
+                    }
+                } catch (Throwable t) {
+                    // Should never reach here.
+                    LOGGER.error("[Bug] Exception raised while update route data, topic={}, clientId={}", topic,
+                        clientId, t);
+                } finally {
+                    inflightRouteFutureLock.unlock();
+                }
             }
 
             @Override
             public void onFailure(Throwable t) {
                 inflightRouteFutureLock.lock();
                 try {
-                    final Set<SettableFuture<TopicRouteDataResult>> newFutureSet =
+                    final Set<SettableFuture<TopicRouteData>> newFutureSet =
                         inflightRouteFutureTable.remove(topic);
                     if (null == newFutureSet) {
                         // Should never reach here.
                         LOGGER.error("[Bug] in-flight route futures was empty, topic={}, clientId={}", topic, clientId);
                         return;
                     }
-                    LOGGER.error("Failed to fetch topic route, topic={}, in-flight route future " +
+                    LOGGER.debug("Failed to fetch topic route, topic={}, in-flight route future " +
                         "size={}, clientId={}", topic, newFutureSet.size(), clientId, t);
-                    for (SettableFuture<TopicRouteDataResult> future : newFutureSet) {
+                    for (SettableFuture<TopicRouteData> future : newFutureSet) {
                         future.setException(t);
                     }
                 } finally {
diff --git a/java/client/src/main/java/org/apache/rocketmq/client/java/impl/ClientSessionImpl.java b/java/client/src/main/java/org/apache/rocketmq/client/java/impl/ClientSessionImpl.java
index d6a19c2..90402eb 100644
--- a/java/client/src/main/java/org/apache/rocketmq/client/java/impl/ClientSessionImpl.java
+++ b/java/client/src/main/java/org/apache/rocketmq/client/java/impl/ClientSessionImpl.java
@@ -22,15 +22,11 @@ import apache.rocketmq.v2.RecoverOrphanedTransactionCommand;
 import apache.rocketmq.v2.Settings;
 import apache.rocketmq.v2.TelemetryCommand;
 import apache.rocketmq.v2.VerifyMessageCommand;
-import com.google.common.util.concurrent.FutureCallback;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
-import com.google.common.util.concurrent.MoreExecutors;
 import io.grpc.stub.StreamObserver;
-import java.util.concurrent.locks.ReadWriteLock;
-import java.util.concurrent.locks.ReentrantReadWriteLock;
-import org.apache.rocketmq.client.apis.ClientException;
-import org.apache.rocketmq.client.java.impl.producer.ClientSessionProcessor;
+import java.util.concurrent.TimeUnit;
+import org.apache.rocketmq.client.java.impl.producer.ClientSessionHandler;
 import org.apache.rocketmq.client.java.route.Endpoints;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -38,144 +34,125 @@ import org.slf4j.LoggerFactory;
 /**
  * Telemetry session is constructed before first communication between client and remote route endpoints.
  */
-@SuppressWarnings({"UnstableApiUsage", "NullableProblems"})
 public class ClientSessionImpl implements StreamObserver<TelemetryCommand> {
     private static final Logger LOGGER = LoggerFactory.getLogger(ClientSessionImpl.class);
 
-    private final ClientSessionProcessor processor;
+    private final ClientSessionHandler handler;
     private final Endpoints endpoints;
-    private final ReadWriteLock observerLock;
-    private StreamObserver<TelemetryCommand> requestObserver = null;
+    private volatile StreamObserver<TelemetryCommand> requestObserver;
 
-    protected ClientSessionImpl(ClientSessionProcessor processor, Endpoints endpoints) {
-        this.processor = processor;
+    protected ClientSessionImpl(ClientSessionHandler handler, Endpoints endpoints) {
+        this.handler = handler;
         this.endpoints = endpoints;
-        this.observerLock = new ReentrantReadWriteLock();
+        renewRequestObserver();
     }
 
-    protected ListenableFuture<ClientSessionImpl> register() {
-        ListenableFuture<ClientSessionImpl> future;
+    private void renewRequestObserver() {
         try {
-            final TelemetryCommand command = processor.getSettingsCommand();
-            this.publish(command);
-            future = Futures.transform(processor.register(), input -> this, MoreExecutors.directExecutor());
+            if (handler.isEndpointsDeprecated(endpoints)) {
+                LOGGER.info("Endpoints is deprecated, no longer to renew requestObserver, endpoints={}", endpoints);
+                return;
+            }
+            this.requestObserver = handler.telemetry(endpoints, this);
         } catch (Throwable t) {
-            future = Futures.immediateFailedFuture(t);
+            handler.getScheduler().schedule(this::renewRequestObserver, 3, TimeUnit.SECONDS);
         }
-        final String clientId = processor.clientId();
-        Futures.addCallback(future, new FutureCallback<ClientSessionImpl>() {
-            @Override
-            public void onSuccess(ClientSessionImpl session) {
-                LOGGER.info("Register client session successfully, endpoints={}, clientId={}", endpoints, clientId);
-            }
+    }
 
-            @Override
-            public void onFailure(Throwable t) {
-                LOGGER.error("Failed to register client session, endpoints={}, clientId={}", endpoints, clientId, t);
-                release();
-            }
-        }, MoreExecutors.directExecutor());
-        return future;
+    protected ListenableFuture<Void> syncSettingsSafely() {
+        try {
+            final TelemetryCommand settings = handler.settingsCommand();
+            fireWrite(settings);
+            return handler.awaitSettingSynchronized();
+        } catch (Throwable t) {
+            return Futures.immediateFailedFuture(t);
+        }
     }
 
     /**
      * Release telemetry session.
      */
     public void release() {
-        this.observerLock.writeLock().lock();
+        if (null == requestObserver) {
+            return;
+        }
         try {
-            if (null != requestObserver) {
-                try {
-                    requestObserver.onCompleted();
-                } catch (Throwable ignore) {
-                    // Ignore exception on purpose.
-                }
-                requestObserver = null;
-            }
-        } finally {
-            this.observerLock.writeLock().unlock();
+            requestObserver.onCompleted();
+        } catch (Throwable ignore) {
+            // Ignore exception on purpose.
         }
     }
 
-    /**
-     * Telemeter command to remote.
-     *
-     * @param command appointed command to telemeter
-     */
-    public void publish(TelemetryCommand command) throws ClientException {
-        this.observerLock.readLock().lock();
-        try {
-            if (null != requestObserver) {
-                requestObserver.onNext(command);
-                return;
-            }
-        } finally {
-            this.observerLock.readLock().unlock();
-        }
-        this.observerLock.writeLock().lock();
-        try {
-            if (null == requestObserver) {
-                this.requestObserver = processor.telemetry(endpoints, this);
-            }
-            requestObserver.onNext(command);
-        } finally {
-            this.observerLock.writeLock().unlock();
+    public void fireWrite(TelemetryCommand command) {
+        if (null == requestObserver) {
+            LOGGER.error("Request observer does not exist, ignore current command, endpoints={}, command={}",
+                endpoints, command);
+            return;
         }
+        requestObserver.onNext(command);
     }
 
     @Override
     public void onNext(TelemetryCommand command) {
+        final String clientId = handler.clientId();
         try {
             switch (command.getCommandCase()) {
                 case SETTINGS: {
                     final Settings settings = command.getSettings();
-                    LOGGER.info("Receive settings from remote, endpoints={}, clientId={}", endpoints,
-                        processor.clientId());
-                    processor.onSettingsCommand(endpoints, settings);
+                    LOGGER.info("Receive settings from remote, endpoints={}, clientId={}", endpoints, clientId);
+                    handler.onSettingsCommand(endpoints, settings);
                     break;
                 }
                 case RECOVER_ORPHANED_TRANSACTION_COMMAND: {
                     final RecoverOrphanedTransactionCommand recoverOrphanedTransactionCommand =
                         command.getRecoverOrphanedTransactionCommand();
                     LOGGER.info("Receive orphaned transaction recovery command from remote, endpoints={}, "
-                        + "clientId={}", endpoints, processor.clientId());
-                    processor.onRecoverOrphanedTransactionCommand(endpoints, recoverOrphanedTransactionCommand);
+                        + "clientId={}", endpoints, clientId);
+                    handler.onRecoverOrphanedTransactionCommand(endpoints, recoverOrphanedTransactionCommand);
                     break;
                 }
                 case VERIFY_MESSAGE_COMMAND: {
                     final VerifyMessageCommand verifyMessageCommand = command.getVerifyMessageCommand();
                     LOGGER.info("Receive message verification command from remote, endpoints={}, clientId={}",
-                        endpoints, processor.clientId());
-                    processor.onVerifyMessageCommand(endpoints, verifyMessageCommand);
+                        endpoints, clientId);
+                    handler.onVerifyMessageCommand(endpoints, verifyMessageCommand);
                     break;
                 }
                 case PRINT_THREAD_STACK_TRACE_COMMAND: {
                     final PrintThreadStackTraceCommand printThreadStackTraceCommand =
                         command.getPrintThreadStackTraceCommand();
                     LOGGER.info("Receive thread stack print command from remote, endpoints={}, clientId={}",
-                        endpoints, processor.clientId());
-                    processor.onPrintThreadStackTraceCommand(endpoints, printThreadStackTraceCommand);
+                        endpoints, clientId);
+                    handler.onPrintThreadStackTraceCommand(endpoints, printThreadStackTraceCommand);
                     break;
                 }
                 default:
                     LOGGER.warn("Receive unrecognized command from remote, endpoints={}, command={}, clientId={}",
-                        endpoints, command, processor.clientId());
+                        endpoints, command, clientId);
             }
         } catch (Throwable t) {
             LOGGER.error("[Bug] unexpected exception raised while receiving command from remote, command={}, "
-                + "clientId={}", command, processor.clientId(), t);
+                + "clientId={}", command, clientId, t);
         }
     }
 
     @Override
     public void onError(Throwable throwable) {
         LOGGER.error("Exception raised from stream response observer, clientId={}, endpoints={}",
-            processor.clientId(), endpoints, throwable);
-        this.release();
+            handler.clientId(), endpoints, throwable);
+        release();
+        if (!handler.isRunning()) {
+            return;
+        }
+        handler.getScheduler().schedule(this::renewRequestObserver, 3, TimeUnit.SECONDS);
     }
 
     @Override
     public void onCompleted() {
-        this.release();
+        release();
+        if (!handler.isRunning()) {
+            return;
+        }
+        handler.getScheduler().schedule(this::renewRequestObserver, 3, TimeUnit.SECONDS);
     }
 }
diff --git a/java/client/src/main/java/org/apache/rocketmq/client/java/impl/consumer/ProcessQueueImpl.java b/java/client/src/main/java/org/apache/rocketmq/client/java/impl/consumer/ProcessQueueImpl.java
index d4271bf..965507c 100644
--- a/java/client/src/main/java/org/apache/rocketmq/client/java/impl/consumer/ProcessQueueImpl.java
+++ b/java/client/src/main/java/org/apache/rocketmq/client/java/impl/consumer/ProcessQueueImpl.java
@@ -497,18 +497,18 @@ class ProcessQueueImpl implements ProcessQueue {
                     forwardToDeadLetterQueue(messageView, 1 + attempt, future0);
                     return;
                 }
+                // Set result if message is forwarded successfully.
+                future0.setFuture(Futures.immediateVoidFuture());
                 // Log retries.
                 if (1 < attempt) {
                     LOGGER.info("Re-forward message to dead letter queue successfully, clientId={}, consumerGroup={}, "
                             + "attempt={}, messageId={}, mq={}, endpoints={}, requestId={}", clientId, consumerGroup,
                         attempt, messageId, mq, endpoints, requestId);
-                } else {
-                    LOGGER.debug("Forward message to dead letter queue successfully, clientId={}, consumerGroup={}, "
-                            + "messageId={}, mq={}, endpoints={}, requestId={}", clientId, consumerGroup, messageId, mq,
-                        endpoints, requestId);
+                    return;
                 }
-                // Set result if message is forwarded successfully.
-                future0.setFuture(Futures.immediateVoidFuture());
+                LOGGER.info("Forward message to dead letter queue successfully, clientId={}, consumerGroup={}, "
+                        + "messageId={}, mq={}, endpoints={}, requestId={}", clientId, consumerGroup, messageId, mq,
+                    endpoints, requestId);
             }
 
             @Override
diff --git a/java/client/src/main/java/org/apache/rocketmq/client/java/impl/consumer/PushConsumerImpl.java b/java/client/src/main/java/org/apache/rocketmq/client/java/impl/consumer/PushConsumerImpl.java
index 2c18a92..86bef80 100644
--- a/java/client/src/main/java/org/apache/rocketmq/client/java/impl/consumer/PushConsumerImpl.java
+++ b/java/client/src/main/java/org/apache/rocketmq/client/java/impl/consumer/PushConsumerImpl.java
@@ -77,7 +77,7 @@ import org.apache.rocketmq.client.java.misc.ThreadFactoryImpl;
 import org.apache.rocketmq.client.java.retry.RetryPolicy;
 import org.apache.rocketmq.client.java.route.Endpoints;
 import org.apache.rocketmq.client.java.route.MessageQueueImpl;
-import org.apache.rocketmq.client.java.route.TopicRouteDataResult;
+import org.apache.rocketmq.client.java.route.TopicRouteData;
 import org.apache.rocketmq.client.java.rpc.RpcInvocation;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -234,9 +234,8 @@ class PushConsumerImpl extends ConsumerImpl implements PushConsumer, MessageCach
                 this.state(), clientId);
             throw new IllegalStateException("Push consumer is not running now");
         }
-        final ListenableFuture<TopicRouteDataResult> future = getRouteDataResult(topic);
-        TopicRouteDataResult topicRouteDataResult = handleClientFuture(future);
-        topicRouteDataResult.checkAndGetTopicRouteData();
+        final ListenableFuture<TopicRouteData> future = getRouteData(topic);
+        handleClientFuture(future);
         subscriptionExpressions.put(topic, filterExpression);
         return this;
     }
@@ -257,9 +256,9 @@ class PushConsumerImpl extends ConsumerImpl implements PushConsumer, MessageCach
     }
 
     private ListenableFuture<Endpoints> pickEndpointsToQueryAssignments(String topic) {
-        final ListenableFuture<TopicRouteDataResult> future = getRouteDataResult(topic);
-        return Futures.transformAsync(future, topicRouteDataResult -> {
-            Endpoints endpoints = topicRouteDataResult.checkAndGetTopicRouteData().pickEndpointsToQueryAssignments();
+        final ListenableFuture<TopicRouteData> future = getRouteData(topic);
+        return Futures.transformAsync(future, topicRouteData -> {
+            Endpoints endpoints = topicRouteData.pickEndpointsToQueryAssignments();
             return Futures.immediateFuture(endpoints);
         }, MoreExecutors.directExecutor());
     }
@@ -513,7 +512,7 @@ class PushConsumerImpl extends ConsumerImpl implements PushConsumer, MessageCach
                     .setStatus(status)
                     .build();
                 try {
-                    telemeter(endpoints, command);
+                    telemetry(endpoints, command);
                 } catch (Throwable t) {
                     LOGGER.error("Failed to send message verification result command, endpoints={}, command={}, "
                         + "messageId={}, clientId={}", endpoints, command, messageId, clientId, t);
diff --git a/java/client/src/main/java/org/apache/rocketmq/client/java/impl/consumer/SimpleConsumerImpl.java b/java/client/src/main/java/org/apache/rocketmq/client/java/impl/consumer/SimpleConsumerImpl.java
index d90edf8..d8ce5d8 100644
--- a/java/client/src/main/java/org/apache/rocketmq/client/java/impl/consumer/SimpleConsumerImpl.java
+++ b/java/client/src/main/java/org/apache/rocketmq/client/java/impl/consumer/SimpleConsumerImpl.java
@@ -55,7 +55,7 @@ import org.apache.rocketmq.client.java.impl.ClientSettings;
 import org.apache.rocketmq.client.java.message.MessageViewImpl;
 import org.apache.rocketmq.client.java.message.protocol.Resource;
 import org.apache.rocketmq.client.java.route.MessageQueueImpl;
-import org.apache.rocketmq.client.java.route.TopicRouteDataResult;
+import org.apache.rocketmq.client.java.route.TopicRouteData;
 import org.apache.rocketmq.client.java.rpc.RpcInvocation;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -130,9 +130,8 @@ class SimpleConsumerImpl extends ConsumerImpl implements SimpleConsumer {
                 this.state(), clientId);
             throw new IllegalStateException("Simple consumer is not running now");
         }
-        final ListenableFuture<TopicRouteDataResult> future = getRouteDataResult(topic);
-        TopicRouteDataResult topicRouteDataResult = handleClientFuture(future);
-        topicRouteDataResult.checkAndGetTopicRouteData();
+        final ListenableFuture<TopicRouteData> future = getRouteData(topic);
+        handleClientFuture(future);
         subscriptionExpressions.put(topic, filterExpression);
         return this;
     }
@@ -359,9 +358,9 @@ class SimpleConsumerImpl extends ConsumerImpl implements SimpleConsumer {
         return simpleConsumerSettings;
     }
 
-    public void onTopicRouteDataResultUpdate0(String topic, TopicRouteDataResult topicRouteDataResult) {
+    public void onTopicRouteDataUpdate0(String topic, TopicRouteData topicRouteData) {
         final SubscriptionLoadBalancer subscriptionLoadBalancer =
-            new SubscriptionLoadBalancer(topicRouteDataResult);
+            new SubscriptionLoadBalancer(topicRouteData);
         subTopicRouteDataResultCache.put(topic, subscriptionLoadBalancer);
     }
 
@@ -372,7 +371,7 @@ class SimpleConsumerImpl extends ConsumerImpl implements SimpleConsumer {
             future0.set(result);
             return future0;
         }
-        final ListenableFuture<TopicRouteDataResult> future = getRouteDataResult(topic);
+        final ListenableFuture<TopicRouteData> future = getRouteData(topic);
         return Futures.transform(future, topicRouteDataResult -> {
             final SubscriptionLoadBalancer subscriptionLoadBalancer =
                 new SubscriptionLoadBalancer(topicRouteDataResult);
diff --git a/java/client/src/main/java/org/apache/rocketmq/client/java/impl/consumer/SubscriptionLoadBalancer.java b/java/client/src/main/java/org/apache/rocketmq/client/java/impl/consumer/SubscriptionLoadBalancer.java
index 21610b2..012d441 100644
--- a/java/client/src/main/java/org/apache/rocketmq/client/java/impl/consumer/SubscriptionLoadBalancer.java
+++ b/java/client/src/main/java/org/apache/rocketmq/client/java/impl/consumer/SubscriptionLoadBalancer.java
@@ -17,20 +17,20 @@
 
 package org.apache.rocketmq.client.java.impl.consumer;
 
+import com.google.common.base.Predicate;
 import com.google.common.collect.ImmutableList;
 import com.google.common.math.IntMath;
+import java.util.List;
 import java.util.concurrent.atomic.AtomicInteger;
+import java.util.stream.Collectors;
 import javax.annotation.concurrent.Immutable;
 import org.apache.commons.lang3.RandomUtils;
-import org.apache.rocketmq.client.apis.ClientException;
-import org.apache.rocketmq.client.java.exception.NotFoundException;
 import org.apache.rocketmq.client.java.misc.Utilities;
 import org.apache.rocketmq.client.java.route.MessageQueueImpl;
-import org.apache.rocketmq.client.java.route.TopicRouteDataResult;
+import org.apache.rocketmq.client.java.route.TopicRouteData;
 
 @Immutable
 public class SubscriptionLoadBalancer {
-    private final TopicRouteDataResult topicRouteDataResult;
     /**
      * Index for round-robin.
      */
@@ -40,30 +40,19 @@ public class SubscriptionLoadBalancer {
      */
     private final ImmutableList<MessageQueueImpl> messageQueues;
 
-    public SubscriptionLoadBalancer(TopicRouteDataResult topicRouteDataResult) {
-        this.topicRouteDataResult = topicRouteDataResult;
+    public SubscriptionLoadBalancer(TopicRouteData topicRouteData) {
         this.index = new AtomicInteger(RandomUtils.nextInt(0, Integer.MAX_VALUE));
-        final ImmutableList.Builder<MessageQueueImpl> builder = ImmutableList.builder();
-        if (!topicRouteDataResult.ok()) {
-            this.messageQueues = builder.build();
-            return;
+        final List<MessageQueueImpl> mqs = topicRouteData.getMessageQueues().stream()
+            .filter((Predicate<MessageQueueImpl>) mq -> mq.getPermission().isReadable() &&
+                Utilities.MASTER_BROKER_ID == mq.getBroker().getId())
+            .collect(Collectors.toList());
+        if (mqs.isEmpty()) {
+            throw new IllegalArgumentException("No readable message queue found, topiRouteData=" + topicRouteData);
         }
-        for (MessageQueueImpl messageQueue : topicRouteDataResult.getTopicRouteData().getMessageQueues()) {
-            if (!messageQueue.getPermission().isReadable() ||
-                Utilities.MASTER_BROKER_ID != messageQueue.getBroker().getId()) {
-                continue;
-            }
-            builder.add(messageQueue);
-        }
-        this.messageQueues = builder.build();
+        this.messageQueues = ImmutableList.<MessageQueueImpl>builder().addAll(mqs).build();
     }
 
-    public MessageQueueImpl takeMessageQueue() throws ClientException {
-        topicRouteDataResult.checkAndGetTopicRouteData();
-        if (messageQueues.isEmpty()) {
-            // Should never reach here.
-            throw new NotFoundException("Failed to take message queue due to readable message queue doesn't exist");
-        }
+    public MessageQueueImpl takeMessageQueue() {
         final int next = index.getAndIncrement();
         return messageQueues.get(IntMath.mod(next, messageQueues.size()));
     }
diff --git a/java/client/src/main/java/org/apache/rocketmq/client/java/impl/producer/ClientSessionProcessor.java b/java/client/src/main/java/org/apache/rocketmq/client/java/impl/producer/ClientSessionHandler.java
similarity index 83%
rename from java/client/src/main/java/org/apache/rocketmq/client/java/impl/producer/ClientSessionProcessor.java
rename to java/client/src/main/java/org/apache/rocketmq/client/java/impl/producer/ClientSessionHandler.java
index 8bdc019..817e24f 100644
--- a/java/client/src/main/java/org/apache/rocketmq/client/java/impl/producer/ClientSessionProcessor.java
+++ b/java/client/src/main/java/org/apache/rocketmq/client/java/impl/producer/ClientSessionHandler.java
@@ -24,15 +24,23 @@ import apache.rocketmq.v2.TelemetryCommand;
 import apache.rocketmq.v2.VerifyMessageCommand;
 import com.google.common.util.concurrent.ListenableFuture;
 import io.grpc.stub.StreamObserver;
+import java.util.concurrent.ScheduledExecutorService;
 import org.apache.rocketmq.client.apis.ClientException;
 import org.apache.rocketmq.client.java.route.Endpoints;
 
-public interface ClientSessionProcessor {
-    ListenableFuture<Void> register();
+public interface ClientSessionHandler {
+    @SuppressWarnings("BooleanMethodIsAlwaysInverted")
+    boolean isRunning();
+
+    ScheduledExecutorService getScheduler();
+
+    boolean isEndpointsDeprecated(Endpoints endpoints);
+
+    ListenableFuture<Void> awaitSettingSynchronized();
 
     String clientId();
 
-    TelemetryCommand getSettingsCommand();
+    TelemetryCommand settingsCommand();
 
     StreamObserver<TelemetryCommand> telemetry(Endpoints endpoints, StreamObserver<TelemetryCommand> observer)
         throws ClientException;
diff --git a/java/client/src/main/java/org/apache/rocketmq/client/java/impl/producer/ProducerImpl.java b/java/client/src/main/java/org/apache/rocketmq/client/java/impl/producer/ProducerImpl.java
index bb4ae49..08483f0 100644
--- a/java/client/src/main/java/org/apache/rocketmq/client/java/impl/producer/ProducerImpl.java
+++ b/java/client/src/main/java/org/apache/rocketmq/client/java/impl/producer/ProducerImpl.java
@@ -72,7 +72,7 @@ import org.apache.rocketmq.client.java.retry.ExponentialBackoffRetryPolicy;
 import org.apache.rocketmq.client.java.retry.RetryPolicy;
 import org.apache.rocketmq.client.java.route.Endpoints;
 import org.apache.rocketmq.client.java.route.MessageQueueImpl;
-import org.apache.rocketmq.client.java.route.TopicRouteDataResult;
+import org.apache.rocketmq.client.java.route.TopicRouteData;
 import org.apache.rocketmq.client.java.rpc.RpcInvocation;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -89,7 +89,7 @@ class ProducerImpl extends ClientImpl implements Producer {
     protected final ProducerSettings producerSettings;
 
     private final TransactionChecker checker;
-    private final ConcurrentMap<String/* topic */, PublishingLoadBalancer> publishingRouteDataResultCache;
+    private final ConcurrentMap<String/* topic */, PublishingLoadBalancer> publishingRouteDataCache;
 
     /**
      * The caller is supposed to have validated the arguments and handled throwing exception or
@@ -102,7 +102,7 @@ class ProducerImpl extends ClientImpl implements Producer {
         this.producerSettings = new ProducerSettings(clientId, endpoints, retryPolicy,
             clientConfiguration.getRequestTimeout(), topics);
         this.checker = checker;
-        this.publishingRouteDataResultCache = new ConcurrentHashMap<>();
+        this.publishingRouteDataCache = new ConcurrentHashMap<>();
     }
 
     @Override
@@ -540,26 +540,21 @@ class ProducerImpl extends ClientImpl implements Producer {
     }
 
     @Override
-    public void onTopicRouteDataResultUpdate0(String topic, TopicRouteDataResult topicRouteDataResult) {
+    public void onTopicRouteDataUpdate0(String topic, TopicRouteData topicRouteData) {
         final PublishingLoadBalancer publishingLoadBalancer =
-            new PublishingLoadBalancer(topicRouteDataResult);
-        publishingRouteDataResultCache.put(topic, publishingLoadBalancer);
+            new PublishingLoadBalancer(topicRouteData);
+        publishingRouteDataCache.put(topic, publishingLoadBalancer);
     }
 
     private ListenableFuture<PublishingLoadBalancer> getPublishingTopicRouteResult(final String topic) {
-        SettableFuture<PublishingLoadBalancer> future0 = SettableFuture.create();
-        final PublishingLoadBalancer result = publishingRouteDataResultCache.get(topic);
+        final PublishingLoadBalancer result = publishingRouteDataCache.get(topic);
         if (null != result) {
-            future0.set(result);
-            return future0;
+            return Futures.immediateFuture(result);
         }
-        return Futures.transformAsync(getRouteDataResult(topic), topicRouteDataResult -> {
-            SettableFuture<PublishingLoadBalancer> future = SettableFuture.create();
-            final PublishingLoadBalancer publishingLoadBalancer =
-                new PublishingLoadBalancer(topicRouteDataResult);
-            publishingRouteDataResultCache.put(topic, publishingLoadBalancer);
-            future.set(publishingLoadBalancer);
-            return future;
+        return Futures.transformAsync(getRouteData(topic), topicRouteDataResult -> {
+            final PublishingLoadBalancer loadBalancer = new PublishingLoadBalancer(topicRouteDataResult);
+            publishingRouteDataCache.put(topic, loadBalancer);
+            return Futures.immediateFuture(loadBalancer);
         }, MoreExecutors.directExecutor());
     }
 }
diff --git a/java/client/src/main/java/org/apache/rocketmq/client/java/impl/producer/PublishingLoadBalancer.java b/java/client/src/main/java/org/apache/rocketmq/client/java/impl/producer/PublishingLoadBalancer.java
index 9b326de..feb9616 100644
--- a/java/client/src/main/java/org/apache/rocketmq/client/java/impl/producer/PublishingLoadBalancer.java
+++ b/java/client/src/main/java/org/apache/rocketmq/client/java/impl/producer/PublishingLoadBalancer.java
@@ -18,6 +18,7 @@
 package org.apache.rocketmq.client.java.impl.producer;
 
 import com.google.common.base.Objects;
+import com.google.common.base.Predicate;
 import com.google.common.collect.ImmutableList;
 import com.google.common.hash.Hashing;
 import com.google.common.math.IntMath;
@@ -28,19 +29,17 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicInteger;
+import java.util.stream.Collectors;
 import javax.annotation.concurrent.Immutable;
 import org.apache.commons.lang3.RandomUtils;
-import org.apache.rocketmq.client.apis.ClientException;
-import org.apache.rocketmq.client.java.exception.NotFoundException;
 import org.apache.rocketmq.client.java.misc.Utilities;
 import org.apache.rocketmq.client.java.route.Broker;
 import org.apache.rocketmq.client.java.route.Endpoints;
 import org.apache.rocketmq.client.java.route.MessageQueueImpl;
-import org.apache.rocketmq.client.java.route.TopicRouteDataResult;
+import org.apache.rocketmq.client.java.route.TopicRouteData;
 
 @Immutable
 public class PublishingLoadBalancer {
-    private final TopicRouteDataResult topicRouteDataResult;
     /**
      * Index for round-robin.
      */
@@ -50,40 +49,25 @@ public class PublishingLoadBalancer {
      */
     private final ImmutableList<MessageQueueImpl> messageQueues;
 
-    public PublishingLoadBalancer(TopicRouteDataResult topicRouteDataResult) {
-        this.topicRouteDataResult = topicRouteDataResult;
+    public PublishingLoadBalancer(TopicRouteData topicRouteData) {
         this.index = new AtomicInteger(RandomUtils.nextInt(0, Integer.MAX_VALUE));
-        final ImmutableList.Builder<MessageQueueImpl> builder = ImmutableList.builder();
-        if (!topicRouteDataResult.ok()) {
-            this.messageQueues = builder.build();
-            return;
-        }
-        for (MessageQueueImpl messageQueue : topicRouteDataResult.getTopicRouteData().getMessageQueues()) {
-            if (!messageQueue.getPermission().isWritable() ||
-                Utilities.MASTER_BROKER_ID != messageQueue.getBroker().getId()) {
-                continue;
-            }
-            builder.add(messageQueue);
-        }
-        this.messageQueues = builder.build();
-    }
-
-    private void preconditionCheckBeforeTakingMessageQueue() throws ClientException {
-        topicRouteDataResult.checkAndGetTopicRouteData();
-        if (messageQueues.isEmpty()) {
-            throw new NotFoundException("Failed to take message due to writable message queue doesn't exist");
+        final List<MessageQueueImpl> mqs = topicRouteData.getMessageQueues().stream()
+            .filter((Predicate<MessageQueueImpl>) mq -> mq.getPermission().isWritable() &&
+                Utilities.MASTER_BROKER_ID == mq.getBroker().getId())
+            .collect(Collectors.toList());
+        if (mqs.isEmpty()) {
+            throw new IllegalArgumentException("No writable message queue found, topiRouteData=" + topicRouteData);
         }
+        this.messageQueues = ImmutableList.<MessageQueueImpl>builder().addAll(mqs).build();
     }
 
-    public MessageQueueImpl takeMessageQueueByMessageGroup(String messageGroup) throws ClientException {
-        preconditionCheckBeforeTakingMessageQueue();
+    public MessageQueueImpl takeMessageQueueByMessageGroup(String messageGroup) {
         final long hashCode = Hashing.sipHash24().hashBytes(messageGroup.getBytes(StandardCharsets.UTF_8)).asLong();
         final int index = LongMath.mod(hashCode, messageQueues.size());
         return messageQueues.get(index);
     }
 
-    public List<MessageQueueImpl> takeMessageQueues(Set<Endpoints> excluded, int count) throws ClientException {
-        preconditionCheckBeforeTakingMessageQueue();
+    public List<MessageQueueImpl> takeMessageQueues(Set<Endpoints> excluded, int count) {
         int next = index.getAndIncrement();
         List<MessageQueueImpl> candidates = new ArrayList<>();
         Set<String> candidateBrokerNames = new HashSet<>();
diff --git a/java/client/src/main/java/org/apache/rocketmq/client/java/route/TopicRouteDataResult.java b/java/client/src/main/java/org/apache/rocketmq/client/java/route/TopicRouteDataResult.java
deleted file mode 100644
index 94adee4..0000000
--- a/java/client/src/main/java/org/apache/rocketmq/client/java/route/TopicRouteDataResult.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.rocketmq.client.java.route;
-
-import apache.rocketmq.v2.Code;
-import apache.rocketmq.v2.MessageQueue;
-import apache.rocketmq.v2.QueryRouteResponse;
-import apache.rocketmq.v2.Status;
-import com.google.common.base.MoreObjects;
-import com.google.common.base.Objects;
-import java.util.List;
-import javax.annotation.concurrent.Immutable;
-import org.apache.rocketmq.client.apis.ClientException;
-import org.apache.rocketmq.client.java.exception.BadRequestException;
-import org.apache.rocketmq.client.java.exception.InternalErrorException;
-import org.apache.rocketmq.client.java.exception.NotFoundException;
-import org.apache.rocketmq.client.java.exception.ProxyTimeoutException;
-import org.apache.rocketmq.client.java.exception.TooManyRequestsException;
-import org.apache.rocketmq.client.java.exception.UnsupportedException;
-import org.apache.rocketmq.client.java.rpc.RpcInvocation;
-
-/**
- * Result topic route data fetched from remote.
- */
-@Immutable
-public class TopicRouteDataResult {
-    private final TopicRouteData topicRouteData;
-    private final ClientException exception;
-
-    public TopicRouteDataResult(RpcInvocation<QueryRouteResponse> invocation) {
-        final QueryRouteResponse response = invocation.getResponse();
-        final String requestId = invocation.getContext().getRequestId();
-        final List<MessageQueue> messageQueuesList = response.getMessageQueuesList();
-        final TopicRouteData topicRouteData = new TopicRouteData(messageQueuesList);
-        final Status status = response.getStatus();
-        this.topicRouteData = topicRouteData;
-        final Code code = status.getCode();
-        final int codeNumber = code.getNumber();
-        final String statusMessage = status.getMessage();
-        switch (code) {
-            case OK:
-                this.exception = null;
-                break;
-            case BAD_REQUEST:
-            case ILLEGAL_ACCESS_POINT:
-            case ILLEGAL_TOPIC:
-            case CLIENT_ID_REQUIRED:
-                this.exception = new BadRequestException(codeNumber, requestId, statusMessage);
-                break;
-            case NOT_FOUND:
-            case TOPIC_NOT_FOUND:
-                this.exception = new NotFoundException(codeNumber, requestId, statusMessage);
-                break;
-            case TOO_MANY_REQUESTS:
-                this.exception = new TooManyRequestsException(codeNumber, requestId, statusMessage);
-                break;
-            case INTERNAL_ERROR:
-            case INTERNAL_SERVER_ERROR:
-                this.exception = new InternalErrorException(codeNumber, requestId, statusMessage);
-                break;
-            case PROXY_TIMEOUT:
-                this.exception = new ProxyTimeoutException(codeNumber, requestId, statusMessage);
-                break;
-            default:
-                this.exception = new UnsupportedException(codeNumber, requestId, statusMessage);
-        }
-    }
-
-    public TopicRouteData getTopicRouteData() {
-        return topicRouteData;
-    }
-
-    public TopicRouteData checkAndGetTopicRouteData() throws ClientException {
-        if (null != exception) {
-            throw exception;
-        }
-        return topicRouteData;
-    }
-
-    public boolean ok() {
-        return null == exception;
-    }
-
-    @Override
-    public boolean equals(Object o) {
-        if (this == o) {
-            return true;
-        }
-        if (o == null || getClass() != o.getClass()) {
-            return false;
-        }
-        TopicRouteDataResult result = (TopicRouteDataResult) o;
-        return Objects.equal(topicRouteData, result.topicRouteData) && Objects.equal(exception, result.exception);
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hashCode(topicRouteData, exception);
-    }
-
-    @Override
-    public String toString() {
-        final MoreObjects.ToStringHelper helper = MoreObjects.toStringHelper(this)
-            .add("topicRouteData", this.topicRouteData);
-        if (null == exception) {
-            return helper.toString();
-        }
-        return helper.add("exception", this.exception).toString();
-    }
-}