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

#ifndef steamnetworkingsockets_5fmessages_2eproto_2epb_2eh
#define steamnetworkingsockets_5fmessages_2eproto_2epb_2eh

#include <limits>
#include <string>
#include <type_traits>
#include <utility>

// clang-format off
#include "google/protobuf/runtime_version.h"
#if PROTOBUF_VERSION != 7035001
#error "Protobuf C++ gencode is built with an incompatible version of"
#error "Protobuf C++ headers/runtime. See"
#error "https://protobuf.dev/support/cross-version-runtime-guarantee/#cpp"
#endif
#include "google/protobuf/io/coded_stream.h"
#include "google/protobuf/arena.h"
#include "google/protobuf/arenastring.h"
#include "google/protobuf/generated_message_tctable_decl.h"
#include "google/protobuf/generated_message_util.h"
#include "google/protobuf/metadata_lite.h"
#include "google/protobuf/generated_message_reflection.h"
#include "google/protobuf/message.h"
#include "google/protobuf/message_lite.h"
#include "google/protobuf/repeated_field.h"  // IWYU pragma: export
#include "google/protobuf/extension_set.h"  // IWYU pragma: export
#include "google/protobuf/generated_enum_reflection.h"
#include "google/protobuf/unknown_field_set.h"
#include "steamnetworkingsockets_messages_certs.pb.h"
// @@protoc_insertion_point(includes)

// Must be included last.
#include "google/protobuf/port_def.inc"

#define PROTOBUF_INTERNAL_EXPORT_steamnetworkingsockets_5fmessages_2eproto

namespace google {
namespace protobuf {
namespace internal {
template <typename T>
::absl::string_view GetAnyMessageName();
}  // namespace internal
}  // namespace protobuf
}  // namespace google

// Internal implementation detail -- do not use these members.
struct TableStruct_steamnetworkingsockets_5fmessages_2eproto {
  static const ::uint32_t offsets[];
};
extern "C" {
extern const ::google::protobuf::internal::DescriptorTable descriptor_table_steamnetworkingsockets_5fmessages_2eproto;
}  // extern "C"
enum CMsgSteamDatagramSessionCryptInfo_EKeyType : int;
extern const uint32_t CMsgSteamDatagramSessionCryptInfo_EKeyType_internal_data_[];
enum ESteamNetworkingSocketsCipher : int;
extern const uint32_t ESteamNetworkingSocketsCipher_internal_data_[];
class CMsgICECandidate;
struct CMsgICECandidateGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern CMsgICECandidateGlobalsTypeInternal CMsgICECandidate_globals_;
extern const ::google::protobuf::internal::ClassDataFull CMsgICECandidate_class_data_;
#else
extern const CMsgICECandidateGlobalsTypeInternal CMsgICECandidate_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class CMsgICERendezvous;
struct CMsgICERendezvousGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern CMsgICERendezvousGlobalsTypeInternal CMsgICERendezvous_globals_;
extern const ::google::protobuf::internal::ClassDataFull CMsgICERendezvous_class_data_;
#else
extern const CMsgICERendezvousGlobalsTypeInternal CMsgICERendezvous_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class CMsgICERendezvous_Auth;
struct CMsgICERendezvous_AuthGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern CMsgICERendezvous_AuthGlobalsTypeInternal CMsgICERendezvous_Auth_globals_;
extern const ::google::protobuf::internal::ClassDataFull CMsgICERendezvous_Auth_class_data_;
#else
extern const CMsgICERendezvous_AuthGlobalsTypeInternal CMsgICERendezvous_Auth_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class CMsgSteamDatagramConnectionQuality;
struct CMsgSteamDatagramConnectionQualityGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern CMsgSteamDatagramConnectionQualityGlobalsTypeInternal CMsgSteamDatagramConnectionQuality_globals_;
extern const ::google::protobuf::internal::ClassDataFull CMsgSteamDatagramConnectionQuality_class_data_;
#else
extern const CMsgSteamDatagramConnectionQualityGlobalsTypeInternal CMsgSteamDatagramConnectionQuality_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class CMsgSteamDatagramDiagnostic;
struct CMsgSteamDatagramDiagnosticGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern CMsgSteamDatagramDiagnosticGlobalsTypeInternal CMsgSteamDatagramDiagnostic_globals_;
extern const ::google::protobuf::internal::ClassDataFull CMsgSteamDatagramDiagnostic_class_data_;
#else
extern const CMsgSteamDatagramDiagnosticGlobalsTypeInternal CMsgSteamDatagramDiagnostic_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class CMsgSteamDatagramLinkInstantaneousStats;
struct CMsgSteamDatagramLinkInstantaneousStatsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern CMsgSteamDatagramLinkInstantaneousStatsGlobalsTypeInternal CMsgSteamDatagramLinkInstantaneousStats_globals_;
extern const ::google::protobuf::internal::ClassDataFull CMsgSteamDatagramLinkInstantaneousStats_class_data_;
#else
extern const CMsgSteamDatagramLinkInstantaneousStatsGlobalsTypeInternal CMsgSteamDatagramLinkInstantaneousStats_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class CMsgSteamDatagramLinkLifetimeStats;
struct CMsgSteamDatagramLinkLifetimeStatsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern CMsgSteamDatagramLinkLifetimeStatsGlobalsTypeInternal CMsgSteamDatagramLinkLifetimeStats_globals_;
extern const ::google::protobuf::internal::ClassDataFull CMsgSteamDatagramLinkLifetimeStats_class_data_;
#else
extern const CMsgSteamDatagramLinkLifetimeStatsGlobalsTypeInternal CMsgSteamDatagramLinkLifetimeStats_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class CMsgSteamDatagramSessionCryptInfo;
struct CMsgSteamDatagramSessionCryptInfoGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern CMsgSteamDatagramSessionCryptInfoGlobalsTypeInternal CMsgSteamDatagramSessionCryptInfo_globals_;
extern const ::google::protobuf::internal::ClassDataFull CMsgSteamDatagramSessionCryptInfo_class_data_;
#else
extern const CMsgSteamDatagramSessionCryptInfoGlobalsTypeInternal CMsgSteamDatagramSessionCryptInfo_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class CMsgSteamDatagramSessionCryptInfoSigned;
struct CMsgSteamDatagramSessionCryptInfoSignedGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern CMsgSteamDatagramSessionCryptInfoSignedGlobalsTypeInternal CMsgSteamDatagramSessionCryptInfoSigned_globals_;
extern const ::google::protobuf::internal::ClassDataFull CMsgSteamDatagramSessionCryptInfoSigned_class_data_;
#else
extern const CMsgSteamDatagramSessionCryptInfoSignedGlobalsTypeInternal CMsgSteamDatagramSessionCryptInfoSigned_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class CMsgSteamNetworkingICESessionSummary;
struct CMsgSteamNetworkingICESessionSummaryGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern CMsgSteamNetworkingICESessionSummaryGlobalsTypeInternal CMsgSteamNetworkingICESessionSummary_globals_;
extern const ::google::protobuf::internal::ClassDataFull CMsgSteamNetworkingICESessionSummary_class_data_;
#else
extern const CMsgSteamNetworkingICESessionSummaryGlobalsTypeInternal CMsgSteamNetworkingICESessionSummary_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class CMsgSteamNetworkingP2PRendezvous;
struct CMsgSteamNetworkingP2PRendezvousGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern CMsgSteamNetworkingP2PRendezvousGlobalsTypeInternal CMsgSteamNetworkingP2PRendezvous_globals_;
extern const ::google::protobuf::internal::ClassDataFull CMsgSteamNetworkingP2PRendezvous_class_data_;
#else
extern const CMsgSteamNetworkingP2PRendezvousGlobalsTypeInternal CMsgSteamNetworkingP2PRendezvous_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class CMsgSteamNetworkingP2PRendezvous_ApplicationMessage;
struct CMsgSteamNetworkingP2PRendezvous_ApplicationMessageGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern CMsgSteamNetworkingP2PRendezvous_ApplicationMessageGlobalsTypeInternal CMsgSteamNetworkingP2PRendezvous_ApplicationMessage_globals_;
extern const ::google::protobuf::internal::ClassDataFull CMsgSteamNetworkingP2PRendezvous_ApplicationMessage_class_data_;
#else
extern const CMsgSteamNetworkingP2PRendezvous_ApplicationMessageGlobalsTypeInternal CMsgSteamNetworkingP2PRendezvous_ApplicationMessage_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class CMsgSteamNetworkingP2PRendezvous_ConnectOK;
struct CMsgSteamNetworkingP2PRendezvous_ConnectOKGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern CMsgSteamNetworkingP2PRendezvous_ConnectOKGlobalsTypeInternal CMsgSteamNetworkingP2PRendezvous_ConnectOK_globals_;
extern const ::google::protobuf::internal::ClassDataFull CMsgSteamNetworkingP2PRendezvous_ConnectOK_class_data_;
#else
extern const CMsgSteamNetworkingP2PRendezvous_ConnectOKGlobalsTypeInternal CMsgSteamNetworkingP2PRendezvous_ConnectOK_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class CMsgSteamNetworkingP2PRendezvous_ConnectRequest;
struct CMsgSteamNetworkingP2PRendezvous_ConnectRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern CMsgSteamNetworkingP2PRendezvous_ConnectRequestGlobalsTypeInternal CMsgSteamNetworkingP2PRendezvous_ConnectRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull CMsgSteamNetworkingP2PRendezvous_ConnectRequest_class_data_;
#else
extern const CMsgSteamNetworkingP2PRendezvous_ConnectRequestGlobalsTypeInternal CMsgSteamNetworkingP2PRendezvous_ConnectRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class CMsgSteamNetworkingP2PRendezvous_ConnectionClosed;
struct CMsgSteamNetworkingP2PRendezvous_ConnectionClosedGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern CMsgSteamNetworkingP2PRendezvous_ConnectionClosedGlobalsTypeInternal CMsgSteamNetworkingP2PRendezvous_ConnectionClosed_globals_;
extern const ::google::protobuf::internal::ClassDataFull CMsgSteamNetworkingP2PRendezvous_ConnectionClosed_class_data_;
#else
extern const CMsgSteamNetworkingP2PRendezvous_ConnectionClosedGlobalsTypeInternal CMsgSteamNetworkingP2PRendezvous_ConnectionClosed_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class CMsgSteamNetworkingP2PRendezvous_ReliableMessage;
struct CMsgSteamNetworkingP2PRendezvous_ReliableMessageGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern CMsgSteamNetworkingP2PRendezvous_ReliableMessageGlobalsTypeInternal CMsgSteamNetworkingP2PRendezvous_ReliableMessage_globals_;
extern const ::google::protobuf::internal::ClassDataFull CMsgSteamNetworkingP2PRendezvous_ReliableMessage_class_data_;
#else
extern const CMsgSteamNetworkingP2PRendezvous_ReliableMessageGlobalsTypeInternal CMsgSteamNetworkingP2PRendezvous_ReliableMessage_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
namespace google {
namespace protobuf {
template <>
internal::EnumTraitsT<::CMsgSteamDatagramSessionCryptInfo_EKeyType_internal_data_>
    internal::EnumTraitsImpl::value<::CMsgSteamDatagramSessionCryptInfo_EKeyType>;
template <>
internal::EnumTraitsT<::ESteamNetworkingSocketsCipher_internal_data_>
    internal::EnumTraitsImpl::value<::ESteamNetworkingSocketsCipher>;
}  // namespace protobuf
}  // namespace google

enum CMsgSteamDatagramSessionCryptInfo_EKeyType : int {
  CMsgSteamDatagramSessionCryptInfo_EKeyType_INVALID = 0,
  CMsgSteamDatagramSessionCryptInfo_EKeyType_CURVE25519 = 1,
};

extern const uint32_t CMsgSteamDatagramSessionCryptInfo_EKeyType_internal_data_[];
inline constexpr CMsgSteamDatagramSessionCryptInfo_EKeyType CMsgSteamDatagramSessionCryptInfo_EKeyType_EKeyType_MIN =
    static_cast<CMsgSteamDatagramSessionCryptInfo_EKeyType>(0);
inline constexpr CMsgSteamDatagramSessionCryptInfo_EKeyType CMsgSteamDatagramSessionCryptInfo_EKeyType_EKeyType_MAX =
    static_cast<CMsgSteamDatagramSessionCryptInfo_EKeyType>(1);
[[nodiscard]] inline bool CMsgSteamDatagramSessionCryptInfo_EKeyType_IsValid(int value) {
  return 0 <= value && value <= 1;
}
inline constexpr int CMsgSteamDatagramSessionCryptInfo_EKeyType_EKeyType_ARRAYSIZE = 1 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
CMsgSteamDatagramSessionCryptInfo_EKeyType_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(CMsgSteamDatagramSessionCryptInfo_EKeyType) {
  return CMsgSteamDatagramSessionCryptInfo_EKeyType_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& CMsgSteamDatagramSessionCryptInfo_EKeyType_Name(T value) {
  static_assert(::std::is_same<T, CMsgSteamDatagramSessionCryptInfo_EKeyType>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to EKeyType_Name().");
  return CMsgSteamDatagramSessionCryptInfo_EKeyType_Name(static_cast<CMsgSteamDatagramSessionCryptInfo_EKeyType>(value));
}
template <>
[[nodiscard]] inline const ::std::string& CMsgSteamDatagramSessionCryptInfo_EKeyType_Name(CMsgSteamDatagramSessionCryptInfo_EKeyType value) {
  return ::google::protobuf::internal::NameOfDenseEnum<CMsgSteamDatagramSessionCryptInfo_EKeyType_descriptor, 0, 1>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool CMsgSteamDatagramSessionCryptInfo_EKeyType_Parse(
    ::absl::string_view name, CMsgSteamDatagramSessionCryptInfo_EKeyType* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<CMsgSteamDatagramSessionCryptInfo_EKeyType>(CMsgSteamDatagramSessionCryptInfo_EKeyType_descriptor(), name,
                                           value);
}
enum ESteamNetworkingSocketsCipher : int {
  k_ESteamNetworkingSocketsCipher_INVALID = 0,
  k_ESteamNetworkingSocketsCipher_NULL = 1,
  k_ESteamNetworkingSocketsCipher_AES_256_GCM = 2,
  k_ESteamNetworkingSocketsCipher_CHACHA20_POLY1305 = 3,
};

extern const uint32_t ESteamNetworkingSocketsCipher_internal_data_[];
inline constexpr ESteamNetworkingSocketsCipher ESteamNetworkingSocketsCipher_MIN =
    static_cast<ESteamNetworkingSocketsCipher>(0);
inline constexpr ESteamNetworkingSocketsCipher ESteamNetworkingSocketsCipher_MAX =
    static_cast<ESteamNetworkingSocketsCipher>(3);
[[nodiscard]] inline bool ESteamNetworkingSocketsCipher_IsValid(int value) {
  return 0 <= value && value <= 3;
}
inline constexpr int ESteamNetworkingSocketsCipher_ARRAYSIZE = 3 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
ESteamNetworkingSocketsCipher_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(ESteamNetworkingSocketsCipher) {
  return ESteamNetworkingSocketsCipher_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& ESteamNetworkingSocketsCipher_Name(T value) {
  static_assert(::std::is_same<T, ESteamNetworkingSocketsCipher>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to ESteamNetworkingSocketsCipher_Name().");
  return ESteamNetworkingSocketsCipher_Name(static_cast<ESteamNetworkingSocketsCipher>(value));
}
template <>
[[nodiscard]] inline const ::std::string& ESteamNetworkingSocketsCipher_Name(ESteamNetworkingSocketsCipher value) {
  return ::google::protobuf::internal::NameOfDenseEnum<ESteamNetworkingSocketsCipher_descriptor, 0, 3>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool ESteamNetworkingSocketsCipher_Parse(
    ::absl::string_view name, ESteamNetworkingSocketsCipher* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<ESteamNetworkingSocketsCipher>(ESteamNetworkingSocketsCipher_descriptor(), name,
                                           value);
}
using ::google::protobuf::internal::generated_enum::AbslParseFlag;
using ::google::protobuf::internal::generated_enum::AbslUnparseFlag;

// ===================================================================


// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED CMsgSteamNetworkingP2PRendezvous_ConnectionClosed final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:CMsgSteamNetworkingP2PRendezvous.ConnectionClosed) */ {
 public:
  inline CMsgSteamNetworkingP2PRendezvous_ConnectionClosed() : CMsgSteamNetworkingP2PRendezvous_ConnectionClosed(nullptr) {}
  ~CMsgSteamNetworkingP2PRendezvous_ConnectionClosed() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(CMsgSteamNetworkingP2PRendezvous_ConnectionClosed* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(CMsgSteamNetworkingP2PRendezvous_ConnectionClosed));
  }
#endif

  template <typename = void>
  explicit constexpr CMsgSteamNetworkingP2PRendezvous_ConnectionClosed(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline CMsgSteamNetworkingP2PRendezvous_ConnectionClosed(const CMsgSteamNetworkingP2PRendezvous_ConnectionClosed& from) : CMsgSteamNetworkingP2PRendezvous_ConnectionClosed(nullptr, from) {}
  inline CMsgSteamNetworkingP2PRendezvous_ConnectionClosed(CMsgSteamNetworkingP2PRendezvous_ConnectionClosed&& from) noexcept : CMsgSteamNetworkingP2PRendezvous_ConnectionClosed(nullptr, ::std::move(from)) {}
  inline CMsgSteamNetworkingP2PRendezvous_ConnectionClosed& operator=(const CMsgSteamNetworkingP2PRendezvous_ConnectionClosed& from) {
    CopyFrom(from);
    return *this;
  }
  inline CMsgSteamNetworkingP2PRendezvous_ConnectionClosed& operator=(CMsgSteamNetworkingP2PRendezvous_ConnectionClosed&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const CMsgSteamNetworkingP2PRendezvous_ConnectionClosed& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<CMsgSteamNetworkingP2PRendezvous_ConnectionClosed>(&CMsgSteamNetworkingP2PRendezvous_ConnectionClosed_globals_);
  }
  static constexpr int kIndexInFileMessages = 11;
  friend void swap(CMsgSteamNetworkingP2PRendezvous_ConnectionClosed& a, CMsgSteamNetworkingP2PRendezvous_ConnectionClosed& b) { a.Swap(&b); }
  inline void Swap(CMsgSteamNetworkingP2PRendezvous_ConnectionClosed* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CMsgSteamNetworkingP2PRendezvous_ConnectionClosed* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] CMsgSteamNetworkingP2PRendezvous_ConnectionClosed* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<CMsgSteamNetworkingP2PRendezvous_ConnectionClosed>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const CMsgSteamNetworkingP2PRendezvous_ConnectionClosed& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const CMsgSteamNetworkingP2PRendezvous_ConnectionClosed& from) { CMsgSteamNetworkingP2PRendezvous_ConnectionClosed::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(CMsgSteamNetworkingP2PRendezvous_ConnectionClosed* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "CMsgSteamNetworkingP2PRendezvous.ConnectionClosed"; }

  explicit CMsgSteamNetworkingP2PRendezvous_ConnectionClosed(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  CMsgSteamNetworkingP2PRendezvous_ConnectionClosed(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const CMsgSteamNetworkingP2PRendezvous_ConnectionClosed& from);
  CMsgSteamNetworkingP2PRendezvous_ConnectionClosed(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, CMsgSteamNetworkingP2PRendezvous_ConnectionClosed&& from) noexcept
      : CMsgSteamNetworkingP2PRendezvous_ConnectionClosed(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kDebugFieldNumber = 5,
    kReasonCodeFieldNumber = 6,
  };
  // optional string debug = 5;
  [[nodiscard]] bool has_debug()
      const;
  void clear_debug() ;
  [[nodiscard]] const ::std::string& debug() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_debug(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_debug();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_debug();
  void set_allocated_debug(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_debug() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_debug(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_debug();

  public:
  // optional uint32 reason_code = 6;
  [[nodiscard]] bool has_reason_code()
      const;
  void clear_reason_code() ;
  [[nodiscard]] ::uint32_t reason_code() const;
  void set_reason_code(::uint32_t value);

  private:
  ::uint32_t _internal_reason_code() const;
  void _internal_set_reason_code(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:CMsgSteamNetworkingP2PRendezvous.ConnectionClosed)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const CMsgSteamNetworkingP2PRendezvous_ConnectionClosed& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr debug_;
    ::uint32_t reason_code_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_steamnetworkingsockets_5fmessages_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED CMsgSteamNetworkingP2PRendezvous_ApplicationMessage final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:CMsgSteamNetworkingP2PRendezvous.ApplicationMessage) */ {
 public:
  inline CMsgSteamNetworkingP2PRendezvous_ApplicationMessage() : CMsgSteamNetworkingP2PRendezvous_ApplicationMessage(nullptr) {}
  ~CMsgSteamNetworkingP2PRendezvous_ApplicationMessage() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(CMsgSteamNetworkingP2PRendezvous_ApplicationMessage* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(CMsgSteamNetworkingP2PRendezvous_ApplicationMessage));
  }
#endif

  template <typename = void>
  explicit constexpr CMsgSteamNetworkingP2PRendezvous_ApplicationMessage(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline CMsgSteamNetworkingP2PRendezvous_ApplicationMessage(const CMsgSteamNetworkingP2PRendezvous_ApplicationMessage& from) : CMsgSteamNetworkingP2PRendezvous_ApplicationMessage(nullptr, from) {}
  inline CMsgSteamNetworkingP2PRendezvous_ApplicationMessage(CMsgSteamNetworkingP2PRendezvous_ApplicationMessage&& from) noexcept : CMsgSteamNetworkingP2PRendezvous_ApplicationMessage(nullptr, ::std::move(from)) {}
  inline CMsgSteamNetworkingP2PRendezvous_ApplicationMessage& operator=(const CMsgSteamNetworkingP2PRendezvous_ApplicationMessage& from) {
    CopyFrom(from);
    return *this;
  }
  inline CMsgSteamNetworkingP2PRendezvous_ApplicationMessage& operator=(CMsgSteamNetworkingP2PRendezvous_ApplicationMessage&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const CMsgSteamNetworkingP2PRendezvous_ApplicationMessage& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<CMsgSteamNetworkingP2PRendezvous_ApplicationMessage>(&CMsgSteamNetworkingP2PRendezvous_ApplicationMessage_globals_);
  }
  static constexpr int kIndexInFileMessages = 13;
  friend void swap(CMsgSteamNetworkingP2PRendezvous_ApplicationMessage& a, CMsgSteamNetworkingP2PRendezvous_ApplicationMessage& b) { a.Swap(&b); }
  inline void Swap(CMsgSteamNetworkingP2PRendezvous_ApplicationMessage* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CMsgSteamNetworkingP2PRendezvous_ApplicationMessage* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] CMsgSteamNetworkingP2PRendezvous_ApplicationMessage* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<CMsgSteamNetworkingP2PRendezvous_ApplicationMessage>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const CMsgSteamNetworkingP2PRendezvous_ApplicationMessage& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const CMsgSteamNetworkingP2PRendezvous_ApplicationMessage& from) { CMsgSteamNetworkingP2PRendezvous_ApplicationMessage::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(CMsgSteamNetworkingP2PRendezvous_ApplicationMessage* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "CMsgSteamNetworkingP2PRendezvous.ApplicationMessage"; }

  explicit CMsgSteamNetworkingP2PRendezvous_ApplicationMessage(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  CMsgSteamNetworkingP2PRendezvous_ApplicationMessage(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const CMsgSteamNetworkingP2PRendezvous_ApplicationMessage& from);
  CMsgSteamNetworkingP2PRendezvous_ApplicationMessage(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, CMsgSteamNetworkingP2PRendezvous_ApplicationMessage&& from) noexcept
      : CMsgSteamNetworkingP2PRendezvous_ApplicationMessage(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kDataFieldNumber = 1,
    kMsgNumFieldNumber = 2,
    kFlagsFieldNumber = 3,
    kLaneIdxFieldNumber = 4,
  };
  // optional bytes data = 1;
  [[nodiscard]] bool has_data()
      const;
  void clear_data() ;
  [[nodiscard]] const ::std::string& data() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_data(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_data();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_data();
  void set_allocated_data(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_data() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_data(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_data();

  public:
  // optional uint64 msg_num = 2;
  [[nodiscard]] bool has_msg_num()
      const;
  void clear_msg_num() ;
  [[nodiscard]] ::uint64_t msg_num() const;
  void set_msg_num(::uint64_t value);

  private:
  ::uint64_t _internal_msg_num() const;
  void _internal_set_msg_num(::uint64_t value);

  public:
  // optional uint32 flags = 3;
  [[nodiscard]] bool has_flags()
      const;
  void clear_flags() ;
  [[nodiscard]] ::uint32_t flags() const;
  void set_flags(::uint32_t value);

  private:
  ::uint32_t _internal_flags() const;
  void _internal_set_flags(::uint32_t value);

  public:
  // optional uint32 lane_idx = 4;
  [[nodiscard]] bool has_lane_idx()
      const;
  void clear_lane_idx() ;
  [[nodiscard]] ::uint32_t lane_idx() const;
  void set_lane_idx(::uint32_t value);

  private:
  ::uint32_t _internal_lane_idx() const;
  void _internal_set_lane_idx(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:CMsgSteamNetworkingP2PRendezvous.ApplicationMessage)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 4,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const CMsgSteamNetworkingP2PRendezvous_ApplicationMessage& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr data_;
    ::uint64_t msg_num_;
    ::uint32_t flags_;
    ::uint32_t lane_idx_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_steamnetworkingsockets_5fmessages_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED CMsgSteamNetworkingICESessionSummary final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:CMsgSteamNetworkingICESessionSummary) */ {
 public:
  inline CMsgSteamNetworkingICESessionSummary() : CMsgSteamNetworkingICESessionSummary(nullptr) {}
  ~CMsgSteamNetworkingICESessionSummary() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(CMsgSteamNetworkingICESessionSummary* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(CMsgSteamNetworkingICESessionSummary));
  }
#endif

  template <typename = void>
  explicit constexpr CMsgSteamNetworkingICESessionSummary(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline CMsgSteamNetworkingICESessionSummary(const CMsgSteamNetworkingICESessionSummary& from) : CMsgSteamNetworkingICESessionSummary(nullptr, from) {}
  inline CMsgSteamNetworkingICESessionSummary(CMsgSteamNetworkingICESessionSummary&& from) noexcept : CMsgSteamNetworkingICESessionSummary(nullptr, ::std::move(from)) {}
  inline CMsgSteamNetworkingICESessionSummary& operator=(const CMsgSteamNetworkingICESessionSummary& from) {
    CopyFrom(from);
    return *this;
  }
  inline CMsgSteamNetworkingICESessionSummary& operator=(CMsgSteamNetworkingICESessionSummary&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const CMsgSteamNetworkingICESessionSummary& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<CMsgSteamNetworkingICESessionSummary>(&CMsgSteamNetworkingICESessionSummary_globals_);
  }
  static constexpr int kIndexInFileMessages = 15;
  friend void swap(CMsgSteamNetworkingICESessionSummary& a, CMsgSteamNetworkingICESessionSummary& b) { a.Swap(&b); }
  inline void Swap(CMsgSteamNetworkingICESessionSummary* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CMsgSteamNetworkingICESessionSummary* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] CMsgSteamNetworkingICESessionSummary* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<CMsgSteamNetworkingICESessionSummary>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const CMsgSteamNetworkingICESessionSummary& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const CMsgSteamNetworkingICESessionSummary& from) { CMsgSteamNetworkingICESessionSummary::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(CMsgSteamNetworkingICESessionSummary* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "CMsgSteamNetworkingICESessionSummary"; }

  explicit CMsgSteamNetworkingICESessionSummary(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  CMsgSteamNetworkingICESessionSummary(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const CMsgSteamNetworkingICESessionSummary& from);
  CMsgSteamNetworkingICESessionSummary(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, CMsgSteamNetworkingICESessionSummary&& from) noexcept
      : CMsgSteamNetworkingICESessionSummary(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kLocalCandidateTypesFieldNumber = 1,
    kRemoteCandidateTypesFieldNumber = 2,
    kInitialRouteKindFieldNumber = 3,
    kInitialPingFieldNumber = 4,
    kNegotiationMsFieldNumber = 5,
    kInitialScoreFieldNumber = 6,
    kFailureReasonCodeFieldNumber = 7,
    kSelectedSecondsFieldNumber = 12,
    kUserSettingsFieldNumber = 13,
    kIceEnableVarFieldNumber = 14,
    kLocalCandidateTypesAllowedFieldNumber = 15,
    kBestRouteKindFieldNumber = 16,
    kBestPingFieldNumber = 17,
    kBestScoreFieldNumber = 18,
    kBestTimeFieldNumber = 19,
  };
  // optional uint32 local_candidate_types = 1;
  [[nodiscard]] bool has_local_candidate_types()
      const;
  void clear_local_candidate_types() ;
  [[nodiscard]] ::uint32_t local_candidate_types() const;
  void set_local_candidate_types(::uint32_t value);

  private:
  ::uint32_t _internal_local_candidate_types() const;
  void _internal_set_local_candidate_types(::uint32_t value);

  public:
  // optional uint32 remote_candidate_types = 2;
  [[nodiscard]] bool has_remote_candidate_types()
      const;
  void clear_remote_candidate_types() ;
  [[nodiscard]] ::uint32_t remote_candidate_types() const;
  void set_remote_candidate_types(::uint32_t value);

  private:
  ::uint32_t _internal_remote_candidate_types() const;
  void _internal_set_remote_candidate_types(::uint32_t value);

  public:
  // optional uint32 initial_route_kind = 3;
  [[nodiscard]] bool has_initial_route_kind()
      const;
  void clear_initial_route_kind() ;
  [[nodiscard]] ::uint32_t initial_route_kind() const;
  void set_initial_route_kind(::uint32_t value);

  private:
  ::uint32_t _internal_initial_route_kind() const;
  void _internal_set_initial_route_kind(::uint32_t value);

  public:
  // optional uint32 initial_ping = 4;
  [[nodiscard]] bool has_initial_ping()
      const;
  void clear_initial_ping() ;
  [[nodiscard]] ::uint32_t initial_ping() const;
  void set_initial_ping(::uint32_t value);

  private:
  ::uint32_t _internal_initial_ping() const;
  void _internal_set_initial_ping(::uint32_t value);

  public:
  // optional uint32 negotiation_ms = 5;
  [[nodiscard]] bool has_negotiation_ms()
      const;
  void clear_negotiation_ms() ;
  [[nodiscard]] ::uint32_t negotiation_ms() const;
  void set_negotiation_ms(::uint32_t value);

  private:
  ::uint32_t _internal_negotiation_ms() const;
  void _internal_set_negotiation_ms(::uint32_t value);

  public:
  // optional uint32 initial_score = 6;
  [[nodiscard]] bool has_initial_score()
      const;
  void clear_initial_score() ;
  [[nodiscard]] ::uint32_t initial_score() const;
  void set_initial_score(::uint32_t value);

  private:
  ::uint32_t _internal_initial_score() const;
  void _internal_set_initial_score(::uint32_t value);

  public:
  // optional uint32 failure_reason_code = 7;
  [[nodiscard]] bool has_failure_reason_code()
      const;
  void clear_failure_reason_code() ;
  [[nodiscard]] ::uint32_t failure_reason_code() const;
  void set_failure_reason_code(::uint32_t value);

  private:
  ::uint32_t _internal_failure_reason_code() const;
  void _internal_set_failure_reason_code(::uint32_t value);

  public:
  // optional uint32 selected_seconds = 12;
  [[nodiscard]] bool has_selected_seconds()
      const;
  void clear_selected_seconds() ;
  [[nodiscard]] ::uint32_t selected_seconds() const;
  void set_selected_seconds(::uint32_t value);

  private:
  ::uint32_t _internal_selected_seconds() const;
  void _internal_set_selected_seconds(::uint32_t value);

  public:
  // optional uint32 user_settings = 13;
  [[nodiscard]] bool has_user_settings()
      const;
  void clear_user_settings() ;
  [[nodiscard]] ::uint32_t user_settings() const;
  void set_user_settings(::uint32_t value);

  private:
  ::uint32_t _internal_user_settings() const;
  void _internal_set_user_settings(::uint32_t value);

  public:
  // optional uint32 ice_enable_var = 14;
  [[nodiscard]] bool has_ice_enable_var()
      const;
  void clear_ice_enable_var() ;
  [[nodiscard]] ::uint32_t ice_enable_var() const;
  void set_ice_enable_var(::uint32_t value);

  private:
  ::uint32_t _internal_ice_enable_var() const;
  void _internal_set_ice_enable_var(::uint32_t value);

  public:
  // optional uint32 local_candidate_types_allowed = 15;
  [[nodiscard]] bool has_local_candidate_types_allowed()
      const;
  void clear_local_candidate_types_allowed() ;
  [[nodiscard]] ::uint32_t local_candidate_types_allowed() const;
  void set_local_candidate_types_allowed(::uint32_t value);

  private:
  ::uint32_t _internal_local_candidate_types_allowed() const;
  void _internal_set_local_candidate_types_allowed(::uint32_t value);

  public:
  // optional uint32 best_route_kind = 16;
  [[nodiscard]] bool has_best_route_kind()
      const;
  void clear_best_route_kind() ;
  [[nodiscard]] ::uint32_t best_route_kind() const;
  void set_best_route_kind(::uint32_t value);

  private:
  ::uint32_t _internal_best_route_kind() const;
  void _internal_set_best_route_kind(::uint32_t value);

  public:
  // optional uint32 best_ping = 17;
  [[nodiscard]] bool has_best_ping()
      const;
  void clear_best_ping() ;
  [[nodiscard]] ::uint32_t best_ping() const;
  void set_best_ping(::uint32_t value);

  private:
  ::uint32_t _internal_best_ping() const;
  void _internal_set_best_ping(::uint32_t value);

  public:
  // optional uint32 best_score = 18;
  [[nodiscard]] bool has_best_score()
      const;
  void clear_best_score() ;
  [[nodiscard]] ::uint32_t best_score() const;
  void set_best_score(::uint32_t value);

  private:
  ::uint32_t _internal_best_score() const;
  void _internal_set_best_score(::uint32_t value);

  public:
  // optional uint32 best_time = 19;
  [[nodiscard]] bool has_best_time()
      const;
  void clear_best_time() ;
  [[nodiscard]] ::uint32_t best_time() const;
  void set_best_time(::uint32_t value);

  private:
  ::uint32_t _internal_best_time() const;
  void _internal_set_best_time(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:CMsgSteamNetworkingICESessionSummary)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<4, 15,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const CMsgSteamNetworkingICESessionSummary& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::uint32_t local_candidate_types_;
    ::uint32_t remote_candidate_types_;
    ::uint32_t initial_route_kind_;
    ::uint32_t initial_ping_;
    ::uint32_t negotiation_ms_;
    ::uint32_t initial_score_;
    ::uint32_t failure_reason_code_;
    ::uint32_t selected_seconds_;
    ::uint32_t user_settings_;
    ::uint32_t ice_enable_var_;
    ::uint32_t local_candidate_types_allowed_;
    ::uint32_t best_route_kind_;
    ::uint32_t best_ping_;
    ::uint32_t best_score_;
    ::uint32_t best_time_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_steamnetworkingsockets_5fmessages_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED CMsgSteamDatagramSessionCryptInfoSigned final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:CMsgSteamDatagramSessionCryptInfoSigned) */ {
 public:
  inline CMsgSteamDatagramSessionCryptInfoSigned() : CMsgSteamDatagramSessionCryptInfoSigned(nullptr) {}
  ~CMsgSteamDatagramSessionCryptInfoSigned() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(CMsgSteamDatagramSessionCryptInfoSigned* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(CMsgSteamDatagramSessionCryptInfoSigned));
  }
#endif

  template <typename = void>
  explicit constexpr CMsgSteamDatagramSessionCryptInfoSigned(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline CMsgSteamDatagramSessionCryptInfoSigned(const CMsgSteamDatagramSessionCryptInfoSigned& from) : CMsgSteamDatagramSessionCryptInfoSigned(nullptr, from) {}
  inline CMsgSteamDatagramSessionCryptInfoSigned(CMsgSteamDatagramSessionCryptInfoSigned&& from) noexcept : CMsgSteamDatagramSessionCryptInfoSigned(nullptr, ::std::move(from)) {}
  inline CMsgSteamDatagramSessionCryptInfoSigned& operator=(const CMsgSteamDatagramSessionCryptInfoSigned& from) {
    CopyFrom(from);
    return *this;
  }
  inline CMsgSteamDatagramSessionCryptInfoSigned& operator=(CMsgSteamDatagramSessionCryptInfoSigned&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const CMsgSteamDatagramSessionCryptInfoSigned& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<CMsgSteamDatagramSessionCryptInfoSigned>(&CMsgSteamDatagramSessionCryptInfoSigned_globals_);
  }
  static constexpr int kIndexInFileMessages = 1;
  friend void swap(CMsgSteamDatagramSessionCryptInfoSigned& a, CMsgSteamDatagramSessionCryptInfoSigned& b) { a.Swap(&b); }
  inline void Swap(CMsgSteamDatagramSessionCryptInfoSigned* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CMsgSteamDatagramSessionCryptInfoSigned* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] CMsgSteamDatagramSessionCryptInfoSigned* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<CMsgSteamDatagramSessionCryptInfoSigned>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const CMsgSteamDatagramSessionCryptInfoSigned& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const CMsgSteamDatagramSessionCryptInfoSigned& from) { CMsgSteamDatagramSessionCryptInfoSigned::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(CMsgSteamDatagramSessionCryptInfoSigned* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "CMsgSteamDatagramSessionCryptInfoSigned"; }

  explicit CMsgSteamDatagramSessionCryptInfoSigned(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  CMsgSteamDatagramSessionCryptInfoSigned(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const CMsgSteamDatagramSessionCryptInfoSigned& from);
  CMsgSteamDatagramSessionCryptInfoSigned(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, CMsgSteamDatagramSessionCryptInfoSigned&& from) noexcept
      : CMsgSteamDatagramSessionCryptInfoSigned(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kInfoFieldNumber = 1,
    kSignatureFieldNumber = 2,
  };
  // optional bytes info = 1;
  [[nodiscard]] bool has_info()
      const;
  void clear_info() ;
  [[nodiscard]] const ::std::string& info() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_info(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_info();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_info();
  void set_allocated_info(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_info() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_info(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_info();

  public:
  // optional bytes signature = 2;
  [[nodiscard]] bool has_signature()
      const;
  void clear_signature() ;
  [[nodiscard]] const ::std::string& signature() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_signature(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_signature();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_signature();
  void set_allocated_signature(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_signature() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_signature(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_signature();

  public:
  // @@protoc_insertion_point(class_scope:CMsgSteamDatagramSessionCryptInfoSigned)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const CMsgSteamDatagramSessionCryptInfoSigned& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr info_;
    ::google::protobuf::internal::ArenaStringPtr signature_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_steamnetworkingsockets_5fmessages_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED CMsgSteamDatagramSessionCryptInfo final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:CMsgSteamDatagramSessionCryptInfo) */ {
 public:
  inline CMsgSteamDatagramSessionCryptInfo() : CMsgSteamDatagramSessionCryptInfo(nullptr) {}
  ~CMsgSteamDatagramSessionCryptInfo() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(CMsgSteamDatagramSessionCryptInfo* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(CMsgSteamDatagramSessionCryptInfo));
  }
#endif

  template <typename = void>
  explicit constexpr CMsgSteamDatagramSessionCryptInfo(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline CMsgSteamDatagramSessionCryptInfo(const CMsgSteamDatagramSessionCryptInfo& from) : CMsgSteamDatagramSessionCryptInfo(nullptr, from) {}
  inline CMsgSteamDatagramSessionCryptInfo(CMsgSteamDatagramSessionCryptInfo&& from) noexcept : CMsgSteamDatagramSessionCryptInfo(nullptr, ::std::move(from)) {}
  inline CMsgSteamDatagramSessionCryptInfo& operator=(const CMsgSteamDatagramSessionCryptInfo& from) {
    CopyFrom(from);
    return *this;
  }
  inline CMsgSteamDatagramSessionCryptInfo& operator=(CMsgSteamDatagramSessionCryptInfo&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const CMsgSteamDatagramSessionCryptInfo& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<CMsgSteamDatagramSessionCryptInfo>(&CMsgSteamDatagramSessionCryptInfo_globals_);
  }
  static constexpr int kIndexInFileMessages = 0;
  friend void swap(CMsgSteamDatagramSessionCryptInfo& a, CMsgSteamDatagramSessionCryptInfo& b) { a.Swap(&b); }
  inline void Swap(CMsgSteamDatagramSessionCryptInfo* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CMsgSteamDatagramSessionCryptInfo* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] CMsgSteamDatagramSessionCryptInfo* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<CMsgSteamDatagramSessionCryptInfo>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const CMsgSteamDatagramSessionCryptInfo& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const CMsgSteamDatagramSessionCryptInfo& from) { CMsgSteamDatagramSessionCryptInfo::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(CMsgSteamDatagramSessionCryptInfo* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "CMsgSteamDatagramSessionCryptInfo"; }

  explicit CMsgSteamDatagramSessionCryptInfo(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  CMsgSteamDatagramSessionCryptInfo(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const CMsgSteamDatagramSessionCryptInfo& from);
  CMsgSteamDatagramSessionCryptInfo(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, CMsgSteamDatagramSessionCryptInfo&& from) noexcept
      : CMsgSteamDatagramSessionCryptInfo(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using EKeyType = CMsgSteamDatagramSessionCryptInfo_EKeyType;
  static constexpr EKeyType INVALID = CMsgSteamDatagramSessionCryptInfo_EKeyType_INVALID;
  static constexpr EKeyType CURVE25519 = CMsgSteamDatagramSessionCryptInfo_EKeyType_CURVE25519;
  [[nodiscard]] static inline bool EKeyType_IsValid(int value) {
    return CMsgSteamDatagramSessionCryptInfo_EKeyType_IsValid(value);
  }
  static constexpr EKeyType EKeyType_MIN = CMsgSteamDatagramSessionCryptInfo_EKeyType_EKeyType_MIN;
  static constexpr EKeyType EKeyType_MAX = CMsgSteamDatagramSessionCryptInfo_EKeyType_EKeyType_MAX;
  static constexpr int EKeyType_ARRAYSIZE = CMsgSteamDatagramSessionCryptInfo_EKeyType_EKeyType_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL EKeyType_descriptor() {
    return CMsgSteamDatagramSessionCryptInfo_EKeyType_descriptor();
  }
  template <typename T>
  [[nodiscard]] static inline const ::std::string& EKeyType_Name(T value) {
    return CMsgSteamDatagramSessionCryptInfo_EKeyType_Name(value);
  }
  [[nodiscard]] static inline bool EKeyType_Parse(
      ::absl::string_view name, EKeyType* PROTOBUF_NONNULL value) {
    return CMsgSteamDatagramSessionCryptInfo_EKeyType_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kCiphersFieldNumber = 5,
    kKeyDataFieldNumber = 2,
    kKeyTypeFieldNumber = 1,
    kProtocolVersionFieldNumber = 4,
    kNonceFieldNumber = 3,
  };
  // repeated .ESteamNetworkingSocketsCipher ciphers = 5;
  [[nodiscard]] int ciphers_size()
      const;
  private:
  int _internal_ciphers_size() const;

  public:
  void clear_ciphers() ;
  public:
  [[nodiscard]] ::ESteamNetworkingSocketsCipher ciphers(int index) const;
  void set_ciphers(int index, ::ESteamNetworkingSocketsCipher value);
  void add_ciphers(::ESteamNetworkingSocketsCipher value);
  [[nodiscard]] const ::google::protobuf::RepeatedField<int>& ciphers()
      const;
  [[nodiscard]] ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL mutable_ciphers();

  private:
  const ::google::protobuf::RepeatedField<int>& _internal_ciphers() const;
  ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL _internal_mutable_ciphers();

  public:
  // optional bytes key_data = 2;
  [[nodiscard]] bool has_key_data()
      const;
  void clear_key_data() ;
  [[nodiscard]] const ::std::string& key_data() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_key_data(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_key_data();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_key_data();
  void set_allocated_key_data(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_key_data() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_key_data(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_key_data();

  public:
  // optional .CMsgSteamDatagramSessionCryptInfo.EKeyType key_type = 1;
  [[nodiscard]] bool has_key_type()
      const;
  void clear_key_type() ;
  [[nodiscard]] ::CMsgSteamDatagramSessionCryptInfo_EKeyType key_type() const;
  void set_key_type(::CMsgSteamDatagramSessionCryptInfo_EKeyType value);

  private:
  ::CMsgSteamDatagramSessionCryptInfo_EKeyType _internal_key_type() const;
  void _internal_set_key_type(::CMsgSteamDatagramSessionCryptInfo_EKeyType value);

  public:
  // optional uint32 protocol_version = 4;
  [[nodiscard]] bool has_protocol_version()
      const;
  void clear_protocol_version() ;
  [[nodiscard]] ::uint32_t protocol_version() const;
  void set_protocol_version(::uint32_t value);

  private:
  ::uint32_t _internal_protocol_version() const;
  void _internal_set_protocol_version(::uint32_t value);

  public:
  // optional fixed64 nonce = 3;
  [[nodiscard]] bool has_nonce()
      const;
  void clear_nonce() ;
  [[nodiscard]] ::uint64_t nonce() const;
  void set_nonce(::uint64_t value);

  private:
  ::uint64_t _internal_nonce() const;
  void _internal_set_nonce(::uint64_t value);

  public:
  // @@protoc_insertion_point(class_scope:CMsgSteamDatagramSessionCryptInfo)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 5,
                          2, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const CMsgSteamDatagramSessionCryptInfo& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedField<int> ciphers_;
    ::google::protobuf::internal::ArenaStringPtr key_data_;
    int key_type_;
    ::uint32_t protocol_version_;
    ::uint64_t nonce_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_steamnetworkingsockets_5fmessages_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED CMsgSteamDatagramLinkLifetimeStats final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:CMsgSteamDatagramLinkLifetimeStats) */ {
 public:
  inline CMsgSteamDatagramLinkLifetimeStats() : CMsgSteamDatagramLinkLifetimeStats(nullptr) {}
  ~CMsgSteamDatagramLinkLifetimeStats() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(CMsgSteamDatagramLinkLifetimeStats* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(CMsgSteamDatagramLinkLifetimeStats));
  }
#endif

  template <typename = void>
  explicit constexpr CMsgSteamDatagramLinkLifetimeStats(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline CMsgSteamDatagramLinkLifetimeStats(const CMsgSteamDatagramLinkLifetimeStats& from) : CMsgSteamDatagramLinkLifetimeStats(nullptr, from) {}
  inline CMsgSteamDatagramLinkLifetimeStats(CMsgSteamDatagramLinkLifetimeStats&& from) noexcept : CMsgSteamDatagramLinkLifetimeStats(nullptr, ::std::move(from)) {}
  inline CMsgSteamDatagramLinkLifetimeStats& operator=(const CMsgSteamDatagramLinkLifetimeStats& from) {
    CopyFrom(from);
    return *this;
  }
  inline CMsgSteamDatagramLinkLifetimeStats& operator=(CMsgSteamDatagramLinkLifetimeStats&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const CMsgSteamDatagramLinkLifetimeStats& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<CMsgSteamDatagramLinkLifetimeStats>(&CMsgSteamDatagramLinkLifetimeStats_globals_);
  }
  static constexpr int kIndexInFileMessages = 4;
  friend void swap(CMsgSteamDatagramLinkLifetimeStats& a, CMsgSteamDatagramLinkLifetimeStats& b) { a.Swap(&b); }
  inline void Swap(CMsgSteamDatagramLinkLifetimeStats* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CMsgSteamDatagramLinkLifetimeStats* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] CMsgSteamDatagramLinkLifetimeStats* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<CMsgSteamDatagramLinkLifetimeStats>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const CMsgSteamDatagramLinkLifetimeStats& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const CMsgSteamDatagramLinkLifetimeStats& from) { CMsgSteamDatagramLinkLifetimeStats::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(CMsgSteamDatagramLinkLifetimeStats* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "CMsgSteamDatagramLinkLifetimeStats"; }

  explicit CMsgSteamDatagramLinkLifetimeStats(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  CMsgSteamDatagramLinkLifetimeStats(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const CMsgSteamDatagramLinkLifetimeStats& from);
  CMsgSteamDatagramLinkLifetimeStats(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, CMsgSteamDatagramLinkLifetimeStats&& from) noexcept
      : CMsgSteamDatagramLinkLifetimeStats(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kMultipathPacketsRecvSequencedFieldNumber = 12,
    kMultipathPacketsRecvLaterFieldNumber = 13,
    kPacketsSentFieldNumber = 3,
    kKbSentFieldNumber = 4,
    kPacketsRecvFieldNumber = 5,
    kKbRecvFieldNumber = 6,
    kPacketsRecvSequencedFieldNumber = 7,
    kPacketsRecvDroppedFieldNumber = 8,
    kConnectedSecondsFieldNumber = 2,
    kMultipathSendEnabledFieldNumber = 14,
    kPacketsRecvOutOfOrderFieldNumber = 9,
    kPacketsRecvDuplicateFieldNumber = 10,
    kPacketsRecvLurchFieldNumber = 11,
    kPacketsRecvOutOfOrderCorrectedFieldNumber = 15,
    kQualityHistogram100FieldNumber = 21,
    kQualityHistogram99FieldNumber = 22,
    kQualityHistogram97FieldNumber = 23,
    kQualityHistogram95FieldNumber = 24,
    kQualityHistogram90FieldNumber = 25,
    kQualityHistogram75FieldNumber = 26,
    kQualityHistogram50FieldNumber = 27,
    kQualityHistogram1FieldNumber = 28,
    kQualityHistogramDeadFieldNumber = 29,
    kQualityNtile2NdFieldNumber = 30,
    kQualityNtile5ThFieldNumber = 31,
    kQualityNtile25ThFieldNumber = 32,
    kQualityNtile50ThFieldNumber = 33,
    kPingNtile5ThFieldNumber = 50,
    kPingNtile50ThFieldNumber = 51,
    kPingNtile75ThFieldNumber = 52,
    kPingHistogram25FieldNumber = 41,
    kPingHistogram50FieldNumber = 42,
    kPingHistogram75FieldNumber = 43,
    kPingHistogram100FieldNumber = 44,
    kPingHistogram125FieldNumber = 45,
    kPingHistogram150FieldNumber = 46,
    kPingHistogram200FieldNumber = 47,
    kPingHistogram300FieldNumber = 48,
    kPingHistogramMaxFieldNumber = 49,
    kPingNtile95ThFieldNumber = 53,
    kPingNtile98ThFieldNumber = 54,
    kJitterHistogramNegligibleFieldNumber = 61,
    kJitterHistogram1FieldNumber = 62,
    kJitterHistogram2FieldNumber = 63,
    kJitterHistogram5FieldNumber = 64,
    kJitterHistogram10FieldNumber = 65,
    kJitterHistogram20FieldNumber = 66,
  };
  // repeated uint64 multipath_packets_recv_sequenced = 12;
  [[nodiscard]] int multipath_packets_recv_sequenced_size()
      const;
  private:
  int _internal_multipath_packets_recv_sequenced_size() const;

  public:
  void clear_multipath_packets_recv_sequenced() ;
  [[nodiscard]] ::uint64_t multipath_packets_recv_sequenced(int index) const;
  void set_multipath_packets_recv_sequenced(int index, ::uint64_t value);
  void add_multipath_packets_recv_sequenced(::uint64_t value);
  [[nodiscard]] const ::google::protobuf::RepeatedField<::uint64_t>& multipath_packets_recv_sequenced()
      const;
  ::google::protobuf::RepeatedField<::uint64_t>* PROTOBUF_NONNULL mutable_multipath_packets_recv_sequenced();

  private:
  const ::google::protobuf::RepeatedField<::uint64_t>& _internal_multipath_packets_recv_sequenced() const;
  ::google::protobuf::RepeatedField<::uint64_t>* PROTOBUF_NONNULL _internal_mutable_multipath_packets_recv_sequenced();

  public:
  // repeated uint64 multipath_packets_recv_later = 13;
  [[nodiscard]] int multipath_packets_recv_later_size()
      const;
  private:
  int _internal_multipath_packets_recv_later_size() const;

  public:
  void clear_multipath_packets_recv_later() ;
  [[nodiscard]] ::uint64_t multipath_packets_recv_later(int index) const;
  void set_multipath_packets_recv_later(int index, ::uint64_t value);
  void add_multipath_packets_recv_later(::uint64_t value);
  [[nodiscard]] const ::google::protobuf::RepeatedField<::uint64_t>& multipath_packets_recv_later()
      const;
  ::google::protobuf::RepeatedField<::uint64_t>* PROTOBUF_NONNULL mutable_multipath_packets_recv_later();

  private:
  const ::google::protobuf::RepeatedField<::uint64_t>& _internal_multipath_packets_recv_later() const;
  ::google::protobuf::RepeatedField<::uint64_t>* PROTOBUF_NONNULL _internal_mutable_multipath_packets_recv_later();

  public:
  // optional uint64 packets_sent = 3;
  [[nodiscard]] bool has_packets_sent()
      const;
  void clear_packets_sent() ;
  [[nodiscard]] ::uint64_t packets_sent() const;
  void set_packets_sent(::uint64_t value);

  private:
  ::uint64_t _internal_packets_sent() const;
  void _internal_set_packets_sent(::uint64_t value);

  public:
  // optional uint64 kb_sent = 4;
  [[nodiscard]] bool has_kb_sent()
      const;
  void clear_kb_sent() ;
  [[nodiscard]] ::uint64_t kb_sent() const;
  void set_kb_sent(::uint64_t value);

  private:
  ::uint64_t _internal_kb_sent() const;
  void _internal_set_kb_sent(::uint64_t value);

  public:
  // optional uint64 packets_recv = 5;
  [[nodiscard]] bool has_packets_recv()
      const;
  void clear_packets_recv() ;
  [[nodiscard]] ::uint64_t packets_recv() const;
  void set_packets_recv(::uint64_t value);

  private:
  ::uint64_t _internal_packets_recv() const;
  void _internal_set_packets_recv(::uint64_t value);

  public:
  // optional uint64 kb_recv = 6;
  [[nodiscard]] bool has_kb_recv()
      const;
  void clear_kb_recv() ;
  [[nodiscard]] ::uint64_t kb_recv() const;
  void set_kb_recv(::uint64_t value);

  private:
  ::uint64_t _internal_kb_recv() const;
  void _internal_set_kb_recv(::uint64_t value);

  public:
  // optional uint64 packets_recv_sequenced = 7;
  [[nodiscard]] bool has_packets_recv_sequenced()
      const;
  void clear_packets_recv_sequenced() ;
  [[nodiscard]] ::uint64_t packets_recv_sequenced() const;
  void set_packets_recv_sequenced(::uint64_t value);

  private:
  ::uint64_t _internal_packets_recv_sequenced() const;
  void _internal_set_packets_recv_sequenced(::uint64_t value);

  public:
  // optional uint64 packets_recv_dropped = 8;
  [[nodiscard]] bool has_packets_recv_dropped()
      const;
  void clear_packets_recv_dropped() ;
  [[nodiscard]] ::uint64_t packets_recv_dropped() const;
  void set_packets_recv_dropped(::uint64_t value);

  private:
  ::uint64_t _internal_packets_recv_dropped() const;
  void _internal_set_packets_recv_dropped(::uint64_t value);

  public:
  // optional uint32 connected_seconds = 2;
  [[nodiscard]] bool has_connected_seconds()
      const;
  void clear_connected_seconds() ;
  [[nodiscard]] ::uint32_t connected_seconds() const;
  void set_connected_seconds(::uint32_t value);

  private:
  ::uint32_t _internal_connected_seconds() const;
  void _internal_set_connected_seconds(::uint32_t value);

  public:
  // optional uint32 multipath_send_enabled = 14;
  [[nodiscard]] bool has_multipath_send_enabled()
      const;
  void clear_multipath_send_enabled() ;
  [[nodiscard]] ::uint32_t multipath_send_enabled() const;
  void set_multipath_send_enabled(::uint32_t value);

  private:
  ::uint32_t _internal_multipath_send_enabled() const;
  void _internal_set_multipath_send_enabled(::uint32_t value);

  public:
  // optional uint64 packets_recv_out_of_order = 9;
  [[nodiscard]] bool has_packets_recv_out_of_order()
      const;
  void clear_packets_recv_out_of_order() ;
  [[nodiscard]] ::uint64_t packets_recv_out_of_order() const;
  void set_packets_recv_out_of_order(::uint64_t value);

  private:
  ::uint64_t _internal_packets_recv_out_of_order() const;
  void _internal_set_packets_recv_out_of_order(::uint64_t value);

  public:
  // optional uint64 packets_recv_duplicate = 10;
  [[nodiscard]] bool has_packets_recv_duplicate()
      const;
  void clear_packets_recv_duplicate() ;
  [[nodiscard]] ::uint64_t packets_recv_duplicate() const;
  void set_packets_recv_duplicate(::uint64_t value);

  private:
  ::uint64_t _internal_packets_recv_duplicate() const;
  void _internal_set_packets_recv_duplicate(::uint64_t value);

  public:
  // optional uint64 packets_recv_lurch = 11;
  [[nodiscard]] bool has_packets_recv_lurch()
      const;
  void clear_packets_recv_lurch() ;
  [[nodiscard]] ::uint64_t packets_recv_lurch() const;
  void set_packets_recv_lurch(::uint64_t value);

  private:
  ::uint64_t _internal_packets_recv_lurch() const;
  void _internal_set_packets_recv_lurch(::uint64_t value);

  public:
  // optional uint64 packets_recv_out_of_order_corrected = 15;
  [[nodiscard]] bool has_packets_recv_out_of_order_corrected()
      const;
  void clear_packets_recv_out_of_order_corrected() ;
  [[nodiscard]] ::uint64_t packets_recv_out_of_order_corrected() const;
  void set_packets_recv_out_of_order_corrected(::uint64_t value);

  private:
  ::uint64_t _internal_packets_recv_out_of_order_corrected() const;
  void _internal_set_packets_recv_out_of_order_corrected(::uint64_t value);

  public:
  // optional uint32 quality_histogram_100 = 21;
  [[nodiscard]] bool has_quality_histogram_100()
      const;
  void clear_quality_histogram_100() ;
  [[nodiscard]] ::uint32_t quality_histogram_100() const;
  void set_quality_histogram_100(::uint32_t value);

  private:
  ::uint32_t _internal_quality_histogram_100() const;
  void _internal_set_quality_histogram_100(::uint32_t value);

  public:
  // optional uint32 quality_histogram_99 = 22;
  [[nodiscard]] bool has_quality_histogram_99()
      const;
  void clear_quality_histogram_99() ;
  [[nodiscard]] ::uint32_t quality_histogram_99() const;
  void set_quality_histogram_99(::uint32_t value);

  private:
  ::uint32_t _internal_quality_histogram_99() const;
  void _internal_set_quality_histogram_99(::uint32_t value);

  public:
  // optional uint32 quality_histogram_97 = 23;
  [[nodiscard]] bool has_quality_histogram_97()
      const;
  void clear_quality_histogram_97() ;
  [[nodiscard]] ::uint32_t quality_histogram_97() const;
  void set_quality_histogram_97(::uint32_t value);

  private:
  ::uint32_t _internal_quality_histogram_97() const;
  void _internal_set_quality_histogram_97(::uint32_t value);

  public:
  // optional uint32 quality_histogram_95 = 24;
  [[nodiscard]] bool has_quality_histogram_95()
      const;
  void clear_quality_histogram_95() ;
  [[nodiscard]] ::uint32_t quality_histogram_95() const;
  void set_quality_histogram_95(::uint32_t value);

  private:
  ::uint32_t _internal_quality_histogram_95() const;
  void _internal_set_quality_histogram_95(::uint32_t value);

  public:
  // optional uint32 quality_histogram_90 = 25;
  [[nodiscard]] bool has_quality_histogram_90()
      const;
  void clear_quality_histogram_90() ;
  [[nodiscard]] ::uint32_t quality_histogram_90() const;
  void set_quality_histogram_90(::uint32_t value);

  private:
  ::uint32_t _internal_quality_histogram_90() const;
  void _internal_set_quality_histogram_90(::uint32_t value);

  public:
  // optional uint32 quality_histogram_75 = 26;
  [[nodiscard]] bool has_quality_histogram_75()
      const;
  void clear_quality_histogram_75() ;
  [[nodiscard]] ::uint32_t quality_histogram_75() const;
  void set_quality_histogram_75(::uint32_t value);

  private:
  ::uint32_t _internal_quality_histogram_75() const;
  void _internal_set_quality_histogram_75(::uint32_t value);

  public:
  // optional uint32 quality_histogram_50 = 27;
  [[nodiscard]] bool has_quality_histogram_50()
      const;
  void clear_quality_histogram_50() ;
  [[nodiscard]] ::uint32_t quality_histogram_50() const;
  void set_quality_histogram_50(::uint32_t value);

  private:
  ::uint32_t _internal_quality_histogram_50() const;
  void _internal_set_quality_histogram_50(::uint32_t value);

  public:
  // optional uint32 quality_histogram_1 = 28;
  [[nodiscard]] bool has_quality_histogram_1()
      const;
  void clear_quality_histogram_1() ;
  [[nodiscard]] ::uint32_t quality_histogram_1() const;
  void set_quality_histogram_1(::uint32_t value);

  private:
  ::uint32_t _internal_quality_histogram_1() const;
  void _internal_set_quality_histogram_1(::uint32_t value);

  public:
  // optional uint32 quality_histogram_dead = 29;
  [[nodiscard]] bool has_quality_histogram_dead()
      const;
  void clear_quality_histogram_dead() ;
  [[nodiscard]] ::uint32_t quality_histogram_dead() const;
  void set_quality_histogram_dead(::uint32_t value);

  private:
  ::uint32_t _internal_quality_histogram_dead() const;
  void _internal_set_quality_histogram_dead(::uint32_t value);

  public:
  // optional uint32 quality_ntile_2nd = 30;
  [[nodiscard]] bool has_quality_ntile_2nd()
      const;
  void clear_quality_ntile_2nd() ;
  [[nodiscard]] ::uint32_t quality_ntile_2nd() const;
  void set_quality_ntile_2nd(::uint32_t value);

  private:
  ::uint32_t _internal_quality_ntile_2nd() const;
  void _internal_set_quality_ntile_2nd(::uint32_t value);

  public:
  // optional uint32 quality_ntile_5th = 31;
  [[nodiscard]] bool has_quality_ntile_5th()
      const;
  void clear_quality_ntile_5th() ;
  [[nodiscard]] ::uint32_t quality_ntile_5th() const;
  void set_quality_ntile_5th(::uint32_t value);

  private:
  ::uint32_t _internal_quality_ntile_5th() const;
  void _internal_set_quality_ntile_5th(::uint32_t value);

  public:
  // optional uint32 quality_ntile_25th = 32;
  [[nodiscard]] bool has_quality_ntile_25th()
      const;
  void clear_quality_ntile_25th() ;
  [[nodiscard]] ::uint32_t quality_ntile_25th() const;
  void set_quality_ntile_25th(::uint32_t value);

  private:
  ::uint32_t _internal_quality_ntile_25th() const;
  void _internal_set_quality_ntile_25th(::uint32_t value);

  public:
  // optional uint32 quality_ntile_50th = 33;
  [[nodiscard]] bool has_quality_ntile_50th()
      const;
  void clear_quality_ntile_50th() ;
  [[nodiscard]] ::uint32_t quality_ntile_50th() const;
  void set_quality_ntile_50th(::uint32_t value);

  private:
  ::uint32_t _internal_quality_ntile_50th() const;
  void _internal_set_quality_ntile_50th(::uint32_t value);

  public:
  // optional uint32 ping_ntile_5th = 50;
  [[nodiscard]] bool has_ping_ntile_5th()
      const;
  void clear_ping_ntile_5th() ;
  [[nodiscard]] ::uint32_t ping_ntile_5th() const;
  void set_ping_ntile_5th(::uint32_t value);

  private:
  ::uint32_t _internal_ping_ntile_5th() const;
  void _internal_set_ping_ntile_5th(::uint32_t value);

  public:
  // optional uint32 ping_ntile_50th = 51;
  [[nodiscard]] bool has_ping_ntile_50th()
      const;
  void clear_ping_ntile_50th() ;
  [[nodiscard]] ::uint32_t ping_ntile_50th() const;
  void set_ping_ntile_50th(::uint32_t value);

  private:
  ::uint32_t _internal_ping_ntile_50th() const;
  void _internal_set_ping_ntile_50th(::uint32_t value);

  public:
  // optional uint32 ping_ntile_75th = 52;
  [[nodiscard]] bool has_ping_ntile_75th()
      const;
  void clear_ping_ntile_75th() ;
  [[nodiscard]] ::uint32_t ping_ntile_75th() const;
  void set_ping_ntile_75th(::uint32_t value);

  private:
  ::uint32_t _internal_ping_ntile_75th() const;
  void _internal_set_ping_ntile_75th(::uint32_t value);

  public:
  // optional uint32 ping_histogram_25 = 41;
  [[nodiscard]] bool has_ping_histogram_25()
      const;
  void clear_ping_histogram_25() ;
  [[nodiscard]] ::uint32_t ping_histogram_25() const;
  void set_ping_histogram_25(::uint32_t value);

  private:
  ::uint32_t _internal_ping_histogram_25() const;
  void _internal_set_ping_histogram_25(::uint32_t value);

  public:
  // optional uint32 ping_histogram_50 = 42;
  [[nodiscard]] bool has_ping_histogram_50()
      const;
  void clear_ping_histogram_50() ;
  [[nodiscard]] ::uint32_t ping_histogram_50() const;
  void set_ping_histogram_50(::uint32_t value);

  private:
  ::uint32_t _internal_ping_histogram_50() const;
  void _internal_set_ping_histogram_50(::uint32_t value);

  public:
  // optional uint32 ping_histogram_75 = 43;
  [[nodiscard]] bool has_ping_histogram_75()
      const;
  void clear_ping_histogram_75() ;
  [[nodiscard]] ::uint32_t ping_histogram_75() const;
  void set_ping_histogram_75(::uint32_t value);

  private:
  ::uint32_t _internal_ping_histogram_75() const;
  void _internal_set_ping_histogram_75(::uint32_t value);

  public:
  // optional uint32 ping_histogram_100 = 44;
  [[nodiscard]] bool has_ping_histogram_100()
      const;
  void clear_ping_histogram_100() ;
  [[nodiscard]] ::uint32_t ping_histogram_100() const;
  void set_ping_histogram_100(::uint32_t value);

  private:
  ::uint32_t _internal_ping_histogram_100() const;
  void _internal_set_ping_histogram_100(::uint32_t value);

  public:
  // optional uint32 ping_histogram_125 = 45;
  [[nodiscard]] bool has_ping_histogram_125()
      const;
  void clear_ping_histogram_125() ;
  [[nodiscard]] ::uint32_t ping_histogram_125() const;
  void set_ping_histogram_125(::uint32_t value);

  private:
  ::uint32_t _internal_ping_histogram_125() const;
  void _internal_set_ping_histogram_125(::uint32_t value);

  public:
  // optional uint32 ping_histogram_150 = 46;
  [[nodiscard]] bool has_ping_histogram_150()
      const;
  void clear_ping_histogram_150() ;
  [[nodiscard]] ::uint32_t ping_histogram_150() const;
  void set_ping_histogram_150(::uint32_t value);

  private:
  ::uint32_t _internal_ping_histogram_150() const;
  void _internal_set_ping_histogram_150(::uint32_t value);

  public:
  // optional uint32 ping_histogram_200 = 47;
  [[nodiscard]] bool has_ping_histogram_200()
      const;
  void clear_ping_histogram_200() ;
  [[nodiscard]] ::uint32_t ping_histogram_200() const;
  void set_ping_histogram_200(::uint32_t value);

  private:
  ::uint32_t _internal_ping_histogram_200() const;
  void _internal_set_ping_histogram_200(::uint32_t value);

  public:
  // optional uint32 ping_histogram_300 = 48;
  [[nodiscard]] bool has_ping_histogram_300()
      const;
  void clear_ping_histogram_300() ;
  [[nodiscard]] ::uint32_t ping_histogram_300() const;
  void set_ping_histogram_300(::uint32_t value);

  private:
  ::uint32_t _internal_ping_histogram_300() const;
  void _internal_set_ping_histogram_300(::uint32_t value);

  public:
  // optional uint32 ping_histogram_max = 49;
  [[nodiscard]] bool has_ping_histogram_max()
      const;
  void clear_ping_histogram_max() ;
  [[nodiscard]] ::uint32_t ping_histogram_max() const;
  void set_ping_histogram_max(::uint32_t value);

  private:
  ::uint32_t _internal_ping_histogram_max() const;
  void _internal_set_ping_histogram_max(::uint32_t value);

  public:
  // optional uint32 ping_ntile_95th = 53;
  [[nodiscard]] bool has_ping_ntile_95th()
      const;
  void clear_ping_ntile_95th() ;
  [[nodiscard]] ::uint32_t ping_ntile_95th() const;
  void set_ping_ntile_95th(::uint32_t value);

  private:
  ::uint32_t _internal_ping_ntile_95th() const;
  void _internal_set_ping_ntile_95th(::uint32_t value);

  public:
  // optional uint32 ping_ntile_98th = 54;
  [[nodiscard]] bool has_ping_ntile_98th()
      const;
  void clear_ping_ntile_98th() ;
  [[nodiscard]] ::uint32_t ping_ntile_98th() const;
  void set_ping_ntile_98th(::uint32_t value);

  private:
  ::uint32_t _internal_ping_ntile_98th() const;
  void _internal_set_ping_ntile_98th(::uint32_t value);

  public:
  // optional uint32 jitter_histogram_negligible = 61;
  [[nodiscard]] bool has_jitter_histogram_negligible()
      const;
  void clear_jitter_histogram_negligible() ;
  [[nodiscard]] ::uint32_t jitter_histogram_negligible() const;
  void set_jitter_histogram_negligible(::uint32_t value);

  private:
  ::uint32_t _internal_jitter_histogram_negligible() const;
  void _internal_set_jitter_histogram_negligible(::uint32_t value);

  public:
  // optional uint32 jitter_histogram_1 = 62;
  [[nodiscard]] bool has_jitter_histogram_1()
      const;
  void clear_jitter_histogram_1() ;
  [[nodiscard]] ::uint32_t jitter_histogram_1() const;
  void set_jitter_histogram_1(::uint32_t value);

  private:
  ::uint32_t _internal_jitter_histogram_1() const;
  void _internal_set_jitter_histogram_1(::uint32_t value);

  public:
  // optional uint32 jitter_histogram_2 = 63;
  [[nodiscard]] bool has_jitter_histogram_2()
      const;
  void clear_jitter_histogram_2() ;
  [[nodiscard]] ::uint32_t jitter_histogram_2() const;
  void set_jitter_histogram_2(::uint32_t value);

  private:
  ::uint32_t _internal_jitter_histogram_2() const;
  void _internal_set_jitter_histogram_2(::uint32_t value);

  public:
  // optional uint32 jitter_histogram_5 = 64;
  [[nodiscard]] bool has_jitter_histogram_5()
      const;
  void clear_jitter_histogram_5() ;
  [[nodiscard]] ::uint32_t jitter_histogram_5() const;
  void set_jitter_histogram_5(::uint32_t value);

  private:
  ::uint32_t _internal_jitter_histogram_5() const;
  void _internal_set_jitter_histogram_5(::uint32_t value);

  public:
  // optional uint32 jitter_histogram_10 = 65;
  [[nodiscard]] bool has_jitter_histogram_10()
      const;
  void clear_jitter_histogram_10() ;
  [[nodiscard]] ::uint32_t jitter_histogram_10() const;
  void set_jitter_histogram_10(::uint32_t value);

  private:
  ::uint32_t _internal_jitter_histogram_10() const;
  void _internal_set_jitter_histogram_10(::uint32_t value);

  public:
  // optional uint32 jitter_histogram_20 = 66;
  [[nodiscard]] bool has_jitter_histogram_20()
      const;
  void clear_jitter_histogram_20() ;
  [[nodiscard]] ::uint32_t jitter_histogram_20() const;
  void set_jitter_histogram_20(::uint32_t value);

  private:
  ::uint32_t _internal_jitter_histogram_20() const;
  void _internal_set_jitter_histogram_20(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:CMsgSteamDatagramLinkLifetimeStats)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<5, 47,
                          0, 0,
                          11>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const CMsgSteamDatagramLinkLifetimeStats& from_msg);
    ::google::protobuf::internal::HasBits<2> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedField<::uint64_t> multipath_packets_recv_sequenced_;
    ::google::protobuf::RepeatedField<::uint64_t> multipath_packets_recv_later_;
    ::uint64_t packets_sent_;
    ::uint64_t kb_sent_;
    ::uint64_t packets_recv_;
    ::uint64_t kb_recv_;
    ::uint64_t packets_recv_sequenced_;
    ::uint64_t packets_recv_dropped_;
    ::uint32_t connected_seconds_;
    ::uint32_t multipath_send_enabled_;
    ::uint64_t packets_recv_out_of_order_;
    ::uint64_t packets_recv_duplicate_;
    ::uint64_t packets_recv_lurch_;
    ::uint64_t packets_recv_out_of_order_corrected_;
    ::uint32_t quality_histogram_100_;
    ::uint32_t quality_histogram_99_;
    ::uint32_t quality_histogram_97_;
    ::uint32_t quality_histogram_95_;
    ::uint32_t quality_histogram_90_;
    ::uint32_t quality_histogram_75_;
    ::uint32_t quality_histogram_50_;
    ::uint32_t quality_histogram_1_;
    ::uint32_t quality_histogram_dead_;
    ::uint32_t quality_ntile_2nd_;
    ::uint32_t quality_ntile_5th_;
    ::uint32_t quality_ntile_25th_;
    ::uint32_t quality_ntile_50th_;
    ::uint32_t ping_ntile_5th_;
    ::uint32_t ping_ntile_50th_;
    ::uint32_t ping_ntile_75th_;
    ::uint32_t ping_histogram_25_;
    ::uint32_t ping_histogram_50_;
    ::uint32_t ping_histogram_75_;
    ::uint32_t ping_histogram_100_;
    ::uint32_t ping_histogram_125_;
    ::uint32_t ping_histogram_150_;
    ::uint32_t ping_histogram_200_;
    ::uint32_t ping_histogram_300_;
    ::uint32_t ping_histogram_max_;
    ::uint32_t ping_ntile_95th_;
    ::uint32_t ping_ntile_98th_;
    ::uint32_t jitter_histogram_negligible_;
    ::uint32_t jitter_histogram_1_;
    ::uint32_t jitter_histogram_2_;
    ::uint32_t jitter_histogram_5_;
    ::uint32_t jitter_histogram_10_;
    ::uint32_t jitter_histogram_20_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_steamnetworkingsockets_5fmessages_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED CMsgSteamDatagramLinkInstantaneousStats final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:CMsgSteamDatagramLinkInstantaneousStats) */ {
 public:
  inline CMsgSteamDatagramLinkInstantaneousStats() : CMsgSteamDatagramLinkInstantaneousStats(nullptr) {}
  ~CMsgSteamDatagramLinkInstantaneousStats() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(CMsgSteamDatagramLinkInstantaneousStats* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(CMsgSteamDatagramLinkInstantaneousStats));
  }
#endif

  template <typename = void>
  explicit constexpr CMsgSteamDatagramLinkInstantaneousStats(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline CMsgSteamDatagramLinkInstantaneousStats(const CMsgSteamDatagramLinkInstantaneousStats& from) : CMsgSteamDatagramLinkInstantaneousStats(nullptr, from) {}
  inline CMsgSteamDatagramLinkInstantaneousStats(CMsgSteamDatagramLinkInstantaneousStats&& from) noexcept : CMsgSteamDatagramLinkInstantaneousStats(nullptr, ::std::move(from)) {}
  inline CMsgSteamDatagramLinkInstantaneousStats& operator=(const CMsgSteamDatagramLinkInstantaneousStats& from) {
    CopyFrom(from);
    return *this;
  }
  inline CMsgSteamDatagramLinkInstantaneousStats& operator=(CMsgSteamDatagramLinkInstantaneousStats&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const CMsgSteamDatagramLinkInstantaneousStats& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<CMsgSteamDatagramLinkInstantaneousStats>(&CMsgSteamDatagramLinkInstantaneousStats_globals_);
  }
  static constexpr int kIndexInFileMessages = 3;
  friend void swap(CMsgSteamDatagramLinkInstantaneousStats& a, CMsgSteamDatagramLinkInstantaneousStats& b) { a.Swap(&b); }
  inline void Swap(CMsgSteamDatagramLinkInstantaneousStats* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CMsgSteamDatagramLinkInstantaneousStats* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] CMsgSteamDatagramLinkInstantaneousStats* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<CMsgSteamDatagramLinkInstantaneousStats>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const CMsgSteamDatagramLinkInstantaneousStats& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const CMsgSteamDatagramLinkInstantaneousStats& from) { CMsgSteamDatagramLinkInstantaneousStats::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(CMsgSteamDatagramLinkInstantaneousStats* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "CMsgSteamDatagramLinkInstantaneousStats"; }

  explicit CMsgSteamDatagramLinkInstantaneousStats(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  CMsgSteamDatagramLinkInstantaneousStats(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const CMsgSteamDatagramLinkInstantaneousStats& from);
  CMsgSteamDatagramLinkInstantaneousStats(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, CMsgSteamDatagramLinkInstantaneousStats&& from) noexcept
      : CMsgSteamDatagramLinkInstantaneousStats(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kOutPacketsPerSecX10FieldNumber = 1,
    kOutBytesPerSecFieldNumber = 2,
    kInPacketsPerSecX10FieldNumber = 3,
    kInBytesPerSecFieldNumber = 4,
    kPingMsFieldNumber = 5,
    kPacketsDroppedPctFieldNumber = 6,
    kPacketsWeirdSequencePctFieldNumber = 7,
    kPeakJitterUsecFieldNumber = 8,
  };
  // optional uint32 out_packets_per_sec_x10 = 1;
  [[nodiscard]] bool has_out_packets_per_sec_x10()
      const;
  void clear_out_packets_per_sec_x10() ;
  [[nodiscard]] ::uint32_t out_packets_per_sec_x10() const;
  void set_out_packets_per_sec_x10(::uint32_t value);

  private:
  ::uint32_t _internal_out_packets_per_sec_x10() const;
  void _internal_set_out_packets_per_sec_x10(::uint32_t value);

  public:
  // optional uint32 out_bytes_per_sec = 2;
  [[nodiscard]] bool has_out_bytes_per_sec()
      const;
  void clear_out_bytes_per_sec() ;
  [[nodiscard]] ::uint32_t out_bytes_per_sec() const;
  void set_out_bytes_per_sec(::uint32_t value);

  private:
  ::uint32_t _internal_out_bytes_per_sec() const;
  void _internal_set_out_bytes_per_sec(::uint32_t value);

  public:
  // optional uint32 in_packets_per_sec_x10 = 3;
  [[nodiscard]] bool has_in_packets_per_sec_x10()
      const;
  void clear_in_packets_per_sec_x10() ;
  [[nodiscard]] ::uint32_t in_packets_per_sec_x10() const;
  void set_in_packets_per_sec_x10(::uint32_t value);

  private:
  ::uint32_t _internal_in_packets_per_sec_x10() const;
  void _internal_set_in_packets_per_sec_x10(::uint32_t value);

  public:
  // optional uint32 in_bytes_per_sec = 4;
  [[nodiscard]] bool has_in_bytes_per_sec()
      const;
  void clear_in_bytes_per_sec() ;
  [[nodiscard]] ::uint32_t in_bytes_per_sec() const;
  void set_in_bytes_per_sec(::uint32_t value);

  private:
  ::uint32_t _internal_in_bytes_per_sec() const;
  void _internal_set_in_bytes_per_sec(::uint32_t value);

  public:
  // optional uint32 ping_ms = 5;
  [[nodiscard]] bool has_ping_ms()
      const;
  void clear_ping_ms() ;
  [[nodiscard]] ::uint32_t ping_ms() const;
  void set_ping_ms(::uint32_t value);

  private:
  ::uint32_t _internal_ping_ms() const;
  void _internal_set_ping_ms(::uint32_t value);

  public:
  // optional uint32 packets_dropped_pct = 6;
  [[nodiscard]] bool has_packets_dropped_pct()
      const;
  void clear_packets_dropped_pct() ;
  [[nodiscard]] ::uint32_t packets_dropped_pct() const;
  void set_packets_dropped_pct(::uint32_t value);

  private:
  ::uint32_t _internal_packets_dropped_pct() const;
  void _internal_set_packets_dropped_pct(::uint32_t value);

  public:
  // optional uint32 packets_weird_sequence_pct = 7;
  [[nodiscard]] bool has_packets_weird_sequence_pct()
      const;
  void clear_packets_weird_sequence_pct() ;
  [[nodiscard]] ::uint32_t packets_weird_sequence_pct() const;
  void set_packets_weird_sequence_pct(::uint32_t value);

  private:
  ::uint32_t _internal_packets_weird_sequence_pct() const;
  void _internal_set_packets_weird_sequence_pct(::uint32_t value);

  public:
  // optional uint32 peak_jitter_usec = 8;
  [[nodiscard]] bool has_peak_jitter_usec()
      const;
  void clear_peak_jitter_usec() ;
  [[nodiscard]] ::uint32_t peak_jitter_usec() const;
  void set_peak_jitter_usec(::uint32_t value);

  private:
  ::uint32_t _internal_peak_jitter_usec() const;
  void _internal_set_peak_jitter_usec(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:CMsgSteamDatagramLinkInstantaneousStats)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 8,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const CMsgSteamDatagramLinkInstantaneousStats& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::uint32_t out_packets_per_sec_x10_;
    ::uint32_t out_bytes_per_sec_;
    ::uint32_t in_packets_per_sec_x10_;
    ::uint32_t in_bytes_per_sec_;
    ::uint32_t ping_ms_;
    ::uint32_t packets_dropped_pct_;
    ::uint32_t packets_weird_sequence_pct_;
    ::uint32_t peak_jitter_usec_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_steamnetworkingsockets_5fmessages_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED CMsgSteamDatagramDiagnostic final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:CMsgSteamDatagramDiagnostic) */ {
 public:
  inline CMsgSteamDatagramDiagnostic() : CMsgSteamDatagramDiagnostic(nullptr) {}
  ~CMsgSteamDatagramDiagnostic() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(CMsgSteamDatagramDiagnostic* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(CMsgSteamDatagramDiagnostic));
  }
#endif

  template <typename = void>
  explicit constexpr CMsgSteamDatagramDiagnostic(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline CMsgSteamDatagramDiagnostic(const CMsgSteamDatagramDiagnostic& from) : CMsgSteamDatagramDiagnostic(nullptr, from) {}
  inline CMsgSteamDatagramDiagnostic(CMsgSteamDatagramDiagnostic&& from) noexcept : CMsgSteamDatagramDiagnostic(nullptr, ::std::move(from)) {}
  inline CMsgSteamDatagramDiagnostic& operator=(const CMsgSteamDatagramDiagnostic& from) {
    CopyFrom(from);
    return *this;
  }
  inline CMsgSteamDatagramDiagnostic& operator=(CMsgSteamDatagramDiagnostic&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const CMsgSteamDatagramDiagnostic& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<CMsgSteamDatagramDiagnostic>(&CMsgSteamDatagramDiagnostic_globals_);
  }
  static constexpr int kIndexInFileMessages = 2;
  friend void swap(CMsgSteamDatagramDiagnostic& a, CMsgSteamDatagramDiagnostic& b) { a.Swap(&b); }
  inline void Swap(CMsgSteamDatagramDiagnostic* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CMsgSteamDatagramDiagnostic* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] CMsgSteamDatagramDiagnostic* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<CMsgSteamDatagramDiagnostic>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const CMsgSteamDatagramDiagnostic& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const CMsgSteamDatagramDiagnostic& from) { CMsgSteamDatagramDiagnostic::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(CMsgSteamDatagramDiagnostic* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "CMsgSteamDatagramDiagnostic"; }

  explicit CMsgSteamDatagramDiagnostic(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  CMsgSteamDatagramDiagnostic(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const CMsgSteamDatagramDiagnostic& from);
  CMsgSteamDatagramDiagnostic(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, CMsgSteamDatagramDiagnostic&& from) noexcept
      : CMsgSteamDatagramDiagnostic(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kTextFieldNumber = 2,
    kSeverityFieldNumber = 1,
  };
  // optional string text = 2;
  [[nodiscard]] bool has_text()
      const;
  void clear_text() ;
  [[nodiscard]] const ::std::string& text() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_text(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_text();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_text();
  void set_allocated_text(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_text() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_text(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_text();

  public:
  // optional uint32 severity = 1;
  [[nodiscard]] bool has_severity()
      const;
  void clear_severity() ;
  [[nodiscard]] ::uint32_t severity() const;
  void set_severity(::uint32_t value);

  private:
  ::uint32_t _internal_severity() const;
  void _internal_set_severity(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:CMsgSteamDatagramDiagnostic)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const CMsgSteamDatagramDiagnostic& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr text_;
    ::uint32_t severity_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_steamnetworkingsockets_5fmessages_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED CMsgICERendezvous_Auth final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:CMsgICERendezvous.Auth) */ {
 public:
  inline CMsgICERendezvous_Auth() : CMsgICERendezvous_Auth(nullptr) {}
  ~CMsgICERendezvous_Auth() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(CMsgICERendezvous_Auth* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(CMsgICERendezvous_Auth));
  }
#endif

  template <typename = void>
  explicit constexpr CMsgICERendezvous_Auth(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline CMsgICERendezvous_Auth(const CMsgICERendezvous_Auth& from) : CMsgICERendezvous_Auth(nullptr, from) {}
  inline CMsgICERendezvous_Auth(CMsgICERendezvous_Auth&& from) noexcept : CMsgICERendezvous_Auth(nullptr, ::std::move(from)) {}
  inline CMsgICERendezvous_Auth& operator=(const CMsgICERendezvous_Auth& from) {
    CopyFrom(from);
    return *this;
  }
  inline CMsgICERendezvous_Auth& operator=(CMsgICERendezvous_Auth&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const CMsgICERendezvous_Auth& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<CMsgICERendezvous_Auth>(&CMsgICERendezvous_Auth_globals_);
  }
  static constexpr int kIndexInFileMessages = 7;
  friend void swap(CMsgICERendezvous_Auth& a, CMsgICERendezvous_Auth& b) { a.Swap(&b); }
  inline void Swap(CMsgICERendezvous_Auth* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CMsgICERendezvous_Auth* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] CMsgICERendezvous_Auth* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<CMsgICERendezvous_Auth>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const CMsgICERendezvous_Auth& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const CMsgICERendezvous_Auth& from) { CMsgICERendezvous_Auth::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(CMsgICERendezvous_Auth* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "CMsgICERendezvous.Auth"; }

  explicit CMsgICERendezvous_Auth(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  CMsgICERendezvous_Auth(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const CMsgICERendezvous_Auth& from);
  CMsgICERendezvous_Auth(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, CMsgICERendezvous_Auth&& from) noexcept
      : CMsgICERendezvous_Auth(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kPwdFragFieldNumber = 1,
  };
  // optional string pwd_frag = 1;
  [[nodiscard]] bool has_pwd_frag()
      const;
  void clear_pwd_frag() ;
  [[nodiscard]] const ::std::string& pwd_frag() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_pwd_frag(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_pwd_frag();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_pwd_frag();
  void set_allocated_pwd_frag(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_pwd_frag() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_pwd_frag(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_pwd_frag();

  public:
  // @@protoc_insertion_point(class_scope:CMsgICERendezvous.Auth)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const CMsgICERendezvous_Auth& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr pwd_frag_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_steamnetworkingsockets_5fmessages_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED CMsgICECandidate final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:CMsgICECandidate) */ {
 public:
  inline CMsgICECandidate() : CMsgICECandidate(nullptr) {}
  ~CMsgICECandidate() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(CMsgICECandidate* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(CMsgICECandidate));
  }
#endif

  template <typename = void>
  explicit constexpr CMsgICECandidate(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline CMsgICECandidate(const CMsgICECandidate& from) : CMsgICECandidate(nullptr, from) {}
  inline CMsgICECandidate(CMsgICECandidate&& from) noexcept : CMsgICECandidate(nullptr, ::std::move(from)) {}
  inline CMsgICECandidate& operator=(const CMsgICECandidate& from) {
    CopyFrom(from);
    return *this;
  }
  inline CMsgICECandidate& operator=(CMsgICECandidate&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const CMsgICECandidate& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<CMsgICECandidate>(&CMsgICECandidate_globals_);
  }
  static constexpr int kIndexInFileMessages = 6;
  friend void swap(CMsgICECandidate& a, CMsgICECandidate& b) { a.Swap(&b); }
  inline void Swap(CMsgICECandidate* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CMsgICECandidate* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] CMsgICECandidate* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<CMsgICECandidate>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const CMsgICECandidate& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const CMsgICECandidate& from) { CMsgICECandidate::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(CMsgICECandidate* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "CMsgICECandidate"; }

  explicit CMsgICECandidate(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  CMsgICECandidate(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const CMsgICECandidate& from);
  CMsgICECandidate(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, CMsgICECandidate&& from) noexcept
      : CMsgICECandidate(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kCandidateFieldNumber = 3,
  };
  // optional string candidate = 3;
  [[nodiscard]] bool has_candidate()
      const;
  void clear_candidate() ;
  [[nodiscard]] const ::std::string& candidate() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_candidate(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_candidate();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_candidate();
  void set_allocated_candidate(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_candidate() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_candidate(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_candidate();

  public:
  // @@protoc_insertion_point(class_scope:CMsgICECandidate)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const CMsgICECandidate& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr candidate_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_steamnetworkingsockets_5fmessages_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED CMsgSteamNetworkingP2PRendezvous_ConnectRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:CMsgSteamNetworkingP2PRendezvous.ConnectRequest) */ {
 public:
  inline CMsgSteamNetworkingP2PRendezvous_ConnectRequest() : CMsgSteamNetworkingP2PRendezvous_ConnectRequest(nullptr) {}
  ~CMsgSteamNetworkingP2PRendezvous_ConnectRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(CMsgSteamNetworkingP2PRendezvous_ConnectRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(CMsgSteamNetworkingP2PRendezvous_ConnectRequest));
  }
#endif

  template <typename = void>
  explicit constexpr CMsgSteamNetworkingP2PRendezvous_ConnectRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline CMsgSteamNetworkingP2PRendezvous_ConnectRequest(const CMsgSteamNetworkingP2PRendezvous_ConnectRequest& from) : CMsgSteamNetworkingP2PRendezvous_ConnectRequest(nullptr, from) {}
  inline CMsgSteamNetworkingP2PRendezvous_ConnectRequest(CMsgSteamNetworkingP2PRendezvous_ConnectRequest&& from) noexcept : CMsgSteamNetworkingP2PRendezvous_ConnectRequest(nullptr, ::std::move(from)) {}
  inline CMsgSteamNetworkingP2PRendezvous_ConnectRequest& operator=(const CMsgSteamNetworkingP2PRendezvous_ConnectRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline CMsgSteamNetworkingP2PRendezvous_ConnectRequest& operator=(CMsgSteamNetworkingP2PRendezvous_ConnectRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const CMsgSteamNetworkingP2PRendezvous_ConnectRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<CMsgSteamNetworkingP2PRendezvous_ConnectRequest>(&CMsgSteamNetworkingP2PRendezvous_ConnectRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 9;
  friend void swap(CMsgSteamNetworkingP2PRendezvous_ConnectRequest& a, CMsgSteamNetworkingP2PRendezvous_ConnectRequest& b) { a.Swap(&b); }
  inline void Swap(CMsgSteamNetworkingP2PRendezvous_ConnectRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CMsgSteamNetworkingP2PRendezvous_ConnectRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] CMsgSteamNetworkingP2PRendezvous_ConnectRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<CMsgSteamNetworkingP2PRendezvous_ConnectRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const CMsgSteamNetworkingP2PRendezvous_ConnectRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const CMsgSteamNetworkingP2PRendezvous_ConnectRequest& from) { CMsgSteamNetworkingP2PRendezvous_ConnectRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(CMsgSteamNetworkingP2PRendezvous_ConnectRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "CMsgSteamNetworkingP2PRendezvous.ConnectRequest"; }

  explicit CMsgSteamNetworkingP2PRendezvous_ConnectRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  CMsgSteamNetworkingP2PRendezvous_ConnectRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const CMsgSteamNetworkingP2PRendezvous_ConnectRequest& from);
  CMsgSteamNetworkingP2PRendezvous_ConnectRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, CMsgSteamNetworkingP2PRendezvous_ConnectRequest&& from) noexcept
      : CMsgSteamNetworkingP2PRendezvous_ConnectRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kFromFakeipFieldNumber = 11,
    kCryptFieldNumber = 6,
    kCertFieldNumber = 7,
    kToVirtualPortFieldNumber = 9,
    kFromVirtualPortFieldNumber = 10,
  };
  // optional string from_fakeip = 11;
  [[nodiscard]] bool has_from_fakeip()
      const;
  void clear_from_fakeip() ;
  [[nodiscard]] const ::std::string& from_fakeip() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_from_fakeip(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_from_fakeip();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_from_fakeip();
  void set_allocated_from_fakeip(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_from_fakeip() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_from_fakeip(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_from_fakeip();

  public:
  // optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 6;
  [[nodiscard]] bool has_crypt()
      const;
  void clear_crypt() ;
  [[nodiscard]] const ::CMsgSteamDatagramSessionCryptInfoSigned& crypt() const;
  [[nodiscard]] ::CMsgSteamDatagramSessionCryptInfoSigned* PROTOBUF_NULLABLE release_crypt();
  ::CMsgSteamDatagramSessionCryptInfoSigned* PROTOBUF_NONNULL mutable_crypt();
  void set_allocated_crypt(::CMsgSteamDatagramSessionCryptInfoSigned* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_crypt(::CMsgSteamDatagramSessionCryptInfoSigned* PROTOBUF_NULLABLE value);
  ::CMsgSteamDatagramSessionCryptInfoSigned* PROTOBUF_NULLABLE unsafe_arena_release_crypt();

  private:
  const ::CMsgSteamDatagramSessionCryptInfoSigned& _internal_crypt() const;
  ::CMsgSteamDatagramSessionCryptInfoSigned* PROTOBUF_NONNULL _internal_mutable_crypt();

  public:
  // optional .CMsgSteamDatagramCertificateSigned cert = 7;
  [[nodiscard]] bool has_cert()
      const;
  void clear_cert() ;
  [[nodiscard]] const ::CMsgSteamDatagramCertificateSigned& cert() const;
  [[nodiscard]] ::CMsgSteamDatagramCertificateSigned* PROTOBUF_NULLABLE release_cert();
  ::CMsgSteamDatagramCertificateSigned* PROTOBUF_NONNULL mutable_cert();
  void set_allocated_cert(::CMsgSteamDatagramCertificateSigned* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_cert(::CMsgSteamDatagramCertificateSigned* PROTOBUF_NULLABLE value);
  ::CMsgSteamDatagramCertificateSigned* PROTOBUF_NULLABLE unsafe_arena_release_cert();

  private:
  const ::CMsgSteamDatagramCertificateSigned& _internal_cert() const;
  ::CMsgSteamDatagramCertificateSigned* PROTOBUF_NONNULL _internal_mutable_cert();

  public:
  // optional uint32 to_virtual_port = 9;
  [[nodiscard]] bool has_to_virtual_port()
      const;
  void clear_to_virtual_port() ;
  [[nodiscard]] ::uint32_t to_virtual_port() const;
  void set_to_virtual_port(::uint32_t value);

  private:
  ::uint32_t _internal_to_virtual_port() const;
  void _internal_set_to_virtual_port(::uint32_t value);

  public:
  // optional uint32 from_virtual_port = 10;
  [[nodiscard]] bool has_from_virtual_port()
      const;
  void clear_from_virtual_port() ;
  [[nodiscard]] ::uint32_t from_virtual_port() const;
  void set_from_virtual_port(::uint32_t value);

  private:
  ::uint32_t _internal_from_virtual_port() const;
  void _internal_set_from_virtual_port(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:CMsgSteamNetworkingP2PRendezvous.ConnectRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 5,
                          2, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const CMsgSteamNetworkingP2PRendezvous_ConnectRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr from_fakeip_;
    ::CMsgSteamDatagramSessionCryptInfoSigned* PROTOBUF_NULLABLE crypt_;
    ::CMsgSteamDatagramCertificateSigned* PROTOBUF_NULLABLE cert_;
    ::uint32_t to_virtual_port_;
    ::uint32_t from_virtual_port_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_steamnetworkingsockets_5fmessages_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED CMsgSteamNetworkingP2PRendezvous_ConnectOK final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:CMsgSteamNetworkingP2PRendezvous.ConnectOK) */ {
 public:
  inline CMsgSteamNetworkingP2PRendezvous_ConnectOK() : CMsgSteamNetworkingP2PRendezvous_ConnectOK(nullptr) {}
  ~CMsgSteamNetworkingP2PRendezvous_ConnectOK() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(CMsgSteamNetworkingP2PRendezvous_ConnectOK* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(CMsgSteamNetworkingP2PRendezvous_ConnectOK));
  }
#endif

  template <typename = void>
  explicit constexpr CMsgSteamNetworkingP2PRendezvous_ConnectOK(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline CMsgSteamNetworkingP2PRendezvous_ConnectOK(const CMsgSteamNetworkingP2PRendezvous_ConnectOK& from) : CMsgSteamNetworkingP2PRendezvous_ConnectOK(nullptr, from) {}
  inline CMsgSteamNetworkingP2PRendezvous_ConnectOK(CMsgSteamNetworkingP2PRendezvous_ConnectOK&& from) noexcept : CMsgSteamNetworkingP2PRendezvous_ConnectOK(nullptr, ::std::move(from)) {}
  inline CMsgSteamNetworkingP2PRendezvous_ConnectOK& operator=(const CMsgSteamNetworkingP2PRendezvous_ConnectOK& from) {
    CopyFrom(from);
    return *this;
  }
  inline CMsgSteamNetworkingP2PRendezvous_ConnectOK& operator=(CMsgSteamNetworkingP2PRendezvous_ConnectOK&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const CMsgSteamNetworkingP2PRendezvous_ConnectOK& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<CMsgSteamNetworkingP2PRendezvous_ConnectOK>(&CMsgSteamNetworkingP2PRendezvous_ConnectOK_globals_);
  }
  static constexpr int kIndexInFileMessages = 10;
  friend void swap(CMsgSteamNetworkingP2PRendezvous_ConnectOK& a, CMsgSteamNetworkingP2PRendezvous_ConnectOK& b) { a.Swap(&b); }
  inline void Swap(CMsgSteamNetworkingP2PRendezvous_ConnectOK* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CMsgSteamNetworkingP2PRendezvous_ConnectOK* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] CMsgSteamNetworkingP2PRendezvous_ConnectOK* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<CMsgSteamNetworkingP2PRendezvous_ConnectOK>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const CMsgSteamNetworkingP2PRendezvous_ConnectOK& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const CMsgSteamNetworkingP2PRendezvous_ConnectOK& from) { CMsgSteamNetworkingP2PRendezvous_ConnectOK::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(CMsgSteamNetworkingP2PRendezvous_ConnectOK* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "CMsgSteamNetworkingP2PRendezvous.ConnectOK"; }

  explicit CMsgSteamNetworkingP2PRendezvous_ConnectOK(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  CMsgSteamNetworkingP2PRendezvous_ConnectOK(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const CMsgSteamNetworkingP2PRendezvous_ConnectOK& from);
  CMsgSteamNetworkingP2PRendezvous_ConnectOK(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, CMsgSteamNetworkingP2PRendezvous_ConnectOK&& from) noexcept
      : CMsgSteamNetworkingP2PRendezvous_ConnectOK(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kCryptFieldNumber = 5,
    kCertFieldNumber = 6,
  };
  // optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 5;
  [[nodiscard]] bool has_crypt()
      const;
  void clear_crypt() ;
  [[nodiscard]] const ::CMsgSteamDatagramSessionCryptInfoSigned& crypt() const;
  [[nodiscard]] ::CMsgSteamDatagramSessionCryptInfoSigned* PROTOBUF_NULLABLE release_crypt();
  ::CMsgSteamDatagramSessionCryptInfoSigned* PROTOBUF_NONNULL mutable_crypt();
  void set_allocated_crypt(::CMsgSteamDatagramSessionCryptInfoSigned* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_crypt(::CMsgSteamDatagramSessionCryptInfoSigned* PROTOBUF_NULLABLE value);
  ::CMsgSteamDatagramSessionCryptInfoSigned* PROTOBUF_NULLABLE unsafe_arena_release_crypt();

  private:
  const ::CMsgSteamDatagramSessionCryptInfoSigned& _internal_crypt() const;
  ::CMsgSteamDatagramSessionCryptInfoSigned* PROTOBUF_NONNULL _internal_mutable_crypt();

  public:
  // optional .CMsgSteamDatagramCertificateSigned cert = 6;
  [[nodiscard]] bool has_cert()
      const;
  void clear_cert() ;
  [[nodiscard]] const ::CMsgSteamDatagramCertificateSigned& cert() const;
  [[nodiscard]] ::CMsgSteamDatagramCertificateSigned* PROTOBUF_NULLABLE release_cert();
  ::CMsgSteamDatagramCertificateSigned* PROTOBUF_NONNULL mutable_cert();
  void set_allocated_cert(::CMsgSteamDatagramCertificateSigned* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_cert(::CMsgSteamDatagramCertificateSigned* PROTOBUF_NULLABLE value);
  ::CMsgSteamDatagramCertificateSigned* PROTOBUF_NULLABLE unsafe_arena_release_cert();

  private:
  const ::CMsgSteamDatagramCertificateSigned& _internal_cert() const;
  ::CMsgSteamDatagramCertificateSigned* PROTOBUF_NONNULL _internal_mutable_cert();

  public:
  // @@protoc_insertion_point(class_scope:CMsgSteamNetworkingP2PRendezvous.ConnectOK)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          2, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const CMsgSteamNetworkingP2PRendezvous_ConnectOK& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::CMsgSteamDatagramSessionCryptInfoSigned* PROTOBUF_NULLABLE crypt_;
    ::CMsgSteamDatagramCertificateSigned* PROTOBUF_NULLABLE cert_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_steamnetworkingsockets_5fmessages_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED CMsgSteamDatagramConnectionQuality final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:CMsgSteamDatagramConnectionQuality) */ {
 public:
  inline CMsgSteamDatagramConnectionQuality() : CMsgSteamDatagramConnectionQuality(nullptr) {}
  ~CMsgSteamDatagramConnectionQuality() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(CMsgSteamDatagramConnectionQuality* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(CMsgSteamDatagramConnectionQuality));
  }
#endif

  template <typename = void>
  explicit constexpr CMsgSteamDatagramConnectionQuality(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline CMsgSteamDatagramConnectionQuality(const CMsgSteamDatagramConnectionQuality& from) : CMsgSteamDatagramConnectionQuality(nullptr, from) {}
  inline CMsgSteamDatagramConnectionQuality(CMsgSteamDatagramConnectionQuality&& from) noexcept : CMsgSteamDatagramConnectionQuality(nullptr, ::std::move(from)) {}
  inline CMsgSteamDatagramConnectionQuality& operator=(const CMsgSteamDatagramConnectionQuality& from) {
    CopyFrom(from);
    return *this;
  }
  inline CMsgSteamDatagramConnectionQuality& operator=(CMsgSteamDatagramConnectionQuality&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const CMsgSteamDatagramConnectionQuality& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<CMsgSteamDatagramConnectionQuality>(&CMsgSteamDatagramConnectionQuality_globals_);
  }
  static constexpr int kIndexInFileMessages = 5;
  friend void swap(CMsgSteamDatagramConnectionQuality& a, CMsgSteamDatagramConnectionQuality& b) { a.Swap(&b); }
  inline void Swap(CMsgSteamDatagramConnectionQuality* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CMsgSteamDatagramConnectionQuality* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] CMsgSteamDatagramConnectionQuality* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<CMsgSteamDatagramConnectionQuality>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const CMsgSteamDatagramConnectionQuality& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const CMsgSteamDatagramConnectionQuality& from) { CMsgSteamDatagramConnectionQuality::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(CMsgSteamDatagramConnectionQuality* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "CMsgSteamDatagramConnectionQuality"; }

  explicit CMsgSteamDatagramConnectionQuality(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  CMsgSteamDatagramConnectionQuality(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const CMsgSteamDatagramConnectionQuality& from);
  CMsgSteamDatagramConnectionQuality(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, CMsgSteamDatagramConnectionQuality&& from) noexcept
      : CMsgSteamDatagramConnectionQuality(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kInstantaneousFieldNumber = 1,
    kLifetimeFieldNumber = 2,
  };
  // optional .CMsgSteamDatagramLinkInstantaneousStats instantaneous = 1;
  [[nodiscard]] bool has_instantaneous()
      const;
  void clear_instantaneous() ;
  [[nodiscard]] const ::CMsgSteamDatagramLinkInstantaneousStats& instantaneous() const;
  [[nodiscard]] ::CMsgSteamDatagramLinkInstantaneousStats* PROTOBUF_NULLABLE release_instantaneous();
  ::CMsgSteamDatagramLinkInstantaneousStats* PROTOBUF_NONNULL mutable_instantaneous();
  void set_allocated_instantaneous(::CMsgSteamDatagramLinkInstantaneousStats* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_instantaneous(::CMsgSteamDatagramLinkInstantaneousStats* PROTOBUF_NULLABLE value);
  ::CMsgSteamDatagramLinkInstantaneousStats* PROTOBUF_NULLABLE unsafe_arena_release_instantaneous();

  private:
  const ::CMsgSteamDatagramLinkInstantaneousStats& _internal_instantaneous() const;
  ::CMsgSteamDatagramLinkInstantaneousStats* PROTOBUF_NONNULL _internal_mutable_instantaneous();

  public:
  // optional .CMsgSteamDatagramLinkLifetimeStats lifetime = 2;
  [[nodiscard]] bool has_lifetime()
      const;
  void clear_lifetime() ;
  [[nodiscard]] const ::CMsgSteamDatagramLinkLifetimeStats& lifetime() const;
  [[nodiscard]] ::CMsgSteamDatagramLinkLifetimeStats* PROTOBUF_NULLABLE release_lifetime();
  ::CMsgSteamDatagramLinkLifetimeStats* PROTOBUF_NONNULL mutable_lifetime();
  void set_allocated_lifetime(::CMsgSteamDatagramLinkLifetimeStats* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_lifetime(::CMsgSteamDatagramLinkLifetimeStats* PROTOBUF_NULLABLE value);
  ::CMsgSteamDatagramLinkLifetimeStats* PROTOBUF_NULLABLE unsafe_arena_release_lifetime();

  private:
  const ::CMsgSteamDatagramLinkLifetimeStats& _internal_lifetime() const;
  ::CMsgSteamDatagramLinkLifetimeStats* PROTOBUF_NONNULL _internal_mutable_lifetime();

  public:
  // @@protoc_insertion_point(class_scope:CMsgSteamDatagramConnectionQuality)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          2, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const CMsgSteamDatagramConnectionQuality& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::CMsgSteamDatagramLinkInstantaneousStats* PROTOBUF_NULLABLE instantaneous_;
    ::CMsgSteamDatagramLinkLifetimeStats* PROTOBUF_NULLABLE lifetime_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_steamnetworkingsockets_5fmessages_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED CMsgICERendezvous final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:CMsgICERendezvous) */ {
 public:
  inline CMsgICERendezvous() : CMsgICERendezvous(nullptr) {}
  ~CMsgICERendezvous() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(CMsgICERendezvous* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(CMsgICERendezvous));
  }
#endif

  template <typename = void>
  explicit constexpr CMsgICERendezvous(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline CMsgICERendezvous(const CMsgICERendezvous& from) : CMsgICERendezvous(nullptr, from) {}
  inline CMsgICERendezvous(CMsgICERendezvous&& from) noexcept : CMsgICERendezvous(nullptr, ::std::move(from)) {}
  inline CMsgICERendezvous& operator=(const CMsgICERendezvous& from) {
    CopyFrom(from);
    return *this;
  }
  inline CMsgICERendezvous& operator=(CMsgICERendezvous&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const CMsgICERendezvous& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<CMsgICERendezvous>(&CMsgICERendezvous_globals_);
  }
  static constexpr int kIndexInFileMessages = 8;
  friend void swap(CMsgICERendezvous& a, CMsgICERendezvous& b) { a.Swap(&b); }
  inline void Swap(CMsgICERendezvous* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CMsgICERendezvous* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] CMsgICERendezvous* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<CMsgICERendezvous>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const CMsgICERendezvous& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const CMsgICERendezvous& from) { CMsgICERendezvous::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(CMsgICERendezvous* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "CMsgICERendezvous"; }

  explicit CMsgICERendezvous(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  CMsgICERendezvous(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const CMsgICERendezvous& from);
  CMsgICERendezvous(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, CMsgICERendezvous&& from) noexcept
      : CMsgICERendezvous(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using Auth = CMsgICERendezvous_Auth;

  // accessors -------------------------------------------------------
  enum : int {
    kAddCandidateFieldNumber = 1,
    kAuthFieldNumber = 2,
  };
  // optional .CMsgICECandidate add_candidate = 1;
  [[nodiscard]] bool has_add_candidate()
      const;
  void clear_add_candidate() ;
  [[nodiscard]] const ::CMsgICECandidate& add_candidate() const;
  [[nodiscard]] ::CMsgICECandidate* PROTOBUF_NULLABLE release_add_candidate();
  ::CMsgICECandidate* PROTOBUF_NONNULL mutable_add_candidate();
  void set_allocated_add_candidate(::CMsgICECandidate* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_add_candidate(::CMsgICECandidate* PROTOBUF_NULLABLE value);
  ::CMsgICECandidate* PROTOBUF_NULLABLE unsafe_arena_release_add_candidate();

  private:
  const ::CMsgICECandidate& _internal_add_candidate() const;
  ::CMsgICECandidate* PROTOBUF_NONNULL _internal_mutable_add_candidate();

  public:
  // optional .CMsgICERendezvous.Auth auth = 2;
  [[nodiscard]] bool has_auth()
      const;
  void clear_auth() ;
  [[nodiscard]] const ::CMsgICERendezvous_Auth& auth() const;
  [[nodiscard]] ::CMsgICERendezvous_Auth* PROTOBUF_NULLABLE release_auth();
  ::CMsgICERendezvous_Auth* PROTOBUF_NONNULL mutable_auth();
  void set_allocated_auth(::CMsgICERendezvous_Auth* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_auth(::CMsgICERendezvous_Auth* PROTOBUF_NULLABLE value);
  ::CMsgICERendezvous_Auth* PROTOBUF_NULLABLE unsafe_arena_release_auth();

  private:
  const ::CMsgICERendezvous_Auth& _internal_auth() const;
  ::CMsgICERendezvous_Auth* PROTOBUF_NONNULL _internal_mutable_auth();

  public:
  // @@protoc_insertion_point(class_scope:CMsgICERendezvous)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          2, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const CMsgICERendezvous& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::CMsgICECandidate* PROTOBUF_NULLABLE add_candidate_;
    ::CMsgICERendezvous_Auth* PROTOBUF_NULLABLE auth_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_steamnetworkingsockets_5fmessages_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED CMsgSteamNetworkingP2PRendezvous_ReliableMessage final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:CMsgSteamNetworkingP2PRendezvous.ReliableMessage) */ {
 public:
  inline CMsgSteamNetworkingP2PRendezvous_ReliableMessage() : CMsgSteamNetworkingP2PRendezvous_ReliableMessage(nullptr) {}
  ~CMsgSteamNetworkingP2PRendezvous_ReliableMessage() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(CMsgSteamNetworkingP2PRendezvous_ReliableMessage* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(CMsgSteamNetworkingP2PRendezvous_ReliableMessage));
  }
#endif

  template <typename = void>
  explicit constexpr CMsgSteamNetworkingP2PRendezvous_ReliableMessage(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline CMsgSteamNetworkingP2PRendezvous_ReliableMessage(const CMsgSteamNetworkingP2PRendezvous_ReliableMessage& from) : CMsgSteamNetworkingP2PRendezvous_ReliableMessage(nullptr, from) {}
  inline CMsgSteamNetworkingP2PRendezvous_ReliableMessage(CMsgSteamNetworkingP2PRendezvous_ReliableMessage&& from) noexcept : CMsgSteamNetworkingP2PRendezvous_ReliableMessage(nullptr, ::std::move(from)) {}
  inline CMsgSteamNetworkingP2PRendezvous_ReliableMessage& operator=(const CMsgSteamNetworkingP2PRendezvous_ReliableMessage& from) {
    CopyFrom(from);
    return *this;
  }
  inline CMsgSteamNetworkingP2PRendezvous_ReliableMessage& operator=(CMsgSteamNetworkingP2PRendezvous_ReliableMessage&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const CMsgSteamNetworkingP2PRendezvous_ReliableMessage& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<CMsgSteamNetworkingP2PRendezvous_ReliableMessage>(&CMsgSteamNetworkingP2PRendezvous_ReliableMessage_globals_);
  }
  static constexpr int kIndexInFileMessages = 12;
  friend void swap(CMsgSteamNetworkingP2PRendezvous_ReliableMessage& a, CMsgSteamNetworkingP2PRendezvous_ReliableMessage& b) { a.Swap(&b); }
  inline void Swap(CMsgSteamNetworkingP2PRendezvous_ReliableMessage* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CMsgSteamNetworkingP2PRendezvous_ReliableMessage* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] CMsgSteamNetworkingP2PRendezvous_ReliableMessage* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<CMsgSteamNetworkingP2PRendezvous_ReliableMessage>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const CMsgSteamNetworkingP2PRendezvous_ReliableMessage& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const CMsgSteamNetworkingP2PRendezvous_ReliableMessage& from) { CMsgSteamNetworkingP2PRendezvous_ReliableMessage::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(CMsgSteamNetworkingP2PRendezvous_ReliableMessage* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "CMsgSteamNetworkingP2PRendezvous.ReliableMessage"; }

  explicit CMsgSteamNetworkingP2PRendezvous_ReliableMessage(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  CMsgSteamNetworkingP2PRendezvous_ReliableMessage(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const CMsgSteamNetworkingP2PRendezvous_ReliableMessage& from);
  CMsgSteamNetworkingP2PRendezvous_ReliableMessage(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, CMsgSteamNetworkingP2PRendezvous_ReliableMessage&& from) noexcept
      : CMsgSteamNetworkingP2PRendezvous_ReliableMessage(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kIceFieldNumber = 1,
  };
  // optional .CMsgICERendezvous ice = 1;
  [[nodiscard]] bool has_ice()
      const;
  void clear_ice() ;
  [[nodiscard]] const ::CMsgICERendezvous& ice() const;
  [[nodiscard]] ::CMsgICERendezvous* PROTOBUF_NULLABLE release_ice();
  ::CMsgICERendezvous* PROTOBUF_NONNULL mutable_ice();
  void set_allocated_ice(::CMsgICERendezvous* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_ice(::CMsgICERendezvous* PROTOBUF_NULLABLE value);
  ::CMsgICERendezvous* PROTOBUF_NULLABLE unsafe_arena_release_ice();

  private:
  const ::CMsgICERendezvous& _internal_ice() const;
  ::CMsgICERendezvous* PROTOBUF_NONNULL _internal_mutable_ice();

  public:
  // @@protoc_insertion_point(class_scope:CMsgSteamNetworkingP2PRendezvous.ReliableMessage)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const CMsgSteamNetworkingP2PRendezvous_ReliableMessage& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::CMsgICERendezvous* PROTOBUF_NULLABLE ice_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_steamnetworkingsockets_5fmessages_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED CMsgSteamNetworkingP2PRendezvous final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:CMsgSteamNetworkingP2PRendezvous) */ {
 public:
  inline CMsgSteamNetworkingP2PRendezvous() : CMsgSteamNetworkingP2PRendezvous(nullptr) {}
  ~CMsgSteamNetworkingP2PRendezvous() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(CMsgSteamNetworkingP2PRendezvous* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(CMsgSteamNetworkingP2PRendezvous));
  }
#endif

  template <typename = void>
  explicit constexpr CMsgSteamNetworkingP2PRendezvous(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline CMsgSteamNetworkingP2PRendezvous(const CMsgSteamNetworkingP2PRendezvous& from) : CMsgSteamNetworkingP2PRendezvous(nullptr, from) {}
  inline CMsgSteamNetworkingP2PRendezvous(CMsgSteamNetworkingP2PRendezvous&& from) noexcept : CMsgSteamNetworkingP2PRendezvous(nullptr, ::std::move(from)) {}
  inline CMsgSteamNetworkingP2PRendezvous& operator=(const CMsgSteamNetworkingP2PRendezvous& from) {
    CopyFrom(from);
    return *this;
  }
  inline CMsgSteamNetworkingP2PRendezvous& operator=(CMsgSteamNetworkingP2PRendezvous&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const CMsgSteamNetworkingP2PRendezvous& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<CMsgSteamNetworkingP2PRendezvous>(&CMsgSteamNetworkingP2PRendezvous_globals_);
  }
  static constexpr int kIndexInFileMessages = 14;
  friend void swap(CMsgSteamNetworkingP2PRendezvous& a, CMsgSteamNetworkingP2PRendezvous& b) { a.Swap(&b); }
  inline void Swap(CMsgSteamNetworkingP2PRendezvous* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CMsgSteamNetworkingP2PRendezvous* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  [[nodiscard]] CMsgSteamNetworkingP2PRendezvous* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<CMsgSteamNetworkingP2PRendezvous>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const CMsgSteamNetworkingP2PRendezvous& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const CMsgSteamNetworkingP2PRendezvous& from) { CMsgSteamNetworkingP2PRendezvous::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(CMsgSteamNetworkingP2PRendezvous* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "CMsgSteamNetworkingP2PRendezvous"; }

  explicit CMsgSteamNetworkingP2PRendezvous(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  CMsgSteamNetworkingP2PRendezvous(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const CMsgSteamNetworkingP2PRendezvous& from);
  CMsgSteamNetworkingP2PRendezvous(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, CMsgSteamNetworkingP2PRendezvous&& from) noexcept
      : CMsgSteamNetworkingP2PRendezvous(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using ConnectRequest = CMsgSteamNetworkingP2PRendezvous_ConnectRequest;
  using ConnectOK = CMsgSteamNetworkingP2PRendezvous_ConnectOK;
  using ConnectionClosed = CMsgSteamNetworkingP2PRendezvous_ConnectionClosed;
  using ReliableMessage = CMsgSteamNetworkingP2PRendezvous_ReliableMessage;
  using ApplicationMessage = CMsgSteamNetworkingP2PRendezvous_ApplicationMessage;

  // accessors -------------------------------------------------------
  enum : int {
    kReliableMessagesFieldNumber = 13,
    kApplicationMessagesFieldNumber = 15,
    kSdrRoutesFieldNumber = 2,
    kFromIdentityFieldNumber = 8,
    kToIdentityFieldNumber = 10,
    kHostedServerTicketFieldNumber = 14,
    kConnectRequestFieldNumber = 4,
    kConnectOkFieldNumber = 5,
    kConnectionClosedFieldNumber = 6,
    kToConnectionIdFieldNumber = 1,
    kAckPeerRoutesRevisionFieldNumber = 3,
    kIceEnabledFieldNumber = 7,
    kFromConnectionIdFieldNumber = 9,
    kAckReliableMsgFieldNumber = 11,
    kFirstReliableMsgFieldNumber = 12,
  };
  // repeated .CMsgSteamNetworkingP2PRendezvous.ReliableMessage reliable_messages = 13;
  [[nodiscard]] int reliable_messages_size()
      const;
  private:
  int _internal_reliable_messages_size() const;

  public:
  void clear_reliable_messages() ;
  [[nodiscard]] const ::CMsgSteamNetworkingP2PRendezvous_ReliableMessage& reliable_messages(int index) const;
  [[nodiscard]] ::CMsgSteamNetworkingP2PRendezvous_ReliableMessage* PROTOBUF_NONNULL mutable_reliable_messages(int index);
  ::CMsgSteamNetworkingP2PRendezvous_ReliableMessage* PROTOBUF_NONNULL add_reliable_messages();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::CMsgSteamNetworkingP2PRendezvous_ReliableMessage>&
  reliable_messages() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::CMsgSteamNetworkingP2PRendezvous_ReliableMessage>* PROTOBUF_NONNULL
  mutable_reliable_messages();

  private:
  const ::google::protobuf::RepeatedPtrField<::CMsgSteamNetworkingP2PRendezvous_ReliableMessage>& _internal_reliable_messages() const;
  ::google::protobuf::RepeatedPtrField<::CMsgSteamNetworkingP2PRendezvous_ReliableMessage>* PROTOBUF_NONNULL _internal_mutable_reliable_messages();

  public:
  // repeated .CMsgSteamNetworkingP2PRendezvous.ApplicationMessage application_messages = 15;
  [[nodiscard]] int application_messages_size()
      const;
  private:
  int _internal_application_messages_size() const;

  public:
  void clear_application_messages() ;
  [[nodiscard]] const ::CMsgSteamNetworkingP2PRendezvous_ApplicationMessage& application_messages(int index) const;
  [[nodiscard]] ::CMsgSteamNetworkingP2PRendezvous_ApplicationMessage* PROTOBUF_NONNULL mutable_application_messages(int index);
  ::CMsgSteamNetworkingP2PRendezvous_ApplicationMessage* PROTOBUF_NONNULL add_application_messages();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::CMsgSteamNetworkingP2PRendezvous_ApplicationMessage>&
  application_messages() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::CMsgSteamNetworkingP2PRendezvous_ApplicationMessage>* PROTOBUF_NONNULL
  mutable_application_messages();

  private:
  const ::google::protobuf::RepeatedPtrField<::CMsgSteamNetworkingP2PRendezvous_ApplicationMessage>& _internal_application_messages() const;
  ::google::protobuf::RepeatedPtrField<::CMsgSteamNetworkingP2PRendezvous_ApplicationMessage>* PROTOBUF_NONNULL _internal_mutable_application_messages();

  public:
  // optional bytes sdr_routes = 2;
  [[nodiscard]] bool has_sdr_routes()
      const;
  void clear_sdr_routes() ;
  [[nodiscard]] const ::std::string& sdr_routes() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_sdr_routes(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_sdr_routes();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_sdr_routes();
  void set_allocated_sdr_routes(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_sdr_routes() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_sdr_routes(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_sdr_routes();

  public:
  // optional string from_identity = 8;
  [[nodiscard]] bool has_from_identity()
      const;
  void clear_from_identity() ;
  [[nodiscard]] const ::std::string& from_identity() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_from_identity(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_from_identity();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_from_identity();
  void set_allocated_from_identity(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_from_identity() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_from_identity(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_from_identity();

  public:
  // optional string to_identity = 10;
  [[nodiscard]] bool has_to_identity()
      const;
  void clear_to_identity() ;
  [[nodiscard]] const ::std::string& to_identity() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_to_identity(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_to_identity();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_to_identity();
  void set_allocated_to_identity(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_to_identity() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_to_identity(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_to_identity();

  public:
  // optional bytes hosted_server_ticket = 14;
  [[nodiscard]] bool has_hosted_server_ticket()
      const;
  void clear_hosted_server_ticket() ;
  [[nodiscard]] const ::std::string& hosted_server_ticket() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_hosted_server_ticket(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_hosted_server_ticket();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_hosted_server_ticket();
  void set_allocated_hosted_server_ticket(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_hosted_server_ticket() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_hosted_server_ticket(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_hosted_server_ticket();

  public:
  // optional .CMsgSteamNetworkingP2PRendezvous.ConnectRequest connect_request = 4;
  [[nodiscard]] bool has_connect_request()
      const;
  void clear_connect_request() ;
  [[nodiscard]] const ::CMsgSteamNetworkingP2PRendezvous_ConnectRequest& connect_request() const;
  [[nodiscard]] ::CMsgSteamNetworkingP2PRendezvous_ConnectRequest* PROTOBUF_NULLABLE release_connect_request();
  ::CMsgSteamNetworkingP2PRendezvous_ConnectRequest* PROTOBUF_NONNULL mutable_connect_request();
  void set_allocated_connect_request(::CMsgSteamNetworkingP2PRendezvous_ConnectRequest* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_connect_request(::CMsgSteamNetworkingP2PRendezvous_ConnectRequest* PROTOBUF_NULLABLE value);
  ::CMsgSteamNetworkingP2PRendezvous_ConnectRequest* PROTOBUF_NULLABLE unsafe_arena_release_connect_request();

  private:
  const ::CMsgSteamNetworkingP2PRendezvous_ConnectRequest& _internal_connect_request() const;
  ::CMsgSteamNetworkingP2PRendezvous_ConnectRequest* PROTOBUF_NONNULL _internal_mutable_connect_request();

  public:
  // optional .CMsgSteamNetworkingP2PRendezvous.ConnectOK connect_ok = 5;
  [[nodiscard]] bool has_connect_ok()
      const;
  void clear_connect_ok() ;
  [[nodiscard]] const ::CMsgSteamNetworkingP2PRendezvous_ConnectOK& connect_ok() const;
  [[nodiscard]] ::CMsgSteamNetworkingP2PRendezvous_ConnectOK* PROTOBUF_NULLABLE release_connect_ok();
  ::CMsgSteamNetworkingP2PRendezvous_ConnectOK* PROTOBUF_NONNULL mutable_connect_ok();
  void set_allocated_connect_ok(::CMsgSteamNetworkingP2PRendezvous_ConnectOK* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_connect_ok(::CMsgSteamNetworkingP2PRendezvous_ConnectOK* PROTOBUF_NULLABLE value);
  ::CMsgSteamNetworkingP2PRendezvous_ConnectOK* PROTOBUF_NULLABLE unsafe_arena_release_connect_ok();

  private:
  const ::CMsgSteamNetworkingP2PRendezvous_ConnectOK& _internal_connect_ok() const;
  ::CMsgSteamNetworkingP2PRendezvous_ConnectOK* PROTOBUF_NONNULL _internal_mutable_connect_ok();

  public:
  // optional .CMsgSteamNetworkingP2PRendezvous.ConnectionClosed connection_closed = 6;
  [[nodiscard]] bool has_connection_closed()
      const;
  void clear_connection_closed() ;
  [[nodiscard]] const ::CMsgSteamNetworkingP2PRendezvous_ConnectionClosed& connection_closed() const;
  [[nodiscard]] ::CMsgSteamNetworkingP2PRendezvous_ConnectionClosed* PROTOBUF_NULLABLE release_connection_closed();
  ::CMsgSteamNetworkingP2PRendezvous_ConnectionClosed* PROTOBUF_NONNULL mutable_connection_closed();
  void set_allocated_connection_closed(::CMsgSteamNetworkingP2PRendezvous_ConnectionClosed* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_connection_closed(::CMsgSteamNetworkingP2PRendezvous_ConnectionClosed* PROTOBUF_NULLABLE value);
  ::CMsgSteamNetworkingP2PRendezvous_ConnectionClosed* PROTOBUF_NULLABLE unsafe_arena_release_connection_closed();

  private:
  const ::CMsgSteamNetworkingP2PRendezvous_ConnectionClosed& _internal_connection_closed() const;
  ::CMsgSteamNetworkingP2PRendezvous_ConnectionClosed* PROTOBUF_NONNULL _internal_mutable_connection_closed();

  public:
  // optional fixed32 to_connection_id = 1;
  [[nodiscard]] bool has_to_connection_id()
      const;
  void clear_to_connection_id() ;
  [[nodiscard]] ::uint32_t to_connection_id() const;
  void set_to_connection_id(::uint32_t value);

  private:
  ::uint32_t _internal_to_connection_id() const;
  void _internal_set_to_connection_id(::uint32_t value);

  public:
  // optional uint32 ack_peer_routes_revision = 3;
  [[nodiscard]] bool has_ack_peer_routes_revision()
      const;
  void clear_ack_peer_routes_revision() ;
  [[nodiscard]] ::uint32_t ack_peer_routes_revision() const;
  void set_ack_peer_routes_revision(::uint32_t value);

  private:
  ::uint32_t _internal_ack_peer_routes_revision() const;
  void _internal_set_ack_peer_routes_revision(::uint32_t value);

  public:
  // optional bool ice_enabled = 7;
  [[nodiscard]] bool has_ice_enabled()
      const;
  void clear_ice_enabled() ;
  [[nodiscard]] bool ice_enabled() const;
  void set_ice_enabled(bool value);

  private:
  bool _internal_ice_enabled() const;
  void _internal_set_ice_enabled(bool value);

  public:
  // optional fixed32 from_connection_id = 9;
  [[nodiscard]] bool has_from_connection_id()
      const;
  void clear_from_connection_id() ;
  [[nodiscard]] ::uint32_t from_connection_id() const;
  void set_from_connection_id(::uint32_t value);

  private:
  ::uint32_t _internal_from_connection_id() const;
  void _internal_set_from_connection_id(::uint32_t value);

  public:
  // optional uint32 ack_reliable_msg = 11;
  [[nodiscard]] bool has_ack_reliable_msg()
      const;
  void clear_ack_reliable_msg() ;
  [[nodiscard]] ::uint32_t ack_reliable_msg() const;
  void set_ack_reliable_msg(::uint32_t value);

  private:
  ::uint32_t _internal_ack_reliable_msg() const;
  void _internal_set_ack_reliable_msg(::uint32_t value);

  public:
  // optional uint32 first_reliable_msg = 12;
  [[nodiscard]] bool has_first_reliable_msg()
      const;
  void clear_first_reliable_msg() ;
  [[nodiscard]] ::uint32_t first_reliable_msg() const;
  void set_first_reliable_msg(::uint32_t value);

  private:
  ::uint32_t _internal_first_reliable_msg() const;
  void _internal_set_first_reliable_msg(::uint32_t value);

  public:
  // @@protoc_insertion_point(class_scope:CMsgSteamNetworkingP2PRendezvous)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<4, 15,
                          5, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const CMsgSteamNetworkingP2PRendezvous& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::CMsgSteamNetworkingP2PRendezvous_ReliableMessage > reliable_messages_;
    ::google::protobuf::RepeatedPtrField< ::CMsgSteamNetworkingP2PRendezvous_ApplicationMessage > application_messages_;
    ::google::protobuf::internal::ArenaStringPtr sdr_routes_;
    ::google::protobuf::internal::ArenaStringPtr from_identity_;
    ::google::protobuf::internal::ArenaStringPtr to_identity_;
    ::google::protobuf::internal::ArenaStringPtr hosted_server_ticket_;
    ::CMsgSteamNetworkingP2PRendezvous_ConnectRequest* PROTOBUF_NULLABLE connect_request_;
    ::CMsgSteamNetworkingP2PRendezvous_ConnectOK* PROTOBUF_NULLABLE connect_ok_;
    ::CMsgSteamNetworkingP2PRendezvous_ConnectionClosed* PROTOBUF_NULLABLE connection_closed_;
    ::uint32_t to_connection_id_;
    ::uint32_t ack_peer_routes_revision_;
    bool ice_enabled_;
    ::uint32_t from_connection_id_;
    ::uint32_t ack_reliable_msg_;
    ::uint32_t first_reliable_msg_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_steamnetworkingsockets_5fmessages_2eproto;
};

// ===================================================================




// ===================================================================


#ifdef __GNUC__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif  // __GNUC__
// -------------------------------------------------------------------

// CMsgSteamDatagramSessionCryptInfo

// optional .CMsgSteamDatagramSessionCryptInfo.EKeyType key_type = 1;
inline bool CMsgSteamDatagramSessionCryptInfo::has_key_type() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void CMsgSteamDatagramSessionCryptInfo::clear_key_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.key_type_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::CMsgSteamDatagramSessionCryptInfo_EKeyType CMsgSteamDatagramSessionCryptInfo::key_type() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramSessionCryptInfo.key_type)
  return _internal_key_type();
}
inline void CMsgSteamDatagramSessionCryptInfo::set_key_type(::CMsgSteamDatagramSessionCryptInfo_EKeyType value) {
  _internal_set_key_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramSessionCryptInfo.key_type)
}
inline ::CMsgSteamDatagramSessionCryptInfo_EKeyType CMsgSteamDatagramSessionCryptInfo::_internal_key_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::CMsgSteamDatagramSessionCryptInfo_EKeyType>(_impl_.key_type_);
}
inline void CMsgSteamDatagramSessionCryptInfo::_internal_set_key_type(::CMsgSteamDatagramSessionCryptInfo_EKeyType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::CMsgSteamDatagramSessionCryptInfo_EKeyType_internal_data_));
                                          _impl_.key_type_ = value;
}

// optional bytes key_data = 2;
inline bool CMsgSteamDatagramSessionCryptInfo::has_key_data() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void CMsgSteamDatagramSessionCryptInfo::clear_key_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.key_data_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& CMsgSteamDatagramSessionCryptInfo::key_data() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramSessionCryptInfo.key_data)
  return _internal_key_data();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void CMsgSteamDatagramSessionCryptInfo::set_key_data(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.key_data_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramSessionCryptInfo.key_data)
}
inline ::std::string* PROTOBUF_NONNULL CMsgSteamDatagramSessionCryptInfo::mutable_key_data()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_key_data();
  // @@protoc_insertion_point(field_mutable:CMsgSteamDatagramSessionCryptInfo.key_data)
  return _s;
}
inline const ::std::string& CMsgSteamDatagramSessionCryptInfo::_internal_key_data() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.key_data_.Get();
}
inline void CMsgSteamDatagramSessionCryptInfo::_internal_set_key_data(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.key_data_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL CMsgSteamDatagramSessionCryptInfo::_internal_mutable_key_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.key_data_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE CMsgSteamDatagramSessionCryptInfo::release_key_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:CMsgSteamDatagramSessionCryptInfo.key_data)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.key_data_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.key_data_.Set("", GetArena());
  }
  return released;
}
inline void CMsgSteamDatagramSessionCryptInfo::set_allocated_key_data(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.key_data_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.key_data_.IsDefault()) {
    _impl_.key_data_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamDatagramSessionCryptInfo.key_data)
}

// optional fixed64 nonce = 3;
inline bool CMsgSteamDatagramSessionCryptInfo::has_nonce() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void CMsgSteamDatagramSessionCryptInfo::clear_nonce() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.nonce_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline ::uint64_t CMsgSteamDatagramSessionCryptInfo::nonce() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramSessionCryptInfo.nonce)
  return _internal_nonce();
}
inline void CMsgSteamDatagramSessionCryptInfo::set_nonce(::uint64_t value) {
  _internal_set_nonce(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramSessionCryptInfo.nonce)
}
inline ::uint64_t CMsgSteamDatagramSessionCryptInfo::_internal_nonce() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.nonce_;
}
inline void CMsgSteamDatagramSessionCryptInfo::_internal_set_nonce(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.nonce_ = value;
}

// optional uint32 protocol_version = 4;
inline bool CMsgSteamDatagramSessionCryptInfo::has_protocol_version() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void CMsgSteamDatagramSessionCryptInfo::clear_protocol_version() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.protocol_version_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::uint32_t CMsgSteamDatagramSessionCryptInfo::protocol_version() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramSessionCryptInfo.protocol_version)
  return _internal_protocol_version();
}
inline void CMsgSteamDatagramSessionCryptInfo::set_protocol_version(::uint32_t value) {
  _internal_set_protocol_version(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramSessionCryptInfo.protocol_version)
}
inline ::uint32_t CMsgSteamDatagramSessionCryptInfo::_internal_protocol_version() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.protocol_version_;
}
inline void CMsgSteamDatagramSessionCryptInfo::_internal_set_protocol_version(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.protocol_version_ = value;
}

// repeated .ESteamNetworkingSocketsCipher ciphers = 5;
inline int CMsgSteamDatagramSessionCryptInfo::_internal_ciphers_size() const {
  return _internal_ciphers().size();
}
inline int CMsgSteamDatagramSessionCryptInfo::ciphers_size() const {
  return _internal_ciphers_size();
}
inline void CMsgSteamDatagramSessionCryptInfo::clear_ciphers() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ciphers_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::ESteamNetworkingSocketsCipher CMsgSteamDatagramSessionCryptInfo::ciphers(int index) const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramSessionCryptInfo.ciphers)
  return static_cast<::ESteamNetworkingSocketsCipher>(_internal_ciphers().Get(index));
}
inline void CMsgSteamDatagramSessionCryptInfo::set_ciphers(int index, ::ESteamNetworkingSocketsCipher value) {

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::ESteamNetworkingSocketsCipher_internal_data_));
                                          _internal_mutable_ciphers()->Set(index, value);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramSessionCryptInfo.ciphers)
}
inline void CMsgSteamDatagramSessionCryptInfo::add_ciphers(::ESteamNetworkingSocketsCipher value) {

                                          assert(::google::protobuf::internal::ValidateEnum(
                                              value, ::ESteamNetworkingSocketsCipher_internal_data_));
                                          ::google::protobuf::internal::TSanWrite(&_impl_);
  _internal_mutable_ciphers()
      ->InternalAddWithArena<const ::google::protobuf::MessageLite*>(
          internal_visibility(), this, value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:CMsgSteamDatagramSessionCryptInfo.ciphers)
}
inline const ::google::protobuf::RepeatedField<int>& CMsgSteamDatagramSessionCryptInfo::ciphers() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:CMsgSteamDatagramSessionCryptInfo.ciphers)
  return _internal_ciphers();
}
inline ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL CMsgSteamDatagramSessionCryptInfo::mutable_ciphers()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:CMsgSteamDatagramSessionCryptInfo.ciphers)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_ciphers();
}
inline const ::google::protobuf::RepeatedField<int>& CMsgSteamDatagramSessionCryptInfo::_internal_ciphers()
    const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ciphers_;
}
inline ::google::protobuf::RepeatedField<int>* PROTOBUF_NONNULL
CMsgSteamDatagramSessionCryptInfo::_internal_mutable_ciphers() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.ciphers_;
}

// -------------------------------------------------------------------

// CMsgSteamDatagramSessionCryptInfoSigned

// optional bytes info = 1;
inline bool CMsgSteamDatagramSessionCryptInfoSigned::has_info() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void CMsgSteamDatagramSessionCryptInfoSigned::clear_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.info_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& CMsgSteamDatagramSessionCryptInfoSigned::info() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramSessionCryptInfoSigned.info)
  return _internal_info();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void CMsgSteamDatagramSessionCryptInfoSigned::set_info(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.info_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramSessionCryptInfoSigned.info)
}
inline ::std::string* PROTOBUF_NONNULL CMsgSteamDatagramSessionCryptInfoSigned::mutable_info()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_info();
  // @@protoc_insertion_point(field_mutable:CMsgSteamDatagramSessionCryptInfoSigned.info)
  return _s;
}
inline const ::std::string& CMsgSteamDatagramSessionCryptInfoSigned::_internal_info() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.info_.Get();
}
inline void CMsgSteamDatagramSessionCryptInfoSigned::_internal_set_info(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.info_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL CMsgSteamDatagramSessionCryptInfoSigned::_internal_mutable_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.info_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE CMsgSteamDatagramSessionCryptInfoSigned::release_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:CMsgSteamDatagramSessionCryptInfoSigned.info)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.info_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.info_.Set("", GetArena());
  }
  return released;
}
inline void CMsgSteamDatagramSessionCryptInfoSigned::set_allocated_info(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.info_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.info_.IsDefault()) {
    _impl_.info_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamDatagramSessionCryptInfoSigned.info)
}

// optional bytes signature = 2;
inline bool CMsgSteamDatagramSessionCryptInfoSigned::has_signature() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void CMsgSteamDatagramSessionCryptInfoSigned::clear_signature() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.signature_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& CMsgSteamDatagramSessionCryptInfoSigned::signature() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramSessionCryptInfoSigned.signature)
  return _internal_signature();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void CMsgSteamDatagramSessionCryptInfoSigned::set_signature(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.signature_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramSessionCryptInfoSigned.signature)
}
inline ::std::string* PROTOBUF_NONNULL CMsgSteamDatagramSessionCryptInfoSigned::mutable_signature()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_signature();
  // @@protoc_insertion_point(field_mutable:CMsgSteamDatagramSessionCryptInfoSigned.signature)
  return _s;
}
inline const ::std::string& CMsgSteamDatagramSessionCryptInfoSigned::_internal_signature() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.signature_.Get();
}
inline void CMsgSteamDatagramSessionCryptInfoSigned::_internal_set_signature(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.signature_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL CMsgSteamDatagramSessionCryptInfoSigned::_internal_mutable_signature() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.signature_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE CMsgSteamDatagramSessionCryptInfoSigned::release_signature() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:CMsgSteamDatagramSessionCryptInfoSigned.signature)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.signature_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.signature_.Set("", GetArena());
  }
  return released;
}
inline void CMsgSteamDatagramSessionCryptInfoSigned::set_allocated_signature(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.signature_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.signature_.IsDefault()) {
    _impl_.signature_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamDatagramSessionCryptInfoSigned.signature)
}

// -------------------------------------------------------------------

// CMsgSteamDatagramDiagnostic

// optional uint32 severity = 1;
inline bool CMsgSteamDatagramDiagnostic::has_severity() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void CMsgSteamDatagramDiagnostic::clear_severity() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.severity_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint32_t CMsgSteamDatagramDiagnostic::severity() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramDiagnostic.severity)
  return _internal_severity();
}
inline void CMsgSteamDatagramDiagnostic::set_severity(::uint32_t value) {
  _internal_set_severity(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramDiagnostic.severity)
}
inline ::uint32_t CMsgSteamDatagramDiagnostic::_internal_severity() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.severity_;
}
inline void CMsgSteamDatagramDiagnostic::_internal_set_severity(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.severity_ = value;
}

// optional string text = 2;
inline bool CMsgSteamDatagramDiagnostic::has_text() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void CMsgSteamDatagramDiagnostic::clear_text() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.text_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& CMsgSteamDatagramDiagnostic::text() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramDiagnostic.text)
  return _internal_text();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void CMsgSteamDatagramDiagnostic::set_text(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.text_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramDiagnostic.text)
}
inline ::std::string* PROTOBUF_NONNULL CMsgSteamDatagramDiagnostic::mutable_text()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_text();
  // @@protoc_insertion_point(field_mutable:CMsgSteamDatagramDiagnostic.text)
  return _s;
}
inline const ::std::string& CMsgSteamDatagramDiagnostic::_internal_text() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.text_.Get();
}
inline void CMsgSteamDatagramDiagnostic::_internal_set_text(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.text_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL CMsgSteamDatagramDiagnostic::_internal_mutable_text() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.text_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE CMsgSteamDatagramDiagnostic::release_text() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:CMsgSteamDatagramDiagnostic.text)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.text_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.text_.Set("", GetArena());
  }
  return released;
}
inline void CMsgSteamDatagramDiagnostic::set_allocated_text(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.text_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.text_.IsDefault()) {
    _impl_.text_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamDatagramDiagnostic.text)
}

// -------------------------------------------------------------------

// CMsgSteamDatagramLinkInstantaneousStats

// optional uint32 out_packets_per_sec_x10 = 1;
inline bool CMsgSteamDatagramLinkInstantaneousStats::has_out_packets_per_sec_x10() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void CMsgSteamDatagramLinkInstantaneousStats::clear_out_packets_per_sec_x10() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.out_packets_per_sec_x10_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::uint32_t CMsgSteamDatagramLinkInstantaneousStats::out_packets_per_sec_x10() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkInstantaneousStats.out_packets_per_sec_x10)
  return _internal_out_packets_per_sec_x10();
}
inline void CMsgSteamDatagramLinkInstantaneousStats::set_out_packets_per_sec_x10(::uint32_t value) {
  _internal_set_out_packets_per_sec_x10(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkInstantaneousStats.out_packets_per_sec_x10)
}
inline ::uint32_t CMsgSteamDatagramLinkInstantaneousStats::_internal_out_packets_per_sec_x10() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.out_packets_per_sec_x10_;
}
inline void CMsgSteamDatagramLinkInstantaneousStats::_internal_set_out_packets_per_sec_x10(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.out_packets_per_sec_x10_ = value;
}

// optional uint32 out_bytes_per_sec = 2;
inline bool CMsgSteamDatagramLinkInstantaneousStats::has_out_bytes_per_sec() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void CMsgSteamDatagramLinkInstantaneousStats::clear_out_bytes_per_sec() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.out_bytes_per_sec_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint32_t CMsgSteamDatagramLinkInstantaneousStats::out_bytes_per_sec() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkInstantaneousStats.out_bytes_per_sec)
  return _internal_out_bytes_per_sec();
}
inline void CMsgSteamDatagramLinkInstantaneousStats::set_out_bytes_per_sec(::uint32_t value) {
  _internal_set_out_bytes_per_sec(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkInstantaneousStats.out_bytes_per_sec)
}
inline ::uint32_t CMsgSteamDatagramLinkInstantaneousStats::_internal_out_bytes_per_sec() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.out_bytes_per_sec_;
}
inline void CMsgSteamDatagramLinkInstantaneousStats::_internal_set_out_bytes_per_sec(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.out_bytes_per_sec_ = value;
}

// optional uint32 in_packets_per_sec_x10 = 3;
inline bool CMsgSteamDatagramLinkInstantaneousStats::has_in_packets_per_sec_x10() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void CMsgSteamDatagramLinkInstantaneousStats::clear_in_packets_per_sec_x10() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.in_packets_per_sec_x10_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::uint32_t CMsgSteamDatagramLinkInstantaneousStats::in_packets_per_sec_x10() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkInstantaneousStats.in_packets_per_sec_x10)
  return _internal_in_packets_per_sec_x10();
}
inline void CMsgSteamDatagramLinkInstantaneousStats::set_in_packets_per_sec_x10(::uint32_t value) {
  _internal_set_in_packets_per_sec_x10(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkInstantaneousStats.in_packets_per_sec_x10)
}
inline ::uint32_t CMsgSteamDatagramLinkInstantaneousStats::_internal_in_packets_per_sec_x10() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.in_packets_per_sec_x10_;
}
inline void CMsgSteamDatagramLinkInstantaneousStats::_internal_set_in_packets_per_sec_x10(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.in_packets_per_sec_x10_ = value;
}

// optional uint32 in_bytes_per_sec = 4;
inline bool CMsgSteamDatagramLinkInstantaneousStats::has_in_bytes_per_sec() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void CMsgSteamDatagramLinkInstantaneousStats::clear_in_bytes_per_sec() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.in_bytes_per_sec_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::uint32_t CMsgSteamDatagramLinkInstantaneousStats::in_bytes_per_sec() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkInstantaneousStats.in_bytes_per_sec)
  return _internal_in_bytes_per_sec();
}
inline void CMsgSteamDatagramLinkInstantaneousStats::set_in_bytes_per_sec(::uint32_t value) {
  _internal_set_in_bytes_per_sec(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkInstantaneousStats.in_bytes_per_sec)
}
inline ::uint32_t CMsgSteamDatagramLinkInstantaneousStats::_internal_in_bytes_per_sec() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.in_bytes_per_sec_;
}
inline void CMsgSteamDatagramLinkInstantaneousStats::_internal_set_in_bytes_per_sec(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.in_bytes_per_sec_ = value;
}

// optional uint32 ping_ms = 5;
inline bool CMsgSteamDatagramLinkInstantaneousStats::has_ping_ms() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void CMsgSteamDatagramLinkInstantaneousStats::clear_ping_ms() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ping_ms_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline ::uint32_t CMsgSteamDatagramLinkInstantaneousStats::ping_ms() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkInstantaneousStats.ping_ms)
  return _internal_ping_ms();
}
inline void CMsgSteamDatagramLinkInstantaneousStats::set_ping_ms(::uint32_t value) {
  _internal_set_ping_ms(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkInstantaneousStats.ping_ms)
}
inline ::uint32_t CMsgSteamDatagramLinkInstantaneousStats::_internal_ping_ms() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ping_ms_;
}
inline void CMsgSteamDatagramLinkInstantaneousStats::_internal_set_ping_ms(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ping_ms_ = value;
}

// optional uint32 packets_dropped_pct = 6;
inline bool CMsgSteamDatagramLinkInstantaneousStats::has_packets_dropped_pct() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  return value;
}
inline void CMsgSteamDatagramLinkInstantaneousStats::clear_packets_dropped_pct() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.packets_dropped_pct_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline ::uint32_t CMsgSteamDatagramLinkInstantaneousStats::packets_dropped_pct() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkInstantaneousStats.packets_dropped_pct)
  return _internal_packets_dropped_pct();
}
inline void CMsgSteamDatagramLinkInstantaneousStats::set_packets_dropped_pct(::uint32_t value) {
  _internal_set_packets_dropped_pct(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkInstantaneousStats.packets_dropped_pct)
}
inline ::uint32_t CMsgSteamDatagramLinkInstantaneousStats::_internal_packets_dropped_pct() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.packets_dropped_pct_;
}
inline void CMsgSteamDatagramLinkInstantaneousStats::_internal_set_packets_dropped_pct(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.packets_dropped_pct_ = value;
}

// optional uint32 packets_weird_sequence_pct = 7;
inline bool CMsgSteamDatagramLinkInstantaneousStats::has_packets_weird_sequence_pct() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000040U);
  return value;
}
inline void CMsgSteamDatagramLinkInstantaneousStats::clear_packets_weird_sequence_pct() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.packets_weird_sequence_pct_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline ::uint32_t CMsgSteamDatagramLinkInstantaneousStats::packets_weird_sequence_pct() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkInstantaneousStats.packets_weird_sequence_pct)
  return _internal_packets_weird_sequence_pct();
}
inline void CMsgSteamDatagramLinkInstantaneousStats::set_packets_weird_sequence_pct(::uint32_t value) {
  _internal_set_packets_weird_sequence_pct(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkInstantaneousStats.packets_weird_sequence_pct)
}
inline ::uint32_t CMsgSteamDatagramLinkInstantaneousStats::_internal_packets_weird_sequence_pct() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.packets_weird_sequence_pct_;
}
inline void CMsgSteamDatagramLinkInstantaneousStats::_internal_set_packets_weird_sequence_pct(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.packets_weird_sequence_pct_ = value;
}

// optional uint32 peak_jitter_usec = 8;
inline bool CMsgSteamDatagramLinkInstantaneousStats::has_peak_jitter_usec() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000080U);
  return value;
}
inline void CMsgSteamDatagramLinkInstantaneousStats::clear_peak_jitter_usec() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peak_jitter_usec_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
inline ::uint32_t CMsgSteamDatagramLinkInstantaneousStats::peak_jitter_usec() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkInstantaneousStats.peak_jitter_usec)
  return _internal_peak_jitter_usec();
}
inline void CMsgSteamDatagramLinkInstantaneousStats::set_peak_jitter_usec(::uint32_t value) {
  _internal_set_peak_jitter_usec(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkInstantaneousStats.peak_jitter_usec)
}
inline ::uint32_t CMsgSteamDatagramLinkInstantaneousStats::_internal_peak_jitter_usec() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.peak_jitter_usec_;
}
inline void CMsgSteamDatagramLinkInstantaneousStats::_internal_set_peak_jitter_usec(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.peak_jitter_usec_ = value;
}

// -------------------------------------------------------------------

// CMsgSteamDatagramLinkLifetimeStats

// optional uint32 connected_seconds = 2;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_connected_seconds() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000100U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_connected_seconds() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.connected_seconds_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::connected_seconds() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.connected_seconds)
  return _internal_connected_seconds();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_connected_seconds(::uint32_t value) {
  _internal_set_connected_seconds(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.connected_seconds)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_connected_seconds() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.connected_seconds_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_connected_seconds(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.connected_seconds_ = value;
}

// optional uint64 packets_sent = 3;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_packets_sent() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_packets_sent() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.packets_sent_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::uint64_t CMsgSteamDatagramLinkLifetimeStats::packets_sent() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.packets_sent)
  return _internal_packets_sent();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_packets_sent(::uint64_t value) {
  _internal_set_packets_sent(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.packets_sent)
}
inline ::uint64_t CMsgSteamDatagramLinkLifetimeStats::_internal_packets_sent() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.packets_sent_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_packets_sent(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.packets_sent_ = value;
}

// optional uint64 kb_sent = 4;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_kb_sent() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_kb_sent() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.kb_sent_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::uint64_t CMsgSteamDatagramLinkLifetimeStats::kb_sent() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.kb_sent)
  return _internal_kb_sent();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_kb_sent(::uint64_t value) {
  _internal_set_kb_sent(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.kb_sent)
}
inline ::uint64_t CMsgSteamDatagramLinkLifetimeStats::_internal_kb_sent() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.kb_sent_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_kb_sent(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.kb_sent_ = value;
}

// optional uint64 packets_recv = 5;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_packets_recv() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_packets_recv() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.packets_recv_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline ::uint64_t CMsgSteamDatagramLinkLifetimeStats::packets_recv() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.packets_recv)
  return _internal_packets_recv();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_packets_recv(::uint64_t value) {
  _internal_set_packets_recv(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.packets_recv)
}
inline ::uint64_t CMsgSteamDatagramLinkLifetimeStats::_internal_packets_recv() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.packets_recv_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_packets_recv(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.packets_recv_ = value;
}

// optional uint64 kb_recv = 6;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_kb_recv() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_kb_recv() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.kb_recv_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline ::uint64_t CMsgSteamDatagramLinkLifetimeStats::kb_recv() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.kb_recv)
  return _internal_kb_recv();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_kb_recv(::uint64_t value) {
  _internal_set_kb_recv(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.kb_recv)
}
inline ::uint64_t CMsgSteamDatagramLinkLifetimeStats::_internal_kb_recv() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.kb_recv_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_kb_recv(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.kb_recv_ = value;
}

// optional uint64 packets_recv_sequenced = 7;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_packets_recv_sequenced() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000040U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_packets_recv_sequenced() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.packets_recv_sequenced_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline ::uint64_t CMsgSteamDatagramLinkLifetimeStats::packets_recv_sequenced() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.packets_recv_sequenced)
  return _internal_packets_recv_sequenced();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_packets_recv_sequenced(::uint64_t value) {
  _internal_set_packets_recv_sequenced(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.packets_recv_sequenced)
}
inline ::uint64_t CMsgSteamDatagramLinkLifetimeStats::_internal_packets_recv_sequenced() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.packets_recv_sequenced_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_packets_recv_sequenced(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.packets_recv_sequenced_ = value;
}

// optional uint64 packets_recv_dropped = 8;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_packets_recv_dropped() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000080U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_packets_recv_dropped() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.packets_recv_dropped_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
inline ::uint64_t CMsgSteamDatagramLinkLifetimeStats::packets_recv_dropped() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.packets_recv_dropped)
  return _internal_packets_recv_dropped();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_packets_recv_dropped(::uint64_t value) {
  _internal_set_packets_recv_dropped(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.packets_recv_dropped)
}
inline ::uint64_t CMsgSteamDatagramLinkLifetimeStats::_internal_packets_recv_dropped() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.packets_recv_dropped_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_packets_recv_dropped(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.packets_recv_dropped_ = value;
}

// optional uint64 packets_recv_out_of_order = 9;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_packets_recv_out_of_order() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000400U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_packets_recv_out_of_order() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.packets_recv_out_of_order_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
}
inline ::uint64_t CMsgSteamDatagramLinkLifetimeStats::packets_recv_out_of_order() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.packets_recv_out_of_order)
  return _internal_packets_recv_out_of_order();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_packets_recv_out_of_order(::uint64_t value) {
  _internal_set_packets_recv_out_of_order(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000400U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.packets_recv_out_of_order)
}
inline ::uint64_t CMsgSteamDatagramLinkLifetimeStats::_internal_packets_recv_out_of_order() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.packets_recv_out_of_order_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_packets_recv_out_of_order(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.packets_recv_out_of_order_ = value;
}

// optional uint64 packets_recv_out_of_order_corrected = 15;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_packets_recv_out_of_order_corrected() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00002000U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_packets_recv_out_of_order_corrected() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.packets_recv_out_of_order_corrected_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00002000U);
}
inline ::uint64_t CMsgSteamDatagramLinkLifetimeStats::packets_recv_out_of_order_corrected() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.packets_recv_out_of_order_corrected)
  return _internal_packets_recv_out_of_order_corrected();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_packets_recv_out_of_order_corrected(::uint64_t value) {
  _internal_set_packets_recv_out_of_order_corrected(value);
  SetHasBit(_impl_._has_bits_[0], 0x00002000U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.packets_recv_out_of_order_corrected)
}
inline ::uint64_t CMsgSteamDatagramLinkLifetimeStats::_internal_packets_recv_out_of_order_corrected() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.packets_recv_out_of_order_corrected_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_packets_recv_out_of_order_corrected(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.packets_recv_out_of_order_corrected_ = value;
}

// optional uint64 packets_recv_duplicate = 10;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_packets_recv_duplicate() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000800U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_packets_recv_duplicate() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.packets_recv_duplicate_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000800U);
}
inline ::uint64_t CMsgSteamDatagramLinkLifetimeStats::packets_recv_duplicate() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.packets_recv_duplicate)
  return _internal_packets_recv_duplicate();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_packets_recv_duplicate(::uint64_t value) {
  _internal_set_packets_recv_duplicate(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000800U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.packets_recv_duplicate)
}
inline ::uint64_t CMsgSteamDatagramLinkLifetimeStats::_internal_packets_recv_duplicate() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.packets_recv_duplicate_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_packets_recv_duplicate(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.packets_recv_duplicate_ = value;
}

// optional uint64 packets_recv_lurch = 11;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_packets_recv_lurch() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00001000U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_packets_recv_lurch() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.packets_recv_lurch_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00001000U);
}
inline ::uint64_t CMsgSteamDatagramLinkLifetimeStats::packets_recv_lurch() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.packets_recv_lurch)
  return _internal_packets_recv_lurch();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_packets_recv_lurch(::uint64_t value) {
  _internal_set_packets_recv_lurch(value);
  SetHasBit(_impl_._has_bits_[0], 0x00001000U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.packets_recv_lurch)
}
inline ::uint64_t CMsgSteamDatagramLinkLifetimeStats::_internal_packets_recv_lurch() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.packets_recv_lurch_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_packets_recv_lurch(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.packets_recv_lurch_ = value;
}

// repeated uint64 multipath_packets_recv_sequenced = 12;
inline int CMsgSteamDatagramLinkLifetimeStats::_internal_multipath_packets_recv_sequenced_size() const {
  return _internal_multipath_packets_recv_sequenced().size();
}
inline int CMsgSteamDatagramLinkLifetimeStats::multipath_packets_recv_sequenced_size() const {
  return _internal_multipath_packets_recv_sequenced_size();
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_multipath_packets_recv_sequenced() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.multipath_packets_recv_sequenced_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::uint64_t CMsgSteamDatagramLinkLifetimeStats::multipath_packets_recv_sequenced(int index) const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.multipath_packets_recv_sequenced)
  return _internal_multipath_packets_recv_sequenced().Get(index);
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_multipath_packets_recv_sequenced(int index, ::uint64_t value) {
  _internal_mutable_multipath_packets_recv_sequenced()->Set(index, value);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.multipath_packets_recv_sequenced)
}
inline void CMsgSteamDatagramLinkLifetimeStats::add_multipath_packets_recv_sequenced(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _internal_mutable_multipath_packets_recv_sequenced()
      ->InternalAddWithArena<const ::google::protobuf::MessageLite*>(
          internal_visibility(), this, value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:CMsgSteamDatagramLinkLifetimeStats.multipath_packets_recv_sequenced)
}
inline const ::google::protobuf::RepeatedField<::uint64_t>& CMsgSteamDatagramLinkLifetimeStats::multipath_packets_recv_sequenced() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:CMsgSteamDatagramLinkLifetimeStats.multipath_packets_recv_sequenced)
  return _internal_multipath_packets_recv_sequenced();
}
inline ::google::protobuf::RepeatedField<::uint64_t>* PROTOBUF_NONNULL CMsgSteamDatagramLinkLifetimeStats::mutable_multipath_packets_recv_sequenced()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:CMsgSteamDatagramLinkLifetimeStats.multipath_packets_recv_sequenced)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_multipath_packets_recv_sequenced();
}
inline const ::google::protobuf::RepeatedField<::uint64_t>&
CMsgSteamDatagramLinkLifetimeStats::_internal_multipath_packets_recv_sequenced() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.multipath_packets_recv_sequenced_;
}
inline ::google::protobuf::RepeatedField<::uint64_t>* PROTOBUF_NONNULL
CMsgSteamDatagramLinkLifetimeStats::_internal_mutable_multipath_packets_recv_sequenced() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.multipath_packets_recv_sequenced_;
}

// repeated uint64 multipath_packets_recv_later = 13;
inline int CMsgSteamDatagramLinkLifetimeStats::_internal_multipath_packets_recv_later_size() const {
  return _internal_multipath_packets_recv_later().size();
}
inline int CMsgSteamDatagramLinkLifetimeStats::multipath_packets_recv_later_size() const {
  return _internal_multipath_packets_recv_later_size();
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_multipath_packets_recv_later() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.multipath_packets_recv_later_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint64_t CMsgSteamDatagramLinkLifetimeStats::multipath_packets_recv_later(int index) const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.multipath_packets_recv_later)
  return _internal_multipath_packets_recv_later().Get(index);
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_multipath_packets_recv_later(int index, ::uint64_t value) {
  _internal_mutable_multipath_packets_recv_later()->Set(index, value);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.multipath_packets_recv_later)
}
inline void CMsgSteamDatagramLinkLifetimeStats::add_multipath_packets_recv_later(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _internal_mutable_multipath_packets_recv_later()
      ->InternalAddWithArena<const ::google::protobuf::MessageLite*>(
          internal_visibility(), this, value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add:CMsgSteamDatagramLinkLifetimeStats.multipath_packets_recv_later)
}
inline const ::google::protobuf::RepeatedField<::uint64_t>& CMsgSteamDatagramLinkLifetimeStats::multipath_packets_recv_later() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:CMsgSteamDatagramLinkLifetimeStats.multipath_packets_recv_later)
  return _internal_multipath_packets_recv_later();
}
inline ::google::protobuf::RepeatedField<::uint64_t>* PROTOBUF_NONNULL CMsgSteamDatagramLinkLifetimeStats::mutable_multipath_packets_recv_later()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_mutable_list:CMsgSteamDatagramLinkLifetimeStats.multipath_packets_recv_later)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_multipath_packets_recv_later();
}
inline const ::google::protobuf::RepeatedField<::uint64_t>&
CMsgSteamDatagramLinkLifetimeStats::_internal_multipath_packets_recv_later() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.multipath_packets_recv_later_;
}
inline ::google::protobuf::RepeatedField<::uint64_t>* PROTOBUF_NONNULL
CMsgSteamDatagramLinkLifetimeStats::_internal_mutable_multipath_packets_recv_later() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.multipath_packets_recv_later_;
}

// optional uint32 multipath_send_enabled = 14;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_multipath_send_enabled() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000200U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_multipath_send_enabled() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.multipath_send_enabled_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::multipath_send_enabled() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.multipath_send_enabled)
  return _internal_multipath_send_enabled();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_multipath_send_enabled(::uint32_t value) {
  _internal_set_multipath_send_enabled(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.multipath_send_enabled)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_multipath_send_enabled() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.multipath_send_enabled_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_multipath_send_enabled(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.multipath_send_enabled_ = value;
}

// optional uint32 quality_histogram_100 = 21;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_quality_histogram_100() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00004000U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_quality_histogram_100() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.quality_histogram_100_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00004000U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::quality_histogram_100() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.quality_histogram_100)
  return _internal_quality_histogram_100();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_quality_histogram_100(::uint32_t value) {
  _internal_set_quality_histogram_100(value);
  SetHasBit(_impl_._has_bits_[0], 0x00004000U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.quality_histogram_100)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_quality_histogram_100() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.quality_histogram_100_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_quality_histogram_100(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.quality_histogram_100_ = value;
}

// optional uint32 quality_histogram_99 = 22;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_quality_histogram_99() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00008000U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_quality_histogram_99() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.quality_histogram_99_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00008000U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::quality_histogram_99() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.quality_histogram_99)
  return _internal_quality_histogram_99();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_quality_histogram_99(::uint32_t value) {
  _internal_set_quality_histogram_99(value);
  SetHasBit(_impl_._has_bits_[0], 0x00008000U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.quality_histogram_99)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_quality_histogram_99() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.quality_histogram_99_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_quality_histogram_99(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.quality_histogram_99_ = value;
}

// optional uint32 quality_histogram_97 = 23;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_quality_histogram_97() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00010000U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_quality_histogram_97() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.quality_histogram_97_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00010000U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::quality_histogram_97() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.quality_histogram_97)
  return _internal_quality_histogram_97();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_quality_histogram_97(::uint32_t value) {
  _internal_set_quality_histogram_97(value);
  SetHasBit(_impl_._has_bits_[0], 0x00010000U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.quality_histogram_97)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_quality_histogram_97() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.quality_histogram_97_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_quality_histogram_97(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.quality_histogram_97_ = value;
}

// optional uint32 quality_histogram_95 = 24;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_quality_histogram_95() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00020000U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_quality_histogram_95() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.quality_histogram_95_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00020000U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::quality_histogram_95() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.quality_histogram_95)
  return _internal_quality_histogram_95();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_quality_histogram_95(::uint32_t value) {
  _internal_set_quality_histogram_95(value);
  SetHasBit(_impl_._has_bits_[0], 0x00020000U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.quality_histogram_95)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_quality_histogram_95() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.quality_histogram_95_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_quality_histogram_95(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.quality_histogram_95_ = value;
}

// optional uint32 quality_histogram_90 = 25;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_quality_histogram_90() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00040000U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_quality_histogram_90() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.quality_histogram_90_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00040000U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::quality_histogram_90() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.quality_histogram_90)
  return _internal_quality_histogram_90();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_quality_histogram_90(::uint32_t value) {
  _internal_set_quality_histogram_90(value);
  SetHasBit(_impl_._has_bits_[0], 0x00040000U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.quality_histogram_90)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_quality_histogram_90() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.quality_histogram_90_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_quality_histogram_90(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.quality_histogram_90_ = value;
}

// optional uint32 quality_histogram_75 = 26;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_quality_histogram_75() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00080000U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_quality_histogram_75() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.quality_histogram_75_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00080000U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::quality_histogram_75() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.quality_histogram_75)
  return _internal_quality_histogram_75();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_quality_histogram_75(::uint32_t value) {
  _internal_set_quality_histogram_75(value);
  SetHasBit(_impl_._has_bits_[0], 0x00080000U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.quality_histogram_75)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_quality_histogram_75() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.quality_histogram_75_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_quality_histogram_75(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.quality_histogram_75_ = value;
}

// optional uint32 quality_histogram_50 = 27;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_quality_histogram_50() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00100000U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_quality_histogram_50() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.quality_histogram_50_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00100000U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::quality_histogram_50() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.quality_histogram_50)
  return _internal_quality_histogram_50();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_quality_histogram_50(::uint32_t value) {
  _internal_set_quality_histogram_50(value);
  SetHasBit(_impl_._has_bits_[0], 0x00100000U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.quality_histogram_50)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_quality_histogram_50() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.quality_histogram_50_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_quality_histogram_50(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.quality_histogram_50_ = value;
}

// optional uint32 quality_histogram_1 = 28;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_quality_histogram_1() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00200000U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_quality_histogram_1() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.quality_histogram_1_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00200000U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::quality_histogram_1() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.quality_histogram_1)
  return _internal_quality_histogram_1();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_quality_histogram_1(::uint32_t value) {
  _internal_set_quality_histogram_1(value);
  SetHasBit(_impl_._has_bits_[0], 0x00200000U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.quality_histogram_1)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_quality_histogram_1() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.quality_histogram_1_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_quality_histogram_1(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.quality_histogram_1_ = value;
}

// optional uint32 quality_histogram_dead = 29;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_quality_histogram_dead() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00400000U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_quality_histogram_dead() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.quality_histogram_dead_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00400000U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::quality_histogram_dead() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.quality_histogram_dead)
  return _internal_quality_histogram_dead();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_quality_histogram_dead(::uint32_t value) {
  _internal_set_quality_histogram_dead(value);
  SetHasBit(_impl_._has_bits_[0], 0x00400000U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.quality_histogram_dead)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_quality_histogram_dead() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.quality_histogram_dead_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_quality_histogram_dead(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.quality_histogram_dead_ = value;
}

// optional uint32 quality_ntile_2nd = 30;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_quality_ntile_2nd() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00800000U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_quality_ntile_2nd() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.quality_ntile_2nd_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00800000U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::quality_ntile_2nd() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.quality_ntile_2nd)
  return _internal_quality_ntile_2nd();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_quality_ntile_2nd(::uint32_t value) {
  _internal_set_quality_ntile_2nd(value);
  SetHasBit(_impl_._has_bits_[0], 0x00800000U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.quality_ntile_2nd)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_quality_ntile_2nd() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.quality_ntile_2nd_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_quality_ntile_2nd(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.quality_ntile_2nd_ = value;
}

// optional uint32 quality_ntile_5th = 31;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_quality_ntile_5th() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x01000000U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_quality_ntile_5th() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.quality_ntile_5th_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x01000000U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::quality_ntile_5th() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.quality_ntile_5th)
  return _internal_quality_ntile_5th();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_quality_ntile_5th(::uint32_t value) {
  _internal_set_quality_ntile_5th(value);
  SetHasBit(_impl_._has_bits_[0], 0x01000000U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.quality_ntile_5th)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_quality_ntile_5th() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.quality_ntile_5th_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_quality_ntile_5th(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.quality_ntile_5th_ = value;
}

// optional uint32 quality_ntile_25th = 32;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_quality_ntile_25th() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x02000000U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_quality_ntile_25th() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.quality_ntile_25th_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x02000000U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::quality_ntile_25th() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.quality_ntile_25th)
  return _internal_quality_ntile_25th();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_quality_ntile_25th(::uint32_t value) {
  _internal_set_quality_ntile_25th(value);
  SetHasBit(_impl_._has_bits_[0], 0x02000000U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.quality_ntile_25th)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_quality_ntile_25th() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.quality_ntile_25th_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_quality_ntile_25th(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.quality_ntile_25th_ = value;
}

// optional uint32 quality_ntile_50th = 33;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_quality_ntile_50th() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x04000000U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_quality_ntile_50th() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.quality_ntile_50th_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x04000000U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::quality_ntile_50th() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.quality_ntile_50th)
  return _internal_quality_ntile_50th();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_quality_ntile_50th(::uint32_t value) {
  _internal_set_quality_ntile_50th(value);
  SetHasBit(_impl_._has_bits_[0], 0x04000000U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.quality_ntile_50th)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_quality_ntile_50th() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.quality_ntile_50th_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_quality_ntile_50th(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.quality_ntile_50th_ = value;
}

// optional uint32 ping_histogram_25 = 41;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_ping_histogram_25() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x40000000U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_ping_histogram_25() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ping_histogram_25_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x40000000U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::ping_histogram_25() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.ping_histogram_25)
  return _internal_ping_histogram_25();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_ping_histogram_25(::uint32_t value) {
  _internal_set_ping_histogram_25(value);
  SetHasBit(_impl_._has_bits_[0], 0x40000000U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.ping_histogram_25)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_ping_histogram_25() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ping_histogram_25_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_ping_histogram_25(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ping_histogram_25_ = value;
}

// optional uint32 ping_histogram_50 = 42;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_ping_histogram_50() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x80000000U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_ping_histogram_50() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ping_histogram_50_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x80000000U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::ping_histogram_50() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.ping_histogram_50)
  return _internal_ping_histogram_50();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_ping_histogram_50(::uint32_t value) {
  _internal_set_ping_histogram_50(value);
  SetHasBit(_impl_._has_bits_[0], 0x80000000U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.ping_histogram_50)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_ping_histogram_50() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ping_histogram_50_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_ping_histogram_50(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ping_histogram_50_ = value;
}

// optional uint32 ping_histogram_75 = 43;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_ping_histogram_75() const {
  bool value = CheckHasBit(_impl_._has_bits_[1], 0x00000001U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_ping_histogram_75() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ping_histogram_75_ = 0u;
  ClearHasBit(_impl_._has_bits_[1], 0x00000001U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::ping_histogram_75() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.ping_histogram_75)
  return _internal_ping_histogram_75();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_ping_histogram_75(::uint32_t value) {
  _internal_set_ping_histogram_75(value);
  SetHasBit(_impl_._has_bits_[1], 0x00000001U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.ping_histogram_75)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_ping_histogram_75() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ping_histogram_75_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_ping_histogram_75(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ping_histogram_75_ = value;
}

// optional uint32 ping_histogram_100 = 44;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_ping_histogram_100() const {
  bool value = CheckHasBit(_impl_._has_bits_[1], 0x00000002U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_ping_histogram_100() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ping_histogram_100_ = 0u;
  ClearHasBit(_impl_._has_bits_[1], 0x00000002U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::ping_histogram_100() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.ping_histogram_100)
  return _internal_ping_histogram_100();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_ping_histogram_100(::uint32_t value) {
  _internal_set_ping_histogram_100(value);
  SetHasBit(_impl_._has_bits_[1], 0x00000002U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.ping_histogram_100)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_ping_histogram_100() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ping_histogram_100_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_ping_histogram_100(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ping_histogram_100_ = value;
}

// optional uint32 ping_histogram_125 = 45;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_ping_histogram_125() const {
  bool value = CheckHasBit(_impl_._has_bits_[1], 0x00000004U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_ping_histogram_125() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ping_histogram_125_ = 0u;
  ClearHasBit(_impl_._has_bits_[1], 0x00000004U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::ping_histogram_125() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.ping_histogram_125)
  return _internal_ping_histogram_125();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_ping_histogram_125(::uint32_t value) {
  _internal_set_ping_histogram_125(value);
  SetHasBit(_impl_._has_bits_[1], 0x00000004U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.ping_histogram_125)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_ping_histogram_125() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ping_histogram_125_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_ping_histogram_125(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ping_histogram_125_ = value;
}

// optional uint32 ping_histogram_150 = 46;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_ping_histogram_150() const {
  bool value = CheckHasBit(_impl_._has_bits_[1], 0x00000008U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_ping_histogram_150() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ping_histogram_150_ = 0u;
  ClearHasBit(_impl_._has_bits_[1], 0x00000008U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::ping_histogram_150() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.ping_histogram_150)
  return _internal_ping_histogram_150();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_ping_histogram_150(::uint32_t value) {
  _internal_set_ping_histogram_150(value);
  SetHasBit(_impl_._has_bits_[1], 0x00000008U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.ping_histogram_150)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_ping_histogram_150() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ping_histogram_150_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_ping_histogram_150(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ping_histogram_150_ = value;
}

// optional uint32 ping_histogram_200 = 47;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_ping_histogram_200() const {
  bool value = CheckHasBit(_impl_._has_bits_[1], 0x00000010U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_ping_histogram_200() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ping_histogram_200_ = 0u;
  ClearHasBit(_impl_._has_bits_[1], 0x00000010U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::ping_histogram_200() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.ping_histogram_200)
  return _internal_ping_histogram_200();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_ping_histogram_200(::uint32_t value) {
  _internal_set_ping_histogram_200(value);
  SetHasBit(_impl_._has_bits_[1], 0x00000010U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.ping_histogram_200)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_ping_histogram_200() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ping_histogram_200_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_ping_histogram_200(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ping_histogram_200_ = value;
}

// optional uint32 ping_histogram_300 = 48;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_ping_histogram_300() const {
  bool value = CheckHasBit(_impl_._has_bits_[1], 0x00000020U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_ping_histogram_300() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ping_histogram_300_ = 0u;
  ClearHasBit(_impl_._has_bits_[1], 0x00000020U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::ping_histogram_300() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.ping_histogram_300)
  return _internal_ping_histogram_300();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_ping_histogram_300(::uint32_t value) {
  _internal_set_ping_histogram_300(value);
  SetHasBit(_impl_._has_bits_[1], 0x00000020U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.ping_histogram_300)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_ping_histogram_300() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ping_histogram_300_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_ping_histogram_300(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ping_histogram_300_ = value;
}

// optional uint32 ping_histogram_max = 49;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_ping_histogram_max() const {
  bool value = CheckHasBit(_impl_._has_bits_[1], 0x00000040U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_ping_histogram_max() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ping_histogram_max_ = 0u;
  ClearHasBit(_impl_._has_bits_[1], 0x00000040U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::ping_histogram_max() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.ping_histogram_max)
  return _internal_ping_histogram_max();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_ping_histogram_max(::uint32_t value) {
  _internal_set_ping_histogram_max(value);
  SetHasBit(_impl_._has_bits_[1], 0x00000040U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.ping_histogram_max)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_ping_histogram_max() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ping_histogram_max_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_ping_histogram_max(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ping_histogram_max_ = value;
}

// optional uint32 ping_ntile_5th = 50;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_ping_ntile_5th() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x08000000U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_ping_ntile_5th() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ping_ntile_5th_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x08000000U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::ping_ntile_5th() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.ping_ntile_5th)
  return _internal_ping_ntile_5th();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_ping_ntile_5th(::uint32_t value) {
  _internal_set_ping_ntile_5th(value);
  SetHasBit(_impl_._has_bits_[0], 0x08000000U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.ping_ntile_5th)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_ping_ntile_5th() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ping_ntile_5th_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_ping_ntile_5th(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ping_ntile_5th_ = value;
}

// optional uint32 ping_ntile_50th = 51;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_ping_ntile_50th() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x10000000U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_ping_ntile_50th() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ping_ntile_50th_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x10000000U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::ping_ntile_50th() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.ping_ntile_50th)
  return _internal_ping_ntile_50th();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_ping_ntile_50th(::uint32_t value) {
  _internal_set_ping_ntile_50th(value);
  SetHasBit(_impl_._has_bits_[0], 0x10000000U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.ping_ntile_50th)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_ping_ntile_50th() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ping_ntile_50th_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_ping_ntile_50th(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ping_ntile_50th_ = value;
}

// optional uint32 ping_ntile_75th = 52;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_ping_ntile_75th() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x20000000U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_ping_ntile_75th() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ping_ntile_75th_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x20000000U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::ping_ntile_75th() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.ping_ntile_75th)
  return _internal_ping_ntile_75th();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_ping_ntile_75th(::uint32_t value) {
  _internal_set_ping_ntile_75th(value);
  SetHasBit(_impl_._has_bits_[0], 0x20000000U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.ping_ntile_75th)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_ping_ntile_75th() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ping_ntile_75th_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_ping_ntile_75th(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ping_ntile_75th_ = value;
}

// optional uint32 ping_ntile_95th = 53;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_ping_ntile_95th() const {
  bool value = CheckHasBit(_impl_._has_bits_[1], 0x00000080U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_ping_ntile_95th() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ping_ntile_95th_ = 0u;
  ClearHasBit(_impl_._has_bits_[1], 0x00000080U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::ping_ntile_95th() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.ping_ntile_95th)
  return _internal_ping_ntile_95th();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_ping_ntile_95th(::uint32_t value) {
  _internal_set_ping_ntile_95th(value);
  SetHasBit(_impl_._has_bits_[1], 0x00000080U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.ping_ntile_95th)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_ping_ntile_95th() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ping_ntile_95th_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_ping_ntile_95th(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ping_ntile_95th_ = value;
}

// optional uint32 ping_ntile_98th = 54;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_ping_ntile_98th() const {
  bool value = CheckHasBit(_impl_._has_bits_[1], 0x00000100U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_ping_ntile_98th() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ping_ntile_98th_ = 0u;
  ClearHasBit(_impl_._has_bits_[1], 0x00000100U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::ping_ntile_98th() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.ping_ntile_98th)
  return _internal_ping_ntile_98th();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_ping_ntile_98th(::uint32_t value) {
  _internal_set_ping_ntile_98th(value);
  SetHasBit(_impl_._has_bits_[1], 0x00000100U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.ping_ntile_98th)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_ping_ntile_98th() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ping_ntile_98th_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_ping_ntile_98th(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ping_ntile_98th_ = value;
}

// optional uint32 jitter_histogram_negligible = 61;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_jitter_histogram_negligible() const {
  bool value = CheckHasBit(_impl_._has_bits_[1], 0x00000200U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_jitter_histogram_negligible() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.jitter_histogram_negligible_ = 0u;
  ClearHasBit(_impl_._has_bits_[1], 0x00000200U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::jitter_histogram_negligible() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.jitter_histogram_negligible)
  return _internal_jitter_histogram_negligible();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_jitter_histogram_negligible(::uint32_t value) {
  _internal_set_jitter_histogram_negligible(value);
  SetHasBit(_impl_._has_bits_[1], 0x00000200U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.jitter_histogram_negligible)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_jitter_histogram_negligible() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.jitter_histogram_negligible_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_jitter_histogram_negligible(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.jitter_histogram_negligible_ = value;
}

// optional uint32 jitter_histogram_1 = 62;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_jitter_histogram_1() const {
  bool value = CheckHasBit(_impl_._has_bits_[1], 0x00000400U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_jitter_histogram_1() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.jitter_histogram_1_ = 0u;
  ClearHasBit(_impl_._has_bits_[1], 0x00000400U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::jitter_histogram_1() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.jitter_histogram_1)
  return _internal_jitter_histogram_1();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_jitter_histogram_1(::uint32_t value) {
  _internal_set_jitter_histogram_1(value);
  SetHasBit(_impl_._has_bits_[1], 0x00000400U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.jitter_histogram_1)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_jitter_histogram_1() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.jitter_histogram_1_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_jitter_histogram_1(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.jitter_histogram_1_ = value;
}

// optional uint32 jitter_histogram_2 = 63;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_jitter_histogram_2() const {
  bool value = CheckHasBit(_impl_._has_bits_[1], 0x00000800U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_jitter_histogram_2() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.jitter_histogram_2_ = 0u;
  ClearHasBit(_impl_._has_bits_[1], 0x00000800U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::jitter_histogram_2() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.jitter_histogram_2)
  return _internal_jitter_histogram_2();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_jitter_histogram_2(::uint32_t value) {
  _internal_set_jitter_histogram_2(value);
  SetHasBit(_impl_._has_bits_[1], 0x00000800U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.jitter_histogram_2)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_jitter_histogram_2() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.jitter_histogram_2_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_jitter_histogram_2(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.jitter_histogram_2_ = value;
}

// optional uint32 jitter_histogram_5 = 64;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_jitter_histogram_5() const {
  bool value = CheckHasBit(_impl_._has_bits_[1], 0x00001000U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_jitter_histogram_5() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.jitter_histogram_5_ = 0u;
  ClearHasBit(_impl_._has_bits_[1], 0x00001000U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::jitter_histogram_5() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.jitter_histogram_5)
  return _internal_jitter_histogram_5();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_jitter_histogram_5(::uint32_t value) {
  _internal_set_jitter_histogram_5(value);
  SetHasBit(_impl_._has_bits_[1], 0x00001000U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.jitter_histogram_5)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_jitter_histogram_5() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.jitter_histogram_5_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_jitter_histogram_5(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.jitter_histogram_5_ = value;
}

// optional uint32 jitter_histogram_10 = 65;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_jitter_histogram_10() const {
  bool value = CheckHasBit(_impl_._has_bits_[1], 0x00002000U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_jitter_histogram_10() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.jitter_histogram_10_ = 0u;
  ClearHasBit(_impl_._has_bits_[1], 0x00002000U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::jitter_histogram_10() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.jitter_histogram_10)
  return _internal_jitter_histogram_10();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_jitter_histogram_10(::uint32_t value) {
  _internal_set_jitter_histogram_10(value);
  SetHasBit(_impl_._has_bits_[1], 0x00002000U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.jitter_histogram_10)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_jitter_histogram_10() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.jitter_histogram_10_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_jitter_histogram_10(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.jitter_histogram_10_ = value;
}

// optional uint32 jitter_histogram_20 = 66;
inline bool CMsgSteamDatagramLinkLifetimeStats::has_jitter_histogram_20() const {
  bool value = CheckHasBit(_impl_._has_bits_[1], 0x00004000U);
  return value;
}
inline void CMsgSteamDatagramLinkLifetimeStats::clear_jitter_histogram_20() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.jitter_histogram_20_ = 0u;
  ClearHasBit(_impl_._has_bits_[1], 0x00004000U);
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::jitter_histogram_20() const {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramLinkLifetimeStats.jitter_histogram_20)
  return _internal_jitter_histogram_20();
}
inline void CMsgSteamDatagramLinkLifetimeStats::set_jitter_histogram_20(::uint32_t value) {
  _internal_set_jitter_histogram_20(value);
  SetHasBit(_impl_._has_bits_[1], 0x00004000U);
  // @@protoc_insertion_point(field_set:CMsgSteamDatagramLinkLifetimeStats.jitter_histogram_20)
}
inline ::uint32_t CMsgSteamDatagramLinkLifetimeStats::_internal_jitter_histogram_20() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.jitter_histogram_20_;
}
inline void CMsgSteamDatagramLinkLifetimeStats::_internal_set_jitter_histogram_20(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.jitter_histogram_20_ = value;
}

// -------------------------------------------------------------------

// CMsgSteamDatagramConnectionQuality

// optional .CMsgSteamDatagramLinkInstantaneousStats instantaneous = 1;
inline bool CMsgSteamDatagramConnectionQuality::has_instantaneous() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.instantaneous_ != nullptr);
  return value;
}
inline void CMsgSteamDatagramConnectionQuality::clear_instantaneous() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.instantaneous_ != nullptr) _impl_.instantaneous_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::CMsgSteamDatagramLinkInstantaneousStats& CMsgSteamDatagramConnectionQuality::_internal_instantaneous() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::CMsgSteamDatagramLinkInstantaneousStats* p = _impl_.instantaneous_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::CMsgSteamDatagramLinkInstantaneousStats>(&::CMsgSteamDatagramLinkInstantaneousStats_globals_);
}
inline const ::CMsgSteamDatagramLinkInstantaneousStats& CMsgSteamDatagramConnectionQuality::instantaneous() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramConnectionQuality.instantaneous)
  return _internal_instantaneous();
}
inline void CMsgSteamDatagramConnectionQuality::unsafe_arena_set_allocated_instantaneous(
    ::CMsgSteamDatagramLinkInstantaneousStats* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.instantaneous_);
  }
  _impl_.instantaneous_ = reinterpret_cast<::CMsgSteamDatagramLinkInstantaneousStats*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CMsgSteamDatagramConnectionQuality.instantaneous)
}
inline ::CMsgSteamDatagramLinkInstantaneousStats* PROTOBUF_NULLABLE CMsgSteamDatagramConnectionQuality::release_instantaneous() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::CMsgSteamDatagramLinkInstantaneousStats* released = _impl_.instantaneous_;
  _impl_.instantaneous_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::CMsgSteamDatagramLinkInstantaneousStats* PROTOBUF_NULLABLE CMsgSteamDatagramConnectionQuality::unsafe_arena_release_instantaneous() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:CMsgSteamDatagramConnectionQuality.instantaneous)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::CMsgSteamDatagramLinkInstantaneousStats* temp = _impl_.instantaneous_;
  _impl_.instantaneous_ = nullptr;
  return temp;
}
inline ::CMsgSteamDatagramLinkInstantaneousStats* PROTOBUF_NONNULL CMsgSteamDatagramConnectionQuality::_internal_mutable_instantaneous() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.instantaneous_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::CMsgSteamDatagramLinkInstantaneousStats>(GetArena());
    _impl_.instantaneous_ = reinterpret_cast<::CMsgSteamDatagramLinkInstantaneousStats*>(p);
  }
  return _impl_.instantaneous_;
}
inline ::CMsgSteamDatagramLinkInstantaneousStats* PROTOBUF_NONNULL CMsgSteamDatagramConnectionQuality::mutable_instantaneous()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::CMsgSteamDatagramLinkInstantaneousStats* _msg = _internal_mutable_instantaneous();
  // @@protoc_insertion_point(field_mutable:CMsgSteamDatagramConnectionQuality.instantaneous)
  return _msg;
}
inline void CMsgSteamDatagramConnectionQuality::set_allocated_instantaneous(::CMsgSteamDatagramLinkInstantaneousStats* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.instantaneous_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.instantaneous_ = reinterpret_cast<::CMsgSteamDatagramLinkInstantaneousStats*>(value);
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamDatagramConnectionQuality.instantaneous)
}

// optional .CMsgSteamDatagramLinkLifetimeStats lifetime = 2;
inline bool CMsgSteamDatagramConnectionQuality::has_lifetime() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.lifetime_ != nullptr);
  return value;
}
inline void CMsgSteamDatagramConnectionQuality::clear_lifetime() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.lifetime_ != nullptr) _impl_.lifetime_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::CMsgSteamDatagramLinkLifetimeStats& CMsgSteamDatagramConnectionQuality::_internal_lifetime() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::CMsgSteamDatagramLinkLifetimeStats* p = _impl_.lifetime_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::CMsgSteamDatagramLinkLifetimeStats>(&::CMsgSteamDatagramLinkLifetimeStats_globals_);
}
inline const ::CMsgSteamDatagramLinkLifetimeStats& CMsgSteamDatagramConnectionQuality::lifetime() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:CMsgSteamDatagramConnectionQuality.lifetime)
  return _internal_lifetime();
}
inline void CMsgSteamDatagramConnectionQuality::unsafe_arena_set_allocated_lifetime(
    ::CMsgSteamDatagramLinkLifetimeStats* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.lifetime_);
  }
  _impl_.lifetime_ = reinterpret_cast<::CMsgSteamDatagramLinkLifetimeStats*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CMsgSteamDatagramConnectionQuality.lifetime)
}
inline ::CMsgSteamDatagramLinkLifetimeStats* PROTOBUF_NULLABLE CMsgSteamDatagramConnectionQuality::release_lifetime() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::CMsgSteamDatagramLinkLifetimeStats* released = _impl_.lifetime_;
  _impl_.lifetime_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::CMsgSteamDatagramLinkLifetimeStats* PROTOBUF_NULLABLE CMsgSteamDatagramConnectionQuality::unsafe_arena_release_lifetime() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:CMsgSteamDatagramConnectionQuality.lifetime)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::CMsgSteamDatagramLinkLifetimeStats* temp = _impl_.lifetime_;
  _impl_.lifetime_ = nullptr;
  return temp;
}
inline ::CMsgSteamDatagramLinkLifetimeStats* PROTOBUF_NONNULL CMsgSteamDatagramConnectionQuality::_internal_mutable_lifetime() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.lifetime_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::CMsgSteamDatagramLinkLifetimeStats>(GetArena());
    _impl_.lifetime_ = reinterpret_cast<::CMsgSteamDatagramLinkLifetimeStats*>(p);
  }
  return _impl_.lifetime_;
}
inline ::CMsgSteamDatagramLinkLifetimeStats* PROTOBUF_NONNULL CMsgSteamDatagramConnectionQuality::mutable_lifetime()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::CMsgSteamDatagramLinkLifetimeStats* _msg = _internal_mutable_lifetime();
  // @@protoc_insertion_point(field_mutable:CMsgSteamDatagramConnectionQuality.lifetime)
  return _msg;
}
inline void CMsgSteamDatagramConnectionQuality::set_allocated_lifetime(::CMsgSteamDatagramLinkLifetimeStats* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.lifetime_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.lifetime_ = reinterpret_cast<::CMsgSteamDatagramLinkLifetimeStats*>(value);
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamDatagramConnectionQuality.lifetime)
}

// -------------------------------------------------------------------

// CMsgICECandidate

// optional string candidate = 3;
inline bool CMsgICECandidate::has_candidate() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void CMsgICECandidate::clear_candidate() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.candidate_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& CMsgICECandidate::candidate() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:CMsgICECandidate.candidate)
  return _internal_candidate();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void CMsgICECandidate::set_candidate(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.candidate_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:CMsgICECandidate.candidate)
}
inline ::std::string* PROTOBUF_NONNULL CMsgICECandidate::mutable_candidate()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_candidate();
  // @@protoc_insertion_point(field_mutable:CMsgICECandidate.candidate)
  return _s;
}
inline const ::std::string& CMsgICECandidate::_internal_candidate() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.candidate_.Get();
}
inline void CMsgICECandidate::_internal_set_candidate(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.candidate_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL CMsgICECandidate::_internal_mutable_candidate() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.candidate_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE CMsgICECandidate::release_candidate() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:CMsgICECandidate.candidate)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.candidate_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.candidate_.Set("", GetArena());
  }
  return released;
}
inline void CMsgICECandidate::set_allocated_candidate(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.candidate_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.candidate_.IsDefault()) {
    _impl_.candidate_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:CMsgICECandidate.candidate)
}

// -------------------------------------------------------------------

// CMsgICERendezvous_Auth

// optional string pwd_frag = 1;
inline bool CMsgICERendezvous_Auth::has_pwd_frag() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void CMsgICERendezvous_Auth::clear_pwd_frag() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.pwd_frag_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& CMsgICERendezvous_Auth::pwd_frag() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:CMsgICERendezvous.Auth.pwd_frag)
  return _internal_pwd_frag();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void CMsgICERendezvous_Auth::set_pwd_frag(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.pwd_frag_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:CMsgICERendezvous.Auth.pwd_frag)
}
inline ::std::string* PROTOBUF_NONNULL CMsgICERendezvous_Auth::mutable_pwd_frag()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_pwd_frag();
  // @@protoc_insertion_point(field_mutable:CMsgICERendezvous.Auth.pwd_frag)
  return _s;
}
inline const ::std::string& CMsgICERendezvous_Auth::_internal_pwd_frag() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.pwd_frag_.Get();
}
inline void CMsgICERendezvous_Auth::_internal_set_pwd_frag(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.pwd_frag_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL CMsgICERendezvous_Auth::_internal_mutable_pwd_frag() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.pwd_frag_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE CMsgICERendezvous_Auth::release_pwd_frag() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:CMsgICERendezvous.Auth.pwd_frag)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.pwd_frag_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.pwd_frag_.Set("", GetArena());
  }
  return released;
}
inline void CMsgICERendezvous_Auth::set_allocated_pwd_frag(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.pwd_frag_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.pwd_frag_.IsDefault()) {
    _impl_.pwd_frag_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:CMsgICERendezvous.Auth.pwd_frag)
}

// -------------------------------------------------------------------

// CMsgICERendezvous

// optional .CMsgICERendezvous.Auth auth = 2;
inline bool CMsgICERendezvous::has_auth() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.auth_ != nullptr);
  return value;
}
inline void CMsgICERendezvous::clear_auth() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.auth_ != nullptr) _impl_.auth_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::CMsgICERendezvous_Auth& CMsgICERendezvous::_internal_auth() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::CMsgICERendezvous_Auth* p = _impl_.auth_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::CMsgICERendezvous_Auth>(&::CMsgICERendezvous_Auth_globals_);
}
inline const ::CMsgICERendezvous_Auth& CMsgICERendezvous::auth() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:CMsgICERendezvous.auth)
  return _internal_auth();
}
inline void CMsgICERendezvous::unsafe_arena_set_allocated_auth(
    ::CMsgICERendezvous_Auth* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.auth_);
  }
  _impl_.auth_ = reinterpret_cast<::CMsgICERendezvous_Auth*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CMsgICERendezvous.auth)
}
inline ::CMsgICERendezvous_Auth* PROTOBUF_NULLABLE CMsgICERendezvous::release_auth() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::CMsgICERendezvous_Auth* released = _impl_.auth_;
  _impl_.auth_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::CMsgICERendezvous_Auth* PROTOBUF_NULLABLE CMsgICERendezvous::unsafe_arena_release_auth() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:CMsgICERendezvous.auth)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::CMsgICERendezvous_Auth* temp = _impl_.auth_;
  _impl_.auth_ = nullptr;
  return temp;
}
inline ::CMsgICERendezvous_Auth* PROTOBUF_NONNULL CMsgICERendezvous::_internal_mutable_auth() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.auth_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::CMsgICERendezvous_Auth>(GetArena());
    _impl_.auth_ = reinterpret_cast<::CMsgICERendezvous_Auth*>(p);
  }
  return _impl_.auth_;
}
inline ::CMsgICERendezvous_Auth* PROTOBUF_NONNULL CMsgICERendezvous::mutable_auth()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::CMsgICERendezvous_Auth* _msg = _internal_mutable_auth();
  // @@protoc_insertion_point(field_mutable:CMsgICERendezvous.auth)
  return _msg;
}
inline void CMsgICERendezvous::set_allocated_auth(::CMsgICERendezvous_Auth* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.auth_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.auth_ = reinterpret_cast<::CMsgICERendezvous_Auth*>(value);
  // @@protoc_insertion_point(field_set_allocated:CMsgICERendezvous.auth)
}

// optional .CMsgICECandidate add_candidate = 1;
inline bool CMsgICERendezvous::has_add_candidate() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.add_candidate_ != nullptr);
  return value;
}
inline void CMsgICERendezvous::clear_add_candidate() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.add_candidate_ != nullptr) _impl_.add_candidate_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::CMsgICECandidate& CMsgICERendezvous::_internal_add_candidate() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::CMsgICECandidate* p = _impl_.add_candidate_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::CMsgICECandidate>(&::CMsgICECandidate_globals_);
}
inline const ::CMsgICECandidate& CMsgICERendezvous::add_candidate() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:CMsgICERendezvous.add_candidate)
  return _internal_add_candidate();
}
inline void CMsgICERendezvous::unsafe_arena_set_allocated_add_candidate(
    ::CMsgICECandidate* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.add_candidate_);
  }
  _impl_.add_candidate_ = reinterpret_cast<::CMsgICECandidate*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CMsgICERendezvous.add_candidate)
}
inline ::CMsgICECandidate* PROTOBUF_NULLABLE CMsgICERendezvous::release_add_candidate() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::CMsgICECandidate* released = _impl_.add_candidate_;
  _impl_.add_candidate_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::CMsgICECandidate* PROTOBUF_NULLABLE CMsgICERendezvous::unsafe_arena_release_add_candidate() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:CMsgICERendezvous.add_candidate)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::CMsgICECandidate* temp = _impl_.add_candidate_;
  _impl_.add_candidate_ = nullptr;
  return temp;
}
inline ::CMsgICECandidate* PROTOBUF_NONNULL CMsgICERendezvous::_internal_mutable_add_candidate() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.add_candidate_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::CMsgICECandidate>(GetArena());
    _impl_.add_candidate_ = reinterpret_cast<::CMsgICECandidate*>(p);
  }
  return _impl_.add_candidate_;
}
inline ::CMsgICECandidate* PROTOBUF_NONNULL CMsgICERendezvous::mutable_add_candidate()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::CMsgICECandidate* _msg = _internal_mutable_add_candidate();
  // @@protoc_insertion_point(field_mutable:CMsgICERendezvous.add_candidate)
  return _msg;
}
inline void CMsgICERendezvous::set_allocated_add_candidate(::CMsgICECandidate* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.add_candidate_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.add_candidate_ = reinterpret_cast<::CMsgICECandidate*>(value);
  // @@protoc_insertion_point(field_set_allocated:CMsgICERendezvous.add_candidate)
}

// -------------------------------------------------------------------

// CMsgSteamNetworkingP2PRendezvous_ConnectRequest

// optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 6;
inline bool CMsgSteamNetworkingP2PRendezvous_ConnectRequest::has_crypt() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.crypt_ != nullptr);
  return value;
}
inline void CMsgSteamNetworkingP2PRendezvous_ConnectRequest::clear_crypt() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.crypt_ != nullptr) _impl_.crypt_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::CMsgSteamDatagramSessionCryptInfoSigned& CMsgSteamNetworkingP2PRendezvous_ConnectRequest::_internal_crypt() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::CMsgSteamDatagramSessionCryptInfoSigned* p = _impl_.crypt_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::CMsgSteamDatagramSessionCryptInfoSigned>(&::CMsgSteamDatagramSessionCryptInfoSigned_globals_);
}
inline const ::CMsgSteamDatagramSessionCryptInfoSigned& CMsgSteamNetworkingP2PRendezvous_ConnectRequest::crypt() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingP2PRendezvous.ConnectRequest.crypt)
  return _internal_crypt();
}
inline void CMsgSteamNetworkingP2PRendezvous_ConnectRequest::unsafe_arena_set_allocated_crypt(
    ::CMsgSteamDatagramSessionCryptInfoSigned* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.crypt_);
  }
  _impl_.crypt_ = reinterpret_cast<::CMsgSteamDatagramSessionCryptInfoSigned*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CMsgSteamNetworkingP2PRendezvous.ConnectRequest.crypt)
}
inline ::CMsgSteamDatagramSessionCryptInfoSigned* PROTOBUF_NULLABLE CMsgSteamNetworkingP2PRendezvous_ConnectRequest::release_crypt() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::CMsgSteamDatagramSessionCryptInfoSigned* released = _impl_.crypt_;
  _impl_.crypt_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::CMsgSteamDatagramSessionCryptInfoSigned* PROTOBUF_NULLABLE CMsgSteamNetworkingP2PRendezvous_ConnectRequest::unsafe_arena_release_crypt() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:CMsgSteamNetworkingP2PRendezvous.ConnectRequest.crypt)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::CMsgSteamDatagramSessionCryptInfoSigned* temp = _impl_.crypt_;
  _impl_.crypt_ = nullptr;
  return temp;
}
inline ::CMsgSteamDatagramSessionCryptInfoSigned* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous_ConnectRequest::_internal_mutable_crypt() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.crypt_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::CMsgSteamDatagramSessionCryptInfoSigned>(GetArena());
    _impl_.crypt_ = reinterpret_cast<::CMsgSteamDatagramSessionCryptInfoSigned*>(p);
  }
  return _impl_.crypt_;
}
inline ::CMsgSteamDatagramSessionCryptInfoSigned* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous_ConnectRequest::mutable_crypt()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::CMsgSteamDatagramSessionCryptInfoSigned* _msg = _internal_mutable_crypt();
  // @@protoc_insertion_point(field_mutable:CMsgSteamNetworkingP2PRendezvous.ConnectRequest.crypt)
  return _msg;
}
inline void CMsgSteamNetworkingP2PRendezvous_ConnectRequest::set_allocated_crypt(::CMsgSteamDatagramSessionCryptInfoSigned* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.crypt_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.crypt_ = reinterpret_cast<::CMsgSteamDatagramSessionCryptInfoSigned*>(value);
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamNetworkingP2PRendezvous.ConnectRequest.crypt)
}

// optional .CMsgSteamDatagramCertificateSigned cert = 7;
inline bool CMsgSteamNetworkingP2PRendezvous_ConnectRequest::has_cert() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  PROTOBUF_ASSUME(!value || _impl_.cert_ != nullptr);
  return value;
}
inline const ::CMsgSteamDatagramCertificateSigned& CMsgSteamNetworkingP2PRendezvous_ConnectRequest::_internal_cert() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::CMsgSteamDatagramCertificateSigned* p = _impl_.cert_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::CMsgSteamDatagramCertificateSigned>(&::CMsgSteamDatagramCertificateSigned_globals_);
}
inline const ::CMsgSteamDatagramCertificateSigned& CMsgSteamNetworkingP2PRendezvous_ConnectRequest::cert() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingP2PRendezvous.ConnectRequest.cert)
  return _internal_cert();
}
inline void CMsgSteamNetworkingP2PRendezvous_ConnectRequest::unsafe_arena_set_allocated_cert(
    ::CMsgSteamDatagramCertificateSigned* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.cert_);
  }
  _impl_.cert_ = reinterpret_cast<::CMsgSteamDatagramCertificateSigned*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CMsgSteamNetworkingP2PRendezvous.ConnectRequest.cert)
}
inline ::CMsgSteamDatagramCertificateSigned* PROTOBUF_NULLABLE CMsgSteamNetworkingP2PRendezvous_ConnectRequest::release_cert() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::CMsgSteamDatagramCertificateSigned* released = _impl_.cert_;
  _impl_.cert_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::CMsgSteamDatagramCertificateSigned* PROTOBUF_NULLABLE CMsgSteamNetworkingP2PRendezvous_ConnectRequest::unsafe_arena_release_cert() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:CMsgSteamNetworkingP2PRendezvous.ConnectRequest.cert)

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::CMsgSteamDatagramCertificateSigned* temp = _impl_.cert_;
  _impl_.cert_ = nullptr;
  return temp;
}
inline ::CMsgSteamDatagramCertificateSigned* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous_ConnectRequest::_internal_mutable_cert() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.cert_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::CMsgSteamDatagramCertificateSigned>(GetArena());
    _impl_.cert_ = reinterpret_cast<::CMsgSteamDatagramCertificateSigned*>(p);
  }
  return _impl_.cert_;
}
inline ::CMsgSteamDatagramCertificateSigned* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous_ConnectRequest::mutable_cert()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::CMsgSteamDatagramCertificateSigned* _msg = _internal_mutable_cert();
  // @@protoc_insertion_point(field_mutable:CMsgSteamNetworkingP2PRendezvous.ConnectRequest.cert)
  return _msg;
}
inline void CMsgSteamNetworkingP2PRendezvous_ConnectRequest::set_allocated_cert(::CMsgSteamDatagramCertificateSigned* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.cert_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::Message*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }

  _impl_.cert_ = reinterpret_cast<::CMsgSteamDatagramCertificateSigned*>(value);
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamNetworkingP2PRendezvous.ConnectRequest.cert)
}

// optional uint32 to_virtual_port = 9;
inline bool CMsgSteamNetworkingP2PRendezvous_ConnectRequest::has_to_virtual_port() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void CMsgSteamNetworkingP2PRendezvous_ConnectRequest::clear_to_virtual_port() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.to_virtual_port_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::uint32_t CMsgSteamNetworkingP2PRendezvous_ConnectRequest::to_virtual_port() const {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingP2PRendezvous.ConnectRequest.to_virtual_port)
  return _internal_to_virtual_port();
}
inline void CMsgSteamNetworkingP2PRendezvous_ConnectRequest::set_to_virtual_port(::uint32_t value) {
  _internal_set_to_virtual_port(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingP2PRendezvous.ConnectRequest.to_virtual_port)
}
inline ::uint32_t CMsgSteamNetworkingP2PRendezvous_ConnectRequest::_internal_to_virtual_port() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.to_virtual_port_;
}
inline void CMsgSteamNetworkingP2PRendezvous_ConnectRequest::_internal_set_to_virtual_port(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.to_virtual_port_ = value;
}

// optional uint32 from_virtual_port = 10;
inline bool CMsgSteamNetworkingP2PRendezvous_ConnectRequest::has_from_virtual_port() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void CMsgSteamNetworkingP2PRendezvous_ConnectRequest::clear_from_virtual_port() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.from_virtual_port_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline ::uint32_t CMsgSteamNetworkingP2PRendezvous_ConnectRequest::from_virtual_port() const {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingP2PRendezvous.ConnectRequest.from_virtual_port)
  return _internal_from_virtual_port();
}
inline void CMsgSteamNetworkingP2PRendezvous_ConnectRequest::set_from_virtual_port(::uint32_t value) {
  _internal_set_from_virtual_port(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingP2PRendezvous.ConnectRequest.from_virtual_port)
}
inline ::uint32_t CMsgSteamNetworkingP2PRendezvous_ConnectRequest::_internal_from_virtual_port() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.from_virtual_port_;
}
inline void CMsgSteamNetworkingP2PRendezvous_ConnectRequest::_internal_set_from_virtual_port(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.from_virtual_port_ = value;
}

// optional string from_fakeip = 11;
inline bool CMsgSteamNetworkingP2PRendezvous_ConnectRequest::has_from_fakeip() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void CMsgSteamNetworkingP2PRendezvous_ConnectRequest::clear_from_fakeip() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.from_fakeip_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& CMsgSteamNetworkingP2PRendezvous_ConnectRequest::from_fakeip() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingP2PRendezvous.ConnectRequest.from_fakeip)
  return _internal_from_fakeip();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void CMsgSteamNetworkingP2PRendezvous_ConnectRequest::set_from_fakeip(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.from_fakeip_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingP2PRendezvous.ConnectRequest.from_fakeip)
}
inline ::std::string* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous_ConnectRequest::mutable_from_fakeip()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_from_fakeip();
  // @@protoc_insertion_point(field_mutable:CMsgSteamNetworkingP2PRendezvous.ConnectRequest.from_fakeip)
  return _s;
}
inline const ::std::string& CMsgSteamNetworkingP2PRendezvous_ConnectRequest::_internal_from_fakeip() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.from_fakeip_.Get();
}
inline void CMsgSteamNetworkingP2PRendezvous_ConnectRequest::_internal_set_from_fakeip(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.from_fakeip_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous_ConnectRequest::_internal_mutable_from_fakeip() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.from_fakeip_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE CMsgSteamNetworkingP2PRendezvous_ConnectRequest::release_from_fakeip() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:CMsgSteamNetworkingP2PRendezvous.ConnectRequest.from_fakeip)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.from_fakeip_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.from_fakeip_.Set("", GetArena());
  }
  return released;
}
inline void CMsgSteamNetworkingP2PRendezvous_ConnectRequest::set_allocated_from_fakeip(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.from_fakeip_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.from_fakeip_.IsDefault()) {
    _impl_.from_fakeip_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamNetworkingP2PRendezvous.ConnectRequest.from_fakeip)
}

// -------------------------------------------------------------------

// CMsgSteamNetworkingP2PRendezvous_ConnectOK

// optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 5;
inline bool CMsgSteamNetworkingP2PRendezvous_ConnectOK::has_crypt() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.crypt_ != nullptr);
  return value;
}
inline void CMsgSteamNetworkingP2PRendezvous_ConnectOK::clear_crypt() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.crypt_ != nullptr) _impl_.crypt_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::CMsgSteamDatagramSessionCryptInfoSigned& CMsgSteamNetworkingP2PRendezvous_ConnectOK::_internal_crypt() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::CMsgSteamDatagramSessionCryptInfoSigned* p = _impl_.crypt_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::CMsgSteamDatagramSessionCryptInfoSigned>(&::CMsgSteamDatagramSessionCryptInfoSigned_globals_);
}
inline const ::CMsgSteamDatagramSessionCryptInfoSigned& CMsgSteamNetworkingP2PRendezvous_ConnectOK::crypt() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingP2PRendezvous.ConnectOK.crypt)
  return _internal_crypt();
}
inline void CMsgSteamNetworkingP2PRendezvous_ConnectOK::unsafe_arena_set_allocated_crypt(
    ::CMsgSteamDatagramSessionCryptInfoSigned* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.crypt_);
  }
  _impl_.crypt_ = reinterpret_cast<::CMsgSteamDatagramSessionCryptInfoSigned*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CMsgSteamNetworkingP2PRendezvous.ConnectOK.crypt)
}
inline ::CMsgSteamDatagramSessionCryptInfoSigned* PROTOBUF_NULLABLE CMsgSteamNetworkingP2PRendezvous_ConnectOK::release_crypt() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::CMsgSteamDatagramSessionCryptInfoSigned* released = _impl_.crypt_;
  _impl_.crypt_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::CMsgSteamDatagramSessionCryptInfoSigned* PROTOBUF_NULLABLE CMsgSteamNetworkingP2PRendezvous_ConnectOK::unsafe_arena_release_crypt() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:CMsgSteamNetworkingP2PRendezvous.ConnectOK.crypt)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::CMsgSteamDatagramSessionCryptInfoSigned* temp = _impl_.crypt_;
  _impl_.crypt_ = nullptr;
  return temp;
}
inline ::CMsgSteamDatagramSessionCryptInfoSigned* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous_ConnectOK::_internal_mutable_crypt() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.crypt_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::CMsgSteamDatagramSessionCryptInfoSigned>(GetArena());
    _impl_.crypt_ = reinterpret_cast<::CMsgSteamDatagramSessionCryptInfoSigned*>(p);
  }
  return _impl_.crypt_;
}
inline ::CMsgSteamDatagramSessionCryptInfoSigned* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous_ConnectOK::mutable_crypt()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::CMsgSteamDatagramSessionCryptInfoSigned* _msg = _internal_mutable_crypt();
  // @@protoc_insertion_point(field_mutable:CMsgSteamNetworkingP2PRendezvous.ConnectOK.crypt)
  return _msg;
}
inline void CMsgSteamNetworkingP2PRendezvous_ConnectOK::set_allocated_crypt(::CMsgSteamDatagramSessionCryptInfoSigned* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.crypt_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.crypt_ = reinterpret_cast<::CMsgSteamDatagramSessionCryptInfoSigned*>(value);
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamNetworkingP2PRendezvous.ConnectOK.crypt)
}

// optional .CMsgSteamDatagramCertificateSigned cert = 6;
inline bool CMsgSteamNetworkingP2PRendezvous_ConnectOK::has_cert() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.cert_ != nullptr);
  return value;
}
inline const ::CMsgSteamDatagramCertificateSigned& CMsgSteamNetworkingP2PRendezvous_ConnectOK::_internal_cert() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::CMsgSteamDatagramCertificateSigned* p = _impl_.cert_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::CMsgSteamDatagramCertificateSigned>(&::CMsgSteamDatagramCertificateSigned_globals_);
}
inline const ::CMsgSteamDatagramCertificateSigned& CMsgSteamNetworkingP2PRendezvous_ConnectOK::cert() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingP2PRendezvous.ConnectOK.cert)
  return _internal_cert();
}
inline void CMsgSteamNetworkingP2PRendezvous_ConnectOK::unsafe_arena_set_allocated_cert(
    ::CMsgSteamDatagramCertificateSigned* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.cert_);
  }
  _impl_.cert_ = reinterpret_cast<::CMsgSteamDatagramCertificateSigned*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CMsgSteamNetworkingP2PRendezvous.ConnectOK.cert)
}
inline ::CMsgSteamDatagramCertificateSigned* PROTOBUF_NULLABLE CMsgSteamNetworkingP2PRendezvous_ConnectOK::release_cert() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::CMsgSteamDatagramCertificateSigned* released = _impl_.cert_;
  _impl_.cert_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::CMsgSteamDatagramCertificateSigned* PROTOBUF_NULLABLE CMsgSteamNetworkingP2PRendezvous_ConnectOK::unsafe_arena_release_cert() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:CMsgSteamNetworkingP2PRendezvous.ConnectOK.cert)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::CMsgSteamDatagramCertificateSigned* temp = _impl_.cert_;
  _impl_.cert_ = nullptr;
  return temp;
}
inline ::CMsgSteamDatagramCertificateSigned* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous_ConnectOK::_internal_mutable_cert() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.cert_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::CMsgSteamDatagramCertificateSigned>(GetArena());
    _impl_.cert_ = reinterpret_cast<::CMsgSteamDatagramCertificateSigned*>(p);
  }
  return _impl_.cert_;
}
inline ::CMsgSteamDatagramCertificateSigned* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous_ConnectOK::mutable_cert()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::CMsgSteamDatagramCertificateSigned* _msg = _internal_mutable_cert();
  // @@protoc_insertion_point(field_mutable:CMsgSteamNetworkingP2PRendezvous.ConnectOK.cert)
  return _msg;
}
inline void CMsgSteamNetworkingP2PRendezvous_ConnectOK::set_allocated_cert(::CMsgSteamDatagramCertificateSigned* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.cert_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::Message*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.cert_ = reinterpret_cast<::CMsgSteamDatagramCertificateSigned*>(value);
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamNetworkingP2PRendezvous.ConnectOK.cert)
}

// -------------------------------------------------------------------

// CMsgSteamNetworkingP2PRendezvous_ConnectionClosed

// optional string debug = 5;
inline bool CMsgSteamNetworkingP2PRendezvous_ConnectionClosed::has_debug() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void CMsgSteamNetworkingP2PRendezvous_ConnectionClosed::clear_debug() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.debug_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& CMsgSteamNetworkingP2PRendezvous_ConnectionClosed::debug() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingP2PRendezvous.ConnectionClosed.debug)
  return _internal_debug();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void CMsgSteamNetworkingP2PRendezvous_ConnectionClosed::set_debug(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.debug_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingP2PRendezvous.ConnectionClosed.debug)
}
inline ::std::string* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous_ConnectionClosed::mutable_debug()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_debug();
  // @@protoc_insertion_point(field_mutable:CMsgSteamNetworkingP2PRendezvous.ConnectionClosed.debug)
  return _s;
}
inline const ::std::string& CMsgSteamNetworkingP2PRendezvous_ConnectionClosed::_internal_debug() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.debug_.Get();
}
inline void CMsgSteamNetworkingP2PRendezvous_ConnectionClosed::_internal_set_debug(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.debug_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous_ConnectionClosed::_internal_mutable_debug() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.debug_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE CMsgSteamNetworkingP2PRendezvous_ConnectionClosed::release_debug() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:CMsgSteamNetworkingP2PRendezvous.ConnectionClosed.debug)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.debug_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.debug_.Set("", GetArena());
  }
  return released;
}
inline void CMsgSteamNetworkingP2PRendezvous_ConnectionClosed::set_allocated_debug(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.debug_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.debug_.IsDefault()) {
    _impl_.debug_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamNetworkingP2PRendezvous.ConnectionClosed.debug)
}

// optional uint32 reason_code = 6;
inline bool CMsgSteamNetworkingP2PRendezvous_ConnectionClosed::has_reason_code() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void CMsgSteamNetworkingP2PRendezvous_ConnectionClosed::clear_reason_code() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.reason_code_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint32_t CMsgSteamNetworkingP2PRendezvous_ConnectionClosed::reason_code() const {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingP2PRendezvous.ConnectionClosed.reason_code)
  return _internal_reason_code();
}
inline void CMsgSteamNetworkingP2PRendezvous_ConnectionClosed::set_reason_code(::uint32_t value) {
  _internal_set_reason_code(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingP2PRendezvous.ConnectionClosed.reason_code)
}
inline ::uint32_t CMsgSteamNetworkingP2PRendezvous_ConnectionClosed::_internal_reason_code() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.reason_code_;
}
inline void CMsgSteamNetworkingP2PRendezvous_ConnectionClosed::_internal_set_reason_code(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.reason_code_ = value;
}

// -------------------------------------------------------------------

// CMsgSteamNetworkingP2PRendezvous_ReliableMessage

// optional .CMsgICERendezvous ice = 1;
inline bool CMsgSteamNetworkingP2PRendezvous_ReliableMessage::has_ice() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.ice_ != nullptr);
  return value;
}
inline void CMsgSteamNetworkingP2PRendezvous_ReliableMessage::clear_ice() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.ice_ != nullptr) _impl_.ice_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::CMsgICERendezvous& CMsgSteamNetworkingP2PRendezvous_ReliableMessage::_internal_ice() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::CMsgICERendezvous* p = _impl_.ice_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::CMsgICERendezvous>(&::CMsgICERendezvous_globals_);
}
inline const ::CMsgICERendezvous& CMsgSteamNetworkingP2PRendezvous_ReliableMessage::ice() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingP2PRendezvous.ReliableMessage.ice)
  return _internal_ice();
}
inline void CMsgSteamNetworkingP2PRendezvous_ReliableMessage::unsafe_arena_set_allocated_ice(
    ::CMsgICERendezvous* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.ice_);
  }
  _impl_.ice_ = reinterpret_cast<::CMsgICERendezvous*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CMsgSteamNetworkingP2PRendezvous.ReliableMessage.ice)
}
inline ::CMsgICERendezvous* PROTOBUF_NULLABLE CMsgSteamNetworkingP2PRendezvous_ReliableMessage::release_ice() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::CMsgICERendezvous* released = _impl_.ice_;
  _impl_.ice_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::CMsgICERendezvous* PROTOBUF_NULLABLE CMsgSteamNetworkingP2PRendezvous_ReliableMessage::unsafe_arena_release_ice() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:CMsgSteamNetworkingP2PRendezvous.ReliableMessage.ice)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::CMsgICERendezvous* temp = _impl_.ice_;
  _impl_.ice_ = nullptr;
  return temp;
}
inline ::CMsgICERendezvous* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous_ReliableMessage::_internal_mutable_ice() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.ice_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::CMsgICERendezvous>(GetArena());
    _impl_.ice_ = reinterpret_cast<::CMsgICERendezvous*>(p);
  }
  return _impl_.ice_;
}
inline ::CMsgICERendezvous* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous_ReliableMessage::mutable_ice()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::CMsgICERendezvous* _msg = _internal_mutable_ice();
  // @@protoc_insertion_point(field_mutable:CMsgSteamNetworkingP2PRendezvous.ReliableMessage.ice)
  return _msg;
}
inline void CMsgSteamNetworkingP2PRendezvous_ReliableMessage::set_allocated_ice(::CMsgICERendezvous* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.ice_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.ice_ = reinterpret_cast<::CMsgICERendezvous*>(value);
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamNetworkingP2PRendezvous.ReliableMessage.ice)
}

// -------------------------------------------------------------------

// CMsgSteamNetworkingP2PRendezvous_ApplicationMessage

// optional bytes data = 1;
inline bool CMsgSteamNetworkingP2PRendezvous_ApplicationMessage::has_data() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void CMsgSteamNetworkingP2PRendezvous_ApplicationMessage::clear_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.data_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& CMsgSteamNetworkingP2PRendezvous_ApplicationMessage::data() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingP2PRendezvous.ApplicationMessage.data)
  return _internal_data();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void CMsgSteamNetworkingP2PRendezvous_ApplicationMessage::set_data(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.data_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingP2PRendezvous.ApplicationMessage.data)
}
inline ::std::string* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous_ApplicationMessage::mutable_data()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_data();
  // @@protoc_insertion_point(field_mutable:CMsgSteamNetworkingP2PRendezvous.ApplicationMessage.data)
  return _s;
}
inline const ::std::string& CMsgSteamNetworkingP2PRendezvous_ApplicationMessage::_internal_data() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.data_.Get();
}
inline void CMsgSteamNetworkingP2PRendezvous_ApplicationMessage::_internal_set_data(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.data_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous_ApplicationMessage::_internal_mutable_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.data_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE CMsgSteamNetworkingP2PRendezvous_ApplicationMessage::release_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:CMsgSteamNetworkingP2PRendezvous.ApplicationMessage.data)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.data_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.data_.Set("", GetArena());
  }
  return released;
}
inline void CMsgSteamNetworkingP2PRendezvous_ApplicationMessage::set_allocated_data(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.data_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.data_.IsDefault()) {
    _impl_.data_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamNetworkingP2PRendezvous.ApplicationMessage.data)
}

// optional uint64 msg_num = 2;
inline bool CMsgSteamNetworkingP2PRendezvous_ApplicationMessage::has_msg_num() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void CMsgSteamNetworkingP2PRendezvous_ApplicationMessage::clear_msg_num() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.msg_num_ = ::uint64_t{0u};
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint64_t CMsgSteamNetworkingP2PRendezvous_ApplicationMessage::msg_num() const {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingP2PRendezvous.ApplicationMessage.msg_num)
  return _internal_msg_num();
}
inline void CMsgSteamNetworkingP2PRendezvous_ApplicationMessage::set_msg_num(::uint64_t value) {
  _internal_set_msg_num(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingP2PRendezvous.ApplicationMessage.msg_num)
}
inline ::uint64_t CMsgSteamNetworkingP2PRendezvous_ApplicationMessage::_internal_msg_num() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.msg_num_;
}
inline void CMsgSteamNetworkingP2PRendezvous_ApplicationMessage::_internal_set_msg_num(::uint64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.msg_num_ = value;
}

// optional uint32 flags = 3;
inline bool CMsgSteamNetworkingP2PRendezvous_ApplicationMessage::has_flags() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void CMsgSteamNetworkingP2PRendezvous_ApplicationMessage::clear_flags() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.flags_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::uint32_t CMsgSteamNetworkingP2PRendezvous_ApplicationMessage::flags() const {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingP2PRendezvous.ApplicationMessage.flags)
  return _internal_flags();
}
inline void CMsgSteamNetworkingP2PRendezvous_ApplicationMessage::set_flags(::uint32_t value) {
  _internal_set_flags(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingP2PRendezvous.ApplicationMessage.flags)
}
inline ::uint32_t CMsgSteamNetworkingP2PRendezvous_ApplicationMessage::_internal_flags() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.flags_;
}
inline void CMsgSteamNetworkingP2PRendezvous_ApplicationMessage::_internal_set_flags(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.flags_ = value;
}

// optional uint32 lane_idx = 4;
inline bool CMsgSteamNetworkingP2PRendezvous_ApplicationMessage::has_lane_idx() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void CMsgSteamNetworkingP2PRendezvous_ApplicationMessage::clear_lane_idx() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.lane_idx_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::uint32_t CMsgSteamNetworkingP2PRendezvous_ApplicationMessage::lane_idx() const {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingP2PRendezvous.ApplicationMessage.lane_idx)
  return _internal_lane_idx();
}
inline void CMsgSteamNetworkingP2PRendezvous_ApplicationMessage::set_lane_idx(::uint32_t value) {
  _internal_set_lane_idx(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingP2PRendezvous.ApplicationMessage.lane_idx)
}
inline ::uint32_t CMsgSteamNetworkingP2PRendezvous_ApplicationMessage::_internal_lane_idx() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.lane_idx_;
}
inline void CMsgSteamNetworkingP2PRendezvous_ApplicationMessage::_internal_set_lane_idx(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.lane_idx_ = value;
}

// -------------------------------------------------------------------

// CMsgSteamNetworkingP2PRendezvous

// optional string from_identity = 8;
inline bool CMsgSteamNetworkingP2PRendezvous::has_from_identity() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void CMsgSteamNetworkingP2PRendezvous::clear_from_identity() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.from_identity_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::std::string& CMsgSteamNetworkingP2PRendezvous::from_identity() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingP2PRendezvous.from_identity)
  return _internal_from_identity();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void CMsgSteamNetworkingP2PRendezvous::set_from_identity(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  _impl_.from_identity_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingP2PRendezvous.from_identity)
}
inline ::std::string* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous::mutable_from_identity()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::std::string* _s = _internal_mutable_from_identity();
  // @@protoc_insertion_point(field_mutable:CMsgSteamNetworkingP2PRendezvous.from_identity)
  return _s;
}
inline const ::std::string& CMsgSteamNetworkingP2PRendezvous::_internal_from_identity() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.from_identity_.Get();
}
inline void CMsgSteamNetworkingP2PRendezvous::_internal_set_from_identity(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.from_identity_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous::_internal_mutable_from_identity() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.from_identity_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE CMsgSteamNetworkingP2PRendezvous::release_from_identity() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:CMsgSteamNetworkingP2PRendezvous.from_identity)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000008U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  auto* released = _impl_.from_identity_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.from_identity_.Set("", GetArena());
  }
  return released;
}
inline void CMsgSteamNetworkingP2PRendezvous::set_allocated_from_identity(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  _impl_.from_identity_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.from_identity_.IsDefault()) {
    _impl_.from_identity_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamNetworkingP2PRendezvous.from_identity)
}

// optional fixed32 from_connection_id = 9;
inline bool CMsgSteamNetworkingP2PRendezvous::has_from_connection_id() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00001000U);
  return value;
}
inline void CMsgSteamNetworkingP2PRendezvous::clear_from_connection_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.from_connection_id_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00001000U);
}
inline ::uint32_t CMsgSteamNetworkingP2PRendezvous::from_connection_id() const {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingP2PRendezvous.from_connection_id)
  return _internal_from_connection_id();
}
inline void CMsgSteamNetworkingP2PRendezvous::set_from_connection_id(::uint32_t value) {
  _internal_set_from_connection_id(value);
  SetHasBit(_impl_._has_bits_[0], 0x00001000U);
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingP2PRendezvous.from_connection_id)
}
inline ::uint32_t CMsgSteamNetworkingP2PRendezvous::_internal_from_connection_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.from_connection_id_;
}
inline void CMsgSteamNetworkingP2PRendezvous::_internal_set_from_connection_id(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.from_connection_id_ = value;
}

// optional string to_identity = 10;
inline bool CMsgSteamNetworkingP2PRendezvous::has_to_identity() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void CMsgSteamNetworkingP2PRendezvous::clear_to_identity() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.to_identity_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline const ::std::string& CMsgSteamNetworkingP2PRendezvous::to_identity() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingP2PRendezvous.to_identity)
  return _internal_to_identity();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void CMsgSteamNetworkingP2PRendezvous::set_to_identity(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  _impl_.to_identity_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingP2PRendezvous.to_identity)
}
inline ::std::string* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous::mutable_to_identity()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::std::string* _s = _internal_mutable_to_identity();
  // @@protoc_insertion_point(field_mutable:CMsgSteamNetworkingP2PRendezvous.to_identity)
  return _s;
}
inline const ::std::string& CMsgSteamNetworkingP2PRendezvous::_internal_to_identity() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.to_identity_.Get();
}
inline void CMsgSteamNetworkingP2PRendezvous::_internal_set_to_identity(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.to_identity_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous::_internal_mutable_to_identity() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.to_identity_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE CMsgSteamNetworkingP2PRendezvous::release_to_identity() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:CMsgSteamNetworkingP2PRendezvous.to_identity)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000010U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  auto* released = _impl_.to_identity_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.to_identity_.Set("", GetArena());
  }
  return released;
}
inline void CMsgSteamNetworkingP2PRendezvous::set_allocated_to_identity(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }
  _impl_.to_identity_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.to_identity_.IsDefault()) {
    _impl_.to_identity_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamNetworkingP2PRendezvous.to_identity)
}

// optional fixed32 to_connection_id = 1;
inline bool CMsgSteamNetworkingP2PRendezvous::has_to_connection_id() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000200U);
  return value;
}
inline void CMsgSteamNetworkingP2PRendezvous::clear_to_connection_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.to_connection_id_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
}
inline ::uint32_t CMsgSteamNetworkingP2PRendezvous::to_connection_id() const {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingP2PRendezvous.to_connection_id)
  return _internal_to_connection_id();
}
inline void CMsgSteamNetworkingP2PRendezvous::set_to_connection_id(::uint32_t value) {
  _internal_set_to_connection_id(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingP2PRendezvous.to_connection_id)
}
inline ::uint32_t CMsgSteamNetworkingP2PRendezvous::_internal_to_connection_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.to_connection_id_;
}
inline void CMsgSteamNetworkingP2PRendezvous::_internal_set_to_connection_id(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.to_connection_id_ = value;
}

// optional bytes sdr_routes = 2;
inline bool CMsgSteamNetworkingP2PRendezvous::has_sdr_routes() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void CMsgSteamNetworkingP2PRendezvous::clear_sdr_routes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.sdr_routes_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& CMsgSteamNetworkingP2PRendezvous::sdr_routes() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingP2PRendezvous.sdr_routes)
  return _internal_sdr_routes();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void CMsgSteamNetworkingP2PRendezvous::set_sdr_routes(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.sdr_routes_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingP2PRendezvous.sdr_routes)
}
inline ::std::string* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous::mutable_sdr_routes()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_sdr_routes();
  // @@protoc_insertion_point(field_mutable:CMsgSteamNetworkingP2PRendezvous.sdr_routes)
  return _s;
}
inline const ::std::string& CMsgSteamNetworkingP2PRendezvous::_internal_sdr_routes() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.sdr_routes_.Get();
}
inline void CMsgSteamNetworkingP2PRendezvous::_internal_set_sdr_routes(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.sdr_routes_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous::_internal_mutable_sdr_routes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.sdr_routes_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE CMsgSteamNetworkingP2PRendezvous::release_sdr_routes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:CMsgSteamNetworkingP2PRendezvous.sdr_routes)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.sdr_routes_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.sdr_routes_.Set("", GetArena());
  }
  return released;
}
inline void CMsgSteamNetworkingP2PRendezvous::set_allocated_sdr_routes(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.sdr_routes_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.sdr_routes_.IsDefault()) {
    _impl_.sdr_routes_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamNetworkingP2PRendezvous.sdr_routes)
}

// optional uint32 ack_peer_routes_revision = 3;
inline bool CMsgSteamNetworkingP2PRendezvous::has_ack_peer_routes_revision() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000400U);
  return value;
}
inline void CMsgSteamNetworkingP2PRendezvous::clear_ack_peer_routes_revision() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ack_peer_routes_revision_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
}
inline ::uint32_t CMsgSteamNetworkingP2PRendezvous::ack_peer_routes_revision() const {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingP2PRendezvous.ack_peer_routes_revision)
  return _internal_ack_peer_routes_revision();
}
inline void CMsgSteamNetworkingP2PRendezvous::set_ack_peer_routes_revision(::uint32_t value) {
  _internal_set_ack_peer_routes_revision(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000400U);
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingP2PRendezvous.ack_peer_routes_revision)
}
inline ::uint32_t CMsgSteamNetworkingP2PRendezvous::_internal_ack_peer_routes_revision() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ack_peer_routes_revision_;
}
inline void CMsgSteamNetworkingP2PRendezvous::_internal_set_ack_peer_routes_revision(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ack_peer_routes_revision_ = value;
}

// optional bool ice_enabled = 7;
inline bool CMsgSteamNetworkingP2PRendezvous::has_ice_enabled() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000800U);
  return value;
}
inline void CMsgSteamNetworkingP2PRendezvous::clear_ice_enabled() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ice_enabled_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000800U);
}
inline bool CMsgSteamNetworkingP2PRendezvous::ice_enabled() const {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingP2PRendezvous.ice_enabled)
  return _internal_ice_enabled();
}
inline void CMsgSteamNetworkingP2PRendezvous::set_ice_enabled(bool value) {
  _internal_set_ice_enabled(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000800U);
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingP2PRendezvous.ice_enabled)
}
inline bool CMsgSteamNetworkingP2PRendezvous::_internal_ice_enabled() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ice_enabled_;
}
inline void CMsgSteamNetworkingP2PRendezvous::_internal_set_ice_enabled(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ice_enabled_ = value;
}

// optional bytes hosted_server_ticket = 14;
inline bool CMsgSteamNetworkingP2PRendezvous::has_hosted_server_ticket() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  return value;
}
inline void CMsgSteamNetworkingP2PRendezvous::clear_hosted_server_ticket() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.hosted_server_ticket_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline const ::std::string& CMsgSteamNetworkingP2PRendezvous::hosted_server_ticket() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingP2PRendezvous.hosted_server_ticket)
  return _internal_hosted_server_ticket();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void CMsgSteamNetworkingP2PRendezvous::set_hosted_server_ticket(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  _impl_.hosted_server_ticket_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingP2PRendezvous.hosted_server_ticket)
}
inline ::std::string* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous::mutable_hosted_server_ticket()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::std::string* _s = _internal_mutable_hosted_server_ticket();
  // @@protoc_insertion_point(field_mutable:CMsgSteamNetworkingP2PRendezvous.hosted_server_ticket)
  return _s;
}
inline const ::std::string& CMsgSteamNetworkingP2PRendezvous::_internal_hosted_server_ticket() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.hosted_server_ticket_.Get();
}
inline void CMsgSteamNetworkingP2PRendezvous::_internal_set_hosted_server_ticket(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.hosted_server_ticket_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous::_internal_mutable_hosted_server_ticket() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.hosted_server_ticket_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE CMsgSteamNetworkingP2PRendezvous::release_hosted_server_ticket() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:CMsgSteamNetworkingP2PRendezvous.hosted_server_ticket)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000020U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  auto* released = _impl_.hosted_server_ticket_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.hosted_server_ticket_.Set("", GetArena());
  }
  return released;
}
inline void CMsgSteamNetworkingP2PRendezvous::set_allocated_hosted_server_ticket(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  }
  _impl_.hosted_server_ticket_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.hosted_server_ticket_.IsDefault()) {
    _impl_.hosted_server_ticket_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamNetworkingP2PRendezvous.hosted_server_ticket)
}

// optional .CMsgSteamNetworkingP2PRendezvous.ConnectRequest connect_request = 4;
inline bool CMsgSteamNetworkingP2PRendezvous::has_connect_request() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000040U);
  PROTOBUF_ASSUME(!value || _impl_.connect_request_ != nullptr);
  return value;
}
inline void CMsgSteamNetworkingP2PRendezvous::clear_connect_request() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.connect_request_ != nullptr) _impl_.connect_request_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline const ::CMsgSteamNetworkingP2PRendezvous_ConnectRequest& CMsgSteamNetworkingP2PRendezvous::_internal_connect_request() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::CMsgSteamNetworkingP2PRendezvous_ConnectRequest* p = _impl_.connect_request_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::CMsgSteamNetworkingP2PRendezvous_ConnectRequest>(&::CMsgSteamNetworkingP2PRendezvous_ConnectRequest_globals_);
}
inline const ::CMsgSteamNetworkingP2PRendezvous_ConnectRequest& CMsgSteamNetworkingP2PRendezvous::connect_request() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingP2PRendezvous.connect_request)
  return _internal_connect_request();
}
inline void CMsgSteamNetworkingP2PRendezvous::unsafe_arena_set_allocated_connect_request(
    ::CMsgSteamNetworkingP2PRendezvous_ConnectRequest* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.connect_request_);
  }
  _impl_.connect_request_ = reinterpret_cast<::CMsgSteamNetworkingP2PRendezvous_ConnectRequest*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CMsgSteamNetworkingP2PRendezvous.connect_request)
}
inline ::CMsgSteamNetworkingP2PRendezvous_ConnectRequest* PROTOBUF_NULLABLE CMsgSteamNetworkingP2PRendezvous::release_connect_request() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::CMsgSteamNetworkingP2PRendezvous_ConnectRequest* released = _impl_.connect_request_;
  _impl_.connect_request_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::CMsgSteamNetworkingP2PRendezvous_ConnectRequest* PROTOBUF_NULLABLE CMsgSteamNetworkingP2PRendezvous::unsafe_arena_release_connect_request() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:CMsgSteamNetworkingP2PRendezvous.connect_request)

  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::CMsgSteamNetworkingP2PRendezvous_ConnectRequest* temp = _impl_.connect_request_;
  _impl_.connect_request_ = nullptr;
  return temp;
}
inline ::CMsgSteamNetworkingP2PRendezvous_ConnectRequest* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous::_internal_mutable_connect_request() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.connect_request_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::CMsgSteamNetworkingP2PRendezvous_ConnectRequest>(GetArena());
    _impl_.connect_request_ = reinterpret_cast<::CMsgSteamNetworkingP2PRendezvous_ConnectRequest*>(p);
  }
  return _impl_.connect_request_;
}
inline ::CMsgSteamNetworkingP2PRendezvous_ConnectRequest* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous::mutable_connect_request()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::CMsgSteamNetworkingP2PRendezvous_ConnectRequest* _msg = _internal_mutable_connect_request();
  // @@protoc_insertion_point(field_mutable:CMsgSteamNetworkingP2PRendezvous.connect_request)
  return _msg;
}
inline void CMsgSteamNetworkingP2PRendezvous::set_allocated_connect_request(::CMsgSteamNetworkingP2PRendezvous_ConnectRequest* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.connect_request_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  }

  _impl_.connect_request_ = reinterpret_cast<::CMsgSteamNetworkingP2PRendezvous_ConnectRequest*>(value);
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamNetworkingP2PRendezvous.connect_request)
}

// optional .CMsgSteamNetworkingP2PRendezvous.ConnectOK connect_ok = 5;
inline bool CMsgSteamNetworkingP2PRendezvous::has_connect_ok() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000080U);
  PROTOBUF_ASSUME(!value || _impl_.connect_ok_ != nullptr);
  return value;
}
inline void CMsgSteamNetworkingP2PRendezvous::clear_connect_ok() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.connect_ok_ != nullptr) _impl_.connect_ok_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
inline const ::CMsgSteamNetworkingP2PRendezvous_ConnectOK& CMsgSteamNetworkingP2PRendezvous::_internal_connect_ok() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::CMsgSteamNetworkingP2PRendezvous_ConnectOK* p = _impl_.connect_ok_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::CMsgSteamNetworkingP2PRendezvous_ConnectOK>(&::CMsgSteamNetworkingP2PRendezvous_ConnectOK_globals_);
}
inline const ::CMsgSteamNetworkingP2PRendezvous_ConnectOK& CMsgSteamNetworkingP2PRendezvous::connect_ok() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingP2PRendezvous.connect_ok)
  return _internal_connect_ok();
}
inline void CMsgSteamNetworkingP2PRendezvous::unsafe_arena_set_allocated_connect_ok(
    ::CMsgSteamNetworkingP2PRendezvous_ConnectOK* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.connect_ok_);
  }
  _impl_.connect_ok_ = reinterpret_cast<::CMsgSteamNetworkingP2PRendezvous_ConnectOK*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CMsgSteamNetworkingP2PRendezvous.connect_ok)
}
inline ::CMsgSteamNetworkingP2PRendezvous_ConnectOK* PROTOBUF_NULLABLE CMsgSteamNetworkingP2PRendezvous::release_connect_ok() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::CMsgSteamNetworkingP2PRendezvous_ConnectOK* released = _impl_.connect_ok_;
  _impl_.connect_ok_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::CMsgSteamNetworkingP2PRendezvous_ConnectOK* PROTOBUF_NULLABLE CMsgSteamNetworkingP2PRendezvous::unsafe_arena_release_connect_ok() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:CMsgSteamNetworkingP2PRendezvous.connect_ok)

  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::CMsgSteamNetworkingP2PRendezvous_ConnectOK* temp = _impl_.connect_ok_;
  _impl_.connect_ok_ = nullptr;
  return temp;
}
inline ::CMsgSteamNetworkingP2PRendezvous_ConnectOK* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous::_internal_mutable_connect_ok() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.connect_ok_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::CMsgSteamNetworkingP2PRendezvous_ConnectOK>(GetArena());
    _impl_.connect_ok_ = reinterpret_cast<::CMsgSteamNetworkingP2PRendezvous_ConnectOK*>(p);
  }
  return _impl_.connect_ok_;
}
inline ::CMsgSteamNetworkingP2PRendezvous_ConnectOK* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous::mutable_connect_ok()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::CMsgSteamNetworkingP2PRendezvous_ConnectOK* _msg = _internal_mutable_connect_ok();
  // @@protoc_insertion_point(field_mutable:CMsgSteamNetworkingP2PRendezvous.connect_ok)
  return _msg;
}
inline void CMsgSteamNetworkingP2PRendezvous::set_allocated_connect_ok(::CMsgSteamNetworkingP2PRendezvous_ConnectOK* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.connect_ok_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  }

  _impl_.connect_ok_ = reinterpret_cast<::CMsgSteamNetworkingP2PRendezvous_ConnectOK*>(value);
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamNetworkingP2PRendezvous.connect_ok)
}

// optional .CMsgSteamNetworkingP2PRendezvous.ConnectionClosed connection_closed = 6;
inline bool CMsgSteamNetworkingP2PRendezvous::has_connection_closed() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000100U);
  PROTOBUF_ASSUME(!value || _impl_.connection_closed_ != nullptr);
  return value;
}
inline void CMsgSteamNetworkingP2PRendezvous::clear_connection_closed() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.connection_closed_ != nullptr) _impl_.connection_closed_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
}
inline const ::CMsgSteamNetworkingP2PRendezvous_ConnectionClosed& CMsgSteamNetworkingP2PRendezvous::_internal_connection_closed() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::CMsgSteamNetworkingP2PRendezvous_ConnectionClosed* p = _impl_.connection_closed_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::CMsgSteamNetworkingP2PRendezvous_ConnectionClosed>(&::CMsgSteamNetworkingP2PRendezvous_ConnectionClosed_globals_);
}
inline const ::CMsgSteamNetworkingP2PRendezvous_ConnectionClosed& CMsgSteamNetworkingP2PRendezvous::connection_closed() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingP2PRendezvous.connection_closed)
  return _internal_connection_closed();
}
inline void CMsgSteamNetworkingP2PRendezvous::unsafe_arena_set_allocated_connection_closed(
    ::CMsgSteamNetworkingP2PRendezvous_ConnectionClosed* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.connection_closed_);
  }
  _impl_.connection_closed_ = reinterpret_cast<::CMsgSteamNetworkingP2PRendezvous_ConnectionClosed*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:CMsgSteamNetworkingP2PRendezvous.connection_closed)
}
inline ::CMsgSteamNetworkingP2PRendezvous_ConnectionClosed* PROTOBUF_NULLABLE CMsgSteamNetworkingP2PRendezvous::release_connection_closed() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::CMsgSteamNetworkingP2PRendezvous_ConnectionClosed* released = _impl_.connection_closed_;
  _impl_.connection_closed_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::CMsgSteamNetworkingP2PRendezvous_ConnectionClosed* PROTOBUF_NULLABLE CMsgSteamNetworkingP2PRendezvous::unsafe_arena_release_connection_closed() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:CMsgSteamNetworkingP2PRendezvous.connection_closed)

  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::CMsgSteamNetworkingP2PRendezvous_ConnectionClosed* temp = _impl_.connection_closed_;
  _impl_.connection_closed_ = nullptr;
  return temp;
}
inline ::CMsgSteamNetworkingP2PRendezvous_ConnectionClosed* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous::_internal_mutable_connection_closed() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.connection_closed_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::CMsgSteamNetworkingP2PRendezvous_ConnectionClosed>(GetArena());
    _impl_.connection_closed_ = reinterpret_cast<::CMsgSteamNetworkingP2PRendezvous_ConnectionClosed*>(p);
  }
  return _impl_.connection_closed_;
}
inline ::CMsgSteamNetworkingP2PRendezvous_ConnectionClosed* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous::mutable_connection_closed()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::CMsgSteamNetworkingP2PRendezvous_ConnectionClosed* _msg = _internal_mutable_connection_closed();
  // @@protoc_insertion_point(field_mutable:CMsgSteamNetworkingP2PRendezvous.connection_closed)
  return _msg;
}
inline void CMsgSteamNetworkingP2PRendezvous::set_allocated_connection_closed(::CMsgSteamNetworkingP2PRendezvous_ConnectionClosed* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.connection_closed_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  }

  _impl_.connection_closed_ = reinterpret_cast<::CMsgSteamNetworkingP2PRendezvous_ConnectionClosed*>(value);
  // @@protoc_insertion_point(field_set_allocated:CMsgSteamNetworkingP2PRendezvous.connection_closed)
}

// optional uint32 ack_reliable_msg = 11;
inline bool CMsgSteamNetworkingP2PRendezvous::has_ack_reliable_msg() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00002000U);
  return value;
}
inline void CMsgSteamNetworkingP2PRendezvous::clear_ack_reliable_msg() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ack_reliable_msg_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00002000U);
}
inline ::uint32_t CMsgSteamNetworkingP2PRendezvous::ack_reliable_msg() const {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingP2PRendezvous.ack_reliable_msg)
  return _internal_ack_reliable_msg();
}
inline void CMsgSteamNetworkingP2PRendezvous::set_ack_reliable_msg(::uint32_t value) {
  _internal_set_ack_reliable_msg(value);
  SetHasBit(_impl_._has_bits_[0], 0x00002000U);
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingP2PRendezvous.ack_reliable_msg)
}
inline ::uint32_t CMsgSteamNetworkingP2PRendezvous::_internal_ack_reliable_msg() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ack_reliable_msg_;
}
inline void CMsgSteamNetworkingP2PRendezvous::_internal_set_ack_reliable_msg(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ack_reliable_msg_ = value;
}

// optional uint32 first_reliable_msg = 12;
inline bool CMsgSteamNetworkingP2PRendezvous::has_first_reliable_msg() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00004000U);
  return value;
}
inline void CMsgSteamNetworkingP2PRendezvous::clear_first_reliable_msg() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.first_reliable_msg_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00004000U);
}
inline ::uint32_t CMsgSteamNetworkingP2PRendezvous::first_reliable_msg() const {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingP2PRendezvous.first_reliable_msg)
  return _internal_first_reliable_msg();
}
inline void CMsgSteamNetworkingP2PRendezvous::set_first_reliable_msg(::uint32_t value) {
  _internal_set_first_reliable_msg(value);
  SetHasBit(_impl_._has_bits_[0], 0x00004000U);
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingP2PRendezvous.first_reliable_msg)
}
inline ::uint32_t CMsgSteamNetworkingP2PRendezvous::_internal_first_reliable_msg() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.first_reliable_msg_;
}
inline void CMsgSteamNetworkingP2PRendezvous::_internal_set_first_reliable_msg(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.first_reliable_msg_ = value;
}

// repeated .CMsgSteamNetworkingP2PRendezvous.ReliableMessage reliable_messages = 13;
inline int CMsgSteamNetworkingP2PRendezvous::_internal_reliable_messages_size() const {
  return _internal_reliable_messages().size();
}
inline int CMsgSteamNetworkingP2PRendezvous::reliable_messages_size() const {
  return _internal_reliable_messages_size();
}
inline void CMsgSteamNetworkingP2PRendezvous::clear_reliable_messages() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.reliable_messages_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::CMsgSteamNetworkingP2PRendezvous_ReliableMessage& CMsgSteamNetworkingP2PRendezvous::reliable_messages(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingP2PRendezvous.reliable_messages)
  return _internal_reliable_messages().Get(index);
}
inline ::CMsgSteamNetworkingP2PRendezvous_ReliableMessage* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous::mutable_reliable_messages(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:CMsgSteamNetworkingP2PRendezvous.reliable_messages)
  return _internal_mutable_reliable_messages()->Mutable(index);
}
inline ::CMsgSteamNetworkingP2PRendezvous_ReliableMessage* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous::add_reliable_messages()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::CMsgSteamNetworkingP2PRendezvous_ReliableMessage* _add =
      _internal_mutable_reliable_messages()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:CMsgSteamNetworkingP2PRendezvous.reliable_messages)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::CMsgSteamNetworkingP2PRendezvous_ReliableMessage>& CMsgSteamNetworkingP2PRendezvous::reliable_messages() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:CMsgSteamNetworkingP2PRendezvous.reliable_messages)
  return _internal_reliable_messages();
}
inline ::google::protobuf::RepeatedPtrField<::CMsgSteamNetworkingP2PRendezvous_ReliableMessage>* PROTOBUF_NONNULL
CMsgSteamNetworkingP2PRendezvous::mutable_reliable_messages() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:CMsgSteamNetworkingP2PRendezvous.reliable_messages)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_reliable_messages();
}
inline const ::google::protobuf::RepeatedPtrField<::CMsgSteamNetworkingP2PRendezvous_ReliableMessage>&
CMsgSteamNetworkingP2PRendezvous::_internal_reliable_messages() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.reliable_messages_;
}
inline ::google::protobuf::RepeatedPtrField<::CMsgSteamNetworkingP2PRendezvous_ReliableMessage>* PROTOBUF_NONNULL
CMsgSteamNetworkingP2PRendezvous::_internal_mutable_reliable_messages() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.reliable_messages_;
}

// repeated .CMsgSteamNetworkingP2PRendezvous.ApplicationMessage application_messages = 15;
inline int CMsgSteamNetworkingP2PRendezvous::_internal_application_messages_size() const {
  return _internal_application_messages().size();
}
inline int CMsgSteamNetworkingP2PRendezvous::application_messages_size() const {
  return _internal_application_messages_size();
}
inline void CMsgSteamNetworkingP2PRendezvous::clear_application_messages() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.application_messages_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::CMsgSteamNetworkingP2PRendezvous_ApplicationMessage& CMsgSteamNetworkingP2PRendezvous::application_messages(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingP2PRendezvous.application_messages)
  return _internal_application_messages().Get(index);
}
inline ::CMsgSteamNetworkingP2PRendezvous_ApplicationMessage* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous::mutable_application_messages(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:CMsgSteamNetworkingP2PRendezvous.application_messages)
  return _internal_mutable_application_messages()->Mutable(index);
}
inline ::CMsgSteamNetworkingP2PRendezvous_ApplicationMessage* PROTOBUF_NONNULL CMsgSteamNetworkingP2PRendezvous::add_application_messages()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::CMsgSteamNetworkingP2PRendezvous_ApplicationMessage* _add =
      _internal_mutable_application_messages()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add:CMsgSteamNetworkingP2PRendezvous.application_messages)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::CMsgSteamNetworkingP2PRendezvous_ApplicationMessage>& CMsgSteamNetworkingP2PRendezvous::application_messages() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:CMsgSteamNetworkingP2PRendezvous.application_messages)
  return _internal_application_messages();
}
inline ::google::protobuf::RepeatedPtrField<::CMsgSteamNetworkingP2PRendezvous_ApplicationMessage>* PROTOBUF_NONNULL
CMsgSteamNetworkingP2PRendezvous::mutable_application_messages() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_mutable_list:CMsgSteamNetworkingP2PRendezvous.application_messages)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_application_messages();
}
inline const ::google::protobuf::RepeatedPtrField<::CMsgSteamNetworkingP2PRendezvous_ApplicationMessage>&
CMsgSteamNetworkingP2PRendezvous::_internal_application_messages() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.application_messages_;
}
inline ::google::protobuf::RepeatedPtrField<::CMsgSteamNetworkingP2PRendezvous_ApplicationMessage>* PROTOBUF_NONNULL
CMsgSteamNetworkingP2PRendezvous::_internal_mutable_application_messages() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.application_messages_;
}

// -------------------------------------------------------------------

// CMsgSteamNetworkingICESessionSummary

// optional uint32 failure_reason_code = 7;
inline bool CMsgSteamNetworkingICESessionSummary::has_failure_reason_code() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000040U);
  return value;
}
inline void CMsgSteamNetworkingICESessionSummary::clear_failure_reason_code() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.failure_reason_code_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline ::uint32_t CMsgSteamNetworkingICESessionSummary::failure_reason_code() const {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingICESessionSummary.failure_reason_code)
  return _internal_failure_reason_code();
}
inline void CMsgSteamNetworkingICESessionSummary::set_failure_reason_code(::uint32_t value) {
  _internal_set_failure_reason_code(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingICESessionSummary.failure_reason_code)
}
inline ::uint32_t CMsgSteamNetworkingICESessionSummary::_internal_failure_reason_code() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.failure_reason_code_;
}
inline void CMsgSteamNetworkingICESessionSummary::_internal_set_failure_reason_code(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.failure_reason_code_ = value;
}

// optional uint32 local_candidate_types = 1;
inline bool CMsgSteamNetworkingICESessionSummary::has_local_candidate_types() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void CMsgSteamNetworkingICESessionSummary::clear_local_candidate_types() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.local_candidate_types_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::uint32_t CMsgSteamNetworkingICESessionSummary::local_candidate_types() const {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingICESessionSummary.local_candidate_types)
  return _internal_local_candidate_types();
}
inline void CMsgSteamNetworkingICESessionSummary::set_local_candidate_types(::uint32_t value) {
  _internal_set_local_candidate_types(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingICESessionSummary.local_candidate_types)
}
inline ::uint32_t CMsgSteamNetworkingICESessionSummary::_internal_local_candidate_types() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.local_candidate_types_;
}
inline void CMsgSteamNetworkingICESessionSummary::_internal_set_local_candidate_types(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.local_candidate_types_ = value;
}

// optional uint32 remote_candidate_types = 2;
inline bool CMsgSteamNetworkingICESessionSummary::has_remote_candidate_types() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void CMsgSteamNetworkingICESessionSummary::clear_remote_candidate_types() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.remote_candidate_types_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::uint32_t CMsgSteamNetworkingICESessionSummary::remote_candidate_types() const {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingICESessionSummary.remote_candidate_types)
  return _internal_remote_candidate_types();
}
inline void CMsgSteamNetworkingICESessionSummary::set_remote_candidate_types(::uint32_t value) {
  _internal_set_remote_candidate_types(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingICESessionSummary.remote_candidate_types)
}
inline ::uint32_t CMsgSteamNetworkingICESessionSummary::_internal_remote_candidate_types() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.remote_candidate_types_;
}
inline void CMsgSteamNetworkingICESessionSummary::_internal_set_remote_candidate_types(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.remote_candidate_types_ = value;
}

// optional uint32 initial_route_kind = 3;
inline bool CMsgSteamNetworkingICESessionSummary::has_initial_route_kind() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void CMsgSteamNetworkingICESessionSummary::clear_initial_route_kind() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.initial_route_kind_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::uint32_t CMsgSteamNetworkingICESessionSummary::initial_route_kind() const {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingICESessionSummary.initial_route_kind)
  return _internal_initial_route_kind();
}
inline void CMsgSteamNetworkingICESessionSummary::set_initial_route_kind(::uint32_t value) {
  _internal_set_initial_route_kind(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingICESessionSummary.initial_route_kind)
}
inline ::uint32_t CMsgSteamNetworkingICESessionSummary::_internal_initial_route_kind() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.initial_route_kind_;
}
inline void CMsgSteamNetworkingICESessionSummary::_internal_set_initial_route_kind(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.initial_route_kind_ = value;
}

// optional uint32 initial_ping = 4;
inline bool CMsgSteamNetworkingICESessionSummary::has_initial_ping() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void CMsgSteamNetworkingICESessionSummary::clear_initial_ping() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.initial_ping_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::uint32_t CMsgSteamNetworkingICESessionSummary::initial_ping() const {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingICESessionSummary.initial_ping)
  return _internal_initial_ping();
}
inline void CMsgSteamNetworkingICESessionSummary::set_initial_ping(::uint32_t value) {
  _internal_set_initial_ping(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingICESessionSummary.initial_ping)
}
inline ::uint32_t CMsgSteamNetworkingICESessionSummary::_internal_initial_ping() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.initial_ping_;
}
inline void CMsgSteamNetworkingICESessionSummary::_internal_set_initial_ping(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.initial_ping_ = value;
}

// optional uint32 initial_score = 6;
inline bool CMsgSteamNetworkingICESessionSummary::has_initial_score() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  return value;
}
inline void CMsgSteamNetworkingICESessionSummary::clear_initial_score() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.initial_score_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline ::uint32_t CMsgSteamNetworkingICESessionSummary::initial_score() const {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingICESessionSummary.initial_score)
  return _internal_initial_score();
}
inline void CMsgSteamNetworkingICESessionSummary::set_initial_score(::uint32_t value) {
  _internal_set_initial_score(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingICESessionSummary.initial_score)
}
inline ::uint32_t CMsgSteamNetworkingICESessionSummary::_internal_initial_score() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.initial_score_;
}
inline void CMsgSteamNetworkingICESessionSummary::_internal_set_initial_score(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.initial_score_ = value;
}

// optional uint32 negotiation_ms = 5;
inline bool CMsgSteamNetworkingICESessionSummary::has_negotiation_ms() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void CMsgSteamNetworkingICESessionSummary::clear_negotiation_ms() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.negotiation_ms_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline ::uint32_t CMsgSteamNetworkingICESessionSummary::negotiation_ms() const {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingICESessionSummary.negotiation_ms)
  return _internal_negotiation_ms();
}
inline void CMsgSteamNetworkingICESessionSummary::set_negotiation_ms(::uint32_t value) {
  _internal_set_negotiation_ms(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingICESessionSummary.negotiation_ms)
}
inline ::uint32_t CMsgSteamNetworkingICESessionSummary::_internal_negotiation_ms() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.negotiation_ms_;
}
inline void CMsgSteamNetworkingICESessionSummary::_internal_set_negotiation_ms(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.negotiation_ms_ = value;
}

// optional uint32 best_route_kind = 16;
inline bool CMsgSteamNetworkingICESessionSummary::has_best_route_kind() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000800U);
  return value;
}
inline void CMsgSteamNetworkingICESessionSummary::clear_best_route_kind() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.best_route_kind_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000800U);
}
inline ::uint32_t CMsgSteamNetworkingICESessionSummary::best_route_kind() const {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingICESessionSummary.best_route_kind)
  return _internal_best_route_kind();
}
inline void CMsgSteamNetworkingICESessionSummary::set_best_route_kind(::uint32_t value) {
  _internal_set_best_route_kind(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000800U);
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingICESessionSummary.best_route_kind)
}
inline ::uint32_t CMsgSteamNetworkingICESessionSummary::_internal_best_route_kind() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.best_route_kind_;
}
inline void CMsgSteamNetworkingICESessionSummary::_internal_set_best_route_kind(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.best_route_kind_ = value;
}

// optional uint32 best_ping = 17;
inline bool CMsgSteamNetworkingICESessionSummary::has_best_ping() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00001000U);
  return value;
}
inline void CMsgSteamNetworkingICESessionSummary::clear_best_ping() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.best_ping_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00001000U);
}
inline ::uint32_t CMsgSteamNetworkingICESessionSummary::best_ping() const {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingICESessionSummary.best_ping)
  return _internal_best_ping();
}
inline void CMsgSteamNetworkingICESessionSummary::set_best_ping(::uint32_t value) {
  _internal_set_best_ping(value);
  SetHasBit(_impl_._has_bits_[0], 0x00001000U);
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingICESessionSummary.best_ping)
}
inline ::uint32_t CMsgSteamNetworkingICESessionSummary::_internal_best_ping() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.best_ping_;
}
inline void CMsgSteamNetworkingICESessionSummary::_internal_set_best_ping(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.best_ping_ = value;
}

// optional uint32 best_score = 18;
inline bool CMsgSteamNetworkingICESessionSummary::has_best_score() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00002000U);
  return value;
}
inline void CMsgSteamNetworkingICESessionSummary::clear_best_score() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.best_score_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00002000U);
}
inline ::uint32_t CMsgSteamNetworkingICESessionSummary::best_score() const {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingICESessionSummary.best_score)
  return _internal_best_score();
}
inline void CMsgSteamNetworkingICESessionSummary::set_best_score(::uint32_t value) {
  _internal_set_best_score(value);
  SetHasBit(_impl_._has_bits_[0], 0x00002000U);
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingICESessionSummary.best_score)
}
inline ::uint32_t CMsgSteamNetworkingICESessionSummary::_internal_best_score() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.best_score_;
}
inline void CMsgSteamNetworkingICESessionSummary::_internal_set_best_score(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.best_score_ = value;
}

// optional uint32 best_time = 19;
inline bool CMsgSteamNetworkingICESessionSummary::has_best_time() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00004000U);
  return value;
}
inline void CMsgSteamNetworkingICESessionSummary::clear_best_time() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.best_time_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00004000U);
}
inline ::uint32_t CMsgSteamNetworkingICESessionSummary::best_time() const {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingICESessionSummary.best_time)
  return _internal_best_time();
}
inline void CMsgSteamNetworkingICESessionSummary::set_best_time(::uint32_t value) {
  _internal_set_best_time(value);
  SetHasBit(_impl_._has_bits_[0], 0x00004000U);
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingICESessionSummary.best_time)
}
inline ::uint32_t CMsgSteamNetworkingICESessionSummary::_internal_best_time() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.best_time_;
}
inline void CMsgSteamNetworkingICESessionSummary::_internal_set_best_time(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.best_time_ = value;
}

// optional uint32 selected_seconds = 12;
inline bool CMsgSteamNetworkingICESessionSummary::has_selected_seconds() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000080U);
  return value;
}
inline void CMsgSteamNetworkingICESessionSummary::clear_selected_seconds() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.selected_seconds_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
inline ::uint32_t CMsgSteamNetworkingICESessionSummary::selected_seconds() const {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingICESessionSummary.selected_seconds)
  return _internal_selected_seconds();
}
inline void CMsgSteamNetworkingICESessionSummary::set_selected_seconds(::uint32_t value) {
  _internal_set_selected_seconds(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingICESessionSummary.selected_seconds)
}
inline ::uint32_t CMsgSteamNetworkingICESessionSummary::_internal_selected_seconds() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.selected_seconds_;
}
inline void CMsgSteamNetworkingICESessionSummary::_internal_set_selected_seconds(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.selected_seconds_ = value;
}

// optional uint32 user_settings = 13;
inline bool CMsgSteamNetworkingICESessionSummary::has_user_settings() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000100U);
  return value;
}
inline void CMsgSteamNetworkingICESessionSummary::clear_user_settings() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.user_settings_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
}
inline ::uint32_t CMsgSteamNetworkingICESessionSummary::user_settings() const {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingICESessionSummary.user_settings)
  return _internal_user_settings();
}
inline void CMsgSteamNetworkingICESessionSummary::set_user_settings(::uint32_t value) {
  _internal_set_user_settings(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingICESessionSummary.user_settings)
}
inline ::uint32_t CMsgSteamNetworkingICESessionSummary::_internal_user_settings() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.user_settings_;
}
inline void CMsgSteamNetworkingICESessionSummary::_internal_set_user_settings(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.user_settings_ = value;
}

// optional uint32 ice_enable_var = 14;
inline bool CMsgSteamNetworkingICESessionSummary::has_ice_enable_var() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000200U);
  return value;
}
inline void CMsgSteamNetworkingICESessionSummary::clear_ice_enable_var() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ice_enable_var_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
}
inline ::uint32_t CMsgSteamNetworkingICESessionSummary::ice_enable_var() const {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingICESessionSummary.ice_enable_var)
  return _internal_ice_enable_var();
}
inline void CMsgSteamNetworkingICESessionSummary::set_ice_enable_var(::uint32_t value) {
  _internal_set_ice_enable_var(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingICESessionSummary.ice_enable_var)
}
inline ::uint32_t CMsgSteamNetworkingICESessionSummary::_internal_ice_enable_var() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ice_enable_var_;
}
inline void CMsgSteamNetworkingICESessionSummary::_internal_set_ice_enable_var(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ice_enable_var_ = value;
}

// optional uint32 local_candidate_types_allowed = 15;
inline bool CMsgSteamNetworkingICESessionSummary::has_local_candidate_types_allowed() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000400U);
  return value;
}
inline void CMsgSteamNetworkingICESessionSummary::clear_local_candidate_types_allowed() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.local_candidate_types_allowed_ = 0u;
  ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
}
inline ::uint32_t CMsgSteamNetworkingICESessionSummary::local_candidate_types_allowed() const {
  // @@protoc_insertion_point(field_get:CMsgSteamNetworkingICESessionSummary.local_candidate_types_allowed)
  return _internal_local_candidate_types_allowed();
}
inline void CMsgSteamNetworkingICESessionSummary::set_local_candidate_types_allowed(::uint32_t value) {
  _internal_set_local_candidate_types_allowed(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000400U);
  // @@protoc_insertion_point(field_set:CMsgSteamNetworkingICESessionSummary.local_candidate_types_allowed)
}
inline ::uint32_t CMsgSteamNetworkingICESessionSummary::_internal_local_candidate_types_allowed() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.local_candidate_types_allowed_;
}
inline void CMsgSteamNetworkingICESessionSummary::_internal_set_local_candidate_types_allowed(::uint32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.local_candidate_types_allowed_ = value;
}

#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif  // __GNUC__

// @@protoc_insertion_point(namespace_scope)


namespace google {
namespace protobuf {

template <>
struct is_proto_enum<::CMsgSteamDatagramSessionCryptInfo_EKeyType> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::CMsgSteamDatagramSessionCryptInfo_EKeyType>() {
  return ::CMsgSteamDatagramSessionCryptInfo_EKeyType_descriptor();
}
template <>
struct is_proto_enum<::ESteamNetworkingSocketsCipher> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::ESteamNetworkingSocketsCipher>() {
  return ::ESteamNetworkingSocketsCipher_descriptor();
}

}  // namespace protobuf
}  // namespace google

// @@protoc_insertion_point(global_scope)

#include "google/protobuf/port_undef.inc"
// clang-format on

#endif  // steamnetworkingsockets_5fmessages_2eproto_2epb_2eh
