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

#ifndef content_5findex_2eproto_2epb_2eh
#define content_5findex_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/message_lite.h"
#include "google/protobuf/repeated_field.h"  // IWYU pragma: export
#include "google/protobuf/extension_set.h"  // IWYU pragma: export
// @@protoc_insertion_point(includes)

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

#define PROTOBUF_INTERNAL_EXPORT_content_5findex_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_content_5findex_2eproto {
  static const ::uint32_t offsets[];
};
namespace content {
namespace proto {
class ContentDescription;
struct ContentDescriptionGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ContentDescriptionGlobalsTypeInternal ContentDescription_globals_;
extern const ::google::protobuf::internal::ClassDataLite ContentDescription_class_data_;
#else
extern const ContentDescriptionGlobalsTypeInternal ContentDescription_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ContentEntry;
struct ContentEntryGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ContentEntryGlobalsTypeInternal ContentEntry_globals_;
extern const ::google::protobuf::internal::ClassDataLite ContentEntry_class_data_;
#else
extern const ContentEntryGlobalsTypeInternal ContentEntry_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ContentIconDefinition;
struct ContentIconDefinitionGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ContentIconDefinitionGlobalsTypeInternal ContentIconDefinition_globals_;
extern const ::google::protobuf::internal::ClassDataLite ContentIconDefinition_class_data_;
#else
extern const ContentIconDefinitionGlobalsTypeInternal ContentIconDefinition_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class SerializedIcons;
struct SerializedIconsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern SerializedIconsGlobalsTypeInternal SerializedIcons_globals_;
extern const ::google::protobuf::internal::ClassDataLite SerializedIcons_class_data_;
#else
extern const SerializedIconsGlobalsTypeInternal SerializedIcons_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class SerializedIcons_SerializedIcon;
struct SerializedIcons_SerializedIconGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern SerializedIcons_SerializedIconGlobalsTypeInternal SerializedIcons_SerializedIcon_globals_;
extern const ::google::protobuf::internal::ClassDataLite SerializedIcons_SerializedIcon_class_data_;
#else
extern const SerializedIcons_SerializedIconGlobalsTypeInternal SerializedIcons_SerializedIcon_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
}  // namespace proto
}  // namespace content
namespace google {
namespace protobuf {
}  // namespace protobuf
}  // namespace google

namespace content {
namespace proto {

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


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

class  SerializedIcons_SerializedIcon final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:content.proto.SerializedIcons.SerializedIcon) */ {
 public:
  inline SerializedIcons_SerializedIcon() : SerializedIcons_SerializedIcon(nullptr) {}
  ~SerializedIcons_SerializedIcon() PROTOBUF_FINAL;

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

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

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

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const SerializedIcons_SerializedIcon& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<SerializedIcons_SerializedIcon>(&SerializedIcons_SerializedIcon_globals_);
  }
  static constexpr int kIndexInFileMessages = 3;
  friend void swap(SerializedIcons_SerializedIcon& a, SerializedIcons_SerializedIcon& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(SerializedIcons_SerializedIcon* 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(SerializedIcons_SerializedIcon* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  SerializedIcons_SerializedIcon* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<SerializedIcons_SerializedIcon>(arena);
  }
  void CopyFrom(const SerializedIcons_SerializedIcon& from);
  void MergeFrom(const SerializedIcons_SerializedIcon& from) { SerializedIcons_SerializedIcon::MergeImpl(*this, from); }

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

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

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::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
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

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

  explicit SerializedIcons_SerializedIcon(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  SerializedIcons_SerializedIcon(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const SerializedIcons_SerializedIcon& from);
  SerializedIcons_SerializedIcon(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, SerializedIcons_SerializedIcon&& from) noexcept
      : SerializedIcons_SerializedIcon(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);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kIconFieldNumber = 1,
  };
  // optional string icon = 1;
  bool has_icon()
      const;
  void clear_icon() ;
  const ::std::string& icon() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_icon(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_icon();
  ::std::string* PROTOBUF_NULLABLE release_icon();
  void set_allocated_icon(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_icon() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_icon(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_icon();

  public:
  // @@protoc_insertion_point(class_scope:content.proto.SerializedIcons.SerializedIcon)
 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 SerializedIcons_SerializedIcon& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr icon_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_content_5findex_2eproto;
};
// -------------------------------------------------------------------

class  ContentIconDefinition final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:content.proto.ContentIconDefinition) */ {
 public:
  inline ContentIconDefinition() : ContentIconDefinition(nullptr) {}
  ~ContentIconDefinition() PROTOBUF_FINAL;

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

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

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

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const ContentIconDefinition& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ContentIconDefinition>(&ContentIconDefinition_globals_);
  }
  static constexpr int kIndexInFileMessages = 0;
  friend void swap(ContentIconDefinition& a, ContentIconDefinition& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(ContentIconDefinition* 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(ContentIconDefinition* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  ContentIconDefinition* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<ContentIconDefinition>(arena);
  }
  void CopyFrom(const ContentIconDefinition& from);
  void MergeFrom(const ContentIconDefinition& from) { ContentIconDefinition::MergeImpl(*this, from); }

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

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

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::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
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

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

  explicit ContentIconDefinition(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ContentIconDefinition(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ContentIconDefinition& from);
  ContentIconDefinition(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ContentIconDefinition&& from) noexcept
      : ContentIconDefinition(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);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kSrcFieldNumber = 1,
    kSizesFieldNumber = 2,
    kTypeFieldNumber = 3,
  };
  // optional string src = 1;
  bool has_src()
      const;
  void clear_src() ;
  const ::std::string& src() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_src(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_src();
  ::std::string* PROTOBUF_NULLABLE release_src();
  void set_allocated_src(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_src() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_src(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_src();

  public:
  // optional string sizes = 2;
  bool has_sizes()
      const;
  void clear_sizes() ;
  const ::std::string& sizes() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_sizes(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_sizes();
  ::std::string* PROTOBUF_NULLABLE release_sizes();
  void set_allocated_sizes(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_sizes() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_sizes(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_sizes();

  public:
  // optional string type = 3;
  bool has_type()
      const;
  void clear_type() ;
  const ::std::string& type() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_type(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_type();
  ::std::string* PROTOBUF_NULLABLE release_type();
  void set_allocated_type(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_type() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_type(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_type();

  public:
  // @@protoc_insertion_point(class_scope:content.proto.ContentIconDefinition)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          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 ContentIconDefinition& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr src_;
    ::google::protobuf::internal::ArenaStringPtr sizes_;
    ::google::protobuf::internal::ArenaStringPtr type_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_content_5findex_2eproto;
};
// -------------------------------------------------------------------

class  SerializedIcons final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:content.proto.SerializedIcons) */ {
 public:
  inline SerializedIcons() : SerializedIcons(nullptr) {}
  ~SerializedIcons() PROTOBUF_FINAL;

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

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

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

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const SerializedIcons& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<SerializedIcons>(&SerializedIcons_globals_);
  }
  static constexpr int kIndexInFileMessages = 4;
  friend void swap(SerializedIcons& a, SerializedIcons& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(SerializedIcons* 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(SerializedIcons* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  SerializedIcons* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<SerializedIcons>(arena);
  }
  void CopyFrom(const SerializedIcons& from);
  void MergeFrom(const SerializedIcons& from) { SerializedIcons::MergeImpl(*this, from); }

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

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

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::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
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

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

  explicit SerializedIcons(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  SerializedIcons(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const SerializedIcons& from);
  SerializedIcons(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, SerializedIcons&& from) noexcept
      : SerializedIcons(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);

  // nested types ----------------------------------------------------
  using SerializedIcon = SerializedIcons_SerializedIcon;

  // accessors -------------------------------------------------------
  enum : int {
    kIconsFieldNumber = 1,
  };
  // repeated .content.proto.SerializedIcons.SerializedIcon icons = 1;
  int icons_size()
      const;
  private:
  int _internal_icons_size() const;

  public:
  void clear_icons() ;
  const ::content::proto::SerializedIcons_SerializedIcon& icons(int index) const;
  ::content::proto::SerializedIcons_SerializedIcon* PROTOBUF_NONNULL mutable_icons(int index);
  ::content::proto::SerializedIcons_SerializedIcon* PROTOBUF_NONNULL add_icons();
  const ::google::protobuf::RepeatedPtrField<::content::proto::SerializedIcons_SerializedIcon>&
  icons() const;
  ::google::protobuf::RepeatedPtrField<::content::proto::SerializedIcons_SerializedIcon>* PROTOBUF_NONNULL
  mutable_icons();

  private:
  const ::google::protobuf::RepeatedPtrField<::content::proto::SerializedIcons_SerializedIcon>& _internal_icons() const;
  ::google::protobuf::RepeatedPtrField<::content::proto::SerializedIcons_SerializedIcon>* PROTOBUF_NONNULL _internal_mutable_icons();

  public:
  // @@protoc_insertion_point(class_scope:content.proto.SerializedIcons)
 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 SerializedIcons& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::content::proto::SerializedIcons_SerializedIcon > icons_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_content_5findex_2eproto;
};
// -------------------------------------------------------------------

class  ContentDescription final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:content.proto.ContentDescription) */ {
 public:
  inline ContentDescription() : ContentDescription(nullptr) {}
  ~ContentDescription() PROTOBUF_FINAL;

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

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

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

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const ContentDescription& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ContentDescription>(&ContentDescription_globals_);
  }
  static constexpr int kIndexInFileMessages = 1;
  friend void swap(ContentDescription& a, ContentDescription& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(ContentDescription* 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(ContentDescription* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  ContentDescription* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<ContentDescription>(arena);
  }
  void CopyFrom(const ContentDescription& from);
  void MergeFrom(const ContentDescription& from) { ContentDescription::MergeImpl(*this, from); }

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

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

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::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
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

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

  explicit ContentDescription(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ContentDescription(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ContentDescription& from);
  ContentDescription(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ContentDescription&& from) noexcept
      : ContentDescription(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);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kIconsFieldNumber = 5,
    kIdFieldNumber = 1,
    kTitleFieldNumber = 2,
    kDescriptionFieldNumber = 3,
    kLaunchUrlFieldNumber = 6,
    kCategoryFieldNumber = 4,
  };
  // repeated .content.proto.ContentIconDefinition icons = 5;
  int icons_size()
      const;
  private:
  int _internal_icons_size() const;

  public:
  void clear_icons() ;
  const ::content::proto::ContentIconDefinition& icons(int index) const;
  ::content::proto::ContentIconDefinition* PROTOBUF_NONNULL mutable_icons(int index);
  ::content::proto::ContentIconDefinition* PROTOBUF_NONNULL add_icons();
  const ::google::protobuf::RepeatedPtrField<::content::proto::ContentIconDefinition>&
  icons() const;
  ::google::protobuf::RepeatedPtrField<::content::proto::ContentIconDefinition>* PROTOBUF_NONNULL
  mutable_icons();

  private:
  const ::google::protobuf::RepeatedPtrField<::content::proto::ContentIconDefinition>& _internal_icons() const;
  ::google::protobuf::RepeatedPtrField<::content::proto::ContentIconDefinition>* PROTOBUF_NONNULL _internal_mutable_icons();

  public:
  // optional string id = 1;
  bool has_id()
      const;
  void clear_id() ;
  const ::std::string& id() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_id(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_id();
  ::std::string* PROTOBUF_NULLABLE release_id();
  void set_allocated_id(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_id() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_id(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_id();

  public:
  // optional string title = 2;
  bool has_title()
      const;
  void clear_title() ;
  const ::std::string& title() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_title(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_title();
  ::std::string* PROTOBUF_NULLABLE release_title();
  void set_allocated_title(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_title() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_title(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_title();

  public:
  // optional string description = 3;
  bool has_description()
      const;
  void clear_description() ;
  const ::std::string& description() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_description(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_description();
  ::std::string* PROTOBUF_NULLABLE release_description();
  void set_allocated_description(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_description() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_description(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_description();

  public:
  // optional string launch_url = 6;
  bool has_launch_url()
      const;
  void clear_launch_url() ;
  const ::std::string& launch_url() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_launch_url(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_launch_url();
  ::std::string* PROTOBUF_NULLABLE release_launch_url();
  void set_allocated_launch_url(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_launch_url() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_launch_url(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_launch_url();

  public:
  // optional int32 category = 4;
  bool has_category()
      const;
  void clear_category() ;
  ::int32_t category() const;
  void set_category(::int32_t value);

  private:
  ::int32_t _internal_category() const;
  void _internal_set_category(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:content.proto.ContentDescription)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 6,
                          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 ContentDescription& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::content::proto::ContentIconDefinition > icons_;
    ::google::protobuf::internal::ArenaStringPtr id_;
    ::google::protobuf::internal::ArenaStringPtr title_;
    ::google::protobuf::internal::ArenaStringPtr description_;
    ::google::protobuf::internal::ArenaStringPtr launch_url_;
    ::int32_t category_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_content_5findex_2eproto;
};
// -------------------------------------------------------------------

class  ContentEntry final : public ::google::protobuf::MessageLite
/* @@protoc_insertion_point(class_definition:content.proto.ContentEntry) */ {
 public:
  inline ContentEntry() : ContentEntry(nullptr) {}
  ~ContentEntry() PROTOBUF_FINAL;

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

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

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

  inline const ::std::string& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString);
  }
  inline ::std::string* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::std::string>();
  }

  static const ContentEntry& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ContentEntry>(&ContentEntry_globals_);
  }
  static constexpr int kIndexInFileMessages = 2;
  friend void swap(ContentEntry& a, ContentEntry& b) { a.Swap(&b); }
  PROTOBUF_NOINLINE void Swap(ContentEntry* 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(ContentEntry* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  ContentEntry* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::MessageLite::DefaultConstruct<ContentEntry>(arena);
  }
  void CopyFrom(const ContentEntry& from);
  void MergeFrom(const ContentEntry& from) { ContentEntry::MergeImpl(*this, from); }

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

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

  public:
  ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  ::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
  ::size_t ByteSizeLong() const final;
  ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

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

  explicit ContentEntry(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ContentEntry(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ContentEntry& from);
  ContentEntry(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ContentEntry&& from) noexcept
      : ContentEntry(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);

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kLaunchUrlFieldNumber = 3,
    kDescriptionFieldNumber = 1,
    kTimestampFieldNumber = 2,
    kIsTopLevelContextFieldNumber = 4,
  };
  // optional string launch_url = 3;
  bool has_launch_url()
      const;
  void clear_launch_url() ;
  const ::std::string& launch_url() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_launch_url(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_launch_url();
  ::std::string* PROTOBUF_NULLABLE release_launch_url();
  void set_allocated_launch_url(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_launch_url() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_launch_url(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_launch_url();

  public:
  // optional .content.proto.ContentDescription description = 1;
  bool has_description()
      const;
  void clear_description() ;
  const ::content::proto::ContentDescription& description() const;
  ::content::proto::ContentDescription* PROTOBUF_NULLABLE release_description();
  ::content::proto::ContentDescription* PROTOBUF_NONNULL mutable_description();
  void set_allocated_description(::content::proto::ContentDescription* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_description(::content::proto::ContentDescription* PROTOBUF_NULLABLE value);
  ::content::proto::ContentDescription* PROTOBUF_NULLABLE unsafe_arena_release_description();

  private:
  const ::content::proto::ContentDescription& _internal_description() const;
  ::content::proto::ContentDescription* PROTOBUF_NONNULL _internal_mutable_description();

  public:
  // optional int64 timestamp = 2;
  bool has_timestamp()
      const;
  void clear_timestamp() ;
  ::int64_t timestamp() const;
  void set_timestamp(::int64_t value);

  private:
  ::int64_t _internal_timestamp() const;
  void _internal_set_timestamp(::int64_t value);

  public:
  // optional bool is_top_level_context = 4 [default = true];
  bool has_is_top_level_context()
      const;
  void clear_is_top_level_context() ;
  bool is_top_level_context() const;
  void set_is_top_level_context(bool value);

  private:
  bool _internal_is_top_level_context() const;
  void _internal_set_is_top_level_context(bool value);

  public:
  // @@protoc_insertion_point(class_scope:content.proto.ContentEntry)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 4,
                          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 ContentEntry& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr launch_url_;
    ::content::proto::ContentDescription* PROTOBUF_NULLABLE description_;
    ::int64_t timestamp_;
    bool is_top_level_context_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_content_5findex_2eproto;
};

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




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


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

// ContentIconDefinition

// optional string src = 1;
inline bool ContentIconDefinition::has_src() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void ContentIconDefinition::clear_src() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.src_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& ContentIconDefinition::src() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:content.proto.ContentIconDefinition.src)
  return _internal_src();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ContentIconDefinition::set_src(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.src_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:content.proto.ContentIconDefinition.src)
}
inline ::std::string* PROTOBUF_NONNULL ContentIconDefinition::mutable_src()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_src();
  // @@protoc_insertion_point(field_mutable:content.proto.ContentIconDefinition.src)
  return _s;
}
inline const ::std::string& ContentIconDefinition::_internal_src() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.src_.Get();
}
inline void ContentIconDefinition::_internal_set_src(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.src_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ContentIconDefinition::_internal_mutable_src() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.src_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ContentIconDefinition::release_src() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:content.proto.ContentIconDefinition.src)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.src_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.src_.Set("", GetArena());
  }
  return released;
}
inline void ContentIconDefinition::set_allocated_src(::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_.src_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.src_.IsDefault()) {
    _impl_.src_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:content.proto.ContentIconDefinition.src)
}

// optional string sizes = 2;
inline bool ContentIconDefinition::has_sizes() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void ContentIconDefinition::clear_sizes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.sizes_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& ContentIconDefinition::sizes() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:content.proto.ContentIconDefinition.sizes)
  return _internal_sizes();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ContentIconDefinition::set_sizes(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.sizes_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:content.proto.ContentIconDefinition.sizes)
}
inline ::std::string* PROTOBUF_NONNULL ContentIconDefinition::mutable_sizes()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_sizes();
  // @@protoc_insertion_point(field_mutable:content.proto.ContentIconDefinition.sizes)
  return _s;
}
inline const ::std::string& ContentIconDefinition::_internal_sizes() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.sizes_.Get();
}
inline void ContentIconDefinition::_internal_set_sizes(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.sizes_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ContentIconDefinition::_internal_mutable_sizes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.sizes_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ContentIconDefinition::release_sizes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:content.proto.ContentIconDefinition.sizes)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.sizes_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.sizes_.Set("", GetArena());
  }
  return released;
}
inline void ContentIconDefinition::set_allocated_sizes(::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_.sizes_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.sizes_.IsDefault()) {
    _impl_.sizes_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:content.proto.ContentIconDefinition.sizes)
}

// optional string type = 3;
inline bool ContentIconDefinition::has_type() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void ContentIconDefinition::clear_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.type_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& ContentIconDefinition::type() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:content.proto.ContentIconDefinition.type)
  return _internal_type();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ContentIconDefinition::set_type(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.type_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:content.proto.ContentIconDefinition.type)
}
inline ::std::string* PROTOBUF_NONNULL ContentIconDefinition::mutable_type()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_type();
  // @@protoc_insertion_point(field_mutable:content.proto.ContentIconDefinition.type)
  return _s;
}
inline const ::std::string& ContentIconDefinition::_internal_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.type_.Get();
}
inline void ContentIconDefinition::_internal_set_type(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.type_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ContentIconDefinition::_internal_mutable_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.type_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ContentIconDefinition::release_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:content.proto.ContentIconDefinition.type)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.type_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.type_.Set("", GetArena());
  }
  return released;
}
inline void ContentIconDefinition::set_allocated_type(::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_.type_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.type_.IsDefault()) {
    _impl_.type_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:content.proto.ContentIconDefinition.type)
}

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

// ContentDescription

// optional string id = 1;
inline bool ContentDescription::has_id() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  return value;
}
inline void ContentDescription::clear_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.id_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& ContentDescription::id() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:content.proto.ContentDescription.id)
  return _internal_id();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ContentDescription::set_id(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.id_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:content.proto.ContentDescription.id)
}
inline ::std::string* PROTOBUF_NONNULL ContentDescription::mutable_id()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_id();
  // @@protoc_insertion_point(field_mutable:content.proto.ContentDescription.id)
  return _s;
}
inline const ::std::string& ContentDescription::_internal_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.id_.Get();
}
inline void ContentDescription::_internal_set_id(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.id_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ContentDescription::_internal_mutable_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.id_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ContentDescription::release_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:content.proto.ContentDescription.id)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.id_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.id_.Set("", GetArena());
  }
  return released;
}
inline void ContentDescription::set_allocated_id(::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_.id_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.id_.IsDefault()) {
    _impl_.id_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:content.proto.ContentDescription.id)
}

// optional string title = 2;
inline bool ContentDescription::has_title() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void ContentDescription::clear_title() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.title_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& ContentDescription::title() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:content.proto.ContentDescription.title)
  return _internal_title();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ContentDescription::set_title(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.title_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:content.proto.ContentDescription.title)
}
inline ::std::string* PROTOBUF_NONNULL ContentDescription::mutable_title()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_title();
  // @@protoc_insertion_point(field_mutable:content.proto.ContentDescription.title)
  return _s;
}
inline const ::std::string& ContentDescription::_internal_title() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.title_.Get();
}
inline void ContentDescription::_internal_set_title(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.title_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ContentDescription::_internal_mutable_title() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.title_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ContentDescription::release_title() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:content.proto.ContentDescription.title)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.title_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.title_.Set("", GetArena());
  }
  return released;
}
inline void ContentDescription::set_allocated_title(::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_.title_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.title_.IsDefault()) {
    _impl_.title_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:content.proto.ContentDescription.title)
}

// optional string description = 3;
inline bool ContentDescription::has_description() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void ContentDescription::clear_description() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.description_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::std::string& ContentDescription::description() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:content.proto.ContentDescription.description)
  return _internal_description();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ContentDescription::set_description(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  _impl_.description_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:content.proto.ContentDescription.description)
}
inline ::std::string* PROTOBUF_NONNULL ContentDescription::mutable_description()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::std::string* _s = _internal_mutable_description();
  // @@protoc_insertion_point(field_mutable:content.proto.ContentDescription.description)
  return _s;
}
inline const ::std::string& ContentDescription::_internal_description() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.description_.Get();
}
inline void ContentDescription::_internal_set_description(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.description_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ContentDescription::_internal_mutable_description() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.description_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ContentDescription::release_description() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:content.proto.ContentDescription.description)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000008U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  auto* released = _impl_.description_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.description_.Set("", GetArena());
  }
  return released;
}
inline void ContentDescription::set_allocated_description(::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_.description_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.description_.IsDefault()) {
    _impl_.description_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:content.proto.ContentDescription.description)
}

// optional int32 category = 4;
inline bool ContentDescription::has_category() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  return value;
}
inline void ContentDescription::clear_category() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.category_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline ::int32_t ContentDescription::category() const {
  // @@protoc_insertion_point(field_get:content.proto.ContentDescription.category)
  return _internal_category();
}
inline void ContentDescription::set_category(::int32_t value) {
  _internal_set_category(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:content.proto.ContentDescription.category)
}
inline ::int32_t ContentDescription::_internal_category() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.category_;
}
inline void ContentDescription::_internal_set_category(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.category_ = value;
}

// repeated .content.proto.ContentIconDefinition icons = 5;
inline int ContentDescription::_internal_icons_size() const {
  return _internal_icons().size();
}
inline int ContentDescription::icons_size() const {
  return _internal_icons_size();
}
inline void ContentDescription::clear_icons() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.icons_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::content::proto::ContentIconDefinition& ContentDescription::icons(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:content.proto.ContentDescription.icons)
  return _internal_icons().Get(index);
}
inline ::content::proto::ContentIconDefinition* PROTOBUF_NONNULL ContentDescription::mutable_icons(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:content.proto.ContentDescription.icons)
  return _internal_mutable_icons()->Mutable(index);
}
inline ::content::proto::ContentIconDefinition* PROTOBUF_NONNULL ContentDescription::add_icons()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::content::proto::ContentIconDefinition* _add =
      _internal_mutable_icons()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:content.proto.ContentDescription.icons)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::content::proto::ContentIconDefinition>& ContentDescription::icons() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:content.proto.ContentDescription.icons)
  return _internal_icons();
}
inline ::google::protobuf::RepeatedPtrField<::content::proto::ContentIconDefinition>* PROTOBUF_NONNULL
ContentDescription::mutable_icons() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:content.proto.ContentDescription.icons)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_icons();
}
inline const ::google::protobuf::RepeatedPtrField<::content::proto::ContentIconDefinition>&
ContentDescription::_internal_icons() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.icons_;
}
inline ::google::protobuf::RepeatedPtrField<::content::proto::ContentIconDefinition>* PROTOBUF_NONNULL
ContentDescription::_internal_mutable_icons() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.icons_;
}

// optional string launch_url = 6;
inline bool ContentDescription::has_launch_url() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  return value;
}
inline void ContentDescription::clear_launch_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.launch_url_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline const ::std::string& ContentDescription::launch_url() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:content.proto.ContentDescription.launch_url)
  return _internal_launch_url();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ContentDescription::set_launch_url(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  _impl_.launch_url_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:content.proto.ContentDescription.launch_url)
}
inline ::std::string* PROTOBUF_NONNULL ContentDescription::mutable_launch_url()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::std::string* _s = _internal_mutable_launch_url();
  // @@protoc_insertion_point(field_mutable:content.proto.ContentDescription.launch_url)
  return _s;
}
inline const ::std::string& ContentDescription::_internal_launch_url() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.launch_url_.Get();
}
inline void ContentDescription::_internal_set_launch_url(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.launch_url_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ContentDescription::_internal_mutable_launch_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.launch_url_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ContentDescription::release_launch_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:content.proto.ContentDescription.launch_url)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000010U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  auto* released = _impl_.launch_url_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.launch_url_.Set("", GetArena());
  }
  return released;
}
inline void ContentDescription::set_allocated_launch_url(::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_.launch_url_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.launch_url_.IsDefault()) {
    _impl_.launch_url_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:content.proto.ContentDescription.launch_url)
}

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

// ContentEntry

// optional .content.proto.ContentDescription description = 1;
inline bool ContentEntry::has_description() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.description_ != nullptr);
  return value;
}
inline void ContentEntry::clear_description() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.description_ != nullptr) _impl_.description_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::content::proto::ContentDescription& ContentEntry::_internal_description() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::content::proto::ContentDescription* p = _impl_.description_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::content::proto::ContentDescription>(&::content::proto::ContentDescription_globals_);
}
inline const ::content::proto::ContentDescription& ContentEntry::description() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:content.proto.ContentEntry.description)
  return _internal_description();
}
inline void ContentEntry::unsafe_arena_set_allocated_description(
    ::content::proto::ContentDescription* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.description_);
  }
  _impl_.description_ = reinterpret_cast<::content::proto::ContentDescription*>(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:content.proto.ContentEntry.description)
}
inline ::content::proto::ContentDescription* PROTOBUF_NULLABLE ContentEntry::release_description() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::content::proto::ContentDescription* released = _impl_.description_;
  _impl_.description_ = 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 ::content::proto::ContentDescription* PROTOBUF_NULLABLE ContentEntry::unsafe_arena_release_description() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:content.proto.ContentEntry.description)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::content::proto::ContentDescription* temp = _impl_.description_;
  _impl_.description_ = nullptr;
  return temp;
}
inline ::content::proto::ContentDescription* PROTOBUF_NONNULL ContentEntry::_internal_mutable_description() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.description_ == nullptr) {
    auto* p = ::google::protobuf::MessageLite::DefaultConstruct<::content::proto::ContentDescription>(GetArena());
    _impl_.description_ = reinterpret_cast<::content::proto::ContentDescription*>(p);
  }
  return _impl_.description_;
}
inline ::content::proto::ContentDescription* PROTOBUF_NONNULL ContentEntry::mutable_description()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::content::proto::ContentDescription* _msg = _internal_mutable_description();
  // @@protoc_insertion_point(field_mutable:content.proto.ContentEntry.description)
  return _msg;
}
inline void ContentEntry::set_allocated_description(::content::proto::ContentDescription* 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_.description_);
  }

  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_.description_ = reinterpret_cast<::content::proto::ContentDescription*>(value);
  // @@protoc_insertion_point(field_set_allocated:content.proto.ContentEntry.description)
}

// optional int64 timestamp = 2;
inline bool ContentEntry::has_timestamp() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  return value;
}
inline void ContentEntry::clear_timestamp() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.timestamp_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::int64_t ContentEntry::timestamp() const {
  // @@protoc_insertion_point(field_get:content.proto.ContentEntry.timestamp)
  return _internal_timestamp();
}
inline void ContentEntry::set_timestamp(::int64_t value) {
  _internal_set_timestamp(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:content.proto.ContentEntry.timestamp)
}
inline ::int64_t ContentEntry::_internal_timestamp() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.timestamp_;
}
inline void ContentEntry::_internal_set_timestamp(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.timestamp_ = value;
}

// optional string launch_url = 3;
inline bool ContentEntry::has_launch_url() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void ContentEntry::clear_launch_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.launch_url_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& ContentEntry::launch_url() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:content.proto.ContentEntry.launch_url)
  return _internal_launch_url();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ContentEntry::set_launch_url(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.launch_url_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:content.proto.ContentEntry.launch_url)
}
inline ::std::string* PROTOBUF_NONNULL ContentEntry::mutable_launch_url()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_launch_url();
  // @@protoc_insertion_point(field_mutable:content.proto.ContentEntry.launch_url)
  return _s;
}
inline const ::std::string& ContentEntry::_internal_launch_url() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.launch_url_.Get();
}
inline void ContentEntry::_internal_set_launch_url(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.launch_url_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ContentEntry::_internal_mutable_launch_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.launch_url_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ContentEntry::release_launch_url() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:content.proto.ContentEntry.launch_url)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.launch_url_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.launch_url_.Set("", GetArena());
  }
  return released;
}
inline void ContentEntry::set_allocated_launch_url(::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_.launch_url_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.launch_url_.IsDefault()) {
    _impl_.launch_url_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:content.proto.ContentEntry.launch_url)
}

// optional bool is_top_level_context = 4 [default = true];
inline bool ContentEntry::has_is_top_level_context() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  return value;
}
inline void ContentEntry::clear_is_top_level_context() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.is_top_level_context_ = true;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline bool ContentEntry::is_top_level_context() const {
  // @@protoc_insertion_point(field_get:content.proto.ContentEntry.is_top_level_context)
  return _internal_is_top_level_context();
}
inline void ContentEntry::set_is_top_level_context(bool value) {
  _internal_set_is_top_level_context(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:content.proto.ContentEntry.is_top_level_context)
}
inline bool ContentEntry::_internal_is_top_level_context() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.is_top_level_context_;
}
inline void ContentEntry::_internal_set_is_top_level_context(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.is_top_level_context_ = value;
}

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

// SerializedIcons_SerializedIcon

// optional string icon = 1;
inline bool SerializedIcons_SerializedIcon::has_icon() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void SerializedIcons_SerializedIcon::clear_icon() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.icon_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& SerializedIcons_SerializedIcon::icon() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:content.proto.SerializedIcons.SerializedIcon.icon)
  return _internal_icon();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void SerializedIcons_SerializedIcon::set_icon(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.icon_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:content.proto.SerializedIcons.SerializedIcon.icon)
}
inline ::std::string* PROTOBUF_NONNULL SerializedIcons_SerializedIcon::mutable_icon()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_icon();
  // @@protoc_insertion_point(field_mutable:content.proto.SerializedIcons.SerializedIcon.icon)
  return _s;
}
inline const ::std::string& SerializedIcons_SerializedIcon::_internal_icon() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.icon_.Get();
}
inline void SerializedIcons_SerializedIcon::_internal_set_icon(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.icon_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL SerializedIcons_SerializedIcon::_internal_mutable_icon() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.icon_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE SerializedIcons_SerializedIcon::release_icon() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:content.proto.SerializedIcons.SerializedIcon.icon)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.icon_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.icon_.Set("", GetArena());
  }
  return released;
}
inline void SerializedIcons_SerializedIcon::set_allocated_icon(::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_.icon_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.icon_.IsDefault()) {
    _impl_.icon_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:content.proto.SerializedIcons.SerializedIcon.icon)
}

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

// SerializedIcons

// repeated .content.proto.SerializedIcons.SerializedIcon icons = 1;
inline int SerializedIcons::_internal_icons_size() const {
  return _internal_icons().size();
}
inline int SerializedIcons::icons_size() const {
  return _internal_icons_size();
}
inline void SerializedIcons::clear_icons() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.icons_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::content::proto::SerializedIcons_SerializedIcon& SerializedIcons::icons(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:content.proto.SerializedIcons.icons)
  return _internal_icons().Get(index);
}
inline ::content::proto::SerializedIcons_SerializedIcon* PROTOBUF_NONNULL SerializedIcons::mutable_icons(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:content.proto.SerializedIcons.icons)
  return _internal_mutable_icons()->Mutable(index);
}
inline ::content::proto::SerializedIcons_SerializedIcon* PROTOBUF_NONNULL SerializedIcons::add_icons()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::content::proto::SerializedIcons_SerializedIcon* _add =
      _internal_mutable_icons()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:content.proto.SerializedIcons.icons)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::content::proto::SerializedIcons_SerializedIcon>& SerializedIcons::icons() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:content.proto.SerializedIcons.icons)
  return _internal_icons();
}
inline ::google::protobuf::RepeatedPtrField<::content::proto::SerializedIcons_SerializedIcon>* PROTOBUF_NONNULL
SerializedIcons::mutable_icons() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:content.proto.SerializedIcons.icons)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_icons();
}
inline const ::google::protobuf::RepeatedPtrField<::content::proto::SerializedIcons_SerializedIcon>&
SerializedIcons::_internal_icons() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.icons_;
}
inline ::google::protobuf::RepeatedPtrField<::content::proto::SerializedIcons_SerializedIcon>* PROTOBUF_NONNULL
SerializedIcons::_internal_mutable_icons() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.icons_;
}

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

// @@protoc_insertion_point(namespace_scope)
}  // namespace proto
}  // namespace content


// @@protoc_insertion_point(global_scope)

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

#endif  // content_5findex_2eproto_2epb_2eh
