content: /*
   * Copyright (C) 2023-2025 Lightbend Inc. <https://www.lightbend.com>
   */
  
  // Generated by the protocol buffer compiler.  DO NOT EDIT!
  // source: MessageFormats.proto
  
  // Protobuf Java Version: 3.25.0
  package akka.persistence.serialization;
  
  public final class MessageFormats {
    private MessageFormats() {}
    public static void registerAllExtensions(
        akka.protobufv3.internal.ExtensionRegistryLite registry) {
    }
  
    public static void registerAllExtensions(
        akka.protobufv3.internal.ExtensionRegistry registry) {
      registerAllExtensions(
          (akka.protobufv3.internal.ExtensionRegistryLite) registry);
    }
    public interface PersistentMessageOrBuilder extends
        // @@protoc_insertion_point(interface_extends:PersistentMessage)
        akka.protobufv3.internal.MessageOrBuilder {
  
      /**
       * <code>optional .PersistentPayload payload = 1;</code>
       * @return Whether the payload field is set.
       */
      boolean hasPayload();
      /**
       * <code>optional .PersistentPayload payload = 1;</code>
       * @return The payload.
       */
      akka.persistence.serialization.MessageFormats.PersistentPayload getPayload();
      /**
       * <code>optional .PersistentPayload payload = 1;</code>
       */
      akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder getPayloadOrBuilder();
  
      /**
       * <code>optional int64 sequenceNr = 2;</code>
       * @return Whether the sequenceNr field is set.
       */
      boolean hasSequenceNr();
      /**
       * <code>optional int64 sequenceNr = 2;</code>
       * @return The sequenceNr.
       */
      long getSequenceNr();
  
      /**
       * <code>optional string persistenceId = 3;</code>
       * @return Whether the persistenceId field is set.
       */
      boolean hasPersistenceId();
      /**
       * <code>optional string persistenceId = 3;</code>
       * @return The persistenceId.
       */
      java.lang.String getPersistenceId();
      /**
       * <code>optional string persistenceId = 3;</code>
       * @return The bytes for persistenceId.
       */
      akka.protobufv3.internal.ByteString
          getPersistenceIdBytes();
  
      /**
       * <pre>
       * not used in new records from 2.4
       * </pre>
       *
       * <code>optional bool deleted = 4;</code>
       * @return Whether the deleted field is set.
       */
      boolean hasDeleted();
      /**
       * <pre>
       * not used in new records from 2.4
       * </pre>
       *
       * <code>optional bool deleted = 4;</code>
       * @return The deleted.
       */
      boolean getDeleted();
  
      /**
       * <pre>
       * optional int32 redeliveries = 6; // Removed in 2.4
       * repeated string confirms = 7; // Removed in 2.4
       * optional bool confirmable = 8;  // Removed in 2.4
       * optional DeliveredMessage confirmMessage = 9; // Removed in 2.4
       * optional string confirmTarget = 10; // Removed in 2.4
       * </pre>
       *
       * <code>optional string sender = 11;</code>
       * @return Whether the sender field is set.
       */
      boolean hasSender();
      /**
       * <pre>
       * optional int32 redeliveries = 6; // Removed in 2.4
       * repeated string confirms = 7; // Removed in 2.4
       * optional bool confirmable = 8;  // Removed in 2.4
       * optional DeliveredMessage confirmMessage = 9; // Removed in 2.4
       * optional string confirmTarget = 10; // Removed in 2.4
       * </pre>
       *
       * <code>optional string sender = 11;</code>
       * @return The sender.
       */
      java.lang.String getSender();
      /**
       * <pre>
       * optional int32 redeliveries = 6; // Removed in 2.4
       * repeated string confirms = 7; // Removed in 2.4
       * optional bool confirmable = 8;  // Removed in 2.4
       * optional DeliveredMessage confirmMessage = 9; // Removed in 2.4
       * optional string confirmTarget = 10; // Removed in 2.4
       * </pre>
       *
       * <code>optional string sender = 11;</code>
       * @return The bytes for sender.
       */
      akka.protobufv3.internal.ByteString
          getSenderBytes();
  
      /**
       * <code>optional string manifest = 12;</code>
       * @return Whether the manifest field is set.
       */
      boolean hasManifest();
      /**
       * <code>optional string manifest = 12;</code>
       * @return The manifest.
       */
      java.lang.String getManifest();
      /**
       * <code>optional string manifest = 12;</code>
       * @return The bytes for manifest.
       */
      akka.protobufv3.internal.ByteString
          getManifestBytes();
  
      /**
       * <code>optional string writerUuid = 13;</code>
       * @return Whether the writerUuid field is set.
       */
      boolean hasWriterUuid();
      /**
       * <code>optional string writerUuid = 13;</code>
       * @return The writerUuid.
       */
      java.lang.String getWriterUuid();
      /**
       * <code>optional string writerUuid = 13;</code>
       * @return The bytes for writerUuid.
       */
      akka.protobufv3.internal.ByteString
          getWriterUuidBytes();
  
      /**
       * <code>optional sint64 timestamp = 14;</code>
       * @return Whether the timestamp field is set.
       */
      boolean hasTimestamp();
      /**
       * <code>optional sint64 timestamp = 14;</code>
       * @return The timestamp.
       */
      long getTimestamp();
  
      /**
       * <code>optional .PersistentPayload metadata = 15;</code>
       * @return Whether the metadata field is set.
       */
      boolean hasMetadata();
      /**
       * <code>optional .PersistentPayload metadata = 15;</code>
       * @return The metadata.
       */
      akka.persistence.serialization.MessageFormats.PersistentPayload getMetadata();
      /**
       * <code>optional .PersistentPayload metadata = 15;</code>
       */
      akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder getMetadataOrBuilder();
    }
    /**
     * Protobuf type {@code PersistentMessage}
     */
    public static final class PersistentMessage extends
        akka.protobufv3.internal.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:PersistentMessage)
        PersistentMessageOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use PersistentMessage.newBuilder() to construct.
      private PersistentMessage(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private PersistentMessage() {
        persistenceId_ = "";
        sender_ = "";
        manifest_ = "";
        writerUuid_ = "";
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
        return new PersistentMessage();
      }
  
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.persistence.serialization.MessageFormats.internal_static_PersistentMessage_descriptor;
      }
  
      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.persistence.serialization.MessageFormats.internal_static_PersistentMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.persistence.serialization.MessageFormats.PersistentMessage.class, akka.persistence.serialization.MessageFormats.PersistentMessage.Builder.class);
      }
  
      private int bitField0_;
      public static final int PAYLOAD_FIELD_NUMBER = 1;
      private akka.persistence.serialization.MessageFormats.PersistentPayload payload_;
      /**
       * <code>optional .PersistentPayload payload = 1;</code>
       * @return Whether the payload field is set.
       */
      @java.lang.Override
      public boolean hasPayload() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional .PersistentPayload payload = 1;</code>
       * @return The payload.
       */
      @java.lang.Override
      public akka.persistence.serialization.MessageFormats.PersistentPayload getPayload() {
        return payload_ == null ? akka.persistence.serialization.MessageFormats.PersistentPayload.getDefaultInstance() : payload_;
      }
      /**
       * <code>optional .PersistentPayload payload = 1;</code>
       */
      @java.lang.Override
      public akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder getPayloadOrBuilder() {
        return payload_ == null ? akka.persistence.serialization.MessageFormats.PersistentPayload.getDefaultInstance() : payload_;
      }
  
      public static final int SEQUENCENR_FIELD_NUMBER = 2;
      private long sequenceNr_ = 0L;
      /**
       * <code>optional int64 sequenceNr = 2;</code>
       * @return Whether the sequenceNr field is set.
       */
      @java.lang.Override
      public boolean hasSequenceNr() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional int64 sequenceNr = 2;</code>
       * @return The sequenceNr.
       */
      @java.lang.Override
      public long getSequenceNr() {
        return sequenceNr_;
      }
  
      public static final int PERSISTENCEID_FIELD_NUMBER = 3;
      @SuppressWarnings("serial")
      private volatile java.lang.Object persistenceId_ = "";
      /**
       * <code>optional string persistenceId = 3;</code>
       * @return Whether the persistenceId field is set.
       */
      @java.lang.Override
      public boolean hasPersistenceId() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional string persistenceId = 3;</code>
       * @return The persistenceId.
       */
      @java.lang.Override
      public java.lang.String getPersistenceId() {
        java.lang.Object ref = persistenceId_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          akka.protobufv3.internal.ByteString bs = 
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            persistenceId_ = s;
          }
          return s;
        }
      }
      /**
       * <code>optional string persistenceId = 3;</code>
       * @return The bytes for persistenceId.
       */
      @java.lang.Override
      public akka.protobufv3.internal.ByteString
          getPersistenceIdBytes() {
        java.lang.Object ref = persistenceId_;
        if (ref instanceof java.lang.String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          persistenceId_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
  
      public static final int DELETED_FIELD_NUMBER = 4;
      private boolean deleted_ = false;
      /**
       * <pre>
       * not used in new records from 2.4
       * </pre>
       *
       * <code>optional bool deleted = 4;</code>
       * @return Whether the deleted field is set.
       */
      @java.lang.Override
      public boolean hasDeleted() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * not used in new records from 2.4
       * </pre>
       *
       * <code>optional bool deleted = 4;</code>
       * @return The deleted.
       */
      @java.lang.Override
      public boolean getDeleted() {
        return deleted_;
      }
  
      public static final int SENDER_FIELD_NUMBER = 11;
      @SuppressWarnings("serial")
      private volatile java.lang.Object sender_ = "";
      /**
       * <pre>
       * optional int32 redeliveries = 6; // Removed in 2.4
       * repeated string confirms = 7; // Removed in 2.4
       * optional bool confirmable = 8;  // Removed in 2.4
       * optional DeliveredMessage confirmMessage = 9; // Removed in 2.4
       * optional string confirmTarget = 10; // Removed in 2.4
       * </pre>
       *
       * <code>optional string sender = 11;</code>
       * @return Whether the sender field is set.
       */
      @java.lang.Override
      public boolean hasSender() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * optional int32 redeliveries = 6; // Removed in 2.4
       * repeated string confirms = 7; // Removed in 2.4
       * optional bool confirmable = 8;  // Removed in 2.4
       * optional DeliveredMessage confirmMessage = 9; // Removed in 2.4
       * optional string confirmTarget = 10; // Removed in 2.4
       * </pre>
       *
       * <code>optional string sender = 11;</code>
       * @return The sender.
       */
      @java.lang.Override
      public java.lang.String getSender() {
        java.lang.Object ref = sender_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          akka.protobufv3.internal.ByteString bs = 
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            sender_ = s;
          }
          return s;
        }
      }
      /**
       * <pre>
       * optional int32 redeliveries = 6; // Removed in 2.4
       * repeated string confirms = 7; // Removed in 2.4
       * optional bool confirmable = 8;  // Removed in 2.4
       * optional DeliveredMessage confirmMessage = 9; // Removed in 2.4
       * optional string confirmTarget = 10; // Removed in 2.4
       * </pre>
       *
       * <code>optional string sender = 11;</code>
       * @return The bytes for sender.
       */
      @java.lang.Override
      public akka.protobufv3.internal.ByteString
          getSenderBytes() {
        java.lang.Object ref = sender_;
        if (ref instanceof java.lang.String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          sender_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
  
      public static final int MANIFEST_FIELD_NUMBER = 12;
      @SuppressWarnings("serial")
      private volatile java.lang.Object manifest_ = "";
      /**
       * <code>optional string manifest = 12;</code>
       * @return Whether the manifest field is set.
       */
      @java.lang.Override
      public boolean hasManifest() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>optional string manifest = 12;</code>
       * @return The manifest.
       */
      @java.lang.Override
      public java.lang.String getManifest() {
        java.lang.Object ref = manifest_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          akka.protobufv3.internal.ByteString bs = 
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            manifest_ = s;
          }
          return s;
        }
      }
      /**
       * <code>optional string manifest = 12;</code>
       * @return The bytes for manifest.
       */
      @java.lang.Override
      public akka.protobufv3.internal.ByteString
          getManifestBytes() {
        java.lang.Object ref = manifest_;
        if (ref instanceof java.lang.String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          manifest_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
  
      public static final int WRITERUUID_FIELD_NUMBER = 13;
      @SuppressWarnings("serial")
      private volatile java.lang.Object writerUuid_ = "";
      /**
       * <code>optional string writerUuid = 13;</code>
       * @return Whether the writerUuid field is set.
       */
      @java.lang.Override
      public boolean hasWriterUuid() {
        return ((bitField0_ & 0x00000040) != 0);
      }
      /**
       * <code>optional string writerUuid = 13;</code>
       * @return The writerUuid.
       */
      @java.lang.Override
      public java.lang.String getWriterUuid() {
        java.lang.Object ref = writerUuid_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          akka.protobufv3.internal.ByteString bs = 
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            writerUuid_ = s;
          }
          return s;
        }
      }
      /**
       * <code>optional string writerUuid = 13;</code>
       * @return The bytes for writerUuid.
       */
      @java.lang.Override
      public akka.protobufv3.internal.ByteString
          getWriterUuidBytes() {
        java.lang.Object ref = writerUuid_;
        if (ref instanceof java.lang.String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          writerUuid_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
  
      public static final int TIMESTAMP_FIELD_NUMBER = 14;
      private long timestamp_ = 0L;
      /**
       * <code>optional sint64 timestamp = 14;</code>
       * @return Whether the timestamp field is set.
       */
      @java.lang.Override
      public boolean hasTimestamp() {
        return ((bitField0_ & 0x00000080) != 0);
      }
      /**
       * <code>optional sint64 timestamp = 14;</code>
       * @return The timestamp.
       */
      @java.lang.Override
      public long getTimestamp() {
        return timestamp_;
      }
  
      public static final int METADATA_FIELD_NUMBER = 15;
      private akka.persistence.serialization.MessageFormats.PersistentPayload metadata_;
      /**
       * <code>optional .PersistentPayload metadata = 15;</code>
       * @return Whether the metadata field is set.
       */
      @java.lang.Override
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000100) != 0);
      }
      /**
       * <code>optional .PersistentPayload metadata = 15;</code>
       * @return The metadata.
       */
      @java.lang.Override
      public akka.persistence.serialization.MessageFormats.PersistentPayload getMetadata() {
        return metadata_ == null ? akka.persistence.serialization.MessageFormats.PersistentPayload.getDefaultInstance() : metadata_;
      }
      /**
       * <code>optional .PersistentPayload metadata = 15;</code>
       */
      @java.lang.Override
      public akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder getMetadataOrBuilder() {
        return metadata_ == null ? akka.persistence.serialization.MessageFormats.PersistentPayload.getDefaultInstance() : metadata_;
      }
  
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        if (hasPayload()) {
          if (!getPayload().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        if (hasMetadata()) {
          if (!getMetadata().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) != 0)) {
          output.writeMessage(1, getPayload());
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          output.writeInt64(2, sequenceNr_);
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 3, persistenceId_);
        }
        if (((bitField0_ & 0x00000008) != 0)) {
          output.writeBool(4, deleted_);
        }
        if (((bitField0_ & 0x00000010) != 0)) {
          akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 11, sender_);
        }
        if (((bitField0_ & 0x00000020) != 0)) {
          akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 12, manifest_);
        }
        if (((bitField0_ & 0x00000040) != 0)) {
          akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 13, writerUuid_);
        }
        if (((bitField0_ & 0x00000080) != 0)) {
          output.writeSInt64(14, timestamp_);
        }
        if (((bitField0_ & 0x00000100) != 0)) {
          output.writeMessage(15, getMetadata());
        }
        getUnknownFields().writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) != 0)) {
          size += akka.protobufv3.internal.CodedOutputStream
            .computeMessageSize(1, getPayload());
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          size += akka.protobufv3.internal.CodedOutputStream
            .computeInt64Size(2, sequenceNr_);
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(3, persistenceId_);
        }
        if (((bitField0_ & 0x00000008) != 0)) {
          size += akka.protobufv3.internal.CodedOutputStream
            .computeBoolSize(4, deleted_);
        }
        if (((bitField0_ & 0x00000010) != 0)) {
          size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(11, sender_);
        }
        if (((bitField0_ & 0x00000020) != 0)) {
          size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(12, manifest_);
        }
        if (((bitField0_ & 0x00000040) != 0)) {
          size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(13, writerUuid_);
        }
        if (((bitField0_ & 0x00000080) != 0)) {
          size += akka.protobufv3.internal.CodedOutputStream
            .computeSInt64Size(14, timestamp_);
        }
        if (((bitField0_ & 0x00000100) != 0)) {
          size += akka.protobufv3.internal.CodedOutputStream
            .computeMessageSize(15, getMetadata());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof akka.persistence.serialization.MessageFormats.PersistentMessage)) {
          return super.equals(obj);
        }
        akka.persistence.serialization.MessageFormats.PersistentMessage other = (akka.persistence.serialization.MessageFormats.PersistentMessage) obj;
  
        if (hasPayload() != other.hasPayload()) return false;
        if (hasPayload()) {
          if (!getPayload()
              .equals(other.getPayload())) return false;
        }
        if (hasSequenceNr() != other.hasSequenceNr()) return false;
        if (hasSequenceNr()) {
          if (getSequenceNr()
              != other.getSequenceNr()) return false;
        }
        if (hasPersistenceId() != other.hasPersistenceId()) return false;
        if (hasPersistenceId()) {
          if (!getPersistenceId()
              .equals(other.getPersistenceId())) return false;
        }
        if (hasDeleted() != other.hasDeleted()) return false;
        if (hasDeleted()) {
          if (getDeleted()
              != other.getDeleted()) return false;
        }
        if (hasSender() != other.hasSender()) return false;
        if (hasSender()) {
          if (!getSender()
              .equals(other.getSender())) return false;
        }
        if (hasManifest() != other.hasManifest()) return false;
        if (hasManifest()) {
          if (!getManifest()
              .equals(other.getManifest())) return false;
        }
        if (hasWriterUuid() != other.hasWriterUuid()) return false;
        if (hasWriterUuid()) {
          if (!getWriterUuid()
              .equals(other.getWriterUuid())) return false;
        }
        if (hasTimestamp() != other.hasTimestamp()) return false;
        if (hasTimestamp()) {
          if (getTimestamp()
              != other.getTimestamp()) return false;
        }
        if (hasMetadata() != other.hasMetadata()) return false;
        if (hasMetadata()) {
          if (!getMetadata()
              .equals(other.getMetadata())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasPayload()) {
          hash = (37 * hash) + PAYLOAD_FIELD_NUMBER;
          hash = (53 * hash) + getPayload().hashCode();
        }
        if (hasSequenceNr()) {
          hash = (37 * hash) + SEQUENCENR_FIELD_NUMBER;
          hash = (53 * hash) + akka.protobufv3.internal.Internal.hashLong(
              getSequenceNr());
        }
        if (hasPersistenceId()) {
          hash = (37 * hash) + PERSISTENCEID_FIELD_NUMBER;
          hash = (53 * hash) + getPersistenceId().hashCode();
        }
        if (hasDeleted()) {
          hash = (37 * hash) + DELETED_FIELD_NUMBER;
          hash = (53 * hash) + akka.protobufv3.internal.Internal.hashBoolean(
              getDeleted());
        }
        if (hasSender()) {
          hash = (37 * hash) + SENDER_FIELD_NUMBER;
          hash = (53 * hash) + getSender().hashCode();
        }
        if (hasManifest()) {
          hash = (37 * hash) + MANIFEST_FIELD_NUMBER;
          hash = (53 * hash) + getManifest().hashCode();
        }
        if (hasWriterUuid()) {
          hash = (37 * hash) + WRITERUUID_FIELD_NUMBER;
          hash = (53 * hash) + getWriterUuid().hashCode();
        }
        if (hasTimestamp()) {
          hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER;
          hash = (53 * hash) + akka.protobufv3.internal.Internal.hashLong(
              getTimestamp());
        }
        if (hasMetadata()) {
          hash = (37 * hash) + METADATA_FIELD_NUMBER;
          hash = (53 * hash) + getMetadata().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static akka.persistence.serialization.MessageFormats.PersistentMessage parseFrom(
          java.nio.ByteBuffer data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentMessage parseFrom(
          java.nio.ByteBuffer data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentMessage parseFrom(
          akka.protobufv3.internal.ByteString data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentMessage parseFrom(
          akka.protobufv3.internal.ByteString data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentMessage parseFrom(byte[] data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentMessage parseFrom(
          byte[] data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentMessage parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentMessage parseFrom(
          java.io.InputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      public static akka.persistence.serialization.MessageFormats.PersistentMessage parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
  
      public static akka.persistence.serialization.MessageFormats.PersistentMessage parseDelimitedFrom(
          java.io.InputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentMessage parseFrom(
          akka.protobufv3.internal.CodedInputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentMessage parseFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(akka.persistence.serialization.MessageFormats.PersistentMessage prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code PersistentMessage}
       */
      public static final class Builder extends
          akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:PersistentMessage)
          akka.persistence.serialization.MessageFormats.PersistentMessageOrBuilder {
        public static final akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptor() {
          return akka.persistence.serialization.MessageFormats.internal_static_PersistentMessage_descriptor;
        }
  
        @java.lang.Override
        protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return akka.persistence.serialization.MessageFormats.internal_static_PersistentMessage_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  akka.persistence.serialization.MessageFormats.PersistentMessage.class, akka.persistence.serialization.MessageFormats.PersistentMessage.Builder.class);
        }
  
        // Construct using akka.persistence.serialization.MessageFormats.PersistentMessage.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (akka.protobufv3.internal.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
            getPayloadFieldBuilder();
            getMetadataFieldBuilder();
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          payload_ = null;
          if (payloadBuilder_ != null) {
            payloadBuilder_.dispose();
            payloadBuilder_ = null;
          }
          sequenceNr_ = 0L;
          persistenceId_ = "";
          deleted_ = false;
          sender_ = "";
          manifest_ = "";
          writerUuid_ = "";
          timestamp_ = 0L;
          metadata_ = null;
          if (metadataBuilder_ != null) {
            metadataBuilder_.dispose();
            metadataBuilder_ = null;
          }
          return this;
        }
  
        @java.lang.Override
        public akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptorForType() {
          return akka.persistence.serialization.MessageFormats.internal_static_PersistentMessage_descriptor;
        }
  
        @java.lang.Override
        public akka.persistence.serialization.MessageFormats.PersistentMessage getDefaultInstanceForType() {
          return akka.persistence.serialization.MessageFormats.PersistentMessage.getDefaultInstance();
        }
  
        @java.lang.Override
        public akka.persistence.serialization.MessageFormats.PersistentMessage build() {
          akka.persistence.serialization.MessageFormats.PersistentMessage result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public akka.persistence.serialization.MessageFormats.PersistentMessage buildPartial() {
          akka.persistence.serialization.MessageFormats.PersistentMessage result = new akka.persistence.serialization.MessageFormats.PersistentMessage(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartial0(akka.persistence.serialization.MessageFormats.PersistentMessage result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.payload_ = payloadBuilder_ == null
                ? payload_
                : payloadBuilder_.build();
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.sequenceNr_ = sequenceNr_;
            to_bitField0_ |= 0x00000002;
          }
          if (((from_bitField0_ & 0x00000004) != 0)) {
            result.persistenceId_ = persistenceId_;
            to_bitField0_ |= 0x00000004;
          }
          if (((from_bitField0_ & 0x00000008) != 0)) {
            result.deleted_ = deleted_;
            to_bitField0_ |= 0x00000008;
          }
          if (((from_bitField0_ & 0x00000010) != 0)) {
            result.sender_ = sender_;
            to_bitField0_ |= 0x00000010;
          }
          if (((from_bitField0_ & 0x00000020) != 0)) {
            result.manifest_ = manifest_;
            to_bitField0_ |= 0x00000020;
          }
          if (((from_bitField0_ & 0x00000040) != 0)) {
            result.writerUuid_ = writerUuid_;
            to_bitField0_ |= 0x00000040;
          }
          if (((from_bitField0_ & 0x00000080) != 0)) {
            result.timestamp_ = timestamp_;
            to_bitField0_ |= 0x00000080;
          }
          if (((from_bitField0_ & 0x00000100) != 0)) {
            result.metadata_ = metadataBuilder_ == null
                ? metadata_
                : metadataBuilder_.build();
            to_bitField0_ |= 0x00000100;
          }
          result.bitField0_ |= to_bitField0_;
        }
  
        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(akka.protobufv3.internal.Message other) {
          if (other instanceof akka.persistence.serialization.MessageFormats.PersistentMessage) {
            return mergeFrom((akka.persistence.serialization.MessageFormats.PersistentMessage)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(akka.persistence.serialization.MessageFormats.PersistentMessage other) {
          if (other == akka.persistence.serialization.MessageFormats.PersistentMessage.getDefaultInstance()) return this;
          if (other.hasPayload()) {
            mergePayload(other.getPayload());
          }
          if (other.hasSequenceNr()) {
            setSequenceNr(other.getSequenceNr());
          }
          if (other.hasPersistenceId()) {
            persistenceId_ = other.persistenceId_;
            bitField0_ |= 0x00000004;
            onChanged();
          }
          if (other.hasDeleted()) {
            setDeleted(other.getDeleted());
          }
          if (other.hasSender()) {
            sender_ = other.sender_;
            bitField0_ |= 0x00000010;
            onChanged();
          }
          if (other.hasManifest()) {
            manifest_ = other.manifest_;
            bitField0_ |= 0x00000020;
            onChanged();
          }
          if (other.hasWriterUuid()) {
            writerUuid_ = other.writerUuid_;
            bitField0_ |= 0x00000040;
            onChanged();
          }
          if (other.hasTimestamp()) {
            setTimestamp(other.getTimestamp());
          }
          if (other.hasMetadata()) {
            mergeMetadata(other.getMetadata());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          if (hasPayload()) {
            if (!getPayload().isInitialized()) {
              return false;
            }
          }
          if (hasMetadata()) {
            if (!getMetadata().isInitialized()) {
              return false;
            }
          }
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            akka.protobufv3.internal.CodedInputStream input,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  input.readMessage(
                      getPayloadFieldBuilder().getBuilder(),
                      extensionRegistry);
                  bitField0_ |= 0x00000001;
                  break;
                } // case 10
                case 16: {
                  sequenceNr_ = input.readInt64();
                  bitField0_ |= 0x00000002;
                  break;
                } // case 16
                case 26: {
                  persistenceId_ = input.readBytes();
                  bitField0_ |= 0x00000004;
                  break;
                } // case 26
                case 32: {
                  deleted_ = input.readBool();
                  bitField0_ |= 0x00000008;
                  break;
                } // case 32
                case 90: {
                  sender_ = input.readBytes();
                  bitField0_ |= 0x00000010;
                  break;
                } // case 90
                case 98: {
                  manifest_ = input.readBytes();
                  bitField0_ |= 0x00000020;
                  break;
                } // case 98
                case 106: {
                  writerUuid_ = input.readBytes();
                  bitField0_ |= 0x00000040;
                  break;
                } // case 106
                case 112: {
                  timestamp_ = input.readSInt64();
                  bitField0_ |= 0x00000080;
                  break;
                } // case 112
                case 122: {
                  input.readMessage(
                      getMetadataFieldBuilder().getBuilder(),
                      extensionRegistry);
                  bitField0_ |= 0x00000100;
                  break;
                } // case 122
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;
  
        private akka.persistence.serialization.MessageFormats.PersistentPayload payload_;
        private akka.protobufv3.internal.SingleFieldBuilderV3<
            akka.persistence.serialization.MessageFormats.PersistentPayload, akka.persistence.serialization.MessageFormats.PersistentPayload.Builder, akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder> payloadBuilder_;
        /**
         * <code>optional .PersistentPayload payload = 1;</code>
         * @return Whether the payload field is set.
         */
        public boolean hasPayload() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>optional .PersistentPayload payload = 1;</code>
         * @return The payload.
         */
        public akka.persistence.serialization.MessageFormats.PersistentPayload getPayload() {
          if (payloadBuilder_ == null) {
            return payload_ == null ? akka.persistence.serialization.MessageFormats.PersistentPayload.getDefaultInstance() : payload_;
          } else {
            return payloadBuilder_.getMessage();
          }
        }
        /**
         * <code>optional .PersistentPayload payload = 1;</code>
         */
        public Builder setPayload(akka.persistence.serialization.MessageFormats.PersistentPayload value) {
          if (payloadBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            payload_ = value;
          } else {
            payloadBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>optional .PersistentPayload payload = 1;</code>
         */
        public Builder setPayload(
            akka.persistence.serialization.MessageFormats.PersistentPayload.Builder builderForValue) {
          if (payloadBuilder_ == null) {
            payload_ = builderForValue.build();
          } else {
            payloadBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>optional .PersistentPayload payload = 1;</code>
         */
        public Builder mergePayload(akka.persistence.serialization.MessageFormats.PersistentPayload value) {
          if (payloadBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0) &&
              payload_ != null &&
              payload_ != akka.persistence.serialization.MessageFormats.PersistentPayload.getDefaultInstance()) {
              getPayloadBuilder().mergeFrom(value);
            } else {
              payload_ = value;
            }
          } else {
            payloadBuilder_.mergeFrom(value);
          }
          if (payload_ != null) {
            bitField0_ |= 0x00000001;
            onChanged();
          }
          return this;
        }
        /**
         * <code>optional .PersistentPayload payload = 1;</code>
         */
        public Builder clearPayload() {
          bitField0_ = (bitField0_ & ~0x00000001);
          payload_ = null;
          if (payloadBuilder_ != null) {
            payloadBuilder_.dispose();
            payloadBuilder_ = null;
          }
          onChanged();
          return this;
        }
        /**
         * <code>optional .PersistentPayload payload = 1;</code>
         */
        public akka.persistence.serialization.MessageFormats.PersistentPayload.Builder getPayloadBuilder() {
          bitField0_ |= 0x00000001;
          onChanged();
          return getPayloadFieldBuilder().getBuilder();
        }
        /**
         * <code>optional .PersistentPayload payload = 1;</code>
         */
        public akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder getPayloadOrBuilder() {
          if (payloadBuilder_ != null) {
            return payloadBuilder_.getMessageOrBuilder();
          } else {
            return payload_ == null ?
                akka.persistence.serialization.MessageFormats.PersistentPayload.getDefaultInstance() : payload_;
          }
        }
        /**
         * <code>optional .PersistentPayload payload = 1;</code>
         */
        private akka.protobufv3.internal.SingleFieldBuilderV3<
            akka.persistence.serialization.MessageFormats.PersistentPayload, akka.persistence.serialization.MessageFormats.PersistentPayload.Builder, akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder> 
            getPayloadFieldBuilder() {
          if (payloadBuilder_ == null) {
            payloadBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
                akka.persistence.serialization.MessageFormats.PersistentPayload, akka.persistence.serialization.MessageFormats.PersistentPayload.Builder, akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder>(
                    getPayload(),
                    getParentForChildren(),
                    isClean());
            payload_ = null;
          }
          return payloadBuilder_;
        }
  
        private long sequenceNr_ ;
        /**
         * <code>optional int64 sequenceNr = 2;</code>
         * @return Whether the sequenceNr field is set.
         */
        @java.lang.Override
        public boolean hasSequenceNr() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>optional int64 sequenceNr = 2;</code>
         * @return The sequenceNr.
         */
        @java.lang.Override
        public long getSequenceNr() {
          return sequenceNr_;
        }
        /**
         * <code>optional int64 sequenceNr = 2;</code>
         * @param value The sequenceNr to set.
         * @return This builder for chaining.
         */
        public Builder setSequenceNr(long value) {
  
          sequenceNr_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 sequenceNr = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearSequenceNr() {
          bitField0_ = (bitField0_ & ~0x00000002);
          sequenceNr_ = 0L;
          onChanged();
          return this;
        }
  
        private java.lang.Object persistenceId_ = "";
        /**
         * <code>optional string persistenceId = 3;</code>
         * @return Whether the persistenceId field is set.
         */
        public boolean hasPersistenceId() {
          return ((bitField0_ & 0x00000004) != 0);
        }
        /**
         * <code>optional string persistenceId = 3;</code>
         * @return The persistenceId.
         */
        public java.lang.String getPersistenceId() {
          java.lang.Object ref = persistenceId_;
          if (!(ref instanceof java.lang.String)) {
            akka.protobufv3.internal.ByteString bs =
                (akka.protobufv3.internal.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              persistenceId_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>optional string persistenceId = 3;</code>
         * @return The bytes for persistenceId.
         */
        public akka.protobufv3.internal.ByteString
            getPersistenceIdBytes() {
          java.lang.Object ref = persistenceId_;
          if (ref instanceof String) {
            akka.protobufv3.internal.ByteString b = 
                akka.protobufv3.internal.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            persistenceId_ = b;
            return b;
          } else {
            return (akka.protobufv3.internal.ByteString) ref;
          }
        }
        /**
         * <code>optional string persistenceId = 3;</code>
         * @param value The persistenceId to set.
         * @return This builder for chaining.
         */
        public Builder setPersistenceId(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          persistenceId_ = value;
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }
        /**
         * <code>optional string persistenceId = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearPersistenceId() {
          persistenceId_ = getDefaultInstance().getPersistenceId();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
          return this;
        }
        /**
         * <code>optional string persistenceId = 3;</code>
         * @param value The bytes for persistenceId to set.
         * @return This builder for chaining.
         */
        public Builder setPersistenceIdBytes(
            akka.protobufv3.internal.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          persistenceId_ = value;
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }
  
        private boolean deleted_ ;
        /**
         * <pre>
         * not used in new records from 2.4
         * </pre>
         *
         * <code>optional bool deleted = 4;</code>
         * @return Whether the deleted field is set.
         */
        @java.lang.Override
        public boolean hasDeleted() {
          return ((bitField0_ & 0x00000008) != 0);
        }
        /**
         * <pre>
         * not used in new records from 2.4
         * </pre>
         *
         * <code>optional bool deleted = 4;</code>
         * @return The deleted.
         */
        @java.lang.Override
        public boolean getDeleted() {
          return deleted_;
        }
        /**
         * <pre>
         * not used in new records from 2.4
         * </pre>
         *
         * <code>optional bool deleted = 4;</code>
         * @param value The deleted to set.
         * @return This builder for chaining.
         */
        public Builder setDeleted(boolean value) {
  
          deleted_ = value;
          bitField0_ |= 0x00000008;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * not used in new records from 2.4
         * </pre>
         *
         * <code>optional bool deleted = 4;</code>
         * @return This builder for chaining.
         */
        public Builder clearDeleted() {
          bitField0_ = (bitField0_ & ~0x00000008);
          deleted_ = false;
          onChanged();
          return this;
        }
  
        private java.lang.Object sender_ = "";
        /**
         * <pre>
         * optional int32 redeliveries = 6; // Removed in 2.4
         * repeated string confirms = 7; // Removed in 2.4
         * optional bool confirmable = 8;  // Removed in 2.4
         * optional DeliveredMessage confirmMessage = 9; // Removed in 2.4
         * optional string confirmTarget = 10; // Removed in 2.4
         * </pre>
         *
         * <code>optional string sender = 11;</code>
         * @return Whether the sender field is set.
         */
        public boolean hasSender() {
          return ((bitField0_ & 0x00000010) != 0);
        }
        /**
         * <pre>
         * optional int32 redeliveries = 6; // Removed in 2.4
         * repeated string confirms = 7; // Removed in 2.4
         * optional bool confirmable = 8;  // Removed in 2.4
         * optional DeliveredMessage confirmMessage = 9; // Removed in 2.4
         * optional string confirmTarget = 10; // Removed in 2.4
         * </pre>
         *
         * <code>optional string sender = 11;</code>
         * @return The sender.
         */
        public java.lang.String getSender() {
          java.lang.Object ref = sender_;
          if (!(ref instanceof java.lang.String)) {
            akka.protobufv3.internal.ByteString bs =
                (akka.protobufv3.internal.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              sender_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         * optional int32 redeliveries = 6; // Removed in 2.4
         * repeated string confirms = 7; // Removed in 2.4
         * optional bool confirmable = 8;  // Removed in 2.4
         * optional DeliveredMessage confirmMessage = 9; // Removed in 2.4
         * optional string confirmTarget = 10; // Removed in 2.4
         * </pre>
         *
         * <code>optional string sender = 11;</code>
         * @return The bytes for sender.
         */
        public akka.protobufv3.internal.ByteString
            getSenderBytes() {
          java.lang.Object ref = sender_;
          if (ref instanceof String) {
            akka.protobufv3.internal.ByteString b = 
                akka.protobufv3.internal.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            sender_ = b;
            return b;
          } else {
            return (akka.protobufv3.internal.ByteString) ref;
          }
        }
        /**
         * <pre>
         * optional int32 redeliveries = 6; // Removed in 2.4
         * repeated string confirms = 7; // Removed in 2.4
         * optional bool confirmable = 8;  // Removed in 2.4
         * optional DeliveredMessage confirmMessage = 9; // Removed in 2.4
         * optional string confirmTarget = 10; // Removed in 2.4
         * </pre>
         *
         * <code>optional string sender = 11;</code>
         * @param value The sender to set.
         * @return This builder for chaining.
         */
        public Builder setSender(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          sender_ = value;
          bitField0_ |= 0x00000010;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * optional int32 redeliveries = 6; // Removed in 2.4
         * repeated string confirms = 7; // Removed in 2.4
         * optional bool confirmable = 8;  // Removed in 2.4
         * optional DeliveredMessage confirmMessage = 9; // Removed in 2.4
         * optional string confirmTarget = 10; // Removed in 2.4
         * </pre>
         *
         * <code>optional string sender = 11;</code>
         * @return This builder for chaining.
         */
        public Builder clearSender() {
          sender_ = getDefaultInstance().getSender();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
          return this;
        }
        /**
         * <pre>
         * optional int32 redeliveries = 6; // Removed in 2.4
         * repeated string confirms = 7; // Removed in 2.4
         * optional bool confirmable = 8;  // Removed in 2.4
         * optional DeliveredMessage confirmMessage = 9; // Removed in 2.4
         * optional string confirmTarget = 10; // Removed in 2.4
         * </pre>
         *
         * <code>optional string sender = 11;</code>
         * @param value The bytes for sender to set.
         * @return This builder for chaining.
         */
        public Builder setSenderBytes(
            akka.protobufv3.internal.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          sender_ = value;
          bitField0_ |= 0x00000010;
          onChanged();
          return this;
        }
  
        private java.lang.Object manifest_ = "";
        /**
         * <code>optional string manifest = 12;</code>
         * @return Whether the manifest field is set.
         */
        public boolean hasManifest() {
          return ((bitField0_ & 0x00000020) != 0);
        }
        /**
         * <code>optional string manifest = 12;</code>
         * @return The manifest.
         */
        public java.lang.String getManifest() {
          java.lang.Object ref = manifest_;
          if (!(ref instanceof java.lang.String)) {
            akka.protobufv3.internal.ByteString bs =
                (akka.protobufv3.internal.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              manifest_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>optional string manifest = 12;</code>
         * @return The bytes for manifest.
         */
        public akka.protobufv3.internal.ByteString
            getManifestBytes() {
          java.lang.Object ref = manifest_;
          if (ref instanceof String) {
            akka.protobufv3.internal.ByteString b = 
                akka.protobufv3.internal.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            manifest_ = b;
            return b;
          } else {
            return (akka.protobufv3.internal.ByteString) ref;
          }
        }
        /**
         * <code>optional string manifest = 12;</code>
         * @param value The manifest to set.
         * @return This builder for chaining.
         */
        public Builder setManifest(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          manifest_ = value;
          bitField0_ |= 0x00000020;
          onChanged();
          return this;
        }
        /**
         * <code>optional string manifest = 12;</code>
         * @return This builder for chaining.
         */
        public Builder clearManifest() {
          manifest_ = getDefaultInstance().getManifest();
          bitField0_ = (bitField0_ & ~0x00000020);
          onChanged();
          return this;
        }
        /**
         * <code>optional string manifest = 12;</code>
         * @param value The bytes for manifest to set.
         * @return This builder for chaining.
         */
        public Builder setManifestBytes(
            akka.protobufv3.internal.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          manifest_ = value;
          bitField0_ |= 0x00000020;
          onChanged();
          return this;
        }
  
        private java.lang.Object writerUuid_ = "";
        /**
         * <code>optional string writerUuid = 13;</code>
         * @return Whether the writerUuid field is set.
         */
        public boolean hasWriterUuid() {
          return ((bitField0_ & 0x00000040) != 0);
        }
        /**
         * <code>optional string writerUuid = 13;</code>
         * @return The writerUuid.
         */
        public java.lang.String getWriterUuid() {
          java.lang.Object ref = writerUuid_;
          if (!(ref instanceof java.lang.String)) {
            akka.protobufv3.internal.ByteString bs =
                (akka.protobufv3.internal.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              writerUuid_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>optional string writerUuid = 13;</code>
         * @return The bytes for writerUuid.
         */
        public akka.protobufv3.internal.ByteString
            getWriterUuidBytes() {
          java.lang.Object ref = writerUuid_;
          if (ref instanceof String) {
            akka.protobufv3.internal.ByteString b = 
                akka.protobufv3.internal.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            writerUuid_ = b;
            return b;
          } else {
            return (akka.protobufv3.internal.ByteString) ref;
          }
        }
        /**
         * <code>optional string writerUuid = 13;</code>
         * @param value The writerUuid to set.
         * @return This builder for chaining.
         */
        public Builder setWriterUuid(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          writerUuid_ = value;
          bitField0_ |= 0x00000040;
          onChanged();
          return this;
        }
        /**
         * <code>optional string writerUuid = 13;</code>
         * @return This builder for chaining.
         */
        public Builder clearWriterUuid() {
          writerUuid_ = getDefaultInstance().getWriterUuid();
          bitField0_ = (bitField0_ & ~0x00000040);
          onChanged();
          return this;
        }
        /**
         * <code>optional string writerUuid = 13;</code>
         * @param value The bytes for writerUuid to set.
         * @return This builder for chaining.
         */
        public Builder setWriterUuidBytes(
            akka.protobufv3.internal.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          writerUuid_ = value;
          bitField0_ |= 0x00000040;
          onChanged();
          return this;
        }
  
        private long timestamp_ ;
        /**
         * <code>optional sint64 timestamp = 14;</code>
         * @return Whether the timestamp field is set.
         */
        @java.lang.Override
        public boolean hasTimestamp() {
          return ((bitField0_ & 0x00000080) != 0);
        }
        /**
         * <code>optional sint64 timestamp = 14;</code>
         * @return The timestamp.
         */
        @java.lang.Override
        public long getTimestamp() {
          return timestamp_;
        }
        /**
         * <code>optional sint64 timestamp = 14;</code>
         * @param value The timestamp to set.
         * @return This builder for chaining.
         */
        public Builder setTimestamp(long value) {
  
          timestamp_ = value;
          bitField0_ |= 0x00000080;
          onChanged();
          return this;
        }
        /**
         * <code>optional sint64 timestamp = 14;</code>
         * @return This builder for chaining.
         */
        public Builder clearTimestamp() {
          bitField0_ = (bitField0_ & ~0x00000080);
          timestamp_ = 0L;
          onChanged();
          return this;
        }
  
        private akka.persistence.serialization.MessageFormats.PersistentPayload metadata_;
        private akka.protobufv3.internal.SingleFieldBuilderV3<
            akka.persistence.serialization.MessageFormats.PersistentPayload, akka.persistence.serialization.MessageFormats.PersistentPayload.Builder, akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder> metadataBuilder_;
        /**
         * <code>optional .PersistentPayload metadata = 15;</code>
         * @return Whether the metadata field is set.
         */
        public boolean hasMetadata() {
          return ((bitField0_ & 0x00000100) != 0);
        }
        /**
         * <code>optional .PersistentPayload metadata = 15;</code>
         * @return The metadata.
         */
        public akka.persistence.serialization.MessageFormats.PersistentPayload getMetadata() {
          if (metadataBuilder_ == null) {
            return metadata_ == null ? akka.persistence.serialization.MessageFormats.PersistentPayload.getDefaultInstance() : metadata_;
          } else {
            return metadataBuilder_.getMessage();
          }
        }
        /**
         * <code>optional .PersistentPayload metadata = 15;</code>
         */
        public Builder setMetadata(akka.persistence.serialization.MessageFormats.PersistentPayload value) {
          if (metadataBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            metadata_ = value;
          } else {
            metadataBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000100;
          onChanged();
          return this;
        }
        /**
         * <code>optional .PersistentPayload metadata = 15;</code>
         */
        public Builder setMetadata(
            akka.persistence.serialization.MessageFormats.PersistentPayload.Builder builderForValue) {
          if (metadataBuilder_ == null) {
            metadata_ = builderForValue.build();
          } else {
            metadataBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000100;
          onChanged();
          return this;
        }
        /**
         * <code>optional .PersistentPayload metadata = 15;</code>
         */
        public Builder mergeMetadata(akka.persistence.serialization.MessageFormats.PersistentPayload value) {
          if (metadataBuilder_ == null) {
            if (((bitField0_ & 0x00000100) != 0) &&
              metadata_ != null &&
              metadata_ != akka.persistence.serialization.MessageFormats.PersistentPayload.getDefaultInstance()) {
              getMetadataBuilder().mergeFrom(value);
            } else {
              metadata_ = value;
            }
          } else {
            metadataBuilder_.mergeFrom(value);
          }
          if (metadata_ != null) {
            bitField0_ |= 0x00000100;
            onChanged();
          }
          return this;
        }
        /**
         * <code>optional .PersistentPayload metadata = 15;</code>
         */
        public Builder clearMetadata() {
          bitField0_ = (bitField0_ & ~0x00000100);
          metadata_ = null;
          if (metadataBuilder_ != null) {
            metadataBuilder_.dispose();
            metadataBuilder_ = null;
          }
          onChanged();
          return this;
        }
        /**
         * <code>optional .PersistentPayload metadata = 15;</code>
         */
        public akka.persistence.serialization.MessageFormats.PersistentPayload.Builder getMetadataBuilder() {
          bitField0_ |= 0x00000100;
          onChanged();
          return getMetadataFieldBuilder().getBuilder();
        }
        /**
         * <code>optional .PersistentPayload metadata = 15;</code>
         */
        public akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder getMetadataOrBuilder() {
          if (metadataBuilder_ != null) {
            return metadataBuilder_.getMessageOrBuilder();
          } else {
            return metadata_ == null ?
                akka.persistence.serialization.MessageFormats.PersistentPayload.getDefaultInstance() : metadata_;
          }
        }
        /**
         * <code>optional .PersistentPayload metadata = 15;</code>
         */
        private akka.protobufv3.internal.SingleFieldBuilderV3<
            akka.persistence.serialization.MessageFormats.PersistentPayload, akka.persistence.serialization.MessageFormats.PersistentPayload.Builder, akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder> 
            getMetadataFieldBuilder() {
          if (metadataBuilder_ == null) {
            metadataBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
                akka.persistence.serialization.MessageFormats.PersistentPayload, akka.persistence.serialization.MessageFormats.PersistentPayload.Builder, akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder>(
                    getMetadata(),
                    getParentForChildren(),
                    isClean());
            metadata_ = null;
          }
          return metadataBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }
  
        @java.lang.Override
        public final Builder mergeUnknownFields(
            final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
  
  
        // @@protoc_insertion_point(builder_scope:PersistentMessage)
      }
  
      // @@protoc_insertion_point(class_scope:PersistentMessage)
      private static final akka.persistence.serialization.MessageFormats.PersistentMessage DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new akka.persistence.serialization.MessageFormats.PersistentMessage();
      }
  
      public static akka.persistence.serialization.MessageFormats.PersistentMessage getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<PersistentMessage>
          PARSER = new akka.protobufv3.internal.AbstractParser<PersistentMessage>() {
        @java.lang.Override
        public PersistentMessage parsePartialFrom(
            akka.protobufv3.internal.CodedInputStream input,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws akka.protobufv3.internal.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      public static akka.protobufv3.internal.Parser<PersistentMessage> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public akka.protobufv3.internal.Parser<PersistentMessage> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public akka.persistence.serialization.MessageFormats.PersistentMessage getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    public interface PersistentPayloadOrBuilder extends
        // @@protoc_insertion_point(interface_extends:PersistentPayload)
        akka.protobufv3.internal.MessageOrBuilder {
  
      /**
       * <code>required int32 serializerId = 1;</code>
       * @return Whether the serializerId field is set.
       */
      boolean hasSerializerId();
      /**
       * <code>required int32 serializerId = 1;</code>
       * @return The serializerId.
       */
      int getSerializerId();
  
      /**
       * <code>required bytes payload = 2;</code>
       * @return Whether the payload field is set.
       */
      boolean hasPayload();
      /**
       * <code>required bytes payload = 2;</code>
       * @return The payload.
       */
      akka.protobufv3.internal.ByteString getPayload();
  
      /**
       * <code>optional bytes payloadManifest = 3;</code>
       * @return Whether the payloadManifest field is set.
       */
      boolean hasPayloadManifest();
      /**
       * <code>optional bytes payloadManifest = 3;</code>
       * @return The payloadManifest.
       */
      akka.protobufv3.internal.ByteString getPayloadManifest();
    }
    /**
     * Protobuf type {@code PersistentPayload}
     */
    public static final class PersistentPayload extends
        akka.protobufv3.internal.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:PersistentPayload)
        PersistentPayloadOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use PersistentPayload.newBuilder() to construct.
      private PersistentPayload(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private PersistentPayload() {
        payload_ = akka.protobufv3.internal.ByteString.EMPTY;
        payloadManifest_ = akka.protobufv3.internal.ByteString.EMPTY;
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
        return new PersistentPayload();
      }
  
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.persistence.serialization.MessageFormats.internal_static_PersistentPayload_descriptor;
      }
  
      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.persistence.serialization.MessageFormats.internal_static_PersistentPayload_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.persistence.serialization.MessageFormats.PersistentPayload.class, akka.persistence.serialization.MessageFormats.PersistentPayload.Builder.class);
      }
  
      private int bitField0_;
      public static final int SERIALIZERID_FIELD_NUMBER = 1;
      private int serializerId_ = 0;
      /**
       * <code>required int32 serializerId = 1;</code>
       * @return Whether the serializerId field is set.
       */
      @java.lang.Override
      public boolean hasSerializerId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required int32 serializerId = 1;</code>
       * @return The serializerId.
       */
      @java.lang.Override
      public int getSerializerId() {
        return serializerId_;
      }
  
      public static final int PAYLOAD_FIELD_NUMBER = 2;
      private akka.protobufv3.internal.ByteString payload_ = akka.protobufv3.internal.ByteString.EMPTY;
      /**
       * <code>required bytes payload = 2;</code>
       * @return Whether the payload field is set.
       */
      @java.lang.Override
      public boolean hasPayload() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required bytes payload = 2;</code>
       * @return The payload.
       */
      @java.lang.Override
      public akka.protobufv3.internal.ByteString getPayload() {
        return payload_;
      }
  
      public static final int PAYLOADMANIFEST_FIELD_NUMBER = 3;
      private akka.protobufv3.internal.ByteString payloadManifest_ = akka.protobufv3.internal.ByteString.EMPTY;
      /**
       * <code>optional bytes payloadManifest = 3;</code>
       * @return Whether the payloadManifest field is set.
       */
      @java.lang.Override
      public boolean hasPayloadManifest() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional bytes payloadManifest = 3;</code>
       * @return The payloadManifest.
       */
      @java.lang.Override
      public akka.protobufv3.internal.ByteString getPayloadManifest() {
        return payloadManifest_;
      }
  
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        if (!hasSerializerId()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasPayload()) {
          memoizedIsInitialized = 0;
          return false;
        }
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) != 0)) {
          output.writeInt32(1, serializerId_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          output.writeBytes(2, payload_);
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          output.writeBytes(3, payloadManifest_);
        }
        getUnknownFields().writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) != 0)) {
          size += akka.protobufv3.internal.CodedOutputStream
            .computeInt32Size(1, serializerId_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          size += akka.protobufv3.internal.CodedOutputStream
            .computeBytesSize(2, payload_);
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          size += akka.protobufv3.internal.CodedOutputStream
            .computeBytesSize(3, payloadManifest_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof akka.persistence.serialization.MessageFormats.PersistentPayload)) {
          return super.equals(obj);
        }
        akka.persistence.serialization.MessageFormats.PersistentPayload other = (akka.persistence.serialization.MessageFormats.PersistentPayload) obj;
  
        if (hasSerializerId() != other.hasSerializerId()) return false;
        if (hasSerializerId()) {
          if (getSerializerId()
              != other.getSerializerId()) return false;
        }
        if (hasPayload() != other.hasPayload()) return false;
        if (hasPayload()) {
          if (!getPayload()
              .equals(other.getPayload())) return false;
        }
        if (hasPayloadManifest() != other.hasPayloadManifest()) return false;
        if (hasPayloadManifest()) {
          if (!getPayloadManifest()
              .equals(other.getPayloadManifest())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasSerializerId()) {
          hash = (37 * hash) + SERIALIZERID_FIELD_NUMBER;
          hash = (53 * hash) + getSerializerId();
        }
        if (hasPayload()) {
          hash = (37 * hash) + PAYLOAD_FIELD_NUMBER;
          hash = (53 * hash) + getPayload().hashCode();
        }
        if (hasPayloadManifest()) {
          hash = (37 * hash) + PAYLOADMANIFEST_FIELD_NUMBER;
          hash = (53 * hash) + getPayloadManifest().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static akka.persistence.serialization.MessageFormats.PersistentPayload parseFrom(
          java.nio.ByteBuffer data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentPayload parseFrom(
          java.nio.ByteBuffer data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentPayload parseFrom(
          akka.protobufv3.internal.ByteString data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentPayload parseFrom(
          akka.protobufv3.internal.ByteString data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentPayload parseFrom(byte[] data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentPayload parseFrom(
          byte[] data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentPayload parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentPayload parseFrom(
          java.io.InputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      public static akka.persistence.serialization.MessageFormats.PersistentPayload parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
  
      public static akka.persistence.serialization.MessageFormats.PersistentPayload parseDelimitedFrom(
          java.io.InputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentPayload parseFrom(
          akka.protobufv3.internal.CodedInputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentPayload parseFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(akka.persistence.serialization.MessageFormats.PersistentPayload prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code PersistentPayload}
       */
      public static final class Builder extends
          akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:PersistentPayload)
          akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder {
        public static final akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptor() {
          return akka.persistence.serialization.MessageFormats.internal_static_PersistentPayload_descriptor;
        }
  
        @java.lang.Override
        protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return akka.persistence.serialization.MessageFormats.internal_static_PersistentPayload_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  akka.persistence.serialization.MessageFormats.PersistentPayload.class, akka.persistence.serialization.MessageFormats.PersistentPayload.Builder.class);
        }
  
        // Construct using akka.persistence.serialization.MessageFormats.PersistentPayload.newBuilder()
        private Builder() {
  
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          serializerId_ = 0;
          payload_ = akka.protobufv3.internal.ByteString.EMPTY;
          payloadManifest_ = akka.protobufv3.internal.ByteString.EMPTY;
          return this;
        }
  
        @java.lang.Override
        public akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptorForType() {
          return akka.persistence.serialization.MessageFormats.internal_static_PersistentPayload_descriptor;
        }
  
        @java.lang.Override
        public akka.persistence.serialization.MessageFormats.PersistentPayload getDefaultInstanceForType() {
          return akka.persistence.serialization.MessageFormats.PersistentPayload.getDefaultInstance();
        }
  
        @java.lang.Override
        public akka.persistence.serialization.MessageFormats.PersistentPayload build() {
          akka.persistence.serialization.MessageFormats.PersistentPayload result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public akka.persistence.serialization.MessageFormats.PersistentPayload buildPartial() {
          akka.persistence.serialization.MessageFormats.PersistentPayload result = new akka.persistence.serialization.MessageFormats.PersistentPayload(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartial0(akka.persistence.serialization.MessageFormats.PersistentPayload result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.serializerId_ = serializerId_;
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.payload_ = payload_;
            to_bitField0_ |= 0x00000002;
          }
          if (((from_bitField0_ & 0x00000004) != 0)) {
            result.payloadManifest_ = payloadManifest_;
            to_bitField0_ |= 0x00000004;
          }
          result.bitField0_ |= to_bitField0_;
        }
  
        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(akka.protobufv3.internal.Message other) {
          if (other instanceof akka.persistence.serialization.MessageFormats.PersistentPayload) {
            return mergeFrom((akka.persistence.serialization.MessageFormats.PersistentPayload)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(akka.persistence.serialization.MessageFormats.PersistentPayload other) {
          if (other == akka.persistence.serialization.MessageFormats.PersistentPayload.getDefaultInstance()) return this;
          if (other.hasSerializerId()) {
            setSerializerId(other.getSerializerId());
          }
          if (other.hasPayload()) {
            setPayload(other.getPayload());
          }
          if (other.hasPayloadManifest()) {
            setPayloadManifest(other.getPayloadManifest());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          if (!hasSerializerId()) {
            return false;
          }
          if (!hasPayload()) {
            return false;
          }
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            akka.protobufv3.internal.CodedInputStream input,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 8: {
                  serializerId_ = input.readInt32();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 8
                case 18: {
                  payload_ = input.readBytes();
                  bitField0_ |= 0x00000002;
                  break;
                } // case 18
                case 26: {
                  payloadManifest_ = input.readBytes();
                  bitField0_ |= 0x00000004;
                  break;
                } // case 26
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;
  
        private int serializerId_ ;
        /**
         * <code>required int32 serializerId = 1;</code>
         * @return Whether the serializerId field is set.
         */
        @java.lang.Override
        public boolean hasSerializerId() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>required int32 serializerId = 1;</code>
         * @return The serializerId.
         */
        @java.lang.Override
        public int getSerializerId() {
          return serializerId_;
        }
        /**
         * <code>required int32 serializerId = 1;</code>
         * @param value The serializerId to set.
         * @return This builder for chaining.
         */
        public Builder setSerializerId(int value) {
  
          serializerId_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>required int32 serializerId = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearSerializerId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          serializerId_ = 0;
          onChanged();
          return this;
        }
  
        private akka.protobufv3.internal.ByteString payload_ = akka.protobufv3.internal.ByteString.EMPTY;
        /**
         * <code>required bytes payload = 2;</code>
         * @return Whether the payload field is set.
         */
        @java.lang.Override
        public boolean hasPayload() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>required bytes payload = 2;</code>
         * @return The payload.
         */
        @java.lang.Override
        public akka.protobufv3.internal.ByteString getPayload() {
          return payload_;
        }
        /**
         * <code>required bytes payload = 2;</code>
         * @param value The payload to set.
         * @return This builder for chaining.
         */
        public Builder setPayload(akka.protobufv3.internal.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          payload_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <code>required bytes payload = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearPayload() {
          bitField0_ = (bitField0_ & ~0x00000002);
          payload_ = getDefaultInstance().getPayload();
          onChanged();
          return this;
        }
  
        private akka.protobufv3.internal.ByteString payloadManifest_ = akka.protobufv3.internal.ByteString.EMPTY;
        /**
         * <code>optional bytes payloadManifest = 3;</code>
         * @return Whether the payloadManifest field is set.
         */
        @java.lang.Override
        public boolean hasPayloadManifest() {
          return ((bitField0_ & 0x00000004) != 0);
        }
        /**
         * <code>optional bytes payloadManifest = 3;</code>
         * @return The payloadManifest.
         */
        @java.lang.Override
        public akka.protobufv3.internal.ByteString getPayloadManifest() {
          return payloadManifest_;
        }
        /**
         * <code>optional bytes payloadManifest = 3;</code>
         * @param value The payloadManifest to set.
         * @return This builder for chaining.
         */
        public Builder setPayloadManifest(akka.protobufv3.internal.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          payloadManifest_ = value;
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }
        /**
         * <code>optional bytes payloadManifest = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearPayloadManifest() {
          bitField0_ = (bitField0_ & ~0x00000004);
          payloadManifest_ = getDefaultInstance().getPayloadManifest();
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }
  
        @java.lang.Override
        public final Builder mergeUnknownFields(
            final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
  
  
        // @@protoc_insertion_point(builder_scope:PersistentPayload)
      }
  
      // @@protoc_insertion_point(class_scope:PersistentPayload)
      private static final akka.persistence.serialization.MessageFormats.PersistentPayload DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new akka.persistence.serialization.MessageFormats.PersistentPayload();
      }
  
      public static akka.persistence.serialization.MessageFormats.PersistentPayload getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<PersistentPayload>
          PARSER = new akka.protobufv3.internal.AbstractParser<PersistentPayload>() {
        @java.lang.Override
        public PersistentPayload parsePartialFrom(
            akka.protobufv3.internal.CodedInputStream input,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws akka.protobufv3.internal.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      public static akka.protobufv3.internal.Parser<PersistentPayload> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public akka.protobufv3.internal.Parser<PersistentPayload> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public akka.persistence.serialization.MessageFormats.PersistentPayload getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    public interface AtomicWriteOrBuilder extends
        // @@protoc_insertion_point(interface_extends:AtomicWrite)
        akka.protobufv3.internal.MessageOrBuilder {
  
      /**
       * <code>repeated .PersistentMessage payload = 1;</code>
       */
      java.util.List<akka.persistence.serialization.MessageFormats.PersistentMessage> 
          getPayloadList();
      /**
       * <code>repeated .PersistentMessage payload = 1;</code>
       */
      akka.persistence.serialization.MessageFormats.PersistentMessage getPayload(int index);
      /**
       * <code>repeated .PersistentMessage payload = 1;</code>
       */
      int getPayloadCount();
      /**
       * <code>repeated .PersistentMessage payload = 1;</code>
       */
      java.util.List<? extends akka.persistence.serialization.MessageFormats.PersistentMessageOrBuilder> 
          getPayloadOrBuilderList();
      /**
       * <code>repeated .PersistentMessage payload = 1;</code>
       */
      akka.persistence.serialization.MessageFormats.PersistentMessageOrBuilder getPayloadOrBuilder(
          int index);
    }
    /**
     * Protobuf type {@code AtomicWrite}
     */
    public static final class AtomicWrite extends
        akka.protobufv3.internal.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:AtomicWrite)
        AtomicWriteOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use AtomicWrite.newBuilder() to construct.
      private AtomicWrite(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private AtomicWrite() {
        payload_ = java.util.Collections.emptyList();
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
        return new AtomicWrite();
      }
  
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.persistence.serialization.MessageFormats.internal_static_AtomicWrite_descriptor;
      }
  
      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.persistence.serialization.MessageFormats.internal_static_AtomicWrite_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.persistence.serialization.MessageFormats.AtomicWrite.class, akka.persistence.serialization.MessageFormats.AtomicWrite.Builder.class);
      }
  
      public static final int PAYLOAD_FIELD_NUMBER = 1;
      @SuppressWarnings("serial")
      private java.util.List<akka.persistence.serialization.MessageFormats.PersistentMessage> payload_;
      /**
       * <code>repeated .PersistentMessage payload = 1;</code>
       */
      @java.lang.Override
      public java.util.List<akka.persistence.serialization.MessageFormats.PersistentMessage> getPayloadList() {
        return payload_;
      }
      /**
       * <code>repeated .PersistentMessage payload = 1;</code>
       */
      @java.lang.Override
      public java.util.List<? extends akka.persistence.serialization.MessageFormats.PersistentMessageOrBuilder> 
          getPayloadOrBuilderList() {
        return payload_;
      }
      /**
       * <code>repeated .PersistentMessage payload = 1;</code>
       */
      @java.lang.Override
      public int getPayloadCount() {
        return payload_.size();
      }
      /**
       * <code>repeated .PersistentMessage payload = 1;</code>
       */
      @java.lang.Override
      public akka.persistence.serialization.MessageFormats.PersistentMessage getPayload(int index) {
        return payload_.get(index);
      }
      /**
       * <code>repeated .PersistentMessage payload = 1;</code>
       */
      @java.lang.Override
      public akka.persistence.serialization.MessageFormats.PersistentMessageOrBuilder getPayloadOrBuilder(
          int index) {
        return payload_.get(index);
      }
  
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        for (int i = 0; i < getPayloadCount(); i++) {
          if (!getPayload(i).isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                          throws java.io.IOException {
        for (int i = 0; i < payload_.size(); i++) {
          output.writeMessage(1, payload_.get(i));
        }
        getUnknownFields().writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        for (int i = 0; i < payload_.size(); i++) {
          size += akka.protobufv3.internal.CodedOutputStream
            .computeMessageSize(1, payload_.get(i));
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof akka.persistence.serialization.MessageFormats.AtomicWrite)) {
          return super.equals(obj);
        }
        akka.persistence.serialization.MessageFormats.AtomicWrite other = (akka.persistence.serialization.MessageFormats.AtomicWrite) obj;
  
        if (!getPayloadList()
            .equals(other.getPayloadList())) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (getPayloadCount() > 0) {
          hash = (37 * hash) + PAYLOAD_FIELD_NUMBER;
          hash = (53 * hash) + getPayloadList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static akka.persistence.serialization.MessageFormats.AtomicWrite parseFrom(
          java.nio.ByteBuffer data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.persistence.serialization.MessageFormats.AtomicWrite parseFrom(
          java.nio.ByteBuffer data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.persistence.serialization.MessageFormats.AtomicWrite parseFrom(
          akka.protobufv3.internal.ByteString data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.persistence.serialization.MessageFormats.AtomicWrite parseFrom(
          akka.protobufv3.internal.ByteString data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.persistence.serialization.MessageFormats.AtomicWrite parseFrom(byte[] data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.persistence.serialization.MessageFormats.AtomicWrite parseFrom(
          byte[] data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.persistence.serialization.MessageFormats.AtomicWrite parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static akka.persistence.serialization.MessageFormats.AtomicWrite parseFrom(
          java.io.InputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      public static akka.persistence.serialization.MessageFormats.AtomicWrite parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
  
      public static akka.persistence.serialization.MessageFormats.AtomicWrite parseDelimitedFrom(
          java.io.InputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static akka.persistence.serialization.MessageFormats.AtomicWrite parseFrom(
          akka.protobufv3.internal.CodedInputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static akka.persistence.serialization.MessageFormats.AtomicWrite parseFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(akka.persistence.serialization.MessageFormats.AtomicWrite prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code AtomicWrite}
       */
      public static final class Builder extends
          akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:AtomicWrite)
          akka.persistence.serialization.MessageFormats.AtomicWriteOrBuilder {
        public static final akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptor() {
          return akka.persistence.serialization.MessageFormats.internal_static_AtomicWrite_descriptor;
        }
  
        @java.lang.Override
        protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return akka.persistence.serialization.MessageFormats.internal_static_AtomicWrite_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  akka.persistence.serialization.MessageFormats.AtomicWrite.class, akka.persistence.serialization.MessageFormats.AtomicWrite.Builder.class);
        }
  
        // Construct using akka.persistence.serialization.MessageFormats.AtomicWrite.newBuilder()
        private Builder() {
  
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          if (payloadBuilder_ == null) {
            payload_ = java.util.Collections.emptyList();
          } else {
            payload_ = null;
            payloadBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }
  
        @java.lang.Override
        public akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptorForType() {
          return akka.persistence.serialization.MessageFormats.internal_static_AtomicWrite_descriptor;
        }
  
        @java.lang.Override
        public akka.persistence.serialization.MessageFormats.AtomicWrite getDefaultInstanceForType() {
          return akka.persistence.serialization.MessageFormats.AtomicWrite.getDefaultInstance();
        }
  
        @java.lang.Override
        public akka.persistence.serialization.MessageFormats.AtomicWrite build() {
          akka.persistence.serialization.MessageFormats.AtomicWrite result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public akka.persistence.serialization.MessageFormats.AtomicWrite buildPartial() {
          akka.persistence.serialization.MessageFormats.AtomicWrite result = new akka.persistence.serialization.MessageFormats.AtomicWrite(this);
          buildPartialRepeatedFields(result);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartialRepeatedFields(akka.persistence.serialization.MessageFormats.AtomicWrite result) {
          if (payloadBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0)) {
              payload_ = java.util.Collections.unmodifiableList(payload_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.payload_ = payload_;
          } else {
            result.payload_ = payloadBuilder_.build();
          }
        }
  
        private void buildPartial0(akka.persistence.serialization.MessageFormats.AtomicWrite result) {
          int from_bitField0_ = bitField0_;
        }
  
        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(akka.protobufv3.internal.Message other) {
          if (other instanceof akka.persistence.serialization.MessageFormats.AtomicWrite) {
            return mergeFrom((akka.persistence.serialization.MessageFormats.AtomicWrite)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(akka.persistence.serialization.MessageFormats.AtomicWrite other) {
          if (other == akka.persistence.serialization.MessageFormats.AtomicWrite.getDefaultInstance()) return this;
          if (payloadBuilder_ == null) {
            if (!other.payload_.isEmpty()) {
              if (payload_.isEmpty()) {
                payload_ = other.payload_;
                bitField0_ = (bitField0_ & ~0x00000001);
              } else {
                ensurePayloadIsMutable();
                payload_.addAll(other.payload_);
              }
              onChanged();
            }
          } else {
            if (!other.payload_.isEmpty()) {
              if (payloadBuilder_.isEmpty()) {
                payloadBuilder_.dispose();
                payloadBuilder_ = null;
                payload_ = other.payload_;
                bitField0_ = (bitField0_ & ~0x00000001);
                payloadBuilder_ = 
                  akka.protobufv3.internal.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getPayloadFieldBuilder() : null;
              } else {
                payloadBuilder_.addAllMessages(other.payload_);
              }
            }
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          for (int i = 0; i < getPayloadCount(); i++) {
            if (!getPayload(i).isInitialized()) {
              return false;
            }
          }
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            akka.protobufv3.internal.CodedInputStream input,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  akka.persistence.serialization.MessageFormats.PersistentMessage m =
                      input.readMessage(
                          akka.persistence.serialization.MessageFormats.PersistentMessage.PARSER,
                          extensionRegistry);
                  if (payloadBuilder_ == null) {
                    ensurePayloadIsMutable();
                    payload_.add(m);
                  } else {
                    payloadBuilder_.addMessage(m);
                  }
                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;
  
        private java.util.List<akka.persistence.serialization.MessageFormats.PersistentMessage> payload_ =
          java.util.Collections.emptyList();
        private void ensurePayloadIsMutable() {
          if (!((bitField0_ & 0x00000001) != 0)) {
            payload_ = new java.util.ArrayList<akka.persistence.serialization.MessageFormats.PersistentMessage>(payload_);
            bitField0_ |= 0x00000001;
           }
        }
  
        private akka.protobufv3.internal.RepeatedFieldBuilderV3<
            akka.persistence.serialization.MessageFormats.PersistentMessage, akka.persistence.serialization.MessageFormats.PersistentMessage.Builder, akka.persistence.serialization.MessageFormats.PersistentMessageOrBuilder> payloadBuilder_;
  
        /**
         * <code>repeated .PersistentMessage payload = 1;</code>
         */
        public java.util.List<akka.persistence.serialization.MessageFormats.PersistentMessage> getPayloadList() {
          if (payloadBuilder_ == null) {
            return java.util.Collections.unmodifiableList(payload_);
          } else {
            return payloadBuilder_.getMessageList();
          }
        }
        /**
         * <code>repeated .PersistentMessage payload = 1;</code>
         */
        public int getPayloadCount() {
          if (payloadBuilder_ == null) {
            return payload_.size();
          } else {
            return payloadBuilder_.getCount();
          }
        }
        /**
         * <code>repeated .PersistentMessage payload = 1;</code>
         */
        public akka.persistence.serialization.MessageFormats.PersistentMessage getPayload(int index) {
          if (payloadBuilder_ == null) {
            return payload_.get(index);
          } else {
            return payloadBuilder_.getMessage(index);
          }
        }
        /**
         * <code>repeated .PersistentMessage payload = 1;</code>
         */
        public Builder setPayload(
            int index, akka.persistence.serialization.MessageFormats.PersistentMessage value) {
          if (payloadBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensurePayloadIsMutable();
            payload_.set(index, value);
            onChanged();
          } else {
            payloadBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .PersistentMessage payload = 1;</code>
         */
        public Builder setPayload(
            int index, akka.persistence.serialization.MessageFormats.PersistentMessage.Builder builderForValue) {
          if (payloadBuilder_ == null) {
            ensurePayloadIsMutable();
            payload_.set(index, builderForValue.build());
            onChanged();
          } else {
            payloadBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .PersistentMessage payload = 1;</code>
         */
        public Builder addPayload(akka.persistence.serialization.MessageFormats.PersistentMessage value) {
          if (payloadBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensurePayloadIsMutable();
            payload_.add(value);
            onChanged();
          } else {
            payloadBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <code>repeated .PersistentMessage payload = 1;</code>
         */
        public Builder addPayload(
            int index, akka.persistence.serialization.MessageFormats.PersistentMessage value) {
          if (payloadBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensurePayloadIsMutable();
            payload_.add(index, value);
            onChanged();
          } else {
            payloadBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .PersistentMessage payload = 1;</code>
         */
        public Builder addPayload(
            akka.persistence.serialization.MessageFormats.PersistentMessage.Builder builderForValue) {
          if (payloadBuilder_ == null) {
            ensurePayloadIsMutable();
            payload_.add(builderForValue.build());
            onChanged();
          } else {
            payloadBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .PersistentMessage payload = 1;</code>
         */
        public Builder addPayload(
            int index, akka.persistence.serialization.MessageFormats.PersistentMessage.Builder builderForValue) {
          if (payloadBuilder_ == null) {
            ensurePayloadIsMutable();
            payload_.add(index, builderForValue.build());
            onChanged();
          } else {
            payloadBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .PersistentMessage payload = 1;</code>
         */
        public Builder addAllPayload(
            java.lang.Iterable<? extends akka.persistence.serialization.MessageFormats.PersistentMessage> values) {
          if (payloadBuilder_ == null) {
            ensurePayloadIsMutable();
            akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
                values, payload_);
            onChanged();
          } else {
            payloadBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <code>repeated .PersistentMessage payload = 1;</code>
         */
        public Builder clearPayload() {
          if (payloadBuilder_ == null) {
            payload_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
          } else {
            payloadBuilder_.clear();
          }
          return this;
        }
        /**
         * <code>repeated .PersistentMessage payload = 1;</code>
         */
        public Builder removePayload(int index) {
          if (payloadBuilder_ == null) {
            ensurePayloadIsMutable();
            payload_.remove(index);
            onChanged();
          } else {
            payloadBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <code>repeated .PersistentMessage payload = 1;</code>
         */
        public akka.persistence.serialization.MessageFormats.PersistentMessage.Builder getPayloadBuilder(
            int index) {
          return getPayloadFieldBuilder().getBuilder(index);
        }
        /**
         * <code>repeated .PersistentMessage payload = 1;</code>
         */
        public akka.persistence.serialization.MessageFormats.PersistentMessageOrBuilder getPayloadOrBuilder(
            int index) {
          if (payloadBuilder_ == null) {
            return payload_.get(index);  } else {
            return payloadBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <code>repeated .PersistentMessage payload = 1;</code>
         */
        public java.util.List<? extends akka.persistence.serialization.MessageFormats.PersistentMessageOrBuilder> 
             getPayloadOrBuilderList() {
          if (payloadBuilder_ != null) {
            return payloadBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(payload_);
          }
        }
        /**
         * <code>repeated .PersistentMessage payload = 1;</code>
         */
        public akka.persistence.serialization.MessageFormats.PersistentMessage.Builder addPayloadBuilder() {
          return getPayloadFieldBuilder().addBuilder(
              akka.persistence.serialization.MessageFormats.PersistentMessage.getDefaultInstance());
        }
        /**
         * <code>repeated .PersistentMessage payload = 1;</code>
         */
        public akka.persistence.serialization.MessageFormats.PersistentMessage.Builder addPayloadBuilder(
            int index) {
          return getPayloadFieldBuilder().addBuilder(
              index, akka.persistence.serialization.MessageFormats.PersistentMessage.getDefaultInstance());
        }
        /**
         * <code>repeated .PersistentMessage payload = 1;</code>
         */
        public java.util.List<akka.persistence.serialization.MessageFormats.PersistentMessage.Builder> 
             getPayloadBuilderList() {
          return getPayloadFieldBuilder().getBuilderList();
        }
        private akka.protobufv3.internal.RepeatedFieldBuilderV3<
            akka.persistence.serialization.MessageFormats.PersistentMessage, akka.persistence.serialization.MessageFormats.PersistentMessage.Builder, akka.persistence.serialization.MessageFormats.PersistentMessageOrBuilder> 
            getPayloadFieldBuilder() {
          if (payloadBuilder_ == null) {
            payloadBuilder_ = new akka.protobufv3.internal.RepeatedFieldBuilderV3<
                akka.persistence.serialization.MessageFormats.PersistentMessage, akka.persistence.serialization.MessageFormats.PersistentMessage.Builder, akka.persistence.serialization.MessageFormats.PersistentMessageOrBuilder>(
                    payload_,
                    ((bitField0_ & 0x00000001) != 0),
                    getParentForChildren(),
                    isClean());
            payload_ = null;
          }
          return payloadBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }
  
        @java.lang.Override
        public final Builder mergeUnknownFields(
            final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
  
  
        // @@protoc_insertion_point(builder_scope:AtomicWrite)
      }
  
      // @@protoc_insertion_point(class_scope:AtomicWrite)
      private static final akka.persistence.serialization.MessageFormats.AtomicWrite DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new akka.persistence.serialization.MessageFormats.AtomicWrite();
      }
  
      public static akka.persistence.serialization.MessageFormats.AtomicWrite getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<AtomicWrite>
          PARSER = new akka.protobufv3.internal.AbstractParser<AtomicWrite>() {
        @java.lang.Override
        public AtomicWrite parsePartialFrom(
            akka.protobufv3.internal.CodedInputStream input,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws akka.protobufv3.internal.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      public static akka.protobufv3.internal.Parser<AtomicWrite> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public akka.protobufv3.internal.Parser<AtomicWrite> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public akka.persistence.serialization.MessageFormats.AtomicWrite getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    public interface AtLeastOnceDeliverySnapshotOrBuilder extends
        // @@protoc_insertion_point(interface_extends:AtLeastOnceDeliverySnapshot)
        akka.protobufv3.internal.MessageOrBuilder {
  
      /**
       * <code>required int64 currentDeliveryId = 1;</code>
       * @return Whether the currentDeliveryId field is set.
       */
      boolean hasCurrentDeliveryId();
      /**
       * <code>required int64 currentDeliveryId = 1;</code>
       * @return The currentDeliveryId.
       */
      long getCurrentDeliveryId();
  
      /**
       * <code>repeated .AtLeastOnceDeliverySnapshot.UnconfirmedDelivery unconfirmedDeliveries = 2;</code>
       */
      java.util.List<akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery> 
          getUnconfirmedDeliveriesList();
      /**
       * <code>repeated .AtLeastOnceDeliverySnapshot.UnconfirmedDelivery unconfirmedDeliveries = 2;</code>
       */
      akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery getUnconfirmedDeliveries(int index);
      /**
       * <code>repeated .AtLeastOnceDeliverySnapshot.UnconfirmedDelivery unconfirmedDeliveries = 2;</code>
       */
      int getUnconfirmedDeliveriesCount();
      /**
       * <code>repeated .AtLeastOnceDeliverySnapshot.UnconfirmedDelivery unconfirmedDeliveries = 2;</code>
       */
      java.util.List<? extends akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDeliveryOrBuilder> 
          getUnconfirmedDeliveriesOrBuilderList();
      /**
       * <code>repeated .AtLeastOnceDeliverySnapshot.UnconfirmedDelivery unconfirmedDeliveries = 2;</code>
       */
      akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDeliveryOrBuilder getUnconfirmedDeliveriesOrBuilder(
          int index);
    }
    /**
     * Protobuf type {@code AtLeastOnceDeliverySnapshot}
     */
    public static final class AtLeastOnceDeliverySnapshot extends
        akka.protobufv3.internal.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:AtLeastOnceDeliverySnapshot)
        AtLeastOnceDeliverySnapshotOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use AtLeastOnceDeliverySnapshot.newBuilder() to construct.
      private AtLeastOnceDeliverySnapshot(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private AtLeastOnceDeliverySnapshot() {
        unconfirmedDeliveries_ = java.util.Collections.emptyList();
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
        return new AtLeastOnceDeliverySnapshot();
      }
  
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.persistence.serialization.MessageFormats.internal_static_AtLeastOnceDeliverySnapshot_descriptor;
      }
  
      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.persistence.serialization.MessageFormats.internal_static_AtLeastOnceDeliverySnapshot_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.class, akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.Builder.class);
      }
  
      public interface UnconfirmedDeliveryOrBuilder extends
          // @@protoc_insertion_point(interface_extends:AtLeastOnceDeliverySnapshot.UnconfirmedDelivery)
          akka.protobufv3.internal.MessageOrBuilder {
  
        /**
         * <code>required int64 deliveryId = 1;</code>
         * @return Whether the deliveryId field is set.
         */
        boolean hasDeliveryId();
        /**
         * <code>required int64 deliveryId = 1;</code>
         * @return The deliveryId.
         */
        long getDeliveryId();
  
        /**
         * <code>required string destination = 2;</code>
         * @return Whether the destination field is set.
         */
        boolean hasDestination();
        /**
         * <code>required string destination = 2;</code>
         * @return The destination.
         */
        java.lang.String getDestination();
        /**
         * <code>required string destination = 2;</code>
         * @return The bytes for destination.
         */
        akka.protobufv3.internal.ByteString
            getDestinationBytes();
  
        /**
         * <code>required .PersistentPayload payload = 3;</code>
         * @return Whether the payload field is set.
         */
        boolean hasPayload();
        /**
         * <code>required .PersistentPayload payload = 3;</code>
         * @return The payload.
         */
        akka.persistence.serialization.MessageFormats.PersistentPayload getPayload();
        /**
         * <code>required .PersistentPayload payload = 3;</code>
         */
        akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder getPayloadOrBuilder();
      }
      /**
       * Protobuf type {@code AtLeastOnceDeliverySnapshot.UnconfirmedDelivery}
       */
      public static final class UnconfirmedDelivery extends
          akka.protobufv3.internal.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:AtLeastOnceDeliverySnapshot.UnconfirmedDelivery)
          UnconfirmedDeliveryOrBuilder {
      private static final long serialVersionUID = 0L;
        // Use UnconfirmedDelivery.newBuilder() to construct.
        private UnconfirmedDelivery(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }
        private UnconfirmedDelivery() {
          destination_ = "";
        }
  
        @java.lang.Override
        @SuppressWarnings({"unused"})
        protected java.lang.Object newInstance(
            akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
          return new UnconfirmedDelivery();
        }
  
        public static final akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptor() {
          return akka.persistence.serialization.MessageFormats.internal_static_AtLeastOnceDeliverySnapshot_UnconfirmedDelivery_descriptor;
        }
  
        @java.lang.Override
        protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return akka.persistence.serialization.MessageFormats.internal_static_AtLeastOnceDeliverySnapshot_UnconfirmedDelivery_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery.class, akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery.Builder.class);
        }
  
        private int bitField0_;
        public static final int DELIVERYID_FIELD_NUMBER = 1;
        private long deliveryId_ = 0L;
        /**
         * <code>required int64 deliveryId = 1;</code>
         * @return Whether the deliveryId field is set.
         */
        @java.lang.Override
        public boolean hasDeliveryId() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>required int64 deliveryId = 1;</code>
         * @return The deliveryId.
         */
        @java.lang.Override
        public long getDeliveryId() {
          return deliveryId_;
        }
  
        public static final int DESTINATION_FIELD_NUMBER = 2;
        @SuppressWarnings("serial")
        private volatile java.lang.Object destination_ = "";
        /**
         * <code>required string destination = 2;</code>
         * @return Whether the destination field is set.
         */
        @java.lang.Override
        public boolean hasDestination() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>required string destination = 2;</code>
         * @return The destination.
         */
        @java.lang.Override
        public java.lang.String getDestination() {
          java.lang.Object ref = destination_;
          if (ref instanceof java.lang.String) {
            return (java.lang.String) ref;
          } else {
            akka.protobufv3.internal.ByteString bs = 
                (akka.protobufv3.internal.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              destination_ = s;
            }
            return s;
          }
        }
        /**
         * <code>required string destination = 2;</code>
         * @return The bytes for destination.
         */
        @java.lang.Override
        public akka.protobufv3.internal.ByteString
            getDestinationBytes() {
          java.lang.Object ref = destination_;
          if (ref instanceof java.lang.String) {
            akka.protobufv3.internal.ByteString b = 
                akka.protobufv3.internal.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            destination_ = b;
            return b;
          } else {
            return (akka.protobufv3.internal.ByteString) ref;
          }
        }
  
        public static final int PAYLOAD_FIELD_NUMBER = 3;
        private akka.persistence.serialization.MessageFormats.PersistentPayload payload_;
        /**
         * <code>required .PersistentPayload payload = 3;</code>
         * @return Whether the payload field is set.
         */
        @java.lang.Override
        public boolean hasPayload() {
          return ((bitField0_ & 0x00000004) != 0);
        }
        /**
         * <code>required .PersistentPayload payload = 3;</code>
         * @return The payload.
         */
        @java.lang.Override
        public akka.persistence.serialization.MessageFormats.PersistentPayload getPayload() {
          return payload_ == null ? akka.persistence.serialization.MessageFormats.PersistentPayload.getDefaultInstance() : payload_;
        }
        /**
         * <code>required .PersistentPayload payload = 3;</code>
         */
        @java.lang.Override
        public akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder getPayloadOrBuilder() {
          return payload_ == null ? akka.persistence.serialization.MessageFormats.PersistentPayload.getDefaultInstance() : payload_;
        }
  
        private byte memoizedIsInitialized = -1;
        @java.lang.Override
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return true;
          if (isInitialized == 0) return false;
  
          if (!hasDeliveryId()) {
            memoizedIsInitialized = 0;
            return false;
          }
          if (!hasDestination()) {
            memoizedIsInitialized = 0;
            return false;
          }
          if (!hasPayload()) {
            memoizedIsInitialized = 0;
            return false;
          }
          if (!getPayload().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
          memoizedIsInitialized = 1;
          return true;
        }
  
        @java.lang.Override
        public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                            throws java.io.IOException {
          if (((bitField0_ & 0x00000001) != 0)) {
            output.writeInt64(1, deliveryId_);
          }
          if (((bitField0_ & 0x00000002) != 0)) {
            akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 2, destination_);
          }
          if (((bitField0_ & 0x00000004) != 0)) {
            output.writeMessage(3, getPayload());
          }
          getUnknownFields().writeTo(output);
        }
  
        @java.lang.Override
        public int getSerializedSize() {
          int size = memoizedSize;
          if (size != -1) return size;
  
          size = 0;
          if (((bitField0_ & 0x00000001) != 0)) {
            size += akka.protobufv3.internal.CodedOutputStream
              .computeInt64Size(1, deliveryId_);
          }
          if (((bitField0_ & 0x00000002) != 0)) {
            size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(2, destination_);
          }
          if (((bitField0_ & 0x00000004) != 0)) {
            size += akka.protobufv3.internal.CodedOutputStream
              .computeMessageSize(3, getPayload());
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSize = size;
          return size;
        }
  
        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
           return true;
          }
          if (!(obj instanceof akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery)) {
            return super.equals(obj);
          }
          akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery other = (akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery) obj;
  
          if (hasDeliveryId() != other.hasDeliveryId()) return false;
          if (hasDeliveryId()) {
            if (getDeliveryId()
                != other.getDeliveryId()) return false;
          }
          if (hasDestination() != other.hasDestination()) return false;
          if (hasDestination()) {
            if (!getDestination()
                .equals(other.getDestination())) return false;
          }
          if (hasPayload() != other.hasPayload()) return false;
          if (hasPayload()) {
            if (!getPayload()
                .equals(other.getPayload())) return false;
          }
          if (!getUnknownFields().equals(other.getUnknownFields())) return false;
          return true;
        }
  
        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          if (hasDeliveryId()) {
            hash = (37 * hash) + DELIVERYID_FIELD_NUMBER;
            hash = (53 * hash) + akka.protobufv3.internal.Internal.hashLong(
                getDeliveryId());
          }
          if (hasDestination()) {
            hash = (37 * hash) + DESTINATION_FIELD_NUMBER;
            hash = (53 * hash) + getDestination().hashCode();
          }
          if (hasPayload()) {
            hash = (37 * hash) + PAYLOAD_FIELD_NUMBER;
            hash = (53 * hash) + getPayload().hashCode();
          }
          hash = (29 * hash) + getUnknownFields().hashCode();
          memoizedHashCode = hash;
          return hash;
        }
  
        public static akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery parseFrom(
            java.nio.ByteBuffer data)
            throws akka.protobufv3.internal.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery parseFrom(
            java.nio.ByteBuffer data,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws akka.protobufv3.internal.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery parseFrom(
            akka.protobufv3.internal.ByteString data)
            throws akka.protobufv3.internal.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery parseFrom(
            akka.protobufv3.internal.ByteString data,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws akka.protobufv3.internal.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery parseFrom(byte[] data)
            throws akka.protobufv3.internal.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery parseFrom(
            byte[] data,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws akka.protobufv3.internal.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return akka.protobufv3.internal.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery parseFrom(
            java.io.InputStream input,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return akka.protobufv3.internal.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }
  
        public static akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return akka.protobufv3.internal.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
        }
  
        public static akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery parseDelimitedFrom(
            java.io.InputStream input,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return akka.protobufv3.internal.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }
        public static akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery parseFrom(
            akka.protobufv3.internal.CodedInputStream input)
            throws java.io.IOException {
          return akka.protobufv3.internal.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
        }
        public static akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery parseFrom(
            akka.protobufv3.internal.CodedInputStream input,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return akka.protobufv3.internal.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
        }
  
        @java.lang.Override
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }
        public static Builder newBuilder(akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }
        @java.lang.Override
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
        }
  
        @java.lang.Override
        protected Builder newBuilderForType(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        /**
         * Protobuf type {@code AtLeastOnceDeliverySnapshot.UnconfirmedDelivery}
         */
        public static final class Builder extends
            akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:AtLeastOnceDeliverySnapshot.UnconfirmedDelivery)
            akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDeliveryOrBuilder {
          public static final akka.protobufv3.internal.Descriptors.Descriptor
              getDescriptor() {
            return akka.persistence.serialization.MessageFormats.internal_static_AtLeastOnceDeliverySnapshot_UnconfirmedDelivery_descriptor;
          }
  
          @java.lang.Override
          protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return akka.persistence.serialization.MessageFormats.internal_static_AtLeastOnceDeliverySnapshot_UnconfirmedDelivery_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery.class, akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery.Builder.class);
          }
  
          // Construct using akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }
  
          private Builder(
              akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (akka.protobufv3.internal.GeneratedMessageV3
                    .alwaysUseFieldBuilders) {
              getPayloadFieldBuilder();
            }
          }
          @java.lang.Override
          public Builder clear() {
            super.clear();
            bitField0_ = 0;
            deliveryId_ = 0L;
            destination_ = "";
            payload_ = null;
            if (payloadBuilder_ != null) {
              payloadBuilder_.dispose();
              payloadBuilder_ = null;
            }
            return this;
          }
  
          @java.lang.Override
          public akka.protobufv3.internal.Descriptors.Descriptor
              getDescriptorForType() {
            return akka.persistence.serialization.MessageFormats.internal_static_AtLeastOnceDeliverySnapshot_UnconfirmedDelivery_descriptor;
          }
  
          @java.lang.Override
          public akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery getDefaultInstanceForType() {
            return akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery.getDefaultInstance();
          }
  
          @java.lang.Override
          public akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery build() {
            akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }
  
          @java.lang.Override
          public akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery buildPartial() {
            akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery result = new akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery(this);
            if (bitField0_ != 0) { buildPartial0(result); }
            onBuilt();
            return result;
          }
  
          private void buildPartial0(akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery result) {
            int from_bitField0_ = bitField0_;
            int to_bitField0_ = 0;
            if (((from_bitField0_ & 0x00000001) != 0)) {
              result.deliveryId_ = deliveryId_;
              to_bitField0_ |= 0x00000001;
            }
            if (((from_bitField0_ & 0x00000002) != 0)) {
              result.destination_ = destination_;
              to_bitField0_ |= 0x00000002;
            }
            if (((from_bitField0_ & 0x00000004) != 0)) {
              result.payload_ = payloadBuilder_ == null
                  ? payload_
                  : payloadBuilder_.build();
              to_bitField0_ |= 0x00000004;
            }
            result.bitField0_ |= to_bitField0_;
          }
  
          @java.lang.Override
          public Builder clone() {
            return super.clone();
          }
          @java.lang.Override
          public Builder setField(
              akka.protobufv3.internal.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return super.setField(field, value);
          }
          @java.lang.Override
          public Builder clearField(
              akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
            return super.clearField(field);
          }
          @java.lang.Override
          public Builder clearOneof(
              akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
            return super.clearOneof(oneof);
          }
          @java.lang.Override
          public Builder setRepeatedField(
              akka.protobufv3.internal.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
            return super.setRepeatedField(field, index, value);
          }
          @java.lang.Override
          public Builder addRepeatedField(
              akka.protobufv3.internal.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
            return super.addRepeatedField(field, value);
          }
          @java.lang.Override
          public Builder mergeFrom(akka.protobufv3.internal.Message other) {
            if (other instanceof akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery) {
              return mergeFrom((akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }
  
          public Builder mergeFrom(akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery other) {
            if (other == akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery.getDefaultInstance()) return this;
            if (other.hasDeliveryId()) {
              setDeliveryId(other.getDeliveryId());
            }
            if (other.hasDestination()) {
              destination_ = other.destination_;
              bitField0_ |= 0x00000002;
              onChanged();
            }
            if (other.hasPayload()) {
              mergePayload(other.getPayload());
            }
            this.mergeUnknownFields(other.getUnknownFields());
            onChanged();
            return this;
          }
  
          @java.lang.Override
          public final boolean isInitialized() {
            if (!hasDeliveryId()) {
              return false;
            }
            if (!hasDestination()) {
              return false;
            }
            if (!hasPayload()) {
              return false;
            }
            if (!getPayload().isInitialized()) {
              return false;
            }
            return true;
          }
  
          @java.lang.Override
          public Builder mergeFrom(
              akka.protobufv3.internal.CodedInputStream input,
              akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            if (extensionRegistry == null) {
              throw new java.lang.NullPointerException();
            }
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  case 8: {
                    deliveryId_ = input.readInt64();
                    bitField0_ |= 0x00000001;
                    break;
                  } // case 8
                  case 18: {
                    destination_ = input.readBytes();
                    bitField0_ |= 0x00000002;
                    break;
                  } // case 18
                  case 26: {
                    input.readMessage(
                        getPayloadFieldBuilder().getBuilder(),
                        extensionRegistry);
                    bitField0_ |= 0x00000004;
                    break;
                  } // case 26
                  default: {
                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                      done = true; // was an endgroup tag
                    }
                    break;
                  } // default:
                } // switch (tag)
              } // while (!done)
            } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
              throw e.unwrapIOException();
            } finally {
              onChanged();
            } // finally
            return this;
          }
          private int bitField0_;
  
          private long deliveryId_ ;
          /**
           * <code>required int64 deliveryId = 1;</code>
           * @return Whether the deliveryId field is set.
           */
          @java.lang.Override
          public boolean hasDeliveryId() {
            return ((bitField0_ & 0x00000001) != 0);
          }
          /**
           * <code>required int64 deliveryId = 1;</code>
           * @return The deliveryId.
           */
          @java.lang.Override
          public long getDeliveryId() {
            return deliveryId_;
          }
          /**
           * <code>required int64 deliveryId = 1;</code>
           * @param value The deliveryId to set.
           * @return This builder for chaining.
           */
          public Builder setDeliveryId(long value) {
  
            deliveryId_ = value;
            bitField0_ |= 0x00000001;
            onChanged();
            return this;
          }
          /**
           * <code>required int64 deliveryId = 1;</code>
           * @return This builder for chaining.
           */
          public Builder clearDeliveryId() {
            bitField0_ = (bitField0_ & ~0x00000001);
            deliveryId_ = 0L;
            onChanged();
            return this;
          }
  
          private java.lang.Object destination_ = "";
          /**
           * <code>required string destination = 2;</code>
           * @return Whether the destination field is set.
           */
          public boolean hasDestination() {
            return ((bitField0_ & 0x00000002) != 0);
          }
          /**
           * <code>required string destination = 2;</code>
           * @return The destination.
           */
          public java.lang.String getDestination() {
            java.lang.Object ref = destination_;
            if (!(ref instanceof java.lang.String)) {
              akka.protobufv3.internal.ByteString bs =
                  (akka.protobufv3.internal.ByteString) ref;
              java.lang.String s = bs.toStringUtf8();
              if (bs.isValidUtf8()) {
                destination_ = s;
              }
              return s;
            } else {
              return (java.lang.String) ref;
            }
          }
          /**
           * <code>required string destination = 2;</code>
           * @return The bytes for destination.
           */
          public akka.protobufv3.internal.ByteString
              getDestinationBytes() {
            java.lang.Object ref = destination_;
            if (ref instanceof String) {
              akka.protobufv3.internal.ByteString b = 
                  akka.protobufv3.internal.ByteString.copyFromUtf8(
                      (java.lang.String) ref);
              destination_ = b;
              return b;
            } else {
              return (akka.protobufv3.internal.ByteString) ref;
            }
          }
          /**
           * <code>required string destination = 2;</code>
           * @param value The destination to set.
           * @return This builder for chaining.
           */
          public Builder setDestination(
              java.lang.String value) {
            if (value == null) { throw new NullPointerException(); }
            destination_ = value;
            bitField0_ |= 0x00000002;
            onChanged();
            return this;
          }
          /**
           * <code>required string destination = 2;</code>
           * @return This builder for chaining.
           */
          public Builder clearDestination() {
            destination_ = getDefaultInstance().getDestination();
            bitField0_ = (bitField0_ & ~0x00000002);
            onChanged();
            return this;
          }
          /**
           * <code>required string destination = 2;</code>
           * @param value The bytes for destination to set.
           * @return This builder for chaining.
           */
          public Builder setDestinationBytes(
              akka.protobufv3.internal.ByteString value) {
            if (value == null) { throw new NullPointerException(); }
            destination_ = value;
            bitField0_ |= 0x00000002;
            onChanged();
            return this;
          }
  
          private akka.persistence.serialization.MessageFormats.PersistentPayload payload_;
          private akka.protobufv3.internal.SingleFieldBuilderV3<
              akka.persistence.serialization.MessageFormats.PersistentPayload, akka.persistence.serialization.MessageFormats.PersistentPayload.Builder, akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder> payloadBuilder_;
          /**
           * <code>required .PersistentPayload payload = 3;</code>
           * @return Whether the payload field is set.
           */
          public boolean hasPayload() {
            return ((bitField0_ & 0x00000004) != 0);
          }
          /**
           * <code>required .PersistentPayload payload = 3;</code>
           * @return The payload.
           */
          public akka.persistence.serialization.MessageFormats.PersistentPayload getPayload() {
            if (payloadBuilder_ == null) {
              return payload_ == null ? akka.persistence.serialization.MessageFormats.PersistentPayload.getDefaultInstance() : payload_;
            } else {
              return payloadBuilder_.getMessage();
            }
          }
          /**
           * <code>required .PersistentPayload payload = 3;</code>
           */
          public Builder setPayload(akka.persistence.serialization.MessageFormats.PersistentPayload value) {
            if (payloadBuilder_ == null) {
              if (value == null) {
                throw new NullPointerException();
              }
              payload_ = value;
            } else {
              payloadBuilder_.setMessage(value);
            }
            bitField0_ |= 0x00000004;
            onChanged();
            return this;
          }
          /**
           * <code>required .PersistentPayload payload = 3;</code>
           */
          public Builder setPayload(
              akka.persistence.serialization.MessageFormats.PersistentPayload.Builder builderForValue) {
            if (payloadBuilder_ == null) {
              payload_ = builderForValue.build();
            } else {
              payloadBuilder_.setMessage(builderForValue.build());
            }
            bitField0_ |= 0x00000004;
            onChanged();
            return this;
          }
          /**
           * <code>required .PersistentPayload payload = 3;</code>
           */
          public Builder mergePayload(akka.persistence.serialization.MessageFormats.PersistentPayload value) {
            if (payloadBuilder_ == null) {
              if (((bitField0_ & 0x00000004) != 0) &&
                payload_ != null &&
                payload_ != akka.persistence.serialization.MessageFormats.PersistentPayload.getDefaultInstance()) {
                getPayloadBuilder().mergeFrom(value);
              } else {
                payload_ = value;
              }
            } else {
              payloadBuilder_.mergeFrom(value);
            }
            if (payload_ != null) {
              bitField0_ |= 0x00000004;
              onChanged();
            }
            return this;
          }
          /**
           * <code>required .PersistentPayload payload = 3;</code>
           */
          public Builder clearPayload() {
            bitField0_ = (bitField0_ & ~0x00000004);
            payload_ = null;
            if (payloadBuilder_ != null) {
              payloadBuilder_.dispose();
              payloadBuilder_ = null;
            }
            onChanged();
            return this;
          }
          /**
           * <code>required .PersistentPayload payload = 3;</code>
           */
          public akka.persistence.serialization.MessageFormats.PersistentPayload.Builder getPayloadBuilder() {
            bitField0_ |= 0x00000004;
            onChanged();
            return getPayloadFieldBuilder().getBuilder();
          }
          /**
           * <code>required .PersistentPayload payload = 3;</code>
           */
          public akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder getPayloadOrBuilder() {
            if (payloadBuilder_ != null) {
              return payloadBuilder_.getMessageOrBuilder();
            } else {
              return payload_ == null ?
                  akka.persistence.serialization.MessageFormats.PersistentPayload.getDefaultInstance() : payload_;
            }
          }
          /**
           * <code>required .PersistentPayload payload = 3;</code>
           */
          private akka.protobufv3.internal.SingleFieldBuilderV3<
              akka.persistence.serialization.MessageFormats.PersistentPayload, akka.persistence.serialization.MessageFormats.PersistentPayload.Builder, akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder> 
              getPayloadFieldBuilder() {
            if (payloadBuilder_ == null) {
              payloadBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
                  akka.persistence.serialization.MessageFormats.PersistentPayload, akka.persistence.serialization.MessageFormats.PersistentPayload.Builder, akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder>(
                      getPayload(),
                      getParentForChildren(),
                      isClean());
              payload_ = null;
            }
            return payloadBuilder_;
          }
          @java.lang.Override
          public final Builder setUnknownFields(
              final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }
  
          @java.lang.Override
          public final Builder mergeUnknownFields(
              final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
            return super.mergeUnknownFields(unknownFields);
          }
  
  
          // @@protoc_insertion_point(builder_scope:AtLeastOnceDeliverySnapshot.UnconfirmedDelivery)
        }
  
        // @@protoc_insertion_point(class_scope:AtLeastOnceDeliverySnapshot.UnconfirmedDelivery)
        private static final akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery DEFAULT_INSTANCE;
        static {
          DEFAULT_INSTANCE = new akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery();
        }
  
        public static akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }
  
        @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<UnconfirmedDelivery>
            PARSER = new akka.protobufv3.internal.AbstractParser<UnconfirmedDelivery>() {
          @java.lang.Override
          public UnconfirmedDelivery parsePartialFrom(
              akka.protobufv3.internal.CodedInputStream input,
              akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
              throws akka.protobufv3.internal.InvalidProtocolBufferException {
            Builder builder = newBuilder();
            try {
              builder.mergeFrom(input, extensionRegistry);
            } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
              throw e.setUnfinishedMessage(builder.buildPartial());
            } catch (akka.protobufv3.internal.UninitializedMessageException e) {
              throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
            } catch (java.io.IOException e) {
              throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                  .setUnfinishedMessage(builder.buildPartial());
            }
            return builder.buildPartial();
          }
        };
  
        public static akka.protobufv3.internal.Parser<UnconfirmedDelivery> parser() {
          return PARSER;
        }
  
        @java.lang.Override
        public akka.protobufv3.internal.Parser<UnconfirmedDelivery> getParserForType() {
          return PARSER;
        }
  
        @java.lang.Override
        public akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }
  
      }
  
      private int bitField0_;
      public static final int CURRENTDELIVERYID_FIELD_NUMBER = 1;
      private long currentDeliveryId_ = 0L;
      /**
       * <code>required int64 currentDeliveryId = 1;</code>
       * @return Whether the currentDeliveryId field is set.
       */
      @java.lang.Override
      public boolean hasCurrentDeliveryId() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required int64 currentDeliveryId = 1;</code>
       * @return The currentDeliveryId.
       */
      @java.lang.Override
      public long getCurrentDeliveryId() {
        return currentDeliveryId_;
      }
  
      public static final int UNCONFIRMEDDELIVERIES_FIELD_NUMBER = 2;
      @SuppressWarnings("serial")
      private java.util.List<akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery> unconfirmedDeliveries_;
      /**
       * <code>repeated .AtLeastOnceDeliverySnapshot.UnconfirmedDelivery unconfirmedDeliveries = 2;</code>
       */
      @java.lang.Override
      public java.util.List<akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery> getUnconfirmedDeliveriesList() {
        return unconfirmedDeliveries_;
      }
      /**
       * <code>repeated .AtLeastOnceDeliverySnapshot.UnconfirmedDelivery unconfirmedDeliveries = 2;</code>
       */
      @java.lang.Override
      public java.util.List<? extends akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDeliveryOrBuilder> 
          getUnconfirmedDeliveriesOrBuilderList() {
        return unconfirmedDeliveries_;
      }
      /**
       * <code>repeated .AtLeastOnceDeliverySnapshot.UnconfirmedDelivery unconfirmedDeliveries = 2;</code>
       */
      @java.lang.Override
      public int getUnconfirmedDeliveriesCount() {
        return unconfirmedDeliveries_.size();
      }
      /**
       * <code>repeated .AtLeastOnceDeliverySnapshot.UnconfirmedDelivery unconfirmedDeliveries = 2;</code>
       */
      @java.lang.Override
      public akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery getUnconfirmedDeliveries(int index) {
        return unconfirmedDeliveries_.get(index);
      }
      /**
       * <code>repeated .AtLeastOnceDeliverySnapshot.UnconfirmedDelivery unconfirmedDeliveries = 2;</code>
       */
      @java.lang.Override
      public akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDeliveryOrBuilder getUnconfirmedDeliveriesOrBuilder(
          int index) {
        return unconfirmedDeliveries_.get(index);
      }
  
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        if (!hasCurrentDeliveryId()) {
          memoizedIsInitialized = 0;
          return false;
        }
        for (int i = 0; i < getUnconfirmedDeliveriesCount(); i++) {
          if (!getUnconfirmedDeliveries(i).isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) != 0)) {
          output.writeInt64(1, currentDeliveryId_);
        }
        for (int i = 0; i < unconfirmedDeliveries_.size(); i++) {
          output.writeMessage(2, unconfirmedDeliveries_.get(i));
        }
        getUnknownFields().writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) != 0)) {
          size += akka.protobufv3.internal.CodedOutputStream
            .computeInt64Size(1, currentDeliveryId_);
        }
        for (int i = 0; i < unconfirmedDeliveries_.size(); i++) {
          size += akka.protobufv3.internal.CodedOutputStream
            .computeMessageSize(2, unconfirmedDeliveries_.get(i));
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot)) {
          return super.equals(obj);
        }
        akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot other = (akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot) obj;
  
        if (hasCurrentDeliveryId() != other.hasCurrentDeliveryId()) return false;
        if (hasCurrentDeliveryId()) {
          if (getCurrentDeliveryId()
              != other.getCurrentDeliveryId()) return false;
        }
        if (!getUnconfirmedDeliveriesList()
            .equals(other.getUnconfirmedDeliveriesList())) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasCurrentDeliveryId()) {
          hash = (37 * hash) + CURRENTDELIVERYID_FIELD_NUMBER;
          hash = (53 * hash) + akka.protobufv3.internal.Internal.hashLong(
              getCurrentDeliveryId());
        }
        if (getUnconfirmedDeliveriesCount() > 0) {
          hash = (37 * hash) + UNCONFIRMEDDELIVERIES_FIELD_NUMBER;
          hash = (53 * hash) + getUnconfirmedDeliveriesList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot parseFrom(
          java.nio.ByteBuffer data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot parseFrom(
          java.nio.ByteBuffer data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot parseFrom(
          akka.protobufv3.internal.ByteString data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot parseFrom(
          akka.protobufv3.internal.ByteString data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot parseFrom(byte[] data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot parseFrom(
          byte[] data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot parseFrom(
          java.io.InputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      public static akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
  
      public static akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot parseDelimitedFrom(
          java.io.InputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot parseFrom(
          akka.protobufv3.internal.CodedInputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot parseFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code AtLeastOnceDeliverySnapshot}
       */
      public static final class Builder extends
          akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:AtLeastOnceDeliverySnapshot)
          akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshotOrBuilder {
        public static final akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptor() {
          return akka.persistence.serialization.MessageFormats.internal_static_AtLeastOnceDeliverySnapshot_descriptor;
        }
  
        @java.lang.Override
        protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return akka.persistence.serialization.MessageFormats.internal_static_AtLeastOnceDeliverySnapshot_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.class, akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.Builder.class);
        }
  
        // Construct using akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.newBuilder()
        private Builder() {
  
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          currentDeliveryId_ = 0L;
          if (unconfirmedDeliveriesBuilder_ == null) {
            unconfirmedDeliveries_ = java.util.Collections.emptyList();
          } else {
            unconfirmedDeliveries_ = null;
            unconfirmedDeliveriesBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }
  
        @java.lang.Override
        public akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptorForType() {
          return akka.persistence.serialization.MessageFormats.internal_static_AtLeastOnceDeliverySnapshot_descriptor;
        }
  
        @java.lang.Override
        public akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot getDefaultInstanceForType() {
          return akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.getDefaultInstance();
        }
  
        @java.lang.Override
        public akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot build() {
          akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot buildPartial() {
          akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot result = new akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot(this);
          buildPartialRepeatedFields(result);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartialRepeatedFields(akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot result) {
          if (unconfirmedDeliveriesBuilder_ == null) {
            if (((bitField0_ & 0x00000002) != 0)) {
              unconfirmedDeliveries_ = java.util.Collections.unmodifiableList(unconfirmedDeliveries_);
              bitField0_ = (bitField0_ & ~0x00000002);
            }
            result.unconfirmedDeliveries_ = unconfirmedDeliveries_;
          } else {
            result.unconfirmedDeliveries_ = unconfirmedDeliveriesBuilder_.build();
          }
        }
  
        private void buildPartial0(akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.currentDeliveryId_ = currentDeliveryId_;
            to_bitField0_ |= 0x00000001;
          }
          result.bitField0_ |= to_bitField0_;
        }
  
        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(akka.protobufv3.internal.Message other) {
          if (other instanceof akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot) {
            return mergeFrom((akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot other) {
          if (other == akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.getDefaultInstance()) return this;
          if (other.hasCurrentDeliveryId()) {
            setCurrentDeliveryId(other.getCurrentDeliveryId());
          }
          if (unconfirmedDeliveriesBuilder_ == null) {
            if (!other.unconfirmedDeliveries_.isEmpty()) {
              if (unconfirmedDeliveries_.isEmpty()) {
                unconfirmedDeliveries_ = other.unconfirmedDeliveries_;
                bitField0_ = (bitField0_ & ~0x00000002);
              } else {
                ensureUnconfirmedDeliveriesIsMutable();
                unconfirmedDeliveries_.addAll(other.unconfirmedDeliveries_);
              }
              onChanged();
            }
          } else {
            if (!other.unconfirmedDeliveries_.isEmpty()) {
              if (unconfirmedDeliveriesBuilder_.isEmpty()) {
                unconfirmedDeliveriesBuilder_.dispose();
                unconfirmedDeliveriesBuilder_ = null;
                unconfirmedDeliveries_ = other.unconfirmedDeliveries_;
                bitField0_ = (bitField0_ & ~0x00000002);
                unconfirmedDeliveriesBuilder_ = 
                  akka.protobufv3.internal.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getUnconfirmedDeliveriesFieldBuilder() : null;
              } else {
                unconfirmedDeliveriesBuilder_.addAllMessages(other.unconfirmedDeliveries_);
              }
            }
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          if (!hasCurrentDeliveryId()) {
            return false;
          }
          for (int i = 0; i < getUnconfirmedDeliveriesCount(); i++) {
            if (!getUnconfirmedDeliveries(i).isInitialized()) {
              return false;
            }
          }
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            akka.protobufv3.internal.CodedInputStream input,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 8: {
                  currentDeliveryId_ = input.readInt64();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 8
                case 18: {
                  akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery m =
                      input.readMessage(
                          akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery.PARSER,
                          extensionRegistry);
                  if (unconfirmedDeliveriesBuilder_ == null) {
                    ensureUnconfirmedDeliveriesIsMutable();
                    unconfirmedDeliveries_.add(m);
                  } else {
                    unconfirmedDeliveriesBuilder_.addMessage(m);
                  }
                  break;
                } // case 18
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;
  
        private long currentDeliveryId_ ;
        /**
         * <code>required int64 currentDeliveryId = 1;</code>
         * @return Whether the currentDeliveryId field is set.
         */
        @java.lang.Override
        public boolean hasCurrentDeliveryId() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>required int64 currentDeliveryId = 1;</code>
         * @return The currentDeliveryId.
         */
        @java.lang.Override
        public long getCurrentDeliveryId() {
          return currentDeliveryId_;
        }
        /**
         * <code>required int64 currentDeliveryId = 1;</code>
         * @param value The currentDeliveryId to set.
         * @return This builder for chaining.
         */
        public Builder setCurrentDeliveryId(long value) {
  
          currentDeliveryId_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>required int64 currentDeliveryId = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearCurrentDeliveryId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          currentDeliveryId_ = 0L;
          onChanged();
          return this;
        }
  
        private java.util.List<akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery> unconfirmedDeliveries_ =
          java.util.Collections.emptyList();
        private void ensureUnconfirmedDeliveriesIsMutable() {
          if (!((bitField0_ & 0x00000002) != 0)) {
            unconfirmedDeliveries_ = new java.util.ArrayList<akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery>(unconfirmedDeliveries_);
            bitField0_ |= 0x00000002;
           }
        }
  
        private akka.protobufv3.internal.RepeatedFieldBuilderV3<
            akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery, akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery.Builder, akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDeliveryOrBuilder> unconfirmedDeliveriesBuilder_;
  
        /**
         * <code>repeated .AtLeastOnceDeliverySnapshot.UnconfirmedDelivery unconfirmedDeliveries = 2;</code>
         */
        public java.util.List<akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery> getUnconfirmedDeliveriesList() {
          if (unconfirmedDeliveriesBuilder_ == null) {
            return java.util.Collections.unmodifiableList(unconfirmedDeliveries_);
          } else {
            return unconfirmedDeliveriesBuilder_.getMessageList();
          }
        }
        /**
         * <code>repeated .AtLeastOnceDeliverySnapshot.UnconfirmedDelivery unconfirmedDeliveries = 2;</code>
         */
        public int getUnconfirmedDeliveriesCount() {
          if (unconfirmedDeliveriesBuilder_ == null) {
            return unconfirmedDeliveries_.size();
          } else {
            return unconfirmedDeliveriesBuilder_.getCount();
          }
        }
        /**
         * <code>repeated .AtLeastOnceDeliverySnapshot.UnconfirmedDelivery unconfirmedDeliveries = 2;</code>
         */
        public akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery getUnconfirmedDeliveries(int index) {
          if (unconfirmedDeliveriesBuilder_ == null) {
            return unconfirmedDeliveries_.get(index);
          } else {
            return unconfirmedDeliveriesBuilder_.getMessage(index);
          }
        }
        /**
         * <code>repeated .AtLeastOnceDeliverySnapshot.UnconfirmedDelivery unconfirmedDeliveries = 2;</code>
         */
        public Builder setUnconfirmedDeliveries(
            int index, akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery value) {
          if (unconfirmedDeliveriesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureUnconfirmedDeliveriesIsMutable();
            unconfirmedDeliveries_.set(index, value);
            onChanged();
          } else {
            unconfirmedDeliveriesBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .AtLeastOnceDeliverySnapshot.UnconfirmedDelivery unconfirmedDeliveries = 2;</code>
         */
        public Builder setUnconfirmedDeliveries(
            int index, akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery.Builder builderForValue) {
          if (unconfirmedDeliveriesBuilder_ == null) {
            ensureUnconfirmedDeliveriesIsMutable();
            unconfirmedDeliveries_.set(index, builderForValue.build());
            onChanged();
          } else {
            unconfirmedDeliveriesBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .AtLeastOnceDeliverySnapshot.UnconfirmedDelivery unconfirmedDeliveries = 2;</code>
         */
        public Builder addUnconfirmedDeliveries(akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery value) {
          if (unconfirmedDeliveriesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureUnconfirmedDeliveriesIsMutable();
            unconfirmedDeliveries_.add(value);
            onChanged();
          } else {
            unconfirmedDeliveriesBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <code>repeated .AtLeastOnceDeliverySnapshot.UnconfirmedDelivery unconfirmedDeliveries = 2;</code>
         */
        public Builder addUnconfirmedDeliveries(
            int index, akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery value) {
          if (unconfirmedDeliveriesBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureUnconfirmedDeliveriesIsMutable();
            unconfirmedDeliveries_.add(index, value);
            onChanged();
          } else {
            unconfirmedDeliveriesBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .AtLeastOnceDeliverySnapshot.UnconfirmedDelivery unconfirmedDeliveries = 2;</code>
         */
        public Builder addUnconfirmedDeliveries(
            akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery.Builder builderForValue) {
          if (unconfirmedDeliveriesBuilder_ == null) {
            ensureUnconfirmedDeliveriesIsMutable();
            unconfirmedDeliveries_.add(builderForValue.build());
            onChanged();
          } else {
            unconfirmedDeliveriesBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .AtLeastOnceDeliverySnapshot.UnconfirmedDelivery unconfirmedDeliveries = 2;</code>
         */
        public Builder addUnconfirmedDeliveries(
            int index, akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery.Builder builderForValue) {
          if (unconfirmedDeliveriesBuilder_ == null) {
            ensureUnconfirmedDeliveriesIsMutable();
            unconfirmedDeliveries_.add(index, builderForValue.build());
            onChanged();
          } else {
            unconfirmedDeliveriesBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .AtLeastOnceDeliverySnapshot.UnconfirmedDelivery unconfirmedDeliveries = 2;</code>
         */
        public Builder addAllUnconfirmedDeliveries(
            java.lang.Iterable<? extends akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery> values) {
          if (unconfirmedDeliveriesBuilder_ == null) {
            ensureUnconfirmedDeliveriesIsMutable();
            akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
                values, unconfirmedDeliveries_);
            onChanged();
          } else {
            unconfirmedDeliveriesBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <code>repeated .AtLeastOnceDeliverySnapshot.UnconfirmedDelivery unconfirmedDeliveries = 2;</code>
         */
        public Builder clearUnconfirmedDeliveries() {
          if (unconfirmedDeliveriesBuilder_ == null) {
            unconfirmedDeliveries_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000002);
            onChanged();
          } else {
            unconfirmedDeliveriesBuilder_.clear();
          }
          return this;
        }
        /**
         * <code>repeated .AtLeastOnceDeliverySnapshot.UnconfirmedDelivery unconfirmedDeliveries = 2;</code>
         */
        public Builder removeUnconfirmedDeliveries(int index) {
          if (unconfirmedDeliveriesBuilder_ == null) {
            ensureUnconfirmedDeliveriesIsMutable();
            unconfirmedDeliveries_.remove(index);
            onChanged();
          } else {
            unconfirmedDeliveriesBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <code>repeated .AtLeastOnceDeliverySnapshot.UnconfirmedDelivery unconfirmedDeliveries = 2;</code>
         */
        public akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery.Builder getUnconfirmedDeliveriesBuilder(
            int index) {
          return getUnconfirmedDeliveriesFieldBuilder().getBuilder(index);
        }
        /**
         * <code>repeated .AtLeastOnceDeliverySnapshot.UnconfirmedDelivery unconfirmedDeliveries = 2;</code>
         */
        public akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDeliveryOrBuilder getUnconfirmedDeliveriesOrBuilder(
            int index) {
          if (unconfirmedDeliveriesBuilder_ == null) {
            return unconfirmedDeliveries_.get(index);  } else {
            return unconfirmedDeliveriesBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <code>repeated .AtLeastOnceDeliverySnapshot.UnconfirmedDelivery unconfirmedDeliveries = 2;</code>
         */
        public java.util.List<? extends akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDeliveryOrBuilder> 
             getUnconfirmedDeliveriesOrBuilderList() {
          if (unconfirmedDeliveriesBuilder_ != null) {
            return unconfirmedDeliveriesBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(unconfirmedDeliveries_);
          }
        }
        /**
         * <code>repeated .AtLeastOnceDeliverySnapshot.UnconfirmedDelivery unconfirmedDeliveries = 2;</code>
         */
        public akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery.Builder addUnconfirmedDeliveriesBuilder() {
          return getUnconfirmedDeliveriesFieldBuilder().addBuilder(
              akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery.getDefaultInstance());
        }
        /**
         * <code>repeated .AtLeastOnceDeliverySnapshot.UnconfirmedDelivery unconfirmedDeliveries = 2;</code>
         */
        public akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery.Builder addUnconfirmedDeliveriesBuilder(
            int index) {
          return getUnconfirmedDeliveriesFieldBuilder().addBuilder(
              index, akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery.getDefaultInstance());
        }
        /**
         * <code>repeated .AtLeastOnceDeliverySnapshot.UnconfirmedDelivery unconfirmedDeliveries = 2;</code>
         */
        public java.util.List<akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery.Builder> 
             getUnconfirmedDeliveriesBuilderList() {
          return getUnconfirmedDeliveriesFieldBuilder().getBuilderList();
        }
        private akka.protobufv3.internal.RepeatedFieldBuilderV3<
            akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery, akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery.Builder, akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDeliveryOrBuilder> 
            getUnconfirmedDeliveriesFieldBuilder() {
          if (unconfirmedDeliveriesBuilder_ == null) {
            unconfirmedDeliveriesBuilder_ = new akka.protobufv3.internal.RepeatedFieldBuilderV3<
                akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery, akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDelivery.Builder, akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot.UnconfirmedDeliveryOrBuilder>(
                    unconfirmedDeliveries_,
                    ((bitField0_ & 0x00000002) != 0),
                    getParentForChildren(),
                    isClean());
            unconfirmedDeliveries_ = null;
          }
          return unconfirmedDeliveriesBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }
  
        @java.lang.Override
        public final Builder mergeUnknownFields(
            final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
  
  
        // @@protoc_insertion_point(builder_scope:AtLeastOnceDeliverySnapshot)
      }
  
      // @@protoc_insertion_point(class_scope:AtLeastOnceDeliverySnapshot)
      private static final akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot();
      }
  
      public static akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<AtLeastOnceDeliverySnapshot>
          PARSER = new akka.protobufv3.internal.AbstractParser<AtLeastOnceDeliverySnapshot>() {
        @java.lang.Override
        public AtLeastOnceDeliverySnapshot parsePartialFrom(
            akka.protobufv3.internal.CodedInputStream input,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws akka.protobufv3.internal.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      public static akka.protobufv3.internal.Parser<AtLeastOnceDeliverySnapshot> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public akka.protobufv3.internal.Parser<AtLeastOnceDeliverySnapshot> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public akka.persistence.serialization.MessageFormats.AtLeastOnceDeliverySnapshot getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    public interface PersistentStateChangeEventOrBuilder extends
        // @@protoc_insertion_point(interface_extends:PersistentStateChangeEvent)
        akka.protobufv3.internal.MessageOrBuilder {
  
      /**
       * <code>required string stateIdentifier = 1;</code>
       * @return Whether the stateIdentifier field is set.
       */
      boolean hasStateIdentifier();
      /**
       * <code>required string stateIdentifier = 1;</code>
       * @return The stateIdentifier.
       */
      java.lang.String getStateIdentifier();
      /**
       * <code>required string stateIdentifier = 1;</code>
       * @return The bytes for stateIdentifier.
       */
      akka.protobufv3.internal.ByteString
          getStateIdentifierBytes();
  
      /**
       * <pre>
       *not used in new records from 2.4.5
       * </pre>
       *
       * <code>optional string timeout = 2;</code>
       * @return Whether the timeout field is set.
       */
      boolean hasTimeout();
      /**
       * <pre>
       *not used in new records from 2.4.5
       * </pre>
       *
       * <code>optional string timeout = 2;</code>
       * @return The timeout.
       */
      java.lang.String getTimeout();
      /**
       * <pre>
       *not used in new records from 2.4.5
       * </pre>
       *
       * <code>optional string timeout = 2;</code>
       * @return The bytes for timeout.
       */
      akka.protobufv3.internal.ByteString
          getTimeoutBytes();
  
      /**
       * <code>optional int64 timeoutNanos = 3;</code>
       * @return Whether the timeoutNanos field is set.
       */
      boolean hasTimeoutNanos();
      /**
       * <code>optional int64 timeoutNanos = 3;</code>
       * @return The timeoutNanos.
       */
      long getTimeoutNanos();
    }
    /**
     * <pre>
     * no longer created but needs to stay for reading persistent FSM events and snapshots
     * </pre>
     *
     * Protobuf type {@code PersistentStateChangeEvent}
     */
    public static final class PersistentStateChangeEvent extends
        akka.protobufv3.internal.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:PersistentStateChangeEvent)
        PersistentStateChangeEventOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use PersistentStateChangeEvent.newBuilder() to construct.
      private PersistentStateChangeEvent(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private PersistentStateChangeEvent() {
        stateIdentifier_ = "";
        timeout_ = "";
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
        return new PersistentStateChangeEvent();
      }
  
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.persistence.serialization.MessageFormats.internal_static_PersistentStateChangeEvent_descriptor;
      }
  
      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.persistence.serialization.MessageFormats.internal_static_PersistentStateChangeEvent_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent.class, akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent.Builder.class);
      }
  
      private int bitField0_;
      public static final int STATEIDENTIFIER_FIELD_NUMBER = 1;
      @SuppressWarnings("serial")
      private volatile java.lang.Object stateIdentifier_ = "";
      /**
       * <code>required string stateIdentifier = 1;</code>
       * @return Whether the stateIdentifier field is set.
       */
      @java.lang.Override
      public boolean hasStateIdentifier() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string stateIdentifier = 1;</code>
       * @return The stateIdentifier.
       */
      @java.lang.Override
      public java.lang.String getStateIdentifier() {
        java.lang.Object ref = stateIdentifier_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          akka.protobufv3.internal.ByteString bs = 
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            stateIdentifier_ = s;
          }
          return s;
        }
      }
      /**
       * <code>required string stateIdentifier = 1;</code>
       * @return The bytes for stateIdentifier.
       */
      @java.lang.Override
      public akka.protobufv3.internal.ByteString
          getStateIdentifierBytes() {
        java.lang.Object ref = stateIdentifier_;
        if (ref instanceof java.lang.String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          stateIdentifier_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
  
      public static final int TIMEOUT_FIELD_NUMBER = 2;
      @SuppressWarnings("serial")
      private volatile java.lang.Object timeout_ = "";
      /**
       * <pre>
       *not used in new records from 2.4.5
       * </pre>
       *
       * <code>optional string timeout = 2;</code>
       * @return Whether the timeout field is set.
       */
      @java.lang.Override
      public boolean hasTimeout() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       *not used in new records from 2.4.5
       * </pre>
       *
       * <code>optional string timeout = 2;</code>
       * @return The timeout.
       */
      @java.lang.Override
      public java.lang.String getTimeout() {
        java.lang.Object ref = timeout_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          akka.protobufv3.internal.ByteString bs = 
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            timeout_ = s;
          }
          return s;
        }
      }
      /**
       * <pre>
       *not used in new records from 2.4.5
       * </pre>
       *
       * <code>optional string timeout = 2;</code>
       * @return The bytes for timeout.
       */
      @java.lang.Override
      public akka.protobufv3.internal.ByteString
          getTimeoutBytes() {
        java.lang.Object ref = timeout_;
        if (ref instanceof java.lang.String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          timeout_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
  
      public static final int TIMEOUTNANOS_FIELD_NUMBER = 3;
      private long timeoutNanos_ = 0L;
      /**
       * <code>optional int64 timeoutNanos = 3;</code>
       * @return Whether the timeoutNanos field is set.
       */
      @java.lang.Override
      public boolean hasTimeoutNanos() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional int64 timeoutNanos = 3;</code>
       * @return The timeoutNanos.
       */
      @java.lang.Override
      public long getTimeoutNanos() {
        return timeoutNanos_;
      }
  
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        if (!hasStateIdentifier()) {
          memoizedIsInitialized = 0;
          return false;
        }
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) != 0)) {
          akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 1, stateIdentifier_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 2, timeout_);
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          output.writeInt64(3, timeoutNanos_);
        }
        getUnknownFields().writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) != 0)) {
          size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(1, stateIdentifier_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(2, timeout_);
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          size += akka.protobufv3.internal.CodedOutputStream
            .computeInt64Size(3, timeoutNanos_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent)) {
          return super.equals(obj);
        }
        akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent other = (akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent) obj;
  
        if (hasStateIdentifier() != other.hasStateIdentifier()) return false;
        if (hasStateIdentifier()) {
          if (!getStateIdentifier()
              .equals(other.getStateIdentifier())) return false;
        }
        if (hasTimeout() != other.hasTimeout()) return false;
        if (hasTimeout()) {
          if (!getTimeout()
              .equals(other.getTimeout())) return false;
        }
        if (hasTimeoutNanos() != other.hasTimeoutNanos()) return false;
        if (hasTimeoutNanos()) {
          if (getTimeoutNanos()
              != other.getTimeoutNanos()) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasStateIdentifier()) {
          hash = (37 * hash) + STATEIDENTIFIER_FIELD_NUMBER;
          hash = (53 * hash) + getStateIdentifier().hashCode();
        }
        if (hasTimeout()) {
          hash = (37 * hash) + TIMEOUT_FIELD_NUMBER;
          hash = (53 * hash) + getTimeout().hashCode();
        }
        if (hasTimeoutNanos()) {
          hash = (37 * hash) + TIMEOUTNANOS_FIELD_NUMBER;
          hash = (53 * hash) + akka.protobufv3.internal.Internal.hashLong(
              getTimeoutNanos());
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent parseFrom(
          java.nio.ByteBuffer data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent parseFrom(
          java.nio.ByteBuffer data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent parseFrom(
          akka.protobufv3.internal.ByteString data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent parseFrom(
          akka.protobufv3.internal.ByteString data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent parseFrom(byte[] data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent parseFrom(
          byte[] data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent parseFrom(
          java.io.InputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      public static akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
  
      public static akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent parseDelimitedFrom(
          java.io.InputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent parseFrom(
          akka.protobufv3.internal.CodedInputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent parseFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * <pre>
       * no longer created but needs to stay for reading persistent FSM events and snapshots
       * </pre>
       *
       * Protobuf type {@code PersistentStateChangeEvent}
       */
      public static final class Builder extends
          akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:PersistentStateChangeEvent)
          akka.persistence.serialization.MessageFormats.PersistentStateChangeEventOrBuilder {
        public static final akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptor() {
          return akka.persistence.serialization.MessageFormats.internal_static_PersistentStateChangeEvent_descriptor;
        }
  
        @java.lang.Override
        protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return akka.persistence.serialization.MessageFormats.internal_static_PersistentStateChangeEvent_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent.class, akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent.Builder.class);
        }
  
        // Construct using akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent.newBuilder()
        private Builder() {
  
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          stateIdentifier_ = "";
          timeout_ = "";
          timeoutNanos_ = 0L;
          return this;
        }
  
        @java.lang.Override
        public akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptorForType() {
          return akka.persistence.serialization.MessageFormats.internal_static_PersistentStateChangeEvent_descriptor;
        }
  
        @java.lang.Override
        public akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent getDefaultInstanceForType() {
          return akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent.getDefaultInstance();
        }
  
        @java.lang.Override
        public akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent build() {
          akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent buildPartial() {
          akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent result = new akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartial0(akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.stateIdentifier_ = stateIdentifier_;
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.timeout_ = timeout_;
            to_bitField0_ |= 0x00000002;
          }
          if (((from_bitField0_ & 0x00000004) != 0)) {
            result.timeoutNanos_ = timeoutNanos_;
            to_bitField0_ |= 0x00000004;
          }
          result.bitField0_ |= to_bitField0_;
        }
  
        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(akka.protobufv3.internal.Message other) {
          if (other instanceof akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent) {
            return mergeFrom((akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent other) {
          if (other == akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent.getDefaultInstance()) return this;
          if (other.hasStateIdentifier()) {
            stateIdentifier_ = other.stateIdentifier_;
            bitField0_ |= 0x00000001;
            onChanged();
          }
          if (other.hasTimeout()) {
            timeout_ = other.timeout_;
            bitField0_ |= 0x00000002;
            onChanged();
          }
          if (other.hasTimeoutNanos()) {
            setTimeoutNanos(other.getTimeoutNanos());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          if (!hasStateIdentifier()) {
            return false;
          }
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            akka.protobufv3.internal.CodedInputStream input,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  stateIdentifier_ = input.readBytes();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 10
                case 18: {
                  timeout_ = input.readBytes();
                  bitField0_ |= 0x00000002;
                  break;
                } // case 18
                case 24: {
                  timeoutNanos_ = input.readInt64();
                  bitField0_ |= 0x00000004;
                  break;
                } // case 24
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;
  
        private java.lang.Object stateIdentifier_ = "";
        /**
         * <code>required string stateIdentifier = 1;</code>
         * @return Whether the stateIdentifier field is set.
         */
        public boolean hasStateIdentifier() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>required string stateIdentifier = 1;</code>
         * @return The stateIdentifier.
         */
        public java.lang.String getStateIdentifier() {
          java.lang.Object ref = stateIdentifier_;
          if (!(ref instanceof java.lang.String)) {
            akka.protobufv3.internal.ByteString bs =
                (akka.protobufv3.internal.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              stateIdentifier_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>required string stateIdentifier = 1;</code>
         * @return The bytes for stateIdentifier.
         */
        public akka.protobufv3.internal.ByteString
            getStateIdentifierBytes() {
          java.lang.Object ref = stateIdentifier_;
          if (ref instanceof String) {
            akka.protobufv3.internal.ByteString b = 
                akka.protobufv3.internal.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            stateIdentifier_ = b;
            return b;
          } else {
            return (akka.protobufv3.internal.ByteString) ref;
          }
        }
        /**
         * <code>required string stateIdentifier = 1;</code>
         * @param value The stateIdentifier to set.
         * @return This builder for chaining.
         */
        public Builder setStateIdentifier(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          stateIdentifier_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>required string stateIdentifier = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearStateIdentifier() {
          stateIdentifier_ = getDefaultInstance().getStateIdentifier();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
          return this;
        }
        /**
         * <code>required string stateIdentifier = 1;</code>
         * @param value The bytes for stateIdentifier to set.
         * @return This builder for chaining.
         */
        public Builder setStateIdentifierBytes(
            akka.protobufv3.internal.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          stateIdentifier_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
  
        private java.lang.Object timeout_ = "";
        /**
         * <pre>
         *not used in new records from 2.4.5
         * </pre>
         *
         * <code>optional string timeout = 2;</code>
         * @return Whether the timeout field is set.
         */
        public boolean hasTimeout() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <pre>
         *not used in new records from 2.4.5
         * </pre>
         *
         * <code>optional string timeout = 2;</code>
         * @return The timeout.
         */
        public java.lang.String getTimeout() {
          java.lang.Object ref = timeout_;
          if (!(ref instanceof java.lang.String)) {
            akka.protobufv3.internal.ByteString bs =
                (akka.protobufv3.internal.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              timeout_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <pre>
         *not used in new records from 2.4.5
         * </pre>
         *
         * <code>optional string timeout = 2;</code>
         * @return The bytes for timeout.
         */
        public akka.protobufv3.internal.ByteString
            getTimeoutBytes() {
          java.lang.Object ref = timeout_;
          if (ref instanceof String) {
            akka.protobufv3.internal.ByteString b = 
                akka.protobufv3.internal.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            timeout_ = b;
            return b;
          } else {
            return (akka.protobufv3.internal.ByteString) ref;
          }
        }
        /**
         * <pre>
         *not used in new records from 2.4.5
         * </pre>
         *
         * <code>optional string timeout = 2;</code>
         * @param value The timeout to set.
         * @return This builder for chaining.
         */
        public Builder setTimeout(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          timeout_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <pre>
         *not used in new records from 2.4.5
         * </pre>
         *
         * <code>optional string timeout = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearTimeout() {
          timeout_ = getDefaultInstance().getTimeout();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
          return this;
        }
        /**
         * <pre>
         *not used in new records from 2.4.5
         * </pre>
         *
         * <code>optional string timeout = 2;</code>
         * @param value The bytes for timeout to set.
         * @return This builder for chaining.
         */
        public Builder setTimeoutBytes(
            akka.protobufv3.internal.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          timeout_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
  
        private long timeoutNanos_ ;
        /**
         * <code>optional int64 timeoutNanos = 3;</code>
         * @return Whether the timeoutNanos field is set.
         */
        @java.lang.Override
        public boolean hasTimeoutNanos() {
          return ((bitField0_ & 0x00000004) != 0);
        }
        /**
         * <code>optional int64 timeoutNanos = 3;</code>
         * @return The timeoutNanos.
         */
        @java.lang.Override
        public long getTimeoutNanos() {
          return timeoutNanos_;
        }
        /**
         * <code>optional int64 timeoutNanos = 3;</code>
         * @param value The timeoutNanos to set.
         * @return This builder for chaining.
         */
        public Builder setTimeoutNanos(long value) {
  
          timeoutNanos_ = value;
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 timeoutNanos = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearTimeoutNanos() {
          bitField0_ = (bitField0_ & ~0x00000004);
          timeoutNanos_ = 0L;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }
  
        @java.lang.Override
        public final Builder mergeUnknownFields(
            final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
  
  
        // @@protoc_insertion_point(builder_scope:PersistentStateChangeEvent)
      }
  
      // @@protoc_insertion_point(class_scope:PersistentStateChangeEvent)
      private static final akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent();
      }
  
      public static akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<PersistentStateChangeEvent>
          PARSER = new akka.protobufv3.internal.AbstractParser<PersistentStateChangeEvent>() {
        @java.lang.Override
        public PersistentStateChangeEvent parsePartialFrom(
            akka.protobufv3.internal.CodedInputStream input,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws akka.protobufv3.internal.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      public static akka.protobufv3.internal.Parser<PersistentStateChangeEvent> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public akka.protobufv3.internal.Parser<PersistentStateChangeEvent> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public akka.persistence.serialization.MessageFormats.PersistentStateChangeEvent getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    public interface PersistentFSMSnapshotOrBuilder extends
        // @@protoc_insertion_point(interface_extends:PersistentFSMSnapshot)
        akka.protobufv3.internal.MessageOrBuilder {
  
      /**
       * <code>required string stateIdentifier = 1;</code>
       * @return Whether the stateIdentifier field is set.
       */
      boolean hasStateIdentifier();
      /**
       * <code>required string stateIdentifier = 1;</code>
       * @return The stateIdentifier.
       */
      java.lang.String getStateIdentifier();
      /**
       * <code>required string stateIdentifier = 1;</code>
       * @return The bytes for stateIdentifier.
       */
      akka.protobufv3.internal.ByteString
          getStateIdentifierBytes();
  
      /**
       * <code>required .PersistentPayload data = 2;</code>
       * @return Whether the data field is set.
       */
      boolean hasData();
      /**
       * <code>required .PersistentPayload data = 2;</code>
       * @return The data.
       */
      akka.persistence.serialization.MessageFormats.PersistentPayload getData();
      /**
       * <code>required .PersistentPayload data = 2;</code>
       */
      akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder getDataOrBuilder();
  
      /**
       * <code>optional int64 timeoutNanos = 3;</code>
       * @return Whether the timeoutNanos field is set.
       */
      boolean hasTimeoutNanos();
      /**
       * <code>optional int64 timeoutNanos = 3;</code>
       * @return The timeoutNanos.
       */
      long getTimeoutNanos();
    }
    /**
     * Protobuf type {@code PersistentFSMSnapshot}
     */
    public static final class PersistentFSMSnapshot extends
        akka.protobufv3.internal.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:PersistentFSMSnapshot)
        PersistentFSMSnapshotOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use PersistentFSMSnapshot.newBuilder() to construct.
      private PersistentFSMSnapshot(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private PersistentFSMSnapshot() {
        stateIdentifier_ = "";
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
        return new PersistentFSMSnapshot();
      }
  
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.persistence.serialization.MessageFormats.internal_static_PersistentFSMSnapshot_descriptor;
      }
  
      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.persistence.serialization.MessageFormats.internal_static_PersistentFSMSnapshot_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot.class, akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot.Builder.class);
      }
  
      private int bitField0_;
      public static final int STATEIDENTIFIER_FIELD_NUMBER = 1;
      @SuppressWarnings("serial")
      private volatile java.lang.Object stateIdentifier_ = "";
      /**
       * <code>required string stateIdentifier = 1;</code>
       * @return Whether the stateIdentifier field is set.
       */
      @java.lang.Override
      public boolean hasStateIdentifier() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string stateIdentifier = 1;</code>
       * @return The stateIdentifier.
       */
      @java.lang.Override
      public java.lang.String getStateIdentifier() {
        java.lang.Object ref = stateIdentifier_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          akka.protobufv3.internal.ByteString bs = 
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            stateIdentifier_ = s;
          }
          return s;
        }
      }
      /**
       * <code>required string stateIdentifier = 1;</code>
       * @return The bytes for stateIdentifier.
       */
      @java.lang.Override
      public akka.protobufv3.internal.ByteString
          getStateIdentifierBytes() {
        java.lang.Object ref = stateIdentifier_;
        if (ref instanceof java.lang.String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          stateIdentifier_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
  
      public static final int DATA_FIELD_NUMBER = 2;
      private akka.persistence.serialization.MessageFormats.PersistentPayload data_;
      /**
       * <code>required .PersistentPayload data = 2;</code>
       * @return Whether the data field is set.
       */
      @java.lang.Override
      public boolean hasData() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required .PersistentPayload data = 2;</code>
       * @return The data.
       */
      @java.lang.Override
      public akka.persistence.serialization.MessageFormats.PersistentPayload getData() {
        return data_ == null ? akka.persistence.serialization.MessageFormats.PersistentPayload.getDefaultInstance() : data_;
      }
      /**
       * <code>required .PersistentPayload data = 2;</code>
       */
      @java.lang.Override
      public akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder getDataOrBuilder() {
        return data_ == null ? akka.persistence.serialization.MessageFormats.PersistentPayload.getDefaultInstance() : data_;
      }
  
      public static final int TIMEOUTNANOS_FIELD_NUMBER = 3;
      private long timeoutNanos_ = 0L;
      /**
       * <code>optional int64 timeoutNanos = 3;</code>
       * @return Whether the timeoutNanos field is set.
       */
      @java.lang.Override
      public boolean hasTimeoutNanos() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional int64 timeoutNanos = 3;</code>
       * @return The timeoutNanos.
       */
      @java.lang.Override
      public long getTimeoutNanos() {
        return timeoutNanos_;
      }
  
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        if (!hasStateIdentifier()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasData()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!getData().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) != 0)) {
          akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 1, stateIdentifier_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          output.writeMessage(2, getData());
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          output.writeInt64(3, timeoutNanos_);
        }
        getUnknownFields().writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        if (((bitField0_ & 0x00000001) != 0)) {
          size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(1, stateIdentifier_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          size += akka.protobufv3.internal.CodedOutputStream
            .computeMessageSize(2, getData());
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          size += akka.protobufv3.internal.CodedOutputStream
            .computeInt64Size(3, timeoutNanos_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot)) {
          return super.equals(obj);
        }
        akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot other = (akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot) obj;
  
        if (hasStateIdentifier() != other.hasStateIdentifier()) return false;
        if (hasStateIdentifier()) {
          if (!getStateIdentifier()
              .equals(other.getStateIdentifier())) return false;
        }
        if (hasData() != other.hasData()) return false;
        if (hasData()) {
          if (!getData()
              .equals(other.getData())) return false;
        }
        if (hasTimeoutNanos() != other.hasTimeoutNanos()) return false;
        if (hasTimeoutNanos()) {
          if (getTimeoutNanos()
              != other.getTimeoutNanos()) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasStateIdentifier()) {
          hash = (37 * hash) + STATEIDENTIFIER_FIELD_NUMBER;
          hash = (53 * hash) + getStateIdentifier().hashCode();
        }
        if (hasData()) {
          hash = (37 * hash) + DATA_FIELD_NUMBER;
          hash = (53 * hash) + getData().hashCode();
        }
        if (hasTimeoutNanos()) {
          hash = (37 * hash) + TIMEOUTNANOS_FIELD_NUMBER;
          hash = (53 * hash) + akka.protobufv3.internal.Internal.hashLong(
              getTimeoutNanos());
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot parseFrom(
          java.nio.ByteBuffer data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot parseFrom(
          java.nio.ByteBuffer data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot parseFrom(
          akka.protobufv3.internal.ByteString data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot parseFrom(
          akka.protobufv3.internal.ByteString data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot parseFrom(byte[] data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot parseFrom(
          byte[] data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot parseFrom(
          java.io.InputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      public static akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
  
      public static akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot parseDelimitedFrom(
          java.io.InputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot parseFrom(
          akka.protobufv3.internal.CodedInputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot parseFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code PersistentFSMSnapshot}
       */
      public static final class Builder extends
          akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:PersistentFSMSnapshot)
          akka.persistence.serialization.MessageFormats.PersistentFSMSnapshotOrBuilder {
        public static final akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptor() {
          return akka.persistence.serialization.MessageFormats.internal_static_PersistentFSMSnapshot_descriptor;
        }
  
        @java.lang.Override
        protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return akka.persistence.serialization.MessageFormats.internal_static_PersistentFSMSnapshot_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot.class, akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot.Builder.class);
        }
  
        // Construct using akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (akka.protobufv3.internal.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
            getDataFieldBuilder();
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          stateIdentifier_ = "";
          data_ = null;
          if (dataBuilder_ != null) {
            dataBuilder_.dispose();
            dataBuilder_ = null;
          }
          timeoutNanos_ = 0L;
          return this;
        }
  
        @java.lang.Override
        public akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptorForType() {
          return akka.persistence.serialization.MessageFormats.internal_static_PersistentFSMSnapshot_descriptor;
        }
  
        @java.lang.Override
        public akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot getDefaultInstanceForType() {
          return akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot.getDefaultInstance();
        }
  
        @java.lang.Override
        public akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot build() {
          akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot buildPartial() {
          akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot result = new akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartial0(akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.stateIdentifier_ = stateIdentifier_;
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.data_ = dataBuilder_ == null
                ? data_
                : dataBuilder_.build();
            to_bitField0_ |= 0x00000002;
          }
          if (((from_bitField0_ & 0x00000004) != 0)) {
            result.timeoutNanos_ = timeoutNanos_;
            to_bitField0_ |= 0x00000004;
          }
          result.bitField0_ |= to_bitField0_;
        }
  
        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(akka.protobufv3.internal.Message other) {
          if (other instanceof akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot) {
            return mergeFrom((akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot other) {
          if (other == akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot.getDefaultInstance()) return this;
          if (other.hasStateIdentifier()) {
            stateIdentifier_ = other.stateIdentifier_;
            bitField0_ |= 0x00000001;
            onChanged();
          }
          if (other.hasData()) {
            mergeData(other.getData());
          }
          if (other.hasTimeoutNanos()) {
            setTimeoutNanos(other.getTimeoutNanos());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          if (!hasStateIdentifier()) {
            return false;
          }
          if (!hasData()) {
            return false;
          }
          if (!getData().isInitialized()) {
            return false;
          }
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            akka.protobufv3.internal.CodedInputStream input,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  stateIdentifier_ = input.readBytes();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 10
                case 18: {
                  input.readMessage(
                      getDataFieldBuilder().getBuilder(),
                      extensionRegistry);
                  bitField0_ |= 0x00000002;
                  break;
                } // case 18
                case 24: {
                  timeoutNanos_ = input.readInt64();
                  bitField0_ |= 0x00000004;
                  break;
                } // case 24
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;
  
        private java.lang.Object stateIdentifier_ = "";
        /**
         * <code>required string stateIdentifier = 1;</code>
         * @return Whether the stateIdentifier field is set.
         */
        public boolean hasStateIdentifier() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>required string stateIdentifier = 1;</code>
         * @return The stateIdentifier.
         */
        public java.lang.String getStateIdentifier() {
          java.lang.Object ref = stateIdentifier_;
          if (!(ref instanceof java.lang.String)) {
            akka.protobufv3.internal.ByteString bs =
                (akka.protobufv3.internal.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              stateIdentifier_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>required string stateIdentifier = 1;</code>
         * @return The bytes for stateIdentifier.
         */
        public akka.protobufv3.internal.ByteString
            getStateIdentifierBytes() {
          java.lang.Object ref = stateIdentifier_;
          if (ref instanceof String) {
            akka.protobufv3.internal.ByteString b = 
                akka.protobufv3.internal.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            stateIdentifier_ = b;
            return b;
          } else {
            return (akka.protobufv3.internal.ByteString) ref;
          }
        }
        /**
         * <code>required string stateIdentifier = 1;</code>
         * @param value The stateIdentifier to set.
         * @return This builder for chaining.
         */
        public Builder setStateIdentifier(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          stateIdentifier_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>required string stateIdentifier = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearStateIdentifier() {
          stateIdentifier_ = getDefaultInstance().getStateIdentifier();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
          return this;
        }
        /**
         * <code>required string stateIdentifier = 1;</code>
         * @param value The bytes for stateIdentifier to set.
         * @return This builder for chaining.
         */
        public Builder setStateIdentifierBytes(
            akka.protobufv3.internal.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          stateIdentifier_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
  
        private akka.persistence.serialization.MessageFormats.PersistentPayload data_;
        private akka.protobufv3.internal.SingleFieldBuilderV3<
            akka.persistence.serialization.MessageFormats.PersistentPayload, akka.persistence.serialization.MessageFormats.PersistentPayload.Builder, akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder> dataBuilder_;
        /**
         * <code>required .PersistentPayload data = 2;</code>
         * @return Whether the data field is set.
         */
        public boolean hasData() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>required .PersistentPayload data = 2;</code>
         * @return The data.
         */
        public akka.persistence.serialization.MessageFormats.PersistentPayload getData() {
          if (dataBuilder_ == null) {
            return data_ == null ? akka.persistence.serialization.MessageFormats.PersistentPayload.getDefaultInstance() : data_;
          } else {
            return dataBuilder_.getMessage();
          }
        }
        /**
         * <code>required .PersistentPayload data = 2;</code>
         */
        public Builder setData(akka.persistence.serialization.MessageFormats.PersistentPayload value) {
          if (dataBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            data_ = value;
          } else {
            dataBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <code>required .PersistentPayload data = 2;</code>
         */
        public Builder setData(
            akka.persistence.serialization.MessageFormats.PersistentPayload.Builder builderForValue) {
          if (dataBuilder_ == null) {
            data_ = builderForValue.build();
          } else {
            dataBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <code>required .PersistentPayload data = 2;</code>
         */
        public Builder mergeData(akka.persistence.serialization.MessageFormats.PersistentPayload value) {
          if (dataBuilder_ == null) {
            if (((bitField0_ & 0x00000002) != 0) &&
              data_ != null &&
              data_ != akka.persistence.serialization.MessageFormats.PersistentPayload.getDefaultInstance()) {
              getDataBuilder().mergeFrom(value);
            } else {
              data_ = value;
            }
          } else {
            dataBuilder_.mergeFrom(value);
          }
          if (data_ != null) {
            bitField0_ |= 0x00000002;
            onChanged();
          }
          return this;
        }
        /**
         * <code>required .PersistentPayload data = 2;</code>
         */
        public Builder clearData() {
          bitField0_ = (bitField0_ & ~0x00000002);
          data_ = null;
          if (dataBuilder_ != null) {
            dataBuilder_.dispose();
            dataBuilder_ = null;
          }
          onChanged();
          return this;
        }
        /**
         * <code>required .PersistentPayload data = 2;</code>
         */
        public akka.persistence.serialization.MessageFormats.PersistentPayload.Builder getDataBuilder() {
          bitField0_ |= 0x00000002;
          onChanged();
          return getDataFieldBuilder().getBuilder();
        }
        /**
         * <code>required .PersistentPayload data = 2;</code>
         */
        public akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder getDataOrBuilder() {
          if (dataBuilder_ != null) {
            return dataBuilder_.getMessageOrBuilder();
          } else {
            return data_ == null ?
                akka.persistence.serialization.MessageFormats.PersistentPayload.getDefaultInstance() : data_;
          }
        }
        /**
         * <code>required .PersistentPayload data = 2;</code>
         */
        private akka.protobufv3.internal.SingleFieldBuilderV3<
            akka.persistence.serialization.MessageFormats.PersistentPayload, akka.persistence.serialization.MessageFormats.PersistentPayload.Builder, akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder> 
            getDataFieldBuilder() {
          if (dataBuilder_ == null) {
            dataBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
                akka.persistence.serialization.MessageFormats.PersistentPayload, akka.persistence.serialization.MessageFormats.PersistentPayload.Builder, akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder>(
                    getData(),
                    getParentForChildren(),
                    isClean());
            data_ = null;
          }
          return dataBuilder_;
        }
  
        private long timeoutNanos_ ;
        /**
         * <code>optional int64 timeoutNanos = 3;</code>
         * @return Whether the timeoutNanos field is set.
         */
        @java.lang.Override
        public boolean hasTimeoutNanos() {
          return ((bitField0_ & 0x00000004) != 0);
        }
        /**
         * <code>optional int64 timeoutNanos = 3;</code>
         * @return The timeoutNanos.
         */
        @java.lang.Override
        public long getTimeoutNanos() {
          return timeoutNanos_;
        }
        /**
         * <code>optional int64 timeoutNanos = 3;</code>
         * @param value The timeoutNanos to set.
         * @return This builder for chaining.
         */
        public Builder setTimeoutNanos(long value) {
  
          timeoutNanos_ = value;
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 timeoutNanos = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearTimeoutNanos() {
          bitField0_ = (bitField0_ & ~0x00000004);
          timeoutNanos_ = 0L;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }
  
        @java.lang.Override
        public final Builder mergeUnknownFields(
            final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
  
  
        // @@protoc_insertion_point(builder_scope:PersistentFSMSnapshot)
      }
  
      // @@protoc_insertion_point(class_scope:PersistentFSMSnapshot)
      private static final akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot();
      }
  
      public static akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<PersistentFSMSnapshot>
          PARSER = new akka.protobufv3.internal.AbstractParser<PersistentFSMSnapshot>() {
        @java.lang.Override
        public PersistentFSMSnapshot parsePartialFrom(
            akka.protobufv3.internal.CodedInputStream input,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws akka.protobufv3.internal.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      public static akka.protobufv3.internal.Parser<PersistentFSMSnapshot> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public akka.protobufv3.internal.Parser<PersistentFSMSnapshot> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public akka.persistence.serialization.MessageFormats.PersistentFSMSnapshot getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    public interface CompositeMetadataOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CompositeMetadata)
        akka.protobufv3.internal.MessageOrBuilder {
  
      /**
       * <code>repeated .PersistentPayload payloads = 1;</code>
       */
      java.util.List<akka.persistence.serialization.MessageFormats.PersistentPayload>
          getPayloadsList();
      /**
       * <code>repeated .PersistentPayload payloads = 1;</code>
       */
      akka.persistence.serialization.MessageFormats.PersistentPayload getPayloads(int index);
      /**
       * <code>repeated .PersistentPayload payloads = 1;</code>
       */
      int getPayloadsCount();
      /**
       * <code>repeated .PersistentPayload payloads = 1;</code>
       */
      java.util.List<? extends akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder>
          getPayloadsOrBuilderList();
      /**
       * <code>repeated .PersistentPayload payloads = 1;</code>
       */
      akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder getPayloadsOrBuilder(
          int index);
    }
    /**
     * Protobuf type {@code CompositeMetadata}
     */
    public static final class CompositeMetadata extends
        akka.protobufv3.internal.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:CompositeMetadata)
        CompositeMetadataOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use CompositeMetadata.newBuilder() to construct.
      private CompositeMetadata(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private CompositeMetadata() {
        payloads_ = java.util.Collections.emptyList();
      }
  
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
        return new CompositeMetadata();
      }
  
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.persistence.serialization.MessageFormats.internal_static_CompositeMetadata_descriptor;
      }
  
      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.persistence.serialization.MessageFormats.internal_static_CompositeMetadata_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.persistence.serialization.MessageFormats.CompositeMetadata.class, akka.persistence.serialization.MessageFormats.CompositeMetadata.Builder.class);
      }
  
      public static final int PAYLOADS_FIELD_NUMBER = 1;
      @SuppressWarnings("serial")
      private java.util.List<akka.persistence.serialization.MessageFormats.PersistentPayload> payloads_;
      /**
       * <code>repeated .PersistentPayload payloads = 1;</code>
       */
      @java.lang.Override
      public java.util.List<akka.persistence.serialization.MessageFormats.PersistentPayload> getPayloadsList() {
        return payloads_;
      }
      /**
       * <code>repeated .PersistentPayload payloads = 1;</code>
       */
      @java.lang.Override
      public java.util.List<? extends akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder>
          getPayloadsOrBuilderList() {
        return payloads_;
      }
      /**
       * <code>repeated .PersistentPayload payloads = 1;</code>
       */
      @java.lang.Override
      public int getPayloadsCount() {
        return payloads_.size();
      }
      /**
       * <code>repeated .PersistentPayload payloads = 1;</code>
       */
      @java.lang.Override
      public akka.persistence.serialization.MessageFormats.PersistentPayload getPayloads(int index) {
        return payloads_.get(index);
      }
      /**
       * <code>repeated .PersistentPayload payloads = 1;</code>
       */
      @java.lang.Override
      public akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder getPayloadsOrBuilder(
          int index) {
        return payloads_.get(index);
      }
  
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        for (int i = 0; i < getPayloadsCount(); i++) {
          if (!getPayloads(i).isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                          throws java.io.IOException {
        for (int i = 0; i < payloads_.size(); i++) {
          output.writeMessage(1, payloads_.get(i));
        }
        getUnknownFields().writeTo(output);
      }
  
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
  
        size = 0;
        for (int i = 0; i < payloads_.size(); i++) {
          size += akka.protobufv3.internal.CodedOutputStream
            .computeMessageSize(1, payloads_.get(i));
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }
  
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof akka.persistence.serialization.MessageFormats.CompositeMetadata)) {
          return super.equals(obj);
        }
        akka.persistence.serialization.MessageFormats.CompositeMetadata other = (akka.persistence.serialization.MessageFormats.CompositeMetadata) obj;
  
        if (!getPayloadsList()
            .equals(other.getPayloadsList())) return false;
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }
  
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (getPayloadsCount() > 0) {
          hash = (37 * hash) + PAYLOADS_FIELD_NUMBER;
          hash = (53 * hash) + getPayloadsList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static akka.persistence.serialization.MessageFormats.CompositeMetadata parseFrom(
          java.nio.ByteBuffer data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.persistence.serialization.MessageFormats.CompositeMetadata parseFrom(
          java.nio.ByteBuffer data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.persistence.serialization.MessageFormats.CompositeMetadata parseFrom(
          akka.protobufv3.internal.ByteString data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.persistence.serialization.MessageFormats.CompositeMetadata parseFrom(
          akka.protobufv3.internal.ByteString data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.persistence.serialization.MessageFormats.CompositeMetadata parseFrom(byte[] data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.persistence.serialization.MessageFormats.CompositeMetadata parseFrom(
          byte[] data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.persistence.serialization.MessageFormats.CompositeMetadata parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static akka.persistence.serialization.MessageFormats.CompositeMetadata parseFrom(
          java.io.InputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      public static akka.persistence.serialization.MessageFormats.CompositeMetadata parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
  
      public static akka.persistence.serialization.MessageFormats.CompositeMetadata parseDelimitedFrom(
          java.io.InputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static akka.persistence.serialization.MessageFormats.CompositeMetadata parseFrom(
          akka.protobufv3.internal.CodedInputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static akka.persistence.serialization.MessageFormats.CompositeMetadata parseFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(akka.persistence.serialization.MessageFormats.CompositeMetadata prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }
  
      @java.lang.Override
      protected Builder newBuilderForType(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CompositeMetadata}
       */
      public static final class Builder extends
          akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:CompositeMetadata)
          akka.persistence.serialization.MessageFormats.CompositeMetadataOrBuilder {
        public static final akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptor() {
          return akka.persistence.serialization.MessageFormats.internal_static_CompositeMetadata_descriptor;
        }
  
        @java.lang.Override
        protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return akka.persistence.serialization.MessageFormats.internal_static_CompositeMetadata_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  akka.persistence.serialization.MessageFormats.CompositeMetadata.class, akka.persistence.serialization.MessageFormats.CompositeMetadata.Builder.class);
        }
  
        // Construct using akka.persistence.serialization.MessageFormats.CompositeMetadata.newBuilder()
        private Builder() {
  
        }
  
        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          if (payloadsBuilder_ == null) {
            payloads_ = java.util.Collections.emptyList();
          } else {
            payloads_ = null;
            payloadsBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }
  
        @java.lang.Override
        public akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptorForType() {
          return akka.persistence.serialization.MessageFormats.internal_static_CompositeMetadata_descriptor;
        }
  
        @java.lang.Override
        public akka.persistence.serialization.MessageFormats.CompositeMetadata getDefaultInstanceForType() {
          return akka.persistence.serialization.MessageFormats.CompositeMetadata.getDefaultInstance();
        }
  
        @java.lang.Override
        public akka.persistence.serialization.MessageFormats.CompositeMetadata build() {
          akka.persistence.serialization.MessageFormats.CompositeMetadata result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public akka.persistence.serialization.MessageFormats.CompositeMetadata buildPartial() {
          akka.persistence.serialization.MessageFormats.CompositeMetadata result = new akka.persistence.serialization.MessageFormats.CompositeMetadata(this);
          buildPartialRepeatedFields(result);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartialRepeatedFields(akka.persistence.serialization.MessageFormats.CompositeMetadata result) {
          if (payloadsBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0)) {
              payloads_ = java.util.Collections.unmodifiableList(payloads_);
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.payloads_ = payloads_;
          } else {
            result.payloads_ = payloadsBuilder_.build();
          }
        }
  
        private void buildPartial0(akka.persistence.serialization.MessageFormats.CompositeMetadata result) {
          int from_bitField0_ = bitField0_;
        }
  
        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(akka.protobufv3.internal.Message other) {
          if (other instanceof akka.persistence.serialization.MessageFormats.CompositeMetadata) {
            return mergeFrom((akka.persistence.serialization.MessageFormats.CompositeMetadata)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(akka.persistence.serialization.MessageFormats.CompositeMetadata other) {
          if (other == akka.persistence.serialization.MessageFormats.CompositeMetadata.getDefaultInstance()) return this;
          if (payloadsBuilder_ == null) {
            if (!other.payloads_.isEmpty()) {
              if (payloads_.isEmpty()) {
                payloads_ = other.payloads_;
                bitField0_ = (bitField0_ & ~0x00000001);
              } else {
                ensurePayloadsIsMutable();
                payloads_.addAll(other.payloads_);
              }
              onChanged();
            }
          } else {
            if (!other.payloads_.isEmpty()) {
              if (payloadsBuilder_.isEmpty()) {
                payloadsBuilder_.dispose();
                payloadsBuilder_ = null;
                payloads_ = other.payloads_;
                bitField0_ = (bitField0_ & ~0x00000001);
                payloadsBuilder_ =
                  akka.protobufv3.internal.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getPayloadsFieldBuilder() : null;
              } else {
                payloadsBuilder_.addAllMessages(other.payloads_);
              }
            }
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          for (int i = 0; i < getPayloadsCount(); i++) {
            if (!getPayloads(i).isInitialized()) {
              return false;
            }
          }
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            akka.protobufv3.internal.CodedInputStream input,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  akka.persistence.serialization.MessageFormats.PersistentPayload m =
                      input.readMessage(
                          akka.persistence.serialization.MessageFormats.PersistentPayload.PARSER,
                          extensionRegistry);
                  if (payloadsBuilder_ == null) {
                    ensurePayloadsIsMutable();
                    payloads_.add(m);
                  } else {
                    payloadsBuilder_.addMessage(m);
                  }
                  break;
                } // case 10
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;
  
        private java.util.List<akka.persistence.serialization.MessageFormats.PersistentPayload> payloads_ =
          java.util.Collections.emptyList();
        private void ensurePayloadsIsMutable() {
          if (!((bitField0_ & 0x00000001) != 0)) {
            payloads_ = new java.util.ArrayList<akka.persistence.serialization.MessageFormats.PersistentPayload>(payloads_);
            bitField0_ |= 0x00000001;
           }
        }
  
        private akka.protobufv3.internal.RepeatedFieldBuilderV3<
            akka.persistence.serialization.MessageFormats.PersistentPayload, akka.persistence.serialization.MessageFormats.PersistentPayload.Builder, akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder> payloadsBuilder_;
  
        /**
         * <code>repeated .PersistentPayload payloads = 1;</code>
         */
        public java.util.List<akka.persistence.serialization.MessageFormats.PersistentPayload> getPayloadsList() {
          if (payloadsBuilder_ == null) {
            return java.util.Collections.unmodifiableList(payloads_);
          } else {
            return payloadsBuilder_.getMessageList();
          }
        }
        /**
         * <code>repeated .PersistentPayload payloads = 1;</code>
         */
        public int getPayloadsCount() {
          if (payloadsBuilder_ == null) {
            return payloads_.size();
          } else {
            return payloadsBuilder_.getCount();
          }
        }
        /**
         * <code>repeated .PersistentPayload payloads = 1;</code>
         */
        public akka.persistence.serialization.MessageFormats.PersistentPayload getPayloads(int index) {
          if (payloadsBuilder_ == null) {
            return payloads_.get(index);
          } else {
            return payloadsBuilder_.getMessage(index);
          }
        }
        /**
         * <code>repeated .PersistentPayload payloads = 1;</code>
         */
        public Builder setPayloads(
            int index, akka.persistence.serialization.MessageFormats.PersistentPayload value) {
          if (payloadsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensurePayloadsIsMutable();
            payloads_.set(index, value);
            onChanged();
          } else {
            payloadsBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .PersistentPayload payloads = 1;</code>
         */
        public Builder setPayloads(
            int index, akka.persistence.serialization.MessageFormats.PersistentPayload.Builder builderForValue) {
          if (payloadsBuilder_ == null) {
            ensurePayloadsIsMutable();
            payloads_.set(index, builderForValue.build());
            onChanged();
          } else {
            payloadsBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .PersistentPayload payloads = 1;</code>
         */
        public Builder addPayloads(akka.persistence.serialization.MessageFormats.PersistentPayload value) {
          if (payloadsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensurePayloadsIsMutable();
            payloads_.add(value);
            onChanged();
          } else {
            payloadsBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <code>repeated .PersistentPayload payloads = 1;</code>
         */
        public Builder addPayloads(
            int index, akka.persistence.serialization.MessageFormats.PersistentPayload value) {
          if (payloadsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensurePayloadsIsMutable();
            payloads_.add(index, value);
            onChanged();
          } else {
            payloadsBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .PersistentPayload payloads = 1;</code>
         */
        public Builder addPayloads(
            akka.persistence.serialization.MessageFormats.PersistentPayload.Builder builderForValue) {
          if (payloadsBuilder_ == null) {
            ensurePayloadsIsMutable();
            payloads_.add(builderForValue.build());
            onChanged();
          } else {
            payloadsBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .PersistentPayload payloads = 1;</code>
         */
        public Builder addPayloads(
            int index, akka.persistence.serialization.MessageFormats.PersistentPayload.Builder builderForValue) {
          if (payloadsBuilder_ == null) {
            ensurePayloadsIsMutable();
            payloads_.add(index, builderForValue.build());
            onChanged();
          } else {
            payloadsBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .PersistentPayload payloads = 1;</code>
         */
        public Builder addAllPayloads(
            java.lang.Iterable<? extends akka.persistence.serialization.MessageFormats.PersistentPayload> values) {
          if (payloadsBuilder_ == null) {
            ensurePayloadsIsMutable();
            akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
                values, payloads_);
            onChanged();
          } else {
            payloadsBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <code>repeated .PersistentPayload payloads = 1;</code>
         */
        public Builder clearPayloads() {
          if (payloadsBuilder_ == null) {
            payloads_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
          } else {
            payloadsBuilder_.clear();
          }
          return this;
        }
        /**
         * <code>repeated .PersistentPayload payloads = 1;</code>
         */
        public Builder removePayloads(int index) {
          if (payloadsBuilder_ == null) {
            ensurePayloadsIsMutable();
            payloads_.remove(index);
            onChanged();
          } else {
            payloadsBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <code>repeated .PersistentPayload payloads = 1;</code>
         */
        public akka.persistence.serialization.MessageFormats.PersistentPayload.Builder getPayloadsBuilder(
            int index) {
          return getPayloadsFieldBuilder().getBuilder(index);
        }
        /**
         * <code>repeated .PersistentPayload payloads = 1;</code>
         */
        public akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder getPayloadsOrBuilder(
            int index) {
          if (payloadsBuilder_ == null) {
            return payloads_.get(index);  } else {
            return payloadsBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <code>repeated .PersistentPayload payloads = 1;</code>
         */
        public java.util.List<? extends akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder>
             getPayloadsOrBuilderList() {
          if (payloadsBuilder_ != null) {
            return payloadsBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(payloads_);
          }
        }
        /**
         * <code>repeated .PersistentPayload payloads = 1;</code>
         */
        public akka.persistence.serialization.MessageFormats.PersistentPayload.Builder addPayloadsBuilder() {
          return getPayloadsFieldBuilder().addBuilder(
              akka.persistence.serialization.MessageFormats.PersistentPayload.getDefaultInstance());
        }
        /**
         * <code>repeated .PersistentPayload payloads = 1;</code>
         */
        public akka.persistence.serialization.MessageFormats.PersistentPayload.Builder addPayloadsBuilder(
            int index) {
          return getPayloadsFieldBuilder().addBuilder(
              index, akka.persistence.serialization.MessageFormats.PersistentPayload.getDefaultInstance());
        }
        /**
         * <code>repeated .PersistentPayload payloads = 1;</code>
         */
        public java.util.List<akka.persistence.serialization.MessageFormats.PersistentPayload.Builder>
             getPayloadsBuilderList() {
          return getPayloadsFieldBuilder().getBuilderList();
        }
        private akka.protobufv3.internal.RepeatedFieldBuilderV3<
            akka.persistence.serialization.MessageFormats.PersistentPayload, akka.persistence.serialization.MessageFormats.PersistentPayload.Builder, akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder>
            getPayloadsFieldBuilder() {
          if (payloadsBuilder_ == null) {
            payloadsBuilder_ = new akka.protobufv3.internal.RepeatedFieldBuilderV3<
                akka.persistence.serialization.MessageFormats.PersistentPayload, akka.persistence.serialization.MessageFormats.PersistentPayload.Builder, akka.persistence.serialization.MessageFormats.PersistentPayloadOrBuilder>(
                    payloads_,
                    ((bitField0_ & 0x00000001) != 0),
                    getParentForChildren(),
                    isClean());
            payloads_ = null;
          }
          return payloadsBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }
  
        @java.lang.Override
        public final Builder mergeUnknownFields(
            final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
  
  
        // @@protoc_insertion_point(builder_scope:CompositeMetadata)
      }
  
      // @@protoc_insertion_point(class_scope:CompositeMetadata)
      private static final akka.persistence.serialization.MessageFormats.CompositeMetadata DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new akka.persistence.serialization.MessageFormats.CompositeMetadata();
      }
  
      public static akka.persistence.serialization.MessageFormats.CompositeMetadata getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<CompositeMetadata>
          PARSER = new akka.protobufv3.internal.AbstractParser<CompositeMetadata>() {
        @java.lang.Override
        public CompositeMetadata parsePartialFrom(
            akka.protobufv3.internal.CodedInputStream input,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws akka.protobufv3.internal.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (akka.protobufv3.internal.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new akka.protobufv3.internal.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      public static akka.protobufv3.internal.Parser<CompositeMetadata> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public akka.protobufv3.internal.Parser<CompositeMetadata> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public akka.persistence.serialization.MessageFormats.CompositeMetadata getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    private static final akka.protobufv3.internal.Descriptors.Descriptor
      internal_static_PersistentMessage_descriptor;
    private static final 
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internal_static_PersistentMessage_fieldAccessorTable;
    private static final akka.protobufv3.internal.Descriptors.Descriptor
      internal_static_PersistentPayload_descriptor;
    private static final 
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internal_static_PersistentPayload_fieldAccessorTable;
    private static final akka.protobufv3.internal.Descriptors.Descriptor
      internal_static_AtomicWrite_descriptor;
    private static final 
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internal_static_AtomicWrite_fieldAccessorTable;
    private static final akka.protobufv3.internal.Descriptors.Descriptor
      internal_static_AtLeastOnceDeliverySnapshot_descriptor;
    private static final 
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internal_static_AtLeastOnceDeliverySnapshot_fieldAccessorTable;
    private static final akka.protobufv3.internal.Descriptors.Descriptor
      internal_static_AtLeastOnceDeliverySnapshot_UnconfirmedDelivery_descriptor;
    private static final 
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internal_static_AtLeastOnceDeliverySnapshot_UnconfirmedDelivery_fieldAccessorTable;
    private static final akka.protobufv3.internal.Descriptors.Descriptor
      internal_static_PersistentStateChangeEvent_descriptor;
    private static final 
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internal_static_PersistentStateChangeEvent_fieldAccessorTable;
    private static final akka.protobufv3.internal.Descriptors.Descriptor
      internal_static_PersistentFSMSnapshot_descriptor;
    private static final 
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internal_static_PersistentFSMSnapshot_fieldAccessorTable;
    private static final akka.protobufv3.internal.Descriptors.Descriptor
      internal_static_CompositeMetadata_descriptor;
    private static final
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internal_static_CompositeMetadata_fieldAccessorTable;
  
    public static akka.protobufv3.internal.Descriptors.FileDescriptor
        getDescriptor() {
      return descriptor;
    }
    private static  akka.protobufv3.internal.Descriptors.FileDescriptor
        descriptor;
    static {
      java.lang.String[] descriptorData = {
        "\n\024MessageFormats.proto\"\343\001\n\021PersistentMes" +
        "sage\022#\n\007payload\030\001 \001(\0132\022.PersistentPayloa" +
        "d\022\022\n\nsequenceNr\030\002 \001(\003\022\025\n\rpersistenceId\030\003" +
        " \001(\t\022\017\n\007deleted\030\004 \001(\010\022\016\n\006sender\030\013 \001(\t\022\020\n" +
        "\010manifest\030\014 \001(\t\022\022\n\nwriterUuid\030\r \001(\t\022\021\n\tt" +
        "imestamp\030\016 \001(\022\022$\n\010metadata\030\017 \001(\0132\022.Persi" +
        "stentPayload\"S\n\021PersistentPayload\022\024\n\014ser" +
        "ializerId\030\001 \002(\005\022\017\n\007payload\030\002 \002(\014\022\027\n\017payl" +
        "oadManifest\030\003 \001(\014\"2\n\013AtomicWrite\022#\n\007payl" +
        "oad\030\001 \003(\0132\022.PersistentMessage\"\356\001\n\033AtLeas" +
        "tOnceDeliverySnapshot\022\031\n\021currentDelivery" +
        "Id\030\001 \002(\003\022O\n\025unconfirmedDeliveries\030\002 \003(\0132" +
        "0.AtLeastOnceDeliverySnapshot.Unconfirme" +
        "dDelivery\032c\n\023UnconfirmedDelivery\022\022\n\ndeli" +
        "veryId\030\001 \002(\003\022\023\n\013destination\030\002 \002(\t\022#\n\007pay" +
        "load\030\003 \002(\0132\022.PersistentPayload\"\\\n\032Persis" +
        "tentStateChangeEvent\022\027\n\017stateIdentifier\030" +
        "\001 \002(\t\022\017\n\007timeout\030\002 \001(\t\022\024\n\014timeoutNanos\030\003" +
        " \001(\003\"h\n\025PersistentFSMSnapshot\022\027\n\017stateId" +
        "entifier\030\001 \002(\t\022 \n\004data\030\002 \002(\0132\022.Persisten" +
        "tPayload\022\024\n\014timeoutNanos\030\003 \001(\003\"9\n\021Compos" +
        "iteMetadata\022$\n\010payloads\030\001 \003(\0132\022.Persiste" +
        "ntPayloadB\"\n\036akka.persistence.serializat" +
        "ionH\001"
      };
      descriptor = akka.protobufv3.internal.Descriptors.FileDescriptor
        .internalBuildGeneratedFileFrom(descriptorData,
          new akka.protobufv3.internal.Descriptors.FileDescriptor[] {
          });
      internal_static_PersistentMessage_descriptor =
        getDescriptor().getMessageTypes().get(0);
      internal_static_PersistentMessage_fieldAccessorTable = new
        akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
          internal_static_PersistentMessage_descriptor,
          new java.lang.String[] { "Payload", "SequenceNr", "PersistenceId", "Deleted", "Sender", "Manifest", "WriterUuid", "Timestamp", "Metadata", });
      internal_static_PersistentPayload_descriptor =
        getDescriptor().getMessageTypes().get(1);
      internal_static_PersistentPayload_fieldAccessorTable = new
        akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
          internal_static_PersistentPayload_descriptor,
          new java.lang.String[] { "SerializerId", "Payload", "PayloadManifest", });
      internal_static_AtomicWrite_descriptor =
        getDescriptor().getMessageTypes().get(2);
      internal_static_AtomicWrite_fieldAccessorTable = new
        akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
          internal_static_AtomicWrite_descriptor,
          new java.lang.String[] { "Payload", });
      internal_static_AtLeastOnceDeliverySnapshot_descriptor =
        getDescriptor().getMessageTypes().get(3);
      internal_static_AtLeastOnceDeliverySnapshot_fieldAccessorTable = new
        akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
          internal_static_AtLeastOnceDeliverySnapshot_descriptor,
          new java.lang.String[] { "CurrentDeliveryId", "UnconfirmedDeliveries", });
      internal_static_AtLeastOnceDeliverySnapshot_UnconfirmedDelivery_descriptor =
        internal_static_AtLeastOnceDeliverySnapshot_descriptor.getNestedTypes().get(0);
      internal_static_AtLeastOnceDeliverySnapshot_UnconfirmedDelivery_fieldAccessorTable = new
        akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
          internal_static_AtLeastOnceDeliverySnapshot_UnconfirmedDelivery_descriptor,
          new java.lang.String[] { "DeliveryId", "Destination", "Payload", });
      internal_static_PersistentStateChangeEvent_descriptor =
        getDescriptor().getMessageTypes().get(4);
      internal_static_PersistentStateChangeEvent_fieldAccessorTable = new
        akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
          internal_static_PersistentStateChangeEvent_descriptor,
          new java.lang.String[] { "StateIdentifier", "Timeout", "TimeoutNanos", });
      internal_static_PersistentFSMSnapshot_descriptor =
        getDescriptor().getMessageTypes().get(5);
      internal_static_PersistentFSMSnapshot_fieldAccessorTable = new
        akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
          internal_static_PersistentFSMSnapshot_descriptor,
          new java.lang.String[] { "StateIdentifier", "Data", "TimeoutNanos", });
      internal_static_CompositeMetadata_descriptor =
        getDescriptor().getMessageTypes().get(6);
      internal_static_CompositeMetadata_fieldAccessorTable = new
        akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
          internal_static_CompositeMetadata_descriptor,
          new java.lang.String[] { "Payloads", });
    }
  
    // @@protoc_insertion_point(outer_class_scope)
  }
  