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

#ifndef Map_2eproto_2epb_2eh
#define Map_2eproto_2epb_2eh

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

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

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

#define PROTOBUF_INTERNAL_EXPORT_Map_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_Map_2eproto {
  static const ::uint32_t offsets[];
};
extern "C" {
extern const ::google::protobuf::internal::DescriptorTable descriptor_table_Map_2eproto;
}  // extern "C"
namespace mojo {
namespace spec {
class BoolArray;
struct BoolArrayDefaultTypeInternal;
extern BoolArrayDefaultTypeInternal _BoolArray_default_instance_;
extern const ::google::protobuf::internal::ClassDataFull BoolArray_class_data_;
class ExternalData;
struct ExternalDataDefaultTypeInternal;
extern ExternalDataDefaultTypeInternal _ExternalData_default_instance_;
extern const ::google::protobuf::internal::ClassDataFull ExternalData_class_data_;
class Float32Array;
struct Float32ArrayDefaultTypeInternal;
extern Float32ArrayDefaultTypeInternal _Float32Array_default_instance_;
extern const ::google::protobuf::internal::ClassDataFull Float32Array_class_data_;
class Float64Array;
struct Float64ArrayDefaultTypeInternal;
extern Float64ArrayDefaultTypeInternal _Float64Array_default_instance_;
extern const ::google::protobuf::internal::ClassDataFull Float64Array_class_data_;
class Int32Array;
struct Int32ArrayDefaultTypeInternal;
extern Int32ArrayDefaultTypeInternal _Int32Array_default_instance_;
extern const ::google::protobuf::internal::ClassDataFull Int32Array_class_data_;
class Int64Array;
struct Int64ArrayDefaultTypeInternal;
extern Int64ArrayDefaultTypeInternal _Int64Array_default_instance_;
extern const ::google::protobuf::internal::ClassDataFull Int64Array_class_data_;
class IntervalMapOp;
struct IntervalMapOpDefaultTypeInternal;
extern IntervalMapOpDefaultTypeInternal _IntervalMapOp_default_instance_;
extern const ::google::protobuf::internal::ClassDataFull IntervalMapOp_class_data_;
class MapOp;
struct MapOpDefaultTypeInternal;
extern MapOpDefaultTypeInternal _MapOp_default_instance_;
extern const ::google::protobuf::internal::ClassDataFull MapOp_class_data_;
class ReplaceOp;
struct ReplaceOpDefaultTypeInternal;
extern ReplaceOpDefaultTypeInternal _ReplaceOp_default_instance_;
extern const ::google::protobuf::internal::ClassDataFull ReplaceOp_class_data_;
class StrArray;
struct StrArrayDefaultTypeInternal;
extern StrArrayDefaultTypeInternal _StrArray_default_instance_;
extern const ::google::protobuf::internal::ClassDataFull StrArray_class_data_;
}  // namespace spec
}  // namespace mojo
namespace google {
namespace protobuf {
}  // namespace protobuf
}  // namespace google

namespace mojo {
namespace spec {

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


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

class StrArray final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:mojo.spec.StrArray) */ {
 public:
  inline StrArray() : StrArray(nullptr) {}
  ~StrArray() PROTOBUF_FINAL;

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

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR StrArray(::google::protobuf::internal::ConstantInitialized);

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

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

  static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const StrArray& default_instance() {
    return *reinterpret_cast<const StrArray*>(
        &_StrArray_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 4;
  friend void swap(StrArray& a, StrArray& b) { a.Swap(&b); }
  inline void Swap(StrArray* 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(StrArray* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  StrArray* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<StrArray>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const StrArray& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const StrArray& from) { StrArray::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(StrArray* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mojo.spec.StrArray"; }

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

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

  // accessors -------------------------------------------------------
  enum : int {
    kValuesFieldNumber = 1,
  };
  // repeated string values = 1;
  int values_size() const;
  private:
  int _internal_values_size() const;

  public:
  void clear_values() ;
  const ::std::string& values(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_values(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_values(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_values();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_values(Arg_&& value, Args_... args);
  const ::google::protobuf::RepeatedPtrField<::std::string>& values() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL mutable_values();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_values() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_values();

  public:
  // @@protoc_insertion_point(class_scope:mojo.spec.StrArray)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<0, 1,
                                   0, 33,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::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 StrArray& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField<::std::string> values_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_Map_2eproto;
};

extern const ::google::protobuf::internal::ClassDataFull StrArray_class_data_;
// -------------------------------------------------------------------

class Int64Array final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:mojo.spec.Int64Array) */ {
 public:
  inline Int64Array() : Int64Array(nullptr) {}
  ~Int64Array() PROTOBUF_FINAL;

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

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Int64Array(::google::protobuf::internal::ConstantInitialized);

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

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

  static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const Int64Array& default_instance() {
    return *reinterpret_cast<const Int64Array*>(
        &_Int64Array_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 1;
  friend void swap(Int64Array& a, Int64Array& b) { a.Swap(&b); }
  inline void Swap(Int64Array* 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(Int64Array* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  Int64Array* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Int64Array>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Int64Array& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Int64Array& from) { Int64Array::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(Int64Array* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mojo.spec.Int64Array"; }

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

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

  // accessors -------------------------------------------------------
  enum : int {
    kValuesFieldNumber = 1,
  };
  // repeated int64 values = 1;
  int values_size() const;
  private:
  int _internal_values_size() const;

  public:
  void clear_values() ;
  ::int64_t values(int index) const;
  void set_values(int index, ::int64_t value);
  void add_values(::int64_t value);
  const ::google::protobuf::RepeatedField<::int64_t>& values() const;
  ::google::protobuf::RepeatedField<::int64_t>* PROTOBUF_NONNULL mutable_values();

  private:
  const ::google::protobuf::RepeatedField<::int64_t>& _internal_values() const;
  ::google::protobuf::RepeatedField<::int64_t>* PROTOBUF_NONNULL _internal_mutable_values();

  public:
  // @@protoc_insertion_point(class_scope:mojo.spec.Int64Array)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<0, 1,
                                   0, 0,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::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 Int64Array& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedField<::int64_t> values_;
    ::google::protobuf::internal::CachedSize _values_cached_byte_size_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_Map_2eproto;
};

extern const ::google::protobuf::internal::ClassDataFull Int64Array_class_data_;
// -------------------------------------------------------------------

class Int32Array final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:mojo.spec.Int32Array) */ {
 public:
  inline Int32Array() : Int32Array(nullptr) {}
  ~Int32Array() PROTOBUF_FINAL;

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

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Int32Array(::google::protobuf::internal::ConstantInitialized);

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

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

  static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const Int32Array& default_instance() {
    return *reinterpret_cast<const Int32Array*>(
        &_Int32Array_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 0;
  friend void swap(Int32Array& a, Int32Array& b) { a.Swap(&b); }
  inline void Swap(Int32Array* 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(Int32Array* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  Int32Array* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Int32Array>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Int32Array& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Int32Array& from) { Int32Array::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(Int32Array* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mojo.spec.Int32Array"; }

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

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

  // accessors -------------------------------------------------------
  enum : int {
    kValuesFieldNumber = 1,
  };
  // repeated int32 values = 1;
  int values_size() const;
  private:
  int _internal_values_size() const;

  public:
  void clear_values() ;
  ::int32_t values(int index) const;
  void set_values(int index, ::int32_t value);
  void add_values(::int32_t value);
  const ::google::protobuf::RepeatedField<::int32_t>& values() const;
  ::google::protobuf::RepeatedField<::int32_t>* PROTOBUF_NONNULL mutable_values();

  private:
  const ::google::protobuf::RepeatedField<::int32_t>& _internal_values() const;
  ::google::protobuf::RepeatedField<::int32_t>* PROTOBUF_NONNULL _internal_mutable_values();

  public:
  // @@protoc_insertion_point(class_scope:mojo.spec.Int32Array)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<0, 1,
                                   0, 0,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::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 Int32Array& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedField<::int32_t> values_;
    ::google::protobuf::internal::CachedSize _values_cached_byte_size_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_Map_2eproto;
};

extern const ::google::protobuf::internal::ClassDataFull Int32Array_class_data_;
// -------------------------------------------------------------------

class Float64Array final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:mojo.spec.Float64Array) */ {
 public:
  inline Float64Array() : Float64Array(nullptr) {}
  ~Float64Array() PROTOBUF_FINAL;

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

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Float64Array(::google::protobuf::internal::ConstantInitialized);

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

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

  static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const Float64Array& default_instance() {
    return *reinterpret_cast<const Float64Array*>(
        &_Float64Array_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 3;
  friend void swap(Float64Array& a, Float64Array& b) { a.Swap(&b); }
  inline void Swap(Float64Array* 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(Float64Array* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  Float64Array* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Float64Array>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Float64Array& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Float64Array& from) { Float64Array::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(Float64Array* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mojo.spec.Float64Array"; }

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

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

  // accessors -------------------------------------------------------
  enum : int {
    kValuesFieldNumber = 1,
  };
  // repeated double values = 1;
  int values_size() const;
  private:
  int _internal_values_size() const;

  public:
  void clear_values() ;
  double values(int index) const;
  void set_values(int index, double value);
  void add_values(double value);
  const ::google::protobuf::RepeatedField<double>& values() const;
  ::google::protobuf::RepeatedField<double>* PROTOBUF_NONNULL mutable_values();

  private:
  const ::google::protobuf::RepeatedField<double>& _internal_values() const;
  ::google::protobuf::RepeatedField<double>* PROTOBUF_NONNULL _internal_mutable_values();

  public:
  // @@protoc_insertion_point(class_scope:mojo.spec.Float64Array)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<0, 1,
                                   0, 0,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::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 Float64Array& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedField<double> values_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_Map_2eproto;
};

extern const ::google::protobuf::internal::ClassDataFull Float64Array_class_data_;
// -------------------------------------------------------------------

class Float32Array final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:mojo.spec.Float32Array) */ {
 public:
  inline Float32Array() : Float32Array(nullptr) {}
  ~Float32Array() PROTOBUF_FINAL;

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

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Float32Array(::google::protobuf::internal::ConstantInitialized);

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

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

  static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const Float32Array& default_instance() {
    return *reinterpret_cast<const Float32Array*>(
        &_Float32Array_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 2;
  friend void swap(Float32Array& a, Float32Array& b) { a.Swap(&b); }
  inline void Swap(Float32Array* 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(Float32Array* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  Float32Array* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Float32Array>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Float32Array& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Float32Array& from) { Float32Array::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(Float32Array* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mojo.spec.Float32Array"; }

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

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

  // accessors -------------------------------------------------------
  enum : int {
    kValuesFieldNumber = 1,
  };
  // repeated float values = 1;
  int values_size() const;
  private:
  int _internal_values_size() const;

  public:
  void clear_values() ;
  float values(int index) const;
  void set_values(int index, float value);
  void add_values(float value);
  const ::google::protobuf::RepeatedField<float>& values() const;
  ::google::protobuf::RepeatedField<float>* PROTOBUF_NONNULL mutable_values();

  private:
  const ::google::protobuf::RepeatedField<float>& _internal_values() const;
  ::google::protobuf::RepeatedField<float>* PROTOBUF_NONNULL _internal_mutable_values();

  public:
  // @@protoc_insertion_point(class_scope:mojo.spec.Float32Array)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<0, 1,
                                   0, 0,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::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 Float32Array& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedField<float> values_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_Map_2eproto;
};

extern const ::google::protobuf::internal::ClassDataFull Float32Array_class_data_;
// -------------------------------------------------------------------

class ExternalData final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:mojo.spec.ExternalData) */ {
 public:
  inline ExternalData() : ExternalData(nullptr) {}
  ~ExternalData() PROTOBUF_FINAL;

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

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR ExternalData(::google::protobuf::internal::ConstantInitialized);

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

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

  static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ExternalData& default_instance() {
    return *reinterpret_cast<const ExternalData*>(
        &_ExternalData_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 5;
  friend void swap(ExternalData& a, ExternalData& b) { a.Swap(&b); }
  inline void Swap(ExternalData* 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(ExternalData* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  ExternalData* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ExternalData>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ExternalData& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ExternalData& from) { ExternalData::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(ExternalData* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mojo.spec.ExternalData"; }

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

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

  // accessors -------------------------------------------------------
  enum : int {
    kFileNameFieldNumber = 2,
    kDataTypeFieldNumber = 1,
  };
  // string file_name = 2;
  void clear_file_name() ;
  const ::std::string& file_name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_file_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_file_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_file_name();
  void set_allocated_file_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_file_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_file_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_file_name();

  public:
  // .mojo.spec.DataType data_type = 1;
  void clear_data_type() ;
  ::mojo::spec::DataType data_type() const;
  void set_data_type(::mojo::spec::DataType value);

  private:
  ::mojo::spec::DataType _internal_data_type() const;
  void _internal_set_data_type(::mojo::spec::DataType value);

  public:
  // @@protoc_insertion_point(class_scope:mojo.spec.ExternalData)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<1, 2,
                                   0, 40,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::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 ExternalData& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr file_name_;
    int data_type_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_Map_2eproto;
};

extern const ::google::protobuf::internal::ClassDataFull ExternalData_class_data_;
// -------------------------------------------------------------------

class BoolArray final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:mojo.spec.BoolArray) */ {
 public:
  inline BoolArray() : BoolArray(nullptr) {}
  ~BoolArray() PROTOBUF_FINAL;

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

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR BoolArray(::google::protobuf::internal::ConstantInitialized);

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

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

  static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const BoolArray& default_instance() {
    return *reinterpret_cast<const BoolArray*>(
        &_BoolArray_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 6;
  friend void swap(BoolArray& a, BoolArray& b) { a.Swap(&b); }
  inline void Swap(BoolArray* 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(BoolArray* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  BoolArray* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<BoolArray>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const BoolArray& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const BoolArray& from) { BoolArray::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(BoolArray* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mojo.spec.BoolArray"; }

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

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

  // accessors -------------------------------------------------------
  enum : int {
    kValuesFieldNumber = 1,
  };
  // repeated bool values = 1;
  int values_size() const;
  private:
  int _internal_values_size() const;

  public:
  void clear_values() ;
  bool values(int index) const;
  void set_values(int index, bool value);
  void add_values(bool value);
  const ::google::protobuf::RepeatedField<bool>& values() const;
  ::google::protobuf::RepeatedField<bool>* PROTOBUF_NONNULL mutable_values();

  private:
  const ::google::protobuf::RepeatedField<bool>& _internal_values() const;
  ::google::protobuf::RepeatedField<bool>* PROTOBUF_NONNULL _internal_mutable_values();

  public:
  // @@protoc_insertion_point(class_scope:mojo.spec.BoolArray)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<0, 1,
                                   0, 0,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::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 BoolArray& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedField<bool> values_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_Map_2eproto;
};

extern const ::google::protobuf::internal::ClassDataFull BoolArray_class_data_;
// -------------------------------------------------------------------

class ReplaceOp final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:mojo.spec.ReplaceOp) */ {
 public:
  inline ReplaceOp() : ReplaceOp(nullptr) {}
  ~ReplaceOp() PROTOBUF_FINAL;

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

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR ReplaceOp(::google::protobuf::internal::ConstantInitialized);

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

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

  static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ReplaceOp& default_instance() {
    return *reinterpret_cast<const ReplaceOp*>(
        &_ReplaceOp_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 7;
  friend void swap(ReplaceOp& a, ReplaceOp& b) { a.Swap(&b); }
  inline void Swap(ReplaceOp* 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(ReplaceOp* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  ReplaceOp* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ReplaceOp>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ReplaceOp& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ReplaceOp& from) { ReplaceOp::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(ReplaceOp* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mojo.spec.ReplaceOp"; }

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

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

  // accessors -------------------------------------------------------
  enum : int {
    kKeyFieldNumber = 1,
    kValueFieldNumber = 2,
  };
  // .mojo.spec.ExternalData key = 1;
  bool has_key() const;
  void clear_key() ;
  const ::mojo::spec::ExternalData& key() const;
  [[nodiscard]] ::mojo::spec::ExternalData* PROTOBUF_NULLABLE release_key();
  ::mojo::spec::ExternalData* PROTOBUF_NONNULL mutable_key();
  void set_allocated_key(::mojo::spec::ExternalData* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_key(::mojo::spec::ExternalData* PROTOBUF_NULLABLE value);
  ::mojo::spec::ExternalData* PROTOBUF_NULLABLE unsafe_arena_release_key();

  private:
  const ::mojo::spec::ExternalData& _internal_key() const;
  ::mojo::spec::ExternalData* PROTOBUF_NONNULL _internal_mutable_key();

  public:
  // .mojo.spec.ExternalData value = 2;
  bool has_value() const;
  void clear_value() ;
  const ::mojo::spec::ExternalData& value() const;
  [[nodiscard]] ::mojo::spec::ExternalData* PROTOBUF_NULLABLE release_value();
  ::mojo::spec::ExternalData* PROTOBUF_NONNULL mutable_value();
  void set_allocated_value(::mojo::spec::ExternalData* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_value(::mojo::spec::ExternalData* PROTOBUF_NULLABLE value);
  ::mojo::spec::ExternalData* PROTOBUF_NULLABLE unsafe_arena_release_value();

  private:
  const ::mojo::spec::ExternalData& _internal_value() const;
  ::mojo::spec::ExternalData* PROTOBUF_NONNULL _internal_mutable_value();

  public:
  // @@protoc_insertion_point(class_scope:mojo.spec.ReplaceOp)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<1, 2,
                                   2, 0,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::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 ReplaceOp& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::mojo::spec::ExternalData* PROTOBUF_NULLABLE key_;
    ::mojo::spec::ExternalData* PROTOBUF_NULLABLE value_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_Map_2eproto;
};

extern const ::google::protobuf::internal::ClassDataFull ReplaceOp_class_data_;
// -------------------------------------------------------------------

class MapOp final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:mojo.spec.MapOp) */ {
 public:
  inline MapOp() : MapOp(nullptr) {}
  ~MapOp() PROTOBUF_FINAL;

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

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR MapOp(::google::protobuf::internal::ConstantInitialized);

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

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

  static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const MapOp& default_instance() {
    return *reinterpret_cast<const MapOp*>(
        &_MapOp_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 9;
  friend void swap(MapOp& a, MapOp& b) { a.Swap(&b); }
  inline void Swap(MapOp* 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(MapOp* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  MapOp* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<MapOp>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const MapOp& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const MapOp& from) { MapOp::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(MapOp* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mojo.spec.MapOp"; }

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

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

  // accessors -------------------------------------------------------
  enum : int {
    kMissingFieldNumber = 1,
    kKeyFieldNumber = 2,
    kValueFieldNumber = 3,
  };
  // repeated .mojo.spec.ExternalData missing = 1;
  int missing_size() const;
  private:
  int _internal_missing_size() const;

  public:
  void clear_missing() ;
  ::mojo::spec::ExternalData* PROTOBUF_NONNULL mutable_missing(int index);
  ::google::protobuf::RepeatedPtrField<::mojo::spec::ExternalData>* PROTOBUF_NONNULL mutable_missing();

  private:
  const ::google::protobuf::RepeatedPtrField<::mojo::spec::ExternalData>& _internal_missing() const;
  ::google::protobuf::RepeatedPtrField<::mojo::spec::ExternalData>* PROTOBUF_NONNULL _internal_mutable_missing();
  public:
  const ::mojo::spec::ExternalData& missing(int index) const;
  ::mojo::spec::ExternalData* PROTOBUF_NONNULL add_missing();
  const ::google::protobuf::RepeatedPtrField<::mojo::spec::ExternalData>& missing() const;
  // repeated .mojo.spec.ExternalData key = 2;
  int key_size() const;
  private:
  int _internal_key_size() const;

  public:
  void clear_key() ;
  ::mojo::spec::ExternalData* PROTOBUF_NONNULL mutable_key(int index);
  ::google::protobuf::RepeatedPtrField<::mojo::spec::ExternalData>* PROTOBUF_NONNULL mutable_key();

  private:
  const ::google::protobuf::RepeatedPtrField<::mojo::spec::ExternalData>& _internal_key() const;
  ::google::protobuf::RepeatedPtrField<::mojo::spec::ExternalData>* PROTOBUF_NONNULL _internal_mutable_key();
  public:
  const ::mojo::spec::ExternalData& key(int index) const;
  ::mojo::spec::ExternalData* PROTOBUF_NONNULL add_key();
  const ::google::protobuf::RepeatedPtrField<::mojo::spec::ExternalData>& key() const;
  // repeated .mojo.spec.ExternalData value = 3;
  int value_size() const;
  private:
  int _internal_value_size() const;

  public:
  void clear_value() ;
  ::mojo::spec::ExternalData* PROTOBUF_NONNULL mutable_value(int index);
  ::google::protobuf::RepeatedPtrField<::mojo::spec::ExternalData>* PROTOBUF_NONNULL mutable_value();

  private:
  const ::google::protobuf::RepeatedPtrField<::mojo::spec::ExternalData>& _internal_value() const;
  ::google::protobuf::RepeatedPtrField<::mojo::spec::ExternalData>* PROTOBUF_NONNULL _internal_mutable_value();
  public:
  const ::mojo::spec::ExternalData& value(int index) const;
  ::mojo::spec::ExternalData* PROTOBUF_NONNULL add_value();
  const ::google::protobuf::RepeatedPtrField<::mojo::spec::ExternalData>& value() const;
  // @@protoc_insertion_point(class_scope:mojo.spec.MapOp)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<2, 3,
                                   3, 0,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::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 MapOp& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::mojo::spec::ExternalData > missing_;
    ::google::protobuf::RepeatedPtrField< ::mojo::spec::ExternalData > key_;
    ::google::protobuf::RepeatedPtrField< ::mojo::spec::ExternalData > value_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_Map_2eproto;
};

extern const ::google::protobuf::internal::ClassDataFull MapOp_class_data_;
// -------------------------------------------------------------------

class IntervalMapOp final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:mojo.spec.IntervalMapOp) */ {
 public:
  inline IntervalMapOp() : IntervalMapOp(nullptr) {}
  ~IntervalMapOp() PROTOBUF_FINAL;

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

  template <typename = void>
  explicit PROTOBUF_CONSTEXPR IntervalMapOp(::google::protobuf::internal::ConstantInitialized);

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

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

  static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const IntervalMapOp& default_instance() {
    return *reinterpret_cast<const IntervalMapOp*>(
        &_IntervalMapOp_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 8;
  friend void swap(IntervalMapOp& a, IntervalMapOp& b) { a.Swap(&b); }
  inline void Swap(IntervalMapOp* 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(IntervalMapOp* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  IntervalMapOp* PROTOBUF_NONNULL New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<IntervalMapOp>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const IntervalMapOp& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const IntervalMapOp& from) { IntervalMapOp::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(IntervalMapOp* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "mojo.spec.IntervalMapOp"; }

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

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

  // accessors -------------------------------------------------------
  enum : int {
    kValuesFieldNumber = 2,
    kBreakpointFieldNumber = 1,
  };
  // repeated .mojo.spec.ExternalData values = 2;
  int values_size() const;
  private:
  int _internal_values_size() const;

  public:
  void clear_values() ;
  ::mojo::spec::ExternalData* PROTOBUF_NONNULL mutable_values(int index);
  ::google::protobuf::RepeatedPtrField<::mojo::spec::ExternalData>* PROTOBUF_NONNULL mutable_values();

  private:
  const ::google::protobuf::RepeatedPtrField<::mojo::spec::ExternalData>& _internal_values() const;
  ::google::protobuf::RepeatedPtrField<::mojo::spec::ExternalData>* PROTOBUF_NONNULL _internal_mutable_values();
  public:
  const ::mojo::spec::ExternalData& values(int index) const;
  ::mojo::spec::ExternalData* PROTOBUF_NONNULL add_values();
  const ::google::protobuf::RepeatedPtrField<::mojo::spec::ExternalData>& values() const;
  // .mojo.spec.ExternalData breakpoint = 1;
  bool has_breakpoint() const;
  void clear_breakpoint() ;
  const ::mojo::spec::ExternalData& breakpoint() const;
  [[nodiscard]] ::mojo::spec::ExternalData* PROTOBUF_NULLABLE release_breakpoint();
  ::mojo::spec::ExternalData* PROTOBUF_NONNULL mutable_breakpoint();
  void set_allocated_breakpoint(::mojo::spec::ExternalData* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_breakpoint(::mojo::spec::ExternalData* PROTOBUF_NULLABLE value);
  ::mojo::spec::ExternalData* PROTOBUF_NULLABLE unsafe_arena_release_breakpoint();

  private:
  const ::mojo::spec::ExternalData& _internal_breakpoint() const;
  ::mojo::spec::ExternalData* PROTOBUF_NONNULL _internal_mutable_breakpoint();

  public:
  // @@protoc_insertion_point(class_scope:mojo.spec.IntervalMapOp)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<1, 2,
                                   2, 0,
                                   2>
      _table_;

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::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 IntervalMapOp& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::mojo::spec::ExternalData > values_;
    ::mojo::spec::ExternalData* PROTOBUF_NULLABLE breakpoint_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_Map_2eproto;
};

extern const ::google::protobuf::internal::ClassDataFull IntervalMapOp_class_data_;

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




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


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

// Int32Array

// repeated int32 values = 1;
inline int Int32Array::_internal_values_size() const {
  return _internal_values().size();
}
inline int Int32Array::values_size() const {
  return _internal_values_size();
}
inline void Int32Array::clear_values() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.values_.Clear();
  ClearHasBitForRepeated(_impl_._has_bits_[0],
                  0x00000001U);
}
inline ::int32_t Int32Array::values(int index) const {
  // @@protoc_insertion_point(field_get:mojo.spec.Int32Array.values)
  return _internal_values().Get(index);
}
inline void Int32Array::set_values(int index, ::int32_t value) {
  _internal_mutable_values()->Set(index, value);
  // @@protoc_insertion_point(field_set:mojo.spec.Int32Array.values)
}
inline void Int32Array::add_values(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _internal_mutable_values()->Add(value);
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:mojo.spec.Int32Array.values)
}
inline const ::google::protobuf::RepeatedField<::int32_t>& Int32Array::values() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:mojo.spec.Int32Array.values)
  return _internal_values();
}
inline ::google::protobuf::RepeatedField<::int32_t>* PROTOBUF_NONNULL Int32Array::mutable_values()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:mojo.spec.Int32Array.values)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_values();
}
inline const ::google::protobuf::RepeatedField<::int32_t>&
Int32Array::_internal_values() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.values_;
}
inline ::google::protobuf::RepeatedField<::int32_t>* PROTOBUF_NONNULL
Int32Array::_internal_mutable_values() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.values_;
}

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

// Int64Array

// repeated int64 values = 1;
inline int Int64Array::_internal_values_size() const {
  return _internal_values().size();
}
inline int Int64Array::values_size() const {
  return _internal_values_size();
}
inline void Int64Array::clear_values() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.values_.Clear();
  ClearHasBitForRepeated(_impl_._has_bits_[0],
                  0x00000001U);
}
inline ::int64_t Int64Array::values(int index) const {
  // @@protoc_insertion_point(field_get:mojo.spec.Int64Array.values)
  return _internal_values().Get(index);
}
inline void Int64Array::set_values(int index, ::int64_t value) {
  _internal_mutable_values()->Set(index, value);
  // @@protoc_insertion_point(field_set:mojo.spec.Int64Array.values)
}
inline void Int64Array::add_values(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _internal_mutable_values()->Add(value);
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:mojo.spec.Int64Array.values)
}
inline const ::google::protobuf::RepeatedField<::int64_t>& Int64Array::values() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:mojo.spec.Int64Array.values)
  return _internal_values();
}
inline ::google::protobuf::RepeatedField<::int64_t>* PROTOBUF_NONNULL Int64Array::mutable_values()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:mojo.spec.Int64Array.values)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_values();
}
inline const ::google::protobuf::RepeatedField<::int64_t>&
Int64Array::_internal_values() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.values_;
}
inline ::google::protobuf::RepeatedField<::int64_t>* PROTOBUF_NONNULL
Int64Array::_internal_mutable_values() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.values_;
}

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

// Float32Array

// repeated float values = 1;
inline int Float32Array::_internal_values_size() const {
  return _internal_values().size();
}
inline int Float32Array::values_size() const {
  return _internal_values_size();
}
inline void Float32Array::clear_values() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.values_.Clear();
  ClearHasBitForRepeated(_impl_._has_bits_[0],
                  0x00000001U);
}
inline float Float32Array::values(int index) const {
  // @@protoc_insertion_point(field_get:mojo.spec.Float32Array.values)
  return _internal_values().Get(index);
}
inline void Float32Array::set_values(int index, float value) {
  _internal_mutable_values()->Set(index, value);
  // @@protoc_insertion_point(field_set:mojo.spec.Float32Array.values)
}
inline void Float32Array::add_values(float value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _internal_mutable_values()->Add(value);
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:mojo.spec.Float32Array.values)
}
inline const ::google::protobuf::RepeatedField<float>& Float32Array::values() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:mojo.spec.Float32Array.values)
  return _internal_values();
}
inline ::google::protobuf::RepeatedField<float>* PROTOBUF_NONNULL Float32Array::mutable_values()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:mojo.spec.Float32Array.values)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_values();
}
inline const ::google::protobuf::RepeatedField<float>&
Float32Array::_internal_values() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.values_;
}
inline ::google::protobuf::RepeatedField<float>* PROTOBUF_NONNULL
Float32Array::_internal_mutable_values() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.values_;
}

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

// Float64Array

// repeated double values = 1;
inline int Float64Array::_internal_values_size() const {
  return _internal_values().size();
}
inline int Float64Array::values_size() const {
  return _internal_values_size();
}
inline void Float64Array::clear_values() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.values_.Clear();
  ClearHasBitForRepeated(_impl_._has_bits_[0],
                  0x00000001U);
}
inline double Float64Array::values(int index) const {
  // @@protoc_insertion_point(field_get:mojo.spec.Float64Array.values)
  return _internal_values().Get(index);
}
inline void Float64Array::set_values(int index, double value) {
  _internal_mutable_values()->Set(index, value);
  // @@protoc_insertion_point(field_set:mojo.spec.Float64Array.values)
}
inline void Float64Array::add_values(double value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _internal_mutable_values()->Add(value);
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:mojo.spec.Float64Array.values)
}
inline const ::google::protobuf::RepeatedField<double>& Float64Array::values() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:mojo.spec.Float64Array.values)
  return _internal_values();
}
inline ::google::protobuf::RepeatedField<double>* PROTOBUF_NONNULL Float64Array::mutable_values()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:mojo.spec.Float64Array.values)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_values();
}
inline const ::google::protobuf::RepeatedField<double>&
Float64Array::_internal_values() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.values_;
}
inline ::google::protobuf::RepeatedField<double>* PROTOBUF_NONNULL
Float64Array::_internal_mutable_values() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.values_;
}

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

// StrArray

// repeated string values = 1;
inline int StrArray::_internal_values_size() const {
  return _internal_values().size();
}
inline int StrArray::values_size() const {
  return _internal_values_size();
}
inline void StrArray::clear_values() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.values_.Clear();
  ClearHasBitForRepeated(_impl_._has_bits_[0],
                  0x00000001U);
}
inline ::std::string* PROTOBUF_NONNULL StrArray::add_values()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_values()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add_mutable:mojo.spec.StrArray.values)
  return _s;
}
inline const ::std::string& StrArray::values(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mojo.spec.StrArray.values)
  return _internal_values().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL StrArray::mutable_values(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:mojo.spec.StrArray.values)
  return _internal_mutable_values()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void StrArray::set_values(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(*_internal_mutable_values()->Mutable(index), ::std::forward<Arg_>(value),
                        args... );
  // @@protoc_insertion_point(field_set:mojo.spec.StrArray.values)
}
template <typename Arg_, typename... Args_>
inline void StrArray::add_values(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_values(), ::std::forward<Arg_>(value),
      args... );
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:mojo.spec.StrArray.values)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& StrArray::values()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:mojo.spec.StrArray.values)
  return _internal_values();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
StrArray::mutable_values() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:mojo.spec.StrArray.values)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_values();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
StrArray::_internal_values() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.values_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
StrArray::_internal_mutable_values() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.values_;
}

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

// ExternalData

// .mojo.spec.DataType data_type = 1;
inline void ExternalData::clear_data_type() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.data_type_ = 0;
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000002U);
}
inline ::mojo::spec::DataType ExternalData::data_type() const {
  // @@protoc_insertion_point(field_get:mojo.spec.ExternalData.data_type)
  return _internal_data_type();
}
inline void ExternalData::set_data_type(::mojo::spec::DataType value) {
  _internal_set_data_type(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:mojo.spec.ExternalData.data_type)
}
inline ::mojo::spec::DataType ExternalData::_internal_data_type() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::mojo::spec::DataType>(_impl_.data_type_);
}
inline void ExternalData::_internal_set_data_type(::mojo::spec::DataType value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.data_type_ = value;
}

// string file_name = 2;
inline void ExternalData::clear_file_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.file_name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000001U);
}
inline const ::std::string& ExternalData::file_name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mojo.spec.ExternalData.file_name)
  return _internal_file_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ExternalData::set_file_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.file_name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:mojo.spec.ExternalData.file_name)
}
inline ::std::string* PROTOBUF_NONNULL ExternalData::mutable_file_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_file_name();
  // @@protoc_insertion_point(field_mutable:mojo.spec.ExternalData.file_name)
  return _s;
}
inline const ::std::string& ExternalData::_internal_file_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.file_name_.Get();
}
inline void ExternalData::_internal_set_file_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.file_name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ExternalData::_internal_mutable_file_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.file_name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ExternalData::release_file_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mojo.spec.ExternalData.file_name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.file_name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.file_name_.Set("", GetArena());
  }
  return released;
}
inline void ExternalData::set_allocated_file_name(::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_.file_name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.file_name_.IsDefault()) {
    _impl_.file_name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:mojo.spec.ExternalData.file_name)
}

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

// BoolArray

// repeated bool values = 1;
inline int BoolArray::_internal_values_size() const {
  return _internal_values().size();
}
inline int BoolArray::values_size() const {
  return _internal_values_size();
}
inline void BoolArray::clear_values() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.values_.Clear();
  ClearHasBitForRepeated(_impl_._has_bits_[0],
                  0x00000001U);
}
inline bool BoolArray::values(int index) const {
  // @@protoc_insertion_point(field_get:mojo.spec.BoolArray.values)
  return _internal_values().Get(index);
}
inline void BoolArray::set_values(int index, bool value) {
  _internal_mutable_values()->Set(index, value);
  // @@protoc_insertion_point(field_set:mojo.spec.BoolArray.values)
}
inline void BoolArray::add_values(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _internal_mutable_values()->Add(value);
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:mojo.spec.BoolArray.values)
}
inline const ::google::protobuf::RepeatedField<bool>& BoolArray::values() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:mojo.spec.BoolArray.values)
  return _internal_values();
}
inline ::google::protobuf::RepeatedField<bool>* PROTOBUF_NONNULL BoolArray::mutable_values()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:mojo.spec.BoolArray.values)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_values();
}
inline const ::google::protobuf::RepeatedField<bool>&
BoolArray::_internal_values() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.values_;
}
inline ::google::protobuf::RepeatedField<bool>* PROTOBUF_NONNULL
BoolArray::_internal_mutable_values() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.values_;
}

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

// ReplaceOp

// .mojo.spec.ExternalData key = 1;
inline bool ReplaceOp::has_key() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.key_ != nullptr);
  return value;
}
inline void ReplaceOp::clear_key() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.key_ != nullptr) _impl_.key_->Clear();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000001U);
}
inline const ::mojo::spec::ExternalData& ReplaceOp::_internal_key() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::mojo::spec::ExternalData* p = _impl_.key_;
  return p != nullptr ? *p : reinterpret_cast<const ::mojo::spec::ExternalData&>(::mojo::spec::_ExternalData_default_instance_);
}
inline const ::mojo::spec::ExternalData& ReplaceOp::key() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mojo.spec.ReplaceOp.key)
  return _internal_key();
}
inline void ReplaceOp::unsafe_arena_set_allocated_key(
    ::mojo::spec::ExternalData* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.key_);
  }
  _impl_.key_ = reinterpret_cast<::mojo::spec::ExternalData*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mojo.spec.ReplaceOp.key)
}
inline ::mojo::spec::ExternalData* PROTOBUF_NULLABLE ReplaceOp::release_key() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::mojo::spec::ExternalData* released = _impl_.key_;
  _impl_.key_ = 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 ::mojo::spec::ExternalData* PROTOBUF_NULLABLE ReplaceOp::unsafe_arena_release_key() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mojo.spec.ReplaceOp.key)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::mojo::spec::ExternalData* temp = _impl_.key_;
  _impl_.key_ = nullptr;
  return temp;
}
inline ::mojo::spec::ExternalData* PROTOBUF_NONNULL ReplaceOp::_internal_mutable_key() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.key_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::mojo::spec::ExternalData>(GetArena());
    _impl_.key_ = reinterpret_cast<::mojo::spec::ExternalData*>(p);
  }
  return _impl_.key_;
}
inline ::mojo::spec::ExternalData* PROTOBUF_NONNULL ReplaceOp::mutable_key()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::mojo::spec::ExternalData* _msg = _internal_mutable_key();
  // @@protoc_insertion_point(field_mutable:mojo.spec.ReplaceOp.key)
  return _msg;
}
inline void ReplaceOp::set_allocated_key(::mojo::spec::ExternalData* 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_.key_);
  }

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

  _impl_.key_ = reinterpret_cast<::mojo::spec::ExternalData*>(value);
  // @@protoc_insertion_point(field_set_allocated:mojo.spec.ReplaceOp.key)
}

// .mojo.spec.ExternalData value = 2;
inline bool ReplaceOp::has_value() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.value_ != nullptr);
  return value;
}
inline void ReplaceOp::clear_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.value_ != nullptr) _impl_.value_->Clear();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000002U);
}
inline const ::mojo::spec::ExternalData& ReplaceOp::_internal_value() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::mojo::spec::ExternalData* p = _impl_.value_;
  return p != nullptr ? *p : reinterpret_cast<const ::mojo::spec::ExternalData&>(::mojo::spec::_ExternalData_default_instance_);
}
inline const ::mojo::spec::ExternalData& ReplaceOp::value() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mojo.spec.ReplaceOp.value)
  return _internal_value();
}
inline void ReplaceOp::unsafe_arena_set_allocated_value(
    ::mojo::spec::ExternalData* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.value_);
  }
  _impl_.value_ = reinterpret_cast<::mojo::spec::ExternalData*>(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:mojo.spec.ReplaceOp.value)
}
inline ::mojo::spec::ExternalData* PROTOBUF_NULLABLE ReplaceOp::release_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mojo::spec::ExternalData* released = _impl_.value_;
  _impl_.value_ = 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 ::mojo::spec::ExternalData* PROTOBUF_NULLABLE ReplaceOp::unsafe_arena_release_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mojo.spec.ReplaceOp.value)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mojo::spec::ExternalData* temp = _impl_.value_;
  _impl_.value_ = nullptr;
  return temp;
}
inline ::mojo::spec::ExternalData* PROTOBUF_NONNULL ReplaceOp::_internal_mutable_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.value_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::mojo::spec::ExternalData>(GetArena());
    _impl_.value_ = reinterpret_cast<::mojo::spec::ExternalData*>(p);
  }
  return _impl_.value_;
}
inline ::mojo::spec::ExternalData* PROTOBUF_NONNULL ReplaceOp::mutable_value()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mojo::spec::ExternalData* _msg = _internal_mutable_value();
  // @@protoc_insertion_point(field_mutable:mojo.spec.ReplaceOp.value)
  return _msg;
}
inline void ReplaceOp::set_allocated_value(::mojo::spec::ExternalData* 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_.value_);
  }

  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_.value_ = reinterpret_cast<::mojo::spec::ExternalData*>(value);
  // @@protoc_insertion_point(field_set_allocated:mojo.spec.ReplaceOp.value)
}

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

// IntervalMapOp

// .mojo.spec.ExternalData breakpoint = 1;
inline bool IntervalMapOp::has_breakpoint() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.breakpoint_ != nullptr);
  return value;
}
inline void IntervalMapOp::clear_breakpoint() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.breakpoint_ != nullptr) _impl_.breakpoint_->Clear();
  ClearHasBit(_impl_._has_bits_[0],
                  0x00000002U);
}
inline const ::mojo::spec::ExternalData& IntervalMapOp::_internal_breakpoint() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::mojo::spec::ExternalData* p = _impl_.breakpoint_;
  return p != nullptr ? *p : reinterpret_cast<const ::mojo::spec::ExternalData&>(::mojo::spec::_ExternalData_default_instance_);
}
inline const ::mojo::spec::ExternalData& IntervalMapOp::breakpoint() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mojo.spec.IntervalMapOp.breakpoint)
  return _internal_breakpoint();
}
inline void IntervalMapOp::unsafe_arena_set_allocated_breakpoint(
    ::mojo::spec::ExternalData* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.breakpoint_);
  }
  _impl_.breakpoint_ = reinterpret_cast<::mojo::spec::ExternalData*>(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:mojo.spec.IntervalMapOp.breakpoint)
}
inline ::mojo::spec::ExternalData* PROTOBUF_NULLABLE IntervalMapOp::release_breakpoint() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mojo::spec::ExternalData* released = _impl_.breakpoint_;
  _impl_.breakpoint_ = 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 ::mojo::spec::ExternalData* PROTOBUF_NULLABLE IntervalMapOp::unsafe_arena_release_breakpoint() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:mojo.spec.IntervalMapOp.breakpoint)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mojo::spec::ExternalData* temp = _impl_.breakpoint_;
  _impl_.breakpoint_ = nullptr;
  return temp;
}
inline ::mojo::spec::ExternalData* PROTOBUF_NONNULL IntervalMapOp::_internal_mutable_breakpoint() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.breakpoint_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::mojo::spec::ExternalData>(GetArena());
    _impl_.breakpoint_ = reinterpret_cast<::mojo::spec::ExternalData*>(p);
  }
  return _impl_.breakpoint_;
}
inline ::mojo::spec::ExternalData* PROTOBUF_NONNULL IntervalMapOp::mutable_breakpoint()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::mojo::spec::ExternalData* _msg = _internal_mutable_breakpoint();
  // @@protoc_insertion_point(field_mutable:mojo.spec.IntervalMapOp.breakpoint)
  return _msg;
}
inline void IntervalMapOp::set_allocated_breakpoint(::mojo::spec::ExternalData* 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_.breakpoint_);
  }

  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_.breakpoint_ = reinterpret_cast<::mojo::spec::ExternalData*>(value);
  // @@protoc_insertion_point(field_set_allocated:mojo.spec.IntervalMapOp.breakpoint)
}

// repeated .mojo.spec.ExternalData values = 2;
inline int IntervalMapOp::_internal_values_size() const {
  return _internal_values().size();
}
inline int IntervalMapOp::values_size() const {
  return _internal_values_size();
}
inline void IntervalMapOp::clear_values() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.values_.Clear();
  ClearHasBitForRepeated(_impl_._has_bits_[0],
                  0x00000001U);
}
inline ::mojo::spec::ExternalData* PROTOBUF_NONNULL IntervalMapOp::mutable_values(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:mojo.spec.IntervalMapOp.values)
  return _internal_mutable_values()->Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField<::mojo::spec::ExternalData>* PROTOBUF_NONNULL IntervalMapOp::mutable_values()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:mojo.spec.IntervalMapOp.values)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_values();
}
inline const ::mojo::spec::ExternalData& IntervalMapOp::values(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mojo.spec.IntervalMapOp.values)
  return _internal_values().Get(index);
}
inline ::mojo::spec::ExternalData* PROTOBUF_NONNULL IntervalMapOp::add_values()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::mojo::spec::ExternalData* _add =
      _internal_mutable_values()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:mojo.spec.IntervalMapOp.values)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::mojo::spec::ExternalData>& IntervalMapOp::values() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:mojo.spec.IntervalMapOp.values)
  return _internal_values();
}
inline const ::google::protobuf::RepeatedPtrField<::mojo::spec::ExternalData>&
IntervalMapOp::_internal_values() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.values_;
}
inline ::google::protobuf::RepeatedPtrField<::mojo::spec::ExternalData>* PROTOBUF_NONNULL
IntervalMapOp::_internal_mutable_values() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.values_;
}

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

// MapOp

// repeated .mojo.spec.ExternalData missing = 1;
inline int MapOp::_internal_missing_size() const {
  return _internal_missing().size();
}
inline int MapOp::missing_size() const {
  return _internal_missing_size();
}
inline void MapOp::clear_missing() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.missing_.Clear();
  ClearHasBitForRepeated(_impl_._has_bits_[0],
                  0x00000001U);
}
inline ::mojo::spec::ExternalData* PROTOBUF_NONNULL MapOp::mutable_missing(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:mojo.spec.MapOp.missing)
  return _internal_mutable_missing()->Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField<::mojo::spec::ExternalData>* PROTOBUF_NONNULL MapOp::mutable_missing()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:mojo.spec.MapOp.missing)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_missing();
}
inline const ::mojo::spec::ExternalData& MapOp::missing(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mojo.spec.MapOp.missing)
  return _internal_missing().Get(index);
}
inline ::mojo::spec::ExternalData* PROTOBUF_NONNULL MapOp::add_missing()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::mojo::spec::ExternalData* _add =
      _internal_mutable_missing()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:mojo.spec.MapOp.missing)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::mojo::spec::ExternalData>& MapOp::missing() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:mojo.spec.MapOp.missing)
  return _internal_missing();
}
inline const ::google::protobuf::RepeatedPtrField<::mojo::spec::ExternalData>&
MapOp::_internal_missing() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.missing_;
}
inline ::google::protobuf::RepeatedPtrField<::mojo::spec::ExternalData>* PROTOBUF_NONNULL
MapOp::_internal_mutable_missing() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.missing_;
}

// repeated .mojo.spec.ExternalData key = 2;
inline int MapOp::_internal_key_size() const {
  return _internal_key().size();
}
inline int MapOp::key_size() const {
  return _internal_key_size();
}
inline void MapOp::clear_key() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.key_.Clear();
  ClearHasBitForRepeated(_impl_._has_bits_[0],
                  0x00000002U);
}
inline ::mojo::spec::ExternalData* PROTOBUF_NONNULL MapOp::mutable_key(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:mojo.spec.MapOp.key)
  return _internal_mutable_key()->Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField<::mojo::spec::ExternalData>* PROTOBUF_NONNULL MapOp::mutable_key()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_mutable_list:mojo.spec.MapOp.key)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_key();
}
inline const ::mojo::spec::ExternalData& MapOp::key(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mojo.spec.MapOp.key)
  return _internal_key().Get(index);
}
inline ::mojo::spec::ExternalData* PROTOBUF_NONNULL MapOp::add_key()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::mojo::spec::ExternalData* _add =
      _internal_mutable_key()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add:mojo.spec.MapOp.key)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::mojo::spec::ExternalData>& MapOp::key() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:mojo.spec.MapOp.key)
  return _internal_key();
}
inline const ::google::protobuf::RepeatedPtrField<::mojo::spec::ExternalData>&
MapOp::_internal_key() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.key_;
}
inline ::google::protobuf::RepeatedPtrField<::mojo::spec::ExternalData>* PROTOBUF_NONNULL
MapOp::_internal_mutable_key() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.key_;
}

// repeated .mojo.spec.ExternalData value = 3;
inline int MapOp::_internal_value_size() const {
  return _internal_value().size();
}
inline int MapOp::value_size() const {
  return _internal_value_size();
}
inline void MapOp::clear_value() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.value_.Clear();
  ClearHasBitForRepeated(_impl_._has_bits_[0],
                  0x00000004U);
}
inline ::mojo::spec::ExternalData* PROTOBUF_NONNULL MapOp::mutable_value(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:mojo.spec.MapOp.value)
  return _internal_mutable_value()->Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField<::mojo::spec::ExternalData>* PROTOBUF_NONNULL MapOp::mutable_value()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_mutable_list:mojo.spec.MapOp.value)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_value();
}
inline const ::mojo::spec::ExternalData& MapOp::value(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:mojo.spec.MapOp.value)
  return _internal_value().Get(index);
}
inline ::mojo::spec::ExternalData* PROTOBUF_NONNULL MapOp::add_value()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::mojo::spec::ExternalData* _add =
      _internal_mutable_value()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBitForRepeated(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_add:mojo.spec.MapOp.value)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::mojo::spec::ExternalData>& MapOp::value() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:mojo.spec.MapOp.value)
  return _internal_value();
}
inline const ::google::protobuf::RepeatedPtrField<::mojo::spec::ExternalData>&
MapOp::_internal_value() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.value_;
}
inline ::google::protobuf::RepeatedPtrField<::mojo::spec::ExternalData>* PROTOBUF_NONNULL
MapOp::_internal_mutable_value() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.value_;
}

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

// @@protoc_insertion_point(namespace_scope)
}  // namespace spec
}  // namespace mojo


// @@protoc_insertion_point(global_scope)

#include "google/protobuf/port_undef.inc"

#endif  // Map_2eproto_2epb_2eh
