// Generated by the protocol buffer compiler.  DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: MumbleUDP.proto
// Protobuf C++ Version: 7.34.1

#include "MumbleUDP.pb.h"

#include <algorithm>
#include <type_traits>
#include "google/protobuf/io/coded_stream.h"
#include "google/protobuf/generated_message_tctable_impl.h"
#include "google/protobuf/internal_visibility.h"
#include "google/protobuf/extension_set.h"
#include "google/protobuf/generated_message_util.h"
#include "google/protobuf/wire_format_lite.h"
#include "google/protobuf/descriptor.h"
#include "google/protobuf/generated_message_reflection.h"
#include "google/protobuf/reflection_ops.h"
#include "google/protobuf/wire_format.h"
// @@protoc_insertion_point(includes)

// Must be included last.
#include "google/protobuf/port_def.inc"
PROTOBUF_PRAGMA_INIT_SEG
namespace _pb = ::google::protobuf;
namespace _pbi = ::google::protobuf::internal;
namespace _fl = ::google::protobuf::internal::field_layout;
namespace MumbleUDP {

inline constexpr Ping::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        timestamp_{::uint64_t{0u}},
        server_version_v2_{::uint64_t{0u}},
        request_extended_information_{false},
        user_count_{0u},
        max_user_count_{0u},
        max_bandwidth_per_user_{0u} {}

template <typename>
constexpr Ping::Ping(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(Ping_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
struct PingDefaultTypeInternal {
  constexpr PingDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PingDefaultTypeInternal() {}
  union {
    Ping _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PingDefaultTypeInternal _Ping_default_instance_;

inline constexpr Audio::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        #ifdef PROTOBUF_INTERNAL_REMOVE_ARENA_PTRS_REPEATED_FIELD
        positional_data_{visibility, ::_pbi::InternalMetadataOffset::Build<
            ::MumbleUDP::Audio,
            PROTOBUF_FIELD_OFFSET(::MumbleUDP::Audio, _impl_.positional_data_)>()
        }
        #else
        positional_data_ {}
        #endif
        ,
        opus_data_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        frame_number_{::uint64_t{0u}},
        sender_session_{0u},
        volume_adjustment_{0},
        is_terminator_{false},
        Header_{},
        _oneof_case_{} {}

template <typename>
constexpr Audio::Audio(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(Audio_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
struct AudioDefaultTypeInternal {
  constexpr AudioDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~AudioDefaultTypeInternal() {}
  union {
    Audio _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AudioDefaultTypeInternal _Audio_default_instance_;
}  // namespace MumbleUDP
static constexpr const ::_pb::EnumDescriptor* PROTOBUF_NONNULL* PROTOBUF_NULLABLE
    file_level_enum_descriptors_MumbleUDP_2eproto = nullptr;
static constexpr const ::_pb::ServiceDescriptor* PROTOBUF_NONNULL* PROTOBUF_NULLABLE
    file_level_service_descriptors_MumbleUDP_2eproto = nullptr;
const ::uint32_t
    TableStruct_MumbleUDP_2eproto::offsets[] ABSL_ATTRIBUTE_SECTION_VARIABLE(
        protodesc_cold) = {
        0x085, // bitmap
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Audio, _impl_._has_bits_),
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Audio, _impl_._oneof_case_[0]),
        13, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Audio, _impl_.Header_),
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Audio, _impl_.Header_),
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Audio, _impl_.sender_session_),
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Audio, _impl_.frame_number_),
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Audio, _impl_.opus_data_),
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Audio, _impl_.positional_data_),
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Audio, _impl_.volume_adjustment_),
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Audio, _impl_.is_terminator_),
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Audio, _impl_.Header_),
        ~0u,
        ~0u,
        3,
        2,
        1,
        0,
        4,
        5,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Ping, _impl_._has_bits_),
        9, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Ping, _impl_.timestamp_),
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Ping, _impl_.request_extended_information_),
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Ping, _impl_.server_version_v2_),
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Ping, _impl_.user_count_),
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Ping, _impl_.max_user_count_),
        PROTOBUF_FIELD_OFFSET(::MumbleUDP::Ping, _impl_.max_bandwidth_per_user_),
        0,
        2,
        1,
        3,
        4,
        5,
};

static const ::_pbi::MigrationSchema
    schemas[] ABSL_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
        {0, sizeof(::MumbleUDP::Audio)},
        {21, sizeof(::MumbleUDP::Ping)},
};
static const ::_pb::Message* PROTOBUF_NONNULL const file_default_instances[] = {
    &::MumbleUDP::_Audio_default_instance_._instance,
    &::MumbleUDP::_Ping_default_instance_._instance,
};
const char descriptor_table_protodef_MumbleUDP_2eproto[] ABSL_ATTRIBUTE_SECTION_VARIABLE(
    protodesc_cold) = {
    "\n\017MumbleUDP.proto\022\tMumbleUDP\"\302\001\n\005Audio\022\020"
    "\n\006target\030\001 \001(\rH\000\022\021\n\007context\030\002 \001(\rH\000\022\026\n\016s"
    "ender_session\030\003 \001(\r\022\024\n\014frame_number\030\004 \001("
    "\004\022\021\n\topus_data\030\005 \001(\014\022\027\n\017positional_data\030"
    "\006 \003(\002\022\031\n\021volume_adjustment\030\007 \001(\002\022\025\n\ris_t"
    "erminator\030\020 \001(\010B\010\n\006Header\"\246\001\n\004Ping\022\021\n\tti"
    "mestamp\030\001 \001(\004\022$\n\034request_extended_inform"
    "ation\030\002 \001(\010\022\031\n\021server_version_v2\030\003 \001(\004\022\022"
    "\n\nuser_count\030\004 \001(\r\022\026\n\016max_user_count\030\005 \001"
    "(\r\022\036\n\026max_bandwidth_per_user\030\006 \001(\rB\002H\001b\006"
    "proto3"
};
static ::absl::once_flag descriptor_table_MumbleUDP_2eproto_once;
PROTOBUF_CONSTINIT const ::_pbi::DescriptorTable descriptor_table_MumbleUDP_2eproto = {
    false,
    false,
    406,
    descriptor_table_protodef_MumbleUDP_2eproto,
    "MumbleUDP.proto",
    &descriptor_table_MumbleUDP_2eproto_once,
    nullptr,
    0,
    2,
    schemas,
    file_default_instances,
    TableStruct_MumbleUDP_2eproto::offsets,
    file_level_enum_descriptors_MumbleUDP_2eproto,
    file_level_service_descriptors_MumbleUDP_2eproto,
};
namespace MumbleUDP {
// ===================================================================

class Audio::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<Audio>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Audio, _impl_._has_bits_);
  static constexpr ::int32_t kOneofCaseOffset =
      PROTOBUF_FIELD_OFFSET(::MumbleUDP::Audio, _impl_._oneof_case_);
};

Audio::Audio(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Audio_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:MumbleUDP.Audio)
}
PROTOBUF_NDEBUG_INLINE Audio::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::MumbleUDP::Audio& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        #ifdef PROTOBUF_INTERNAL_REMOVE_ARENA_PTRS_REPEATED_FIELD
        positional_data_{visibility, ::_pbi::InternalMetadataOffset::Build<
            ::MumbleUDP::Audio,
            PROTOBUF_FIELD_OFFSET(::MumbleUDP::Audio, _impl_.positional_data_)>()
        , from.positional_data_}
        #else
        positional_data_ { visibility, arena, from.positional_data_ }
        #endif
        ,
        opus_data_(arena, from.opus_data_),
        Header_{},
        _oneof_case_{from._oneof_case_[0]} {}

Audio::Audio(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Audio& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Audio_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Audio* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, frame_number_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, frame_number_),
           offsetof(Impl_, is_terminator_) -
               offsetof(Impl_, frame_number_) +
               sizeof(Impl_::is_terminator_));
  switch (Header_case()) {
    case HEADER_NOT_SET:
      break;
      case kTarget:
        _impl_.Header_.target_ = from._impl_.Header_.target_;
        break;
      case kContext:
        _impl_.Header_.context_ = from._impl_.Header_.context_;
        break;
  }

  // @@protoc_insertion_point(copy_constructor:MumbleUDP.Audio)
}
PROTOBUF_NDEBUG_INLINE Audio::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        #ifdef PROTOBUF_INTERNAL_REMOVE_ARENA_PTRS_REPEATED_FIELD
        positional_data_{visibility, ::_pbi::InternalMetadataOffset::Build<
            ::MumbleUDP::Audio,
            PROTOBUF_FIELD_OFFSET(::MumbleUDP::Audio, _impl_.positional_data_)>()
        }
        #else
        positional_data_ { visibility, arena }
        #endif
        ,
        opus_data_(arena),
        Header_{},
        _oneof_case_{} {}

inline void Audio::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, frame_number_),
           0,
           offsetof(Impl_, is_terminator_) -
               offsetof(Impl_, frame_number_) +
               sizeof(Impl_::is_terminator_));
}
Audio::~Audio() {
  // @@protoc_insertion_point(destructor:MumbleUDP.Audio)
  SharedDtor(*this);
}
inline void Audio::SharedDtor(MessageLite& self) {
  Audio& this_ = static_cast<Audio&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.opus_data_.Destroy();
  if (this_.has_Header()) {
    this_.clear_Header();
  }
  this_._impl_.~Impl_();
}

void Audio::clear_Header() {
// @@protoc_insertion_point(one_of_clear_start:MumbleUDP.Audio)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  switch (Header_case()) {
    case kTarget: {
      // No need to clear
      break;
    }
    case kContext: {
      // No need to clear
      break;
    }
    case HEADER_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = HEADER_NOT_SET;
}


inline void* PROTOBUF_NONNULL Audio::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Audio(arena);
}
#ifdef PROTOBUF_INTERNAL_REMOVE_ARENA_PTRS_REPEATED_PTR_FIELD
constexpr auto Audio::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Audio),
                                            alignof(Audio));
}
#else  // !PROTOBUF_INTERNAL_REMOVE_ARENA_PTRS_REPEATED_PTR_FIELD
constexpr auto Audio::InternalNewImpl_() {
  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
      PROTOBUF_FIELD_OFFSET(Audio, _impl_.positional_data_) +
          decltype(Audio::_impl_.positional_data_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
  });
  if (arena_bits.has_value()) {
    return ::google::protobuf::internal::MessageCreator::CopyInit(
        sizeof(Audio), alignof(Audio), *arena_bits);
  } else {
    return ::google::protobuf::internal::MessageCreator(&Audio::PlacementNew_,
                                 sizeof(Audio),
                                 alignof(Audio));
  }
}
#endif
constexpr auto Audio::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_Audio_default_instance_._instance,
          &_table_.header,
          nullptr,  // IsInitialized
          &Audio::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Audio>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Audio::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Audio>(), &Audio::ByteSizeLong,
              &Audio::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Audio, _impl_._cached_size_),
          false,
      },
      &Audio::kDescriptorMethods,
      &descriptor_table_MumbleUDP_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Audio_class_data_ =
        Audio::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Audio::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Audio_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Audio_class_data_.tc_table);
  return Audio_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<3, 8, 0, 0, 2>
Audio::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(Audio, _impl_._has_bits_),
    0, // no _extensions_
    16, 56,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294934400,  // skipmap
    offsetof(decltype(_table_), field_entries),
    8,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    Audio_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::MumbleUDP::Audio>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // bool is_terminator = 16;
    {::_pbi::TcParser::FastV8S2,
     {384, 5, 0,
      PROTOBUF_FIELD_OFFSET(Audio, _impl_.is_terminator_)}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    // uint32 sender_session = 3;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Audio, _impl_.sender_session_), 3>(),
     {24, 3, 0,
      PROTOBUF_FIELD_OFFSET(Audio, _impl_.sender_session_)}},
    // uint64 frame_number = 4;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint64_t, offsetof(Audio, _impl_.frame_number_), 2>(),
     {32, 2, 0,
      PROTOBUF_FIELD_OFFSET(Audio, _impl_.frame_number_)}},
    // bytes opus_data = 5;
    {::_pbi::TcParser::FastBS1,
     {42, 1, 0,
      PROTOBUF_FIELD_OFFSET(Audio, _impl_.opus_data_)}},
    // repeated float positional_data = 6;
    {::_pbi::TcParser::FastF32P1,
     {50, 0, 0,
      PROTOBUF_FIELD_OFFSET(Audio, _impl_.positional_data_)}},
    // float volume_adjustment = 7;
    {::_pbi::TcParser::FastF32S1,
     {61, 4, 0,
      PROTOBUF_FIELD_OFFSET(Audio, _impl_.volume_adjustment_)}},
  }}, {{
    65535, 65535
  }}, {{
    // uint32 target = 1;
    {PROTOBUF_FIELD_OFFSET(Audio, _impl_.Header_.target_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kUInt32)},
    // uint32 context = 2;
    {PROTOBUF_FIELD_OFFSET(Audio, _impl_.Header_.context_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kUInt32)},
    // uint32 sender_session = 3;
    {PROTOBUF_FIELD_OFFSET(Audio, _impl_.sender_session_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // uint64 frame_number = 4;
    {PROTOBUF_FIELD_OFFSET(Audio, _impl_.frame_number_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
    // bytes opus_data = 5;
    {PROTOBUF_FIELD_OFFSET(Audio, _impl_.opus_data_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    // repeated float positional_data = 6;
    {PROTOBUF_FIELD_OFFSET(Audio, _impl_.positional_data_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kPackedFloat)},
    // float volume_adjustment = 7;
    {PROTOBUF_FIELD_OFFSET(Audio, _impl_.volume_adjustment_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // bool is_terminator = 16;
    {PROTOBUF_FIELD_OFFSET(Audio, _impl_.is_terminator_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
  }},
  // no aux_entries
  {{
  }},
};
PROTOBUF_NOINLINE void Audio::Clear() {
// @@protoc_insertion_point(message_clear_start:MumbleUDP.Audio)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBitForRepeated(cached_has_bits, 0x00000001U)) {
      _impl_.positional_data_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.opus_data_.ClearNonDefaultToEmpty();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000003cU)) {
    ::memset(&_impl_.frame_number_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.is_terminator_) -
        reinterpret_cast<char*>(&_impl_.frame_number_)) + sizeof(_impl_.is_terminator_));
  }
  clear_Header();
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Audio::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Audio& this_ = static_cast<const Audio&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Audio::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Audio& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:MumbleUDP.Audio)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  switch (this_.Header_case()) {
    case kTarget: {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          1, this_._internal_target(), target);
      break;
    }
    case kContext: {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          2, this_._internal_context(), target);
      break;
    }
    default:
      break;
  }
  cached_has_bits = this_._impl_._has_bits_[0];
  // uint32 sender_session = 3;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_sender_session() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          3, this_._internal_sender_session(), target);
    }
  }

  // uint64 frame_number = 4;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_frame_number() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
          4, this_._internal_frame_number(), target);
    }
  }

  // bytes opus_data = 5;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (!this_._internal_opus_data().empty()) {
      const ::std::string& _s = this_._internal_opus_data();
      target = stream->WriteBytesMaybeAliased(5, _s, target);
    }
  }

  // repeated float positional_data = 6;
  if (CheckHasBitForRepeated(cached_has_bits, 0x00000001U)) {
    if (this_._internal_positional_data_size() > 0) {
      target = stream->WriteFixedPacked(6, this_._internal_positional_data(), target);
    }
  }

  // float volume_adjustment = 7;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    if (::absl::bit_cast<::uint32_t>(this_._internal_volume_adjustment()) != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteFloatToArray(
          7, this_._internal_volume_adjustment(), target);
    }
  }

  // bool is_terminator = 16;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    if (this_._internal_is_terminator() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          16, this_._internal_is_terminator(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:MumbleUDP.Audio)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Audio::ByteSizeLong(const MessageLite& base) {
  const Audio& this_ = static_cast<const Audio&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Audio::ByteSizeLong() const {
  const Audio& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:MumbleUDP.Audio)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    // repeated float positional_data = 6;
    if (CheckHasBitForRepeated(cached_has_bits, 0x00000001U)) {
      ::size_t data_size = ::size_t{4} *
          ::_pbi::FromIntSize(this_._internal_positional_data_size());
      ::size_t tag_size = data_size == 0
          ? 0
          : 1 + ::_pbi::WireFormatLite::Int32Size(
                              static_cast<::int32_t>(data_size));
      total_size += tag_size + data_size;
    }
    // bytes opus_data = 5;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!this_._internal_opus_data().empty()) {
        total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                        this_._internal_opus_data());
      }
    }
    // uint64 frame_number = 4;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_frame_number() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(
            this_._internal_frame_number());
      }
    }
    // uint32 sender_session = 3;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_sender_session() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_sender_session());
      }
    }
    // float volume_adjustment = 7;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (::absl::bit_cast<::uint32_t>(this_._internal_volume_adjustment()) != 0) {
        total_size += 5;
      }
    }
    // bool is_terminator = 16;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (this_._internal_is_terminator() != 0) {
        total_size += 3;
      }
    }
  }
  switch (this_.Header_case()) {
    // uint32 target = 1;
    case kTarget: {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_target());
      break;
    }
    // uint32 context = 2;
    case kContext: {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_context());
      break;
    }
    case HEADER_NOT_SET: {
      break;
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Audio::MergeImpl(::google::protobuf::MessageLite& to_msg,
                            const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this =
      static_cast<Audio*>(&to_msg);
  auto& from = static_cast<const Audio&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:MumbleUDP.Audio)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    if (CheckHasBitForRepeated(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_positional_data()->MergeFrom(from._internal_positional_data());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (!from._internal_opus_data().empty()) {
        _this->_internal_set_opus_data(from._internal_opus_data());
      } else {
        if (_this->_impl_.opus_data_.IsDefault()) {
          _this->_internal_set_opus_data("");
        }
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_frame_number() != 0) {
        _this->_impl_.frame_number_ = from._impl_.frame_number_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_sender_session() != 0) {
        _this->_impl_.sender_session_ = from._impl_.sender_session_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (::absl::bit_cast<::uint32_t>(from._internal_volume_adjustment()) != 0) {
        _this->_impl_.volume_adjustment_ = from._impl_.volume_adjustment_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (from._internal_is_terminator() != 0) {
        _this->_impl_.is_terminator_ = from._impl_.is_terminator_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  if (const uint32_t oneof_from_case =
          from._impl_._oneof_case_[0]) {
    const uint32_t oneof_to_case = _this->_impl_._oneof_case_[0];
    const bool oneof_needs_init = oneof_to_case != oneof_from_case;
    if (oneof_needs_init) {
      if (oneof_to_case != 0) {
        _this->clear_Header();
      }
      _this->_impl_._oneof_case_[0] = oneof_from_case;
    }

    switch (oneof_from_case) {
      case kTarget: {
        _this->_impl_.Header_.target_ = from._impl_.Header_.target_;
        break;
      }
      case kContext: {
        _this->_impl_.Header_.context_ = from._impl_.Header_.context_;
        break;
      }
      case HEADER_NOT_SET:
        break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Audio::CopyFrom(const Audio& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:MumbleUDP.Audio)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Audio::InternalSwap(Audio* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.positional_data_.InternalSwap(&other->_impl_.positional_data_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.opus_data_, &other->_impl_.opus_data_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Audio, _impl_.is_terminator_)
      + sizeof(Audio::_impl_.is_terminator_)
      - PROTOBUF_FIELD_OFFSET(Audio, _impl_.frame_number_)>(
          reinterpret_cast<char*>(&_impl_.frame_number_),
          reinterpret_cast<char*>(&other->_impl_.frame_number_));
  swap(_impl_.Header_, other->_impl_.Header_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

::google::protobuf::Metadata Audio::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class Ping::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<Ping>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Ping, _impl_._has_bits_);
};

Ping::Ping(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Ping_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:MumbleUDP.Ping)
}
Ping::Ping(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Ping& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Ping_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE Ping::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Ping::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, timestamp_),
           0,
           offsetof(Impl_, max_bandwidth_per_user_) -
               offsetof(Impl_, timestamp_) +
               sizeof(Impl_::max_bandwidth_per_user_));
}
Ping::~Ping() {
  // @@protoc_insertion_point(destructor:MumbleUDP.Ping)
  SharedDtor(*this);
}
inline void Ping::SharedDtor(MessageLite& self) {
  Ping& this_ = static_cast<Ping&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL Ping::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Ping(arena);
}
constexpr auto Ping::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Ping),
                                            alignof(Ping));
}
constexpr auto Ping::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_Ping_default_instance_._instance,
          &_table_.header,
          nullptr,  // IsInitialized
          &Ping::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Ping>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Ping::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Ping>(), &Ping::ByteSizeLong,
              &Ping::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Ping, _impl_._cached_size_),
          false,
      },
      &Ping::kDescriptorMethods,
      &descriptor_table_MumbleUDP_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Ping_class_data_ =
        Ping::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Ping::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Ping_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Ping_class_data_.tc_table);
  return Ping_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<3, 6, 0, 0, 2>
Ping::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(Ping, _impl_._has_bits_),
    0, // no _extensions_
    6, 56,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967232,  // skipmap
    offsetof(decltype(_table_), field_entries),
    6,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    Ping_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::MumbleUDP::Ping>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // uint64 timestamp = 1;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint64_t, offsetof(Ping, _impl_.timestamp_), 0>(),
     {8, 0, 0,
      PROTOBUF_FIELD_OFFSET(Ping, _impl_.timestamp_)}},
    // bool request_extended_information = 2;
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(Ping, _impl_.request_extended_information_), 2>(),
     {16, 2, 0,
      PROTOBUF_FIELD_OFFSET(Ping, _impl_.request_extended_information_)}},
    // uint64 server_version_v2 = 3;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint64_t, offsetof(Ping, _impl_.server_version_v2_), 1>(),
     {24, 1, 0,
      PROTOBUF_FIELD_OFFSET(Ping, _impl_.server_version_v2_)}},
    // uint32 user_count = 4;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Ping, _impl_.user_count_), 3>(),
     {32, 3, 0,
      PROTOBUF_FIELD_OFFSET(Ping, _impl_.user_count_)}},
    // uint32 max_user_count = 5;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Ping, _impl_.max_user_count_), 4>(),
     {40, 4, 0,
      PROTOBUF_FIELD_OFFSET(Ping, _impl_.max_user_count_)}},
    // uint32 max_bandwidth_per_user = 6;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Ping, _impl_.max_bandwidth_per_user_), 5>(),
     {48, 5, 0,
      PROTOBUF_FIELD_OFFSET(Ping, _impl_.max_bandwidth_per_user_)}},
    {::_pbi::TcParser::MiniParse, {}},
  }}, {{
    65535, 65535
  }}, {{
    // uint64 timestamp = 1;
    {PROTOBUF_FIELD_OFFSET(Ping, _impl_.timestamp_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
    // bool request_extended_information = 2;
    {PROTOBUF_FIELD_OFFSET(Ping, _impl_.request_extended_information_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // uint64 server_version_v2 = 3;
    {PROTOBUF_FIELD_OFFSET(Ping, _impl_.server_version_v2_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt64)},
    // uint32 user_count = 4;
    {PROTOBUF_FIELD_OFFSET(Ping, _impl_.user_count_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // uint32 max_user_count = 5;
    {PROTOBUF_FIELD_OFFSET(Ping, _impl_.max_user_count_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // uint32 max_bandwidth_per_user = 6;
    {PROTOBUF_FIELD_OFFSET(Ping, _impl_.max_bandwidth_per_user_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
  }},
  // no aux_entries
  {{
  }},
};
PROTOBUF_NOINLINE void Ping::Clear() {
// @@protoc_insertion_point(message_clear_start:MumbleUDP.Ping)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    ::memset(&_impl_.timestamp_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.max_bandwidth_per_user_) -
        reinterpret_cast<char*>(&_impl_.timestamp_)) + sizeof(_impl_.max_bandwidth_per_user_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Ping::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Ping& this_ = static_cast<const Ping&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Ping::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Ping& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:MumbleUDP.Ping)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // uint64 timestamp = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    if (this_._internal_timestamp() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
          1, this_._internal_timestamp(), target);
    }
  }

  // bool request_extended_information = 2;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    if (this_._internal_request_extended_information() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteBoolToArray(
          2, this_._internal_request_extended_information(), target);
    }
  }

  // uint64 server_version_v2 = 3;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    if (this_._internal_server_version_v2() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt64ToArray(
          3, this_._internal_server_version_v2(), target);
    }
  }

  // uint32 user_count = 4;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    if (this_._internal_user_count() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          4, this_._internal_user_count(), target);
    }
  }

  // uint32 max_user_count = 5;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    if (this_._internal_max_user_count() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          5, this_._internal_max_user_count(), target);
    }
  }

  // uint32 max_bandwidth_per_user = 6;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    if (this_._internal_max_bandwidth_per_user() != 0) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
          6, this_._internal_max_bandwidth_per_user(), target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:MumbleUDP.Ping)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Ping::ByteSizeLong(const MessageLite& base) {
  const Ping& this_ = static_cast<const Ping&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Ping::ByteSizeLong() const {
  const Ping& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:MumbleUDP.Ping)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    // uint64 timestamp = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (this_._internal_timestamp() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(
            this_._internal_timestamp());
      }
    }
    // uint64 server_version_v2 = 3;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (this_._internal_server_version_v2() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(
            this_._internal_server_version_v2());
      }
    }
    // bool request_extended_information = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (this_._internal_request_extended_information() != 0) {
        total_size += 2;
      }
    }
    // uint32 user_count = 4;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (this_._internal_user_count() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_user_count());
      }
    }
    // uint32 max_user_count = 5;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (this_._internal_max_user_count() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_max_user_count());
      }
    }
    // uint32 max_bandwidth_per_user = 6;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (this_._internal_max_bandwidth_per_user() != 0) {
        total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
            this_._internal_max_bandwidth_per_user());
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Ping::MergeImpl(::google::protobuf::MessageLite& to_msg,
                            const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this =
      static_cast<Ping*>(&to_msg);
  auto& from = static_cast<const Ping&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:MumbleUDP.Ping)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      if (from._internal_timestamp() != 0) {
        _this->_impl_.timestamp_ = from._impl_.timestamp_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      if (from._internal_server_version_v2() != 0) {
        _this->_impl_.server_version_v2_ = from._impl_.server_version_v2_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      if (from._internal_request_extended_information() != 0) {
        _this->_impl_.request_extended_information_ = from._impl_.request_extended_information_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      if (from._internal_user_count() != 0) {
        _this->_impl_.user_count_ = from._impl_.user_count_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      if (from._internal_max_user_count() != 0) {
        _this->_impl_.max_user_count_ = from._impl_.max_user_count_;
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      if (from._internal_max_bandwidth_per_user() != 0) {
        _this->_impl_.max_bandwidth_per_user_ = from._impl_.max_bandwidth_per_user_;
      }
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void Ping::CopyFrom(const Ping& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:MumbleUDP.Ping)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Ping::InternalSwap(Ping* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Ping, _impl_.max_bandwidth_per_user_)
      + sizeof(Ping::_impl_.max_bandwidth_per_user_)
      - PROTOBUF_FIELD_OFFSET(Ping, _impl_.timestamp_)>(
          reinterpret_cast<char*>(&_impl_.timestamp_),
          reinterpret_cast<char*>(&other->_impl_.timestamp_));
}

::google::protobuf::Metadata Ping::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// @@protoc_insertion_point(namespace_scope)
}  // namespace MumbleUDP
namespace google {
namespace protobuf {
}  // namespace protobuf
}  // namespace google
// @@protoc_insertion_point(global_scope)
PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::std::false_type
    _static_init2_ [[maybe_unused]] =
        (::_pbi::AddDescriptors(&descriptor_table_MumbleUDP_2eproto),
         ::std::false_type{});
#include "google/protobuf/port_undef.inc"
