/*
 * Copyright (C) 2018 Lightbend Inc. <https://www.lightbend.com>
 */

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: DistributedPubSubMessages.proto

package akka.cluster.pubsub.protobuf.msg;

public final class DistributedPubSubMessages {
  private DistributedPubSubMessages() {}
  public static void registerAllExtensions(
      akka.protobuf.ExtensionRegistry registry) {
  }
  public interface StatusOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // repeated .Status.Version versions = 1;
    /**
     * <code>repeated .Status.Version versions = 1;</code>
     */
    java.util.List<akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version> 
        getVersionsList();
    /**
     * <code>repeated .Status.Version versions = 1;</code>
     */
    akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version getVersions(int index);
    /**
     * <code>repeated .Status.Version versions = 1;</code>
     */
    int getVersionsCount();
    /**
     * <code>repeated .Status.Version versions = 1;</code>
     */
    java.util.List<? extends akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.VersionOrBuilder> 
        getVersionsOrBuilderList();
    /**
     * <code>repeated .Status.Version versions = 1;</code>
     */
    akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.VersionOrBuilder getVersionsOrBuilder(
        int index);

    // optional bool replyToStatus = 2;
    /**
     * <code>optional bool replyToStatus = 2;</code>
     */
    boolean hasReplyToStatus();
    /**
     * <code>optional bool replyToStatus = 2;</code>
     */
    boolean getReplyToStatus();
  }
  /**
   * Protobuf type {@code Status}
   */
  public static final class Status extends
      akka.protobuf.GeneratedMessage
      implements StatusOrBuilder {
    // Use Status.newBuilder() to construct.
    private Status(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Status(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Status defaultInstance;
    public static Status getDefaultInstance() {
      return defaultInstance;
    }

    public Status getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Status(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                versions_ = new java.util.ArrayList<akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version>();
                mutable_bitField0_ |= 0x00000001;
              }
              versions_.add(input.readMessage(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version.PARSER, extensionRegistry));
              break;
            }
            case 16: {
              bitField0_ |= 0x00000001;
              replyToStatus_ = input.readBool();
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          versions_ = java.util.Collections.unmodifiableList(versions_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Status_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Status_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.class, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Builder.class);
    }

    public static akka.protobuf.Parser<Status> PARSER =
        new akka.protobuf.AbstractParser<Status>() {
      public Status parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new Status(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<Status> getParserForType() {
      return PARSER;
    }

    public interface VersionOrBuilder
        extends akka.protobuf.MessageOrBuilder {

      // required .Address address = 1;
      /**
       * <code>required .Address address = 1;</code>
       */
      boolean hasAddress();
      /**
       * <code>required .Address address = 1;</code>
       */
      akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address getAddress();
      /**
       * <code>required .Address address = 1;</code>
       */
      akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.AddressOrBuilder getAddressOrBuilder();

      // required int64 timestamp = 2;
      /**
       * <code>required int64 timestamp = 2;</code>
       */
      boolean hasTimestamp();
      /**
       * <code>required int64 timestamp = 2;</code>
       */
      long getTimestamp();
    }
    /**
     * Protobuf type {@code Status.Version}
     */
    public static final class Version extends
        akka.protobuf.GeneratedMessage
        implements VersionOrBuilder {
      // Use Version.newBuilder() to construct.
      private Version(akka.protobuf.GeneratedMessage.Builder<?> builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private Version(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final Version defaultInstance;
      public static Version getDefaultInstance() {
        return defaultInstance;
      }

      public Version getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final akka.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final akka.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private Version(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        akka.protobuf.UnknownFieldSet.Builder unknownFields =
            akka.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 10: {
                akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = address_.toBuilder();
                }
                address_ = input.readMessage(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(address_);
                  address_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                timestamp_ = input.readInt64();
                break;
              }
            }
          }
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new akka.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Status_Version_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Status_Version_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version.class, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version.Builder.class);
      }

      public static akka.protobuf.Parser<Version> PARSER =
          new akka.protobuf.AbstractParser<Version>() {
        public Version parsePartialFrom(
            akka.protobuf.CodedInputStream input,
            akka.protobuf.ExtensionRegistryLite extensionRegistry)
            throws akka.protobuf.InvalidProtocolBufferException {
          return new Version(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public akka.protobuf.Parser<Version> getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      // required .Address address = 1;
      public static final int ADDRESS_FIELD_NUMBER = 1;
      private akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address address_;
      /**
       * <code>required .Address address = 1;</code>
       */
      public boolean hasAddress() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .Address address = 1;</code>
       */
      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address getAddress() {
        return address_;
      }
      /**
       * <code>required .Address address = 1;</code>
       */
      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.AddressOrBuilder getAddressOrBuilder() {
        return address_;
      }

      // required int64 timestamp = 2;
      public static final int TIMESTAMP_FIELD_NUMBER = 2;
      private long timestamp_;
      /**
       * <code>required int64 timestamp = 2;</code>
       */
      public boolean hasTimestamp() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int64 timestamp = 2;</code>
       */
      public long getTimestamp() {
        return timestamp_;
      }

      private void initFields() {
        address_ = akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.getDefaultInstance();
        timestamp_ = 0L;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        if (!hasAddress()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasTimestamp()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!getAddress().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(akka.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeMessage(1, address_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt64(2, timestamp_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += akka.protobuf.CodedOutputStream
            .computeMessageSize(1, address_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += akka.protobuf.CodedOutputStream
            .computeInt64Size(2, timestamp_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version parseFrom(
          akka.protobuf.ByteString data)
          throws akka.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version parseFrom(
          akka.protobuf.ByteString data,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version parseFrom(byte[] data)
          throws akka.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version parseFrom(
          byte[] data,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version parseFrom(
          java.io.InputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version parseDelimitedFrom(
          java.io.InputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version parseFrom(
          akka.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version parseFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code Status.Version}
       */
      public static final class Builder extends
          akka.protobuf.GeneratedMessage.Builder<Builder>
         implements akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.VersionOrBuilder {
        public static final akka.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Status_Version_descriptor;
        }

        protected akka.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Status_Version_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version.class, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version.Builder.class);
        }

        // Construct using akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            akka.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getAddressFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          if (addressBuilder_ == null) {
            address_ = akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.getDefaultInstance();
          } else {
            addressBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          timestamp_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public akka.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Status_Version_descriptor;
        }

        public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version getDefaultInstanceForType() {
          return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version.getDefaultInstance();
        }

        public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version build() {
          akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version buildPartial() {
          akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version result = new akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          if (addressBuilder_ == null) {
            result.address_ = address_;
          } else {
            result.address_ = addressBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.timestamp_ = timestamp_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(akka.protobuf.Message other) {
          if (other instanceof akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version) {
            return mergeFrom((akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version other) {
          if (other == akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version.getDefaultInstance()) return this;
          if (other.hasAddress()) {
            mergeAddress(other.getAddress());
          }
          if (other.hasTimestamp()) {
            setTimestamp(other.getTimestamp());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          if (!hasAddress()) {
            
            return false;
          }
          if (!hasTimestamp()) {
            
            return false;
          }
          if (!getAddress().isInitialized()) {
            
            return false;
          }
          return true;
        }

        public Builder mergeFrom(
            akka.protobuf.CodedInputStream input,
            akka.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (akka.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        // required .Address address = 1;
        private akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address address_ = akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.getDefaultInstance();
        private akka.protobuf.SingleFieldBuilder<
            akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.Builder, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.AddressOrBuilder> addressBuilder_;
        /**
         * <code>required .Address address = 1;</code>
         */
        public boolean hasAddress() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>required .Address address = 1;</code>
         */
        public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address getAddress() {
          if (addressBuilder_ == null) {
            return address_;
          } else {
            return addressBuilder_.getMessage();
          }
        }
        /**
         * <code>required .Address address = 1;</code>
         */
        public Builder setAddress(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address value) {
          if (addressBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            address_ = value;
            onChanged();
          } else {
            addressBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        /**
         * <code>required .Address address = 1;</code>
         */
        public Builder setAddress(
            akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.Builder builderForValue) {
          if (addressBuilder_ == null) {
            address_ = builderForValue.build();
            onChanged();
          } else {
            addressBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        /**
         * <code>required .Address address = 1;</code>
         */
        public Builder mergeAddress(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address value) {
          if (addressBuilder_ == null) {
            if (((bitField0_ & 0x00000001) == 0x00000001) &&
                address_ != akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.getDefaultInstance()) {
              address_ =
                akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.newBuilder(address_).mergeFrom(value).buildPartial();
            } else {
              address_ = value;
            }
            onChanged();
          } else {
            addressBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        /**
         * <code>required .Address address = 1;</code>
         */
        public Builder clearAddress() {
          if (addressBuilder_ == null) {
            address_ = akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.getDefaultInstance();
            onChanged();
          } else {
            addressBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }
        /**
         * <code>required .Address address = 1;</code>
         */
        public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.Builder getAddressBuilder() {
          bitField0_ |= 0x00000001;
          onChanged();
          return getAddressFieldBuilder().getBuilder();
        }
        /**
         * <code>required .Address address = 1;</code>
         */
        public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.AddressOrBuilder getAddressOrBuilder() {
          if (addressBuilder_ != null) {
            return addressBuilder_.getMessageOrBuilder();
          } else {
            return address_;
          }
        }
        /**
         * <code>required .Address address = 1;</code>
         */
        private akka.protobuf.SingleFieldBuilder<
            akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.Builder, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.AddressOrBuilder> 
            getAddressFieldBuilder() {
          if (addressBuilder_ == null) {
            addressBuilder_ = new akka.protobuf.SingleFieldBuilder<
                akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.Builder, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.AddressOrBuilder>(
                    address_,
                    getParentForChildren(),
                    isClean());
            address_ = null;
          }
          return addressBuilder_;
        }

        // required int64 timestamp = 2;
        private long timestamp_ ;
        /**
         * <code>required int64 timestamp = 2;</code>
         */
        public boolean hasTimestamp() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <code>required int64 timestamp = 2;</code>
         */
        public long getTimestamp() {
          return timestamp_;
        }
        /**
         * <code>required int64 timestamp = 2;</code>
         */
        public Builder setTimestamp(long value) {
          bitField0_ |= 0x00000002;
          timestamp_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>required int64 timestamp = 2;</code>
         */
        public Builder clearTimestamp() {
          bitField0_ = (bitField0_ & ~0x00000002);
          timestamp_ = 0L;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:Status.Version)
      }

      static {
        defaultInstance = new Version(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:Status.Version)
    }

    private int bitField0_;
    // repeated .Status.Version versions = 1;
    public static final int VERSIONS_FIELD_NUMBER = 1;
    private java.util.List<akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version> versions_;
    /**
     * <code>repeated .Status.Version versions = 1;</code>
     */
    public java.util.List<akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version> getVersionsList() {
      return versions_;
    }
    /**
     * <code>repeated .Status.Version versions = 1;</code>
     */
    public java.util.List<? extends akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.VersionOrBuilder> 
        getVersionsOrBuilderList() {
      return versions_;
    }
    /**
     * <code>repeated .Status.Version versions = 1;</code>
     */
    public int getVersionsCount() {
      return versions_.size();
    }
    /**
     * <code>repeated .Status.Version versions = 1;</code>
     */
    public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version getVersions(int index) {
      return versions_.get(index);
    }
    /**
     * <code>repeated .Status.Version versions = 1;</code>
     */
    public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.VersionOrBuilder getVersionsOrBuilder(
        int index) {
      return versions_.get(index);
    }

    // optional bool replyToStatus = 2;
    public static final int REPLYTOSTATUS_FIELD_NUMBER = 2;
    private boolean replyToStatus_;
    /**
     * <code>optional bool replyToStatus = 2;</code>
     */
    public boolean hasReplyToStatus() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional bool replyToStatus = 2;</code>
     */
    public boolean getReplyToStatus() {
      return replyToStatus_;
    }

    private void initFields() {
      versions_ = java.util.Collections.emptyList();
      replyToStatus_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      for (int i = 0; i < getVersionsCount(); i++) {
        if (!getVersions(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < versions_.size(); i++) {
        output.writeMessage(1, versions_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBool(2, replyToStatus_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < versions_.size(); i++) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(1, versions_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeBoolSize(2, replyToStatus_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code Status}
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.StatusOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Status_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Status_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.class, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Builder.class);
      }

      // Construct using akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getVersionsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (versionsBuilder_ == null) {
          versions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          versionsBuilder_.clear();
        }
        replyToStatus_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Status_descriptor;
      }

      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status getDefaultInstanceForType() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.getDefaultInstance();
      }

      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status build() {
        akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status buildPartial() {
        akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status result = new akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (versionsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            versions_ = java.util.Collections.unmodifiableList(versions_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.versions_ = versions_;
        } else {
          result.versions_ = versionsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000001;
        }
        result.replyToStatus_ = replyToStatus_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status) {
          return mergeFrom((akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status other) {
        if (other == akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.getDefaultInstance()) return this;
        if (versionsBuilder_ == null) {
          if (!other.versions_.isEmpty()) {
            if (versions_.isEmpty()) {
              versions_ = other.versions_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureVersionsIsMutable();
              versions_.addAll(other.versions_);
            }
            onChanged();
          }
        } else {
          if (!other.versions_.isEmpty()) {
            if (versionsBuilder_.isEmpty()) {
              versionsBuilder_.dispose();
              versionsBuilder_ = null;
              versions_ = other.versions_;
              bitField0_ = (bitField0_ & ~0x00000001);
              versionsBuilder_ = 
                akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getVersionsFieldBuilder() : null;
            } else {
              versionsBuilder_.addAllMessages(other.versions_);
            }
          }
        }
        if (other.hasReplyToStatus()) {
          setReplyToStatus(other.getReplyToStatus());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        for (int i = 0; i < getVersionsCount(); i++) {
          if (!getVersions(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // repeated .Status.Version versions = 1;
      private java.util.List<akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version> versions_ =
        java.util.Collections.emptyList();
      private void ensureVersionsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          versions_ = new java.util.ArrayList<akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version>(versions_);
          bitField0_ |= 0x00000001;
         }
      }

      private akka.protobuf.RepeatedFieldBuilder<
          akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version.Builder, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.VersionOrBuilder> versionsBuilder_;

      /**
       * <code>repeated .Status.Version versions = 1;</code>
       */
      public java.util.List<akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version> getVersionsList() {
        if (versionsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(versions_);
        } else {
          return versionsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .Status.Version versions = 1;</code>
       */
      public int getVersionsCount() {
        if (versionsBuilder_ == null) {
          return versions_.size();
        } else {
          return versionsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .Status.Version versions = 1;</code>
       */
      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version getVersions(int index) {
        if (versionsBuilder_ == null) {
          return versions_.get(index);
        } else {
          return versionsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .Status.Version versions = 1;</code>
       */
      public Builder setVersions(
          int index, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version value) {
        if (versionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureVersionsIsMutable();
          versions_.set(index, value);
          onChanged();
        } else {
          versionsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Status.Version versions = 1;</code>
       */
      public Builder setVersions(
          int index, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version.Builder builderForValue) {
        if (versionsBuilder_ == null) {
          ensureVersionsIsMutable();
          versions_.set(index, builderForValue.build());
          onChanged();
        } else {
          versionsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Status.Version versions = 1;</code>
       */
      public Builder addVersions(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version value) {
        if (versionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureVersionsIsMutable();
          versions_.add(value);
          onChanged();
        } else {
          versionsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .Status.Version versions = 1;</code>
       */
      public Builder addVersions(
          int index, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version value) {
        if (versionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureVersionsIsMutable();
          versions_.add(index, value);
          onChanged();
        } else {
          versionsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Status.Version versions = 1;</code>
       */
      public Builder addVersions(
          akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version.Builder builderForValue) {
        if (versionsBuilder_ == null) {
          ensureVersionsIsMutable();
          versions_.add(builderForValue.build());
          onChanged();
        } else {
          versionsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Status.Version versions = 1;</code>
       */
      public Builder addVersions(
          int index, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version.Builder builderForValue) {
        if (versionsBuilder_ == null) {
          ensureVersionsIsMutable();
          versions_.add(index, builderForValue.build());
          onChanged();
        } else {
          versionsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Status.Version versions = 1;</code>
       */
      public Builder addAllVersions(
          java.lang.Iterable<? extends akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version> values) {
        if (versionsBuilder_ == null) {
          ensureVersionsIsMutable();
          super.addAll(values, versions_);
          onChanged();
        } else {
          versionsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .Status.Version versions = 1;</code>
       */
      public Builder clearVersions() {
        if (versionsBuilder_ == null) {
          versions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          versionsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .Status.Version versions = 1;</code>
       */
      public Builder removeVersions(int index) {
        if (versionsBuilder_ == null) {
          ensureVersionsIsMutable();
          versions_.remove(index);
          onChanged();
        } else {
          versionsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .Status.Version versions = 1;</code>
       */
      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version.Builder getVersionsBuilder(
          int index) {
        return getVersionsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .Status.Version versions = 1;</code>
       */
      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.VersionOrBuilder getVersionsOrBuilder(
          int index) {
        if (versionsBuilder_ == null) {
          return versions_.get(index);  } else {
          return versionsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .Status.Version versions = 1;</code>
       */
      public java.util.List<? extends akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.VersionOrBuilder> 
           getVersionsOrBuilderList() {
        if (versionsBuilder_ != null) {
          return versionsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(versions_);
        }
      }
      /**
       * <code>repeated .Status.Version versions = 1;</code>
       */
      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version.Builder addVersionsBuilder() {
        return getVersionsFieldBuilder().addBuilder(
            akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version.getDefaultInstance());
      }
      /**
       * <code>repeated .Status.Version versions = 1;</code>
       */
      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version.Builder addVersionsBuilder(
          int index) {
        return getVersionsFieldBuilder().addBuilder(
            index, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version.getDefaultInstance());
      }
      /**
       * <code>repeated .Status.Version versions = 1;</code>
       */
      public java.util.List<akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version.Builder> 
           getVersionsBuilderList() {
        return getVersionsFieldBuilder().getBuilderList();
      }
      private akka.protobuf.RepeatedFieldBuilder<
          akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version.Builder, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.VersionOrBuilder> 
          getVersionsFieldBuilder() {
        if (versionsBuilder_ == null) {
          versionsBuilder_ = new akka.protobuf.RepeatedFieldBuilder<
              akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.Version.Builder, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Status.VersionOrBuilder>(
                  versions_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          versions_ = null;
        }
        return versionsBuilder_;
      }

      // optional bool replyToStatus = 2;
      private boolean replyToStatus_ ;
      /**
       * <code>optional bool replyToStatus = 2;</code>
       */
      public boolean hasReplyToStatus() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional bool replyToStatus = 2;</code>
       */
      public boolean getReplyToStatus() {
        return replyToStatus_;
      }
      /**
       * <code>optional bool replyToStatus = 2;</code>
       */
      public Builder setReplyToStatus(boolean value) {
        bitField0_ |= 0x00000002;
        replyToStatus_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool replyToStatus = 2;</code>
       */
      public Builder clearReplyToStatus() {
        bitField0_ = (bitField0_ & ~0x00000002);
        replyToStatus_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:Status)
    }

    static {
      defaultInstance = new Status(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:Status)
  }

  public interface DeltaOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // repeated .Delta.Bucket buckets = 1;
    /**
     * <code>repeated .Delta.Bucket buckets = 1;</code>
     */
    java.util.List<akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket> 
        getBucketsList();
    /**
     * <code>repeated .Delta.Bucket buckets = 1;</code>
     */
    akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket getBuckets(int index);
    /**
     * <code>repeated .Delta.Bucket buckets = 1;</code>
     */
    int getBucketsCount();
    /**
     * <code>repeated .Delta.Bucket buckets = 1;</code>
     */
    java.util.List<? extends akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.BucketOrBuilder> 
        getBucketsOrBuilderList();
    /**
     * <code>repeated .Delta.Bucket buckets = 1;</code>
     */
    akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.BucketOrBuilder getBucketsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code Delta}
   */
  public static final class Delta extends
      akka.protobuf.GeneratedMessage
      implements DeltaOrBuilder {
    // Use Delta.newBuilder() to construct.
    private Delta(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Delta(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Delta defaultInstance;
    public static Delta getDefaultInstance() {
      return defaultInstance;
    }

    public Delta getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Delta(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                buckets_ = new java.util.ArrayList<akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket>();
                mutable_bitField0_ |= 0x00000001;
              }
              buckets_.add(input.readMessage(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          buckets_ = java.util.Collections.unmodifiableList(buckets_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Delta_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Delta_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.class, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Builder.class);
    }

    public static akka.protobuf.Parser<Delta> PARSER =
        new akka.protobuf.AbstractParser<Delta>() {
      public Delta parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new Delta(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<Delta> getParserForType() {
      return PARSER;
    }

    public interface EntryOrBuilder
        extends akka.protobuf.MessageOrBuilder {

      // required string key = 1;
      /**
       * <code>required string key = 1;</code>
       */
      boolean hasKey();
      /**
       * <code>required string key = 1;</code>
       */
      java.lang.String getKey();
      /**
       * <code>required string key = 1;</code>
       */
      akka.protobuf.ByteString
          getKeyBytes();

      // required int64 version = 2;
      /**
       * <code>required int64 version = 2;</code>
       */
      boolean hasVersion();
      /**
       * <code>required int64 version = 2;</code>
       */
      long getVersion();

      // optional string ref = 3;
      /**
       * <code>optional string ref = 3;</code>
       */
      boolean hasRef();
      /**
       * <code>optional string ref = 3;</code>
       */
      java.lang.String getRef();
      /**
       * <code>optional string ref = 3;</code>
       */
      akka.protobuf.ByteString
          getRefBytes();
    }
    /**
     * Protobuf type {@code Delta.Entry}
     */
    public static final class Entry extends
        akka.protobuf.GeneratedMessage
        implements EntryOrBuilder {
      // Use Entry.newBuilder() to construct.
      private Entry(akka.protobuf.GeneratedMessage.Builder<?> builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private Entry(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final Entry defaultInstance;
      public static Entry getDefaultInstance() {
        return defaultInstance;
      }

      public Entry getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final akka.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final akka.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private Entry(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        akka.protobuf.UnknownFieldSet.Builder unknownFields =
            akka.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 10: {
                bitField0_ |= 0x00000001;
                key_ = input.readBytes();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                version_ = input.readInt64();
                break;
              }
              case 26: {
                bitField0_ |= 0x00000004;
                ref_ = input.readBytes();
                break;
              }
            }
          }
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new akka.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Delta_Entry_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Delta_Entry_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry.class, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry.Builder.class);
      }

      public static akka.protobuf.Parser<Entry> PARSER =
          new akka.protobuf.AbstractParser<Entry>() {
        public Entry parsePartialFrom(
            akka.protobuf.CodedInputStream input,
            akka.protobuf.ExtensionRegistryLite extensionRegistry)
            throws akka.protobuf.InvalidProtocolBufferException {
          return new Entry(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public akka.protobuf.Parser<Entry> getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      // required string key = 1;
      public static final int KEY_FIELD_NUMBER = 1;
      private java.lang.Object key_;
      /**
       * <code>required string key = 1;</code>
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required string key = 1;</code>
       */
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          akka.protobuf.ByteString bs = 
              (akka.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            key_ = s;
          }
          return s;
        }
      }
      /**
       * <code>required string key = 1;</code>
       */
      public akka.protobuf.ByteString
          getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof java.lang.String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }

      // required int64 version = 2;
      public static final int VERSION_FIELD_NUMBER = 2;
      private long version_;
      /**
       * <code>required int64 version = 2;</code>
       */
      public boolean hasVersion() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int64 version = 2;</code>
       */
      public long getVersion() {
        return version_;
      }

      // optional string ref = 3;
      public static final int REF_FIELD_NUMBER = 3;
      private java.lang.Object ref_;
      /**
       * <code>optional string ref = 3;</code>
       */
      public boolean hasRef() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional string ref = 3;</code>
       */
      public java.lang.String getRef() {
        java.lang.Object ref = ref_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          akka.protobuf.ByteString bs = 
              (akka.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            ref_ = s;
          }
          return s;
        }
      }
      /**
       * <code>optional string ref = 3;</code>
       */
      public akka.protobuf.ByteString
          getRefBytes() {
        java.lang.Object ref = ref_;
        if (ref instanceof java.lang.String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          ref_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }

      private void initFields() {
        key_ = "";
        version_ = 0L;
        ref_ = "";
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        if (!hasKey()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasVersion()) {
          memoizedIsInitialized = 0;
          return false;
        }
        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(akka.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBytes(1, getKeyBytes());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt64(2, version_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeBytes(3, getRefBytes());
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += akka.protobuf.CodedOutputStream
            .computeBytesSize(1, getKeyBytes());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += akka.protobuf.CodedOutputStream
            .computeInt64Size(2, version_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += akka.protobuf.CodedOutputStream
            .computeBytesSize(3, getRefBytes());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry parseFrom(
          akka.protobuf.ByteString data)
          throws akka.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry parseFrom(
          akka.protobuf.ByteString data,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry parseFrom(byte[] data)
          throws akka.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry parseFrom(
          byte[] data,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry parseFrom(
          java.io.InputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry parseDelimitedFrom(
          java.io.InputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry parseFrom(
          akka.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry parseFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code Delta.Entry}
       */
      public static final class Builder extends
          akka.protobuf.GeneratedMessage.Builder<Builder>
         implements akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.EntryOrBuilder {
        public static final akka.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Delta_Entry_descriptor;
        }

        protected akka.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Delta_Entry_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry.class, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry.Builder.class);
        }

        // Construct using akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            akka.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          key_ = "";
          bitField0_ = (bitField0_ & ~0x00000001);
          version_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000002);
          ref_ = "";
          bitField0_ = (bitField0_ & ~0x00000004);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public akka.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Delta_Entry_descriptor;
        }

        public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry getDefaultInstanceForType() {
          return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry.getDefaultInstance();
        }

        public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry build() {
          akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry buildPartial() {
          akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry result = new akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.key_ = key_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.version_ = version_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.ref_ = ref_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(akka.protobuf.Message other) {
          if (other instanceof akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry) {
            return mergeFrom((akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry other) {
          if (other == akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry.getDefaultInstance()) return this;
          if (other.hasKey()) {
            bitField0_ |= 0x00000001;
            key_ = other.key_;
            onChanged();
          }
          if (other.hasVersion()) {
            setVersion(other.getVersion());
          }
          if (other.hasRef()) {
            bitField0_ |= 0x00000004;
            ref_ = other.ref_;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          if (!hasKey()) {
            
            return false;
          }
          if (!hasVersion()) {
            
            return false;
          }
          return true;
        }

        public Builder mergeFrom(
            akka.protobuf.CodedInputStream input,
            akka.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (akka.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        // required string key = 1;
        private java.lang.Object key_ = "";
        /**
         * <code>required string key = 1;</code>
         */
        public boolean hasKey() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>required string key = 1;</code>
         */
        public java.lang.String getKey() {
          java.lang.Object ref = key_;
          if (!(ref instanceof java.lang.String)) {
            java.lang.String s = ((akka.protobuf.ByteString) ref)
                .toStringUtf8();
            key_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>required string key = 1;</code>
         */
        public akka.protobuf.ByteString
            getKeyBytes() {
          java.lang.Object ref = key_;
          if (ref instanceof String) {
            akka.protobuf.ByteString b = 
                akka.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            key_ = b;
            return b;
          } else {
            return (akka.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>required string key = 1;</code>
         */
        public Builder setKey(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          key_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>required string key = 1;</code>
         */
        public Builder clearKey() {
          bitField0_ = (bitField0_ & ~0x00000001);
          key_ = getDefaultInstance().getKey();
          onChanged();
          return this;
        }
        /**
         * <code>required string key = 1;</code>
         */
        public Builder setKeyBytes(
            akka.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          key_ = value;
          onChanged();
          return this;
        }

        // required int64 version = 2;
        private long version_ ;
        /**
         * <code>required int64 version = 2;</code>
         */
        public boolean hasVersion() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <code>required int64 version = 2;</code>
         */
        public long getVersion() {
          return version_;
        }
        /**
         * <code>required int64 version = 2;</code>
         */
        public Builder setVersion(long value) {
          bitField0_ |= 0x00000002;
          version_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>required int64 version = 2;</code>
         */
        public Builder clearVersion() {
          bitField0_ = (bitField0_ & ~0x00000002);
          version_ = 0L;
          onChanged();
          return this;
        }

        // optional string ref = 3;
        private java.lang.Object ref_ = "";
        /**
         * <code>optional string ref = 3;</code>
         */
        public boolean hasRef() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * <code>optional string ref = 3;</code>
         */
        public java.lang.String getRef() {
          java.lang.Object ref = ref_;
          if (!(ref instanceof java.lang.String)) {
            java.lang.String s = ((akka.protobuf.ByteString) ref)
                .toStringUtf8();
            ref_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>optional string ref = 3;</code>
         */
        public akka.protobuf.ByteString
            getRefBytes() {
          java.lang.Object ref = ref_;
          if (ref instanceof String) {
            akka.protobuf.ByteString b = 
                akka.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            ref_ = b;
            return b;
          } else {
            return (akka.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>optional string ref = 3;</code>
         */
        public Builder setRef(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
          ref_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional string ref = 3;</code>
         */
        public Builder clearRef() {
          bitField0_ = (bitField0_ & ~0x00000004);
          ref_ = getDefaultInstance().getRef();
          onChanged();
          return this;
        }
        /**
         * <code>optional string ref = 3;</code>
         */
        public Builder setRefBytes(
            akka.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
          ref_ = value;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:Delta.Entry)
      }

      static {
        defaultInstance = new Entry(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:Delta.Entry)
    }

    public interface BucketOrBuilder
        extends akka.protobuf.MessageOrBuilder {

      // required .Address owner = 1;
      /**
       * <code>required .Address owner = 1;</code>
       */
      boolean hasOwner();
      /**
       * <code>required .Address owner = 1;</code>
       */
      akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address getOwner();
      /**
       * <code>required .Address owner = 1;</code>
       */
      akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.AddressOrBuilder getOwnerOrBuilder();

      // required int64 version = 2;
      /**
       * <code>required int64 version = 2;</code>
       */
      boolean hasVersion();
      /**
       * <code>required int64 version = 2;</code>
       */
      long getVersion();

      // repeated .Delta.Entry content = 3;
      /**
       * <code>repeated .Delta.Entry content = 3;</code>
       */
      java.util.List<akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry> 
          getContentList();
      /**
       * <code>repeated .Delta.Entry content = 3;</code>
       */
      akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry getContent(int index);
      /**
       * <code>repeated .Delta.Entry content = 3;</code>
       */
      int getContentCount();
      /**
       * <code>repeated .Delta.Entry content = 3;</code>
       */
      java.util.List<? extends akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.EntryOrBuilder> 
          getContentOrBuilderList();
      /**
       * <code>repeated .Delta.Entry content = 3;</code>
       */
      akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.EntryOrBuilder getContentOrBuilder(
          int index);
    }
    /**
     * Protobuf type {@code Delta.Bucket}
     */
    public static final class Bucket extends
        akka.protobuf.GeneratedMessage
        implements BucketOrBuilder {
      // Use Bucket.newBuilder() to construct.
      private Bucket(akka.protobuf.GeneratedMessage.Builder<?> builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private Bucket(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final Bucket defaultInstance;
      public static Bucket getDefaultInstance() {
        return defaultInstance;
      }

      public Bucket getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final akka.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final akka.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private Bucket(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        akka.protobuf.UnknownFieldSet.Builder unknownFields =
            akka.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 10: {
                akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = owner_.toBuilder();
                }
                owner_ = input.readMessage(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(owner_);
                  owner_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                version_ = input.readInt64();
                break;
              }
              case 26: {
                if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                  content_ = new java.util.ArrayList<akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry>();
                  mutable_bitField0_ |= 0x00000004;
                }
                content_.add(input.readMessage(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry.PARSER, extensionRegistry));
                break;
              }
            }
          }
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new akka.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
            content_ = java.util.Collections.unmodifiableList(content_);
          }
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Delta_Bucket_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Delta_Bucket_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket.class, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket.Builder.class);
      }

      public static akka.protobuf.Parser<Bucket> PARSER =
          new akka.protobuf.AbstractParser<Bucket>() {
        public Bucket parsePartialFrom(
            akka.protobuf.CodedInputStream input,
            akka.protobuf.ExtensionRegistryLite extensionRegistry)
            throws akka.protobuf.InvalidProtocolBufferException {
          return new Bucket(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public akka.protobuf.Parser<Bucket> getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      // required .Address owner = 1;
      public static final int OWNER_FIELD_NUMBER = 1;
      private akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address owner_;
      /**
       * <code>required .Address owner = 1;</code>
       */
      public boolean hasOwner() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .Address owner = 1;</code>
       */
      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address getOwner() {
        return owner_;
      }
      /**
       * <code>required .Address owner = 1;</code>
       */
      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.AddressOrBuilder getOwnerOrBuilder() {
        return owner_;
      }

      // required int64 version = 2;
      public static final int VERSION_FIELD_NUMBER = 2;
      private long version_;
      /**
       * <code>required int64 version = 2;</code>
       */
      public boolean hasVersion() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int64 version = 2;</code>
       */
      public long getVersion() {
        return version_;
      }

      // repeated .Delta.Entry content = 3;
      public static final int CONTENT_FIELD_NUMBER = 3;
      private java.util.List<akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry> content_;
      /**
       * <code>repeated .Delta.Entry content = 3;</code>
       */
      public java.util.List<akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry> getContentList() {
        return content_;
      }
      /**
       * <code>repeated .Delta.Entry content = 3;</code>
       */
      public java.util.List<? extends akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.EntryOrBuilder> 
          getContentOrBuilderList() {
        return content_;
      }
      /**
       * <code>repeated .Delta.Entry content = 3;</code>
       */
      public int getContentCount() {
        return content_.size();
      }
      /**
       * <code>repeated .Delta.Entry content = 3;</code>
       */
      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry getContent(int index) {
        return content_.get(index);
      }
      /**
       * <code>repeated .Delta.Entry content = 3;</code>
       */
      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.EntryOrBuilder getContentOrBuilder(
          int index) {
        return content_.get(index);
      }

      private void initFields() {
        owner_ = akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.getDefaultInstance();
        version_ = 0L;
        content_ = java.util.Collections.emptyList();
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        if (!hasOwner()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasVersion()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!getOwner().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
        for (int i = 0; i < getContentCount(); i++) {
          if (!getContent(i).isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(akka.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeMessage(1, owner_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt64(2, version_);
        }
        for (int i = 0; i < content_.size(); i++) {
          output.writeMessage(3, content_.get(i));
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += akka.protobuf.CodedOutputStream
            .computeMessageSize(1, owner_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += akka.protobuf.CodedOutputStream
            .computeInt64Size(2, version_);
        }
        for (int i = 0; i < content_.size(); i++) {
          size += akka.protobuf.CodedOutputStream
            .computeMessageSize(3, content_.get(i));
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket parseFrom(
          akka.protobuf.ByteString data)
          throws akka.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket parseFrom(
          akka.protobuf.ByteString data,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket parseFrom(byte[] data)
          throws akka.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket parseFrom(
          byte[] data,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket parseFrom(
          java.io.InputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket parseDelimitedFrom(
          java.io.InputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket parseFrom(
          akka.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket parseFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code Delta.Bucket}
       */
      public static final class Builder extends
          akka.protobuf.GeneratedMessage.Builder<Builder>
         implements akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.BucketOrBuilder {
        public static final akka.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Delta_Bucket_descriptor;
        }

        protected akka.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Delta_Bucket_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket.class, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket.Builder.class);
        }

        // Construct using akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            akka.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getOwnerFieldBuilder();
            getContentFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          if (ownerBuilder_ == null) {
            owner_ = akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.getDefaultInstance();
          } else {
            ownerBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          version_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000002);
          if (contentBuilder_ == null) {
            content_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            contentBuilder_.clear();
          }
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public akka.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Delta_Bucket_descriptor;
        }

        public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket getDefaultInstanceForType() {
          return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket.getDefaultInstance();
        }

        public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket build() {
          akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket buildPartial() {
          akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket result = new akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          if (ownerBuilder_ == null) {
            result.owner_ = owner_;
          } else {
            result.owner_ = ownerBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.version_ = version_;
          if (contentBuilder_ == null) {
            if (((bitField0_ & 0x00000004) == 0x00000004)) {
              content_ = java.util.Collections.unmodifiableList(content_);
              bitField0_ = (bitField0_ & ~0x00000004);
            }
            result.content_ = content_;
          } else {
            result.content_ = contentBuilder_.build();
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(akka.protobuf.Message other) {
          if (other instanceof akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket) {
            return mergeFrom((akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket other) {
          if (other == akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket.getDefaultInstance()) return this;
          if (other.hasOwner()) {
            mergeOwner(other.getOwner());
          }
          if (other.hasVersion()) {
            setVersion(other.getVersion());
          }
          if (contentBuilder_ == null) {
            if (!other.content_.isEmpty()) {
              if (content_.isEmpty()) {
                content_ = other.content_;
                bitField0_ = (bitField0_ & ~0x00000004);
              } else {
                ensureContentIsMutable();
                content_.addAll(other.content_);
              }
              onChanged();
            }
          } else {
            if (!other.content_.isEmpty()) {
              if (contentBuilder_.isEmpty()) {
                contentBuilder_.dispose();
                contentBuilder_ = null;
                content_ = other.content_;
                bitField0_ = (bitField0_ & ~0x00000004);
                contentBuilder_ = 
                  akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                     getContentFieldBuilder() : null;
              } else {
                contentBuilder_.addAllMessages(other.content_);
              }
            }
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          if (!hasOwner()) {
            
            return false;
          }
          if (!hasVersion()) {
            
            return false;
          }
          if (!getOwner().isInitialized()) {
            
            return false;
          }
          for (int i = 0; i < getContentCount(); i++) {
            if (!getContent(i).isInitialized()) {
              
              return false;
            }
          }
          return true;
        }

        public Builder mergeFrom(
            akka.protobuf.CodedInputStream input,
            akka.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (akka.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        // required .Address owner = 1;
        private akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address owner_ = akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.getDefaultInstance();
        private akka.protobuf.SingleFieldBuilder<
            akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.Builder, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.AddressOrBuilder> ownerBuilder_;
        /**
         * <code>required .Address owner = 1;</code>
         */
        public boolean hasOwner() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>required .Address owner = 1;</code>
         */
        public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address getOwner() {
          if (ownerBuilder_ == null) {
            return owner_;
          } else {
            return ownerBuilder_.getMessage();
          }
        }
        /**
         * <code>required .Address owner = 1;</code>
         */
        public Builder setOwner(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address value) {
          if (ownerBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            owner_ = value;
            onChanged();
          } else {
            ownerBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        /**
         * <code>required .Address owner = 1;</code>
         */
        public Builder setOwner(
            akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.Builder builderForValue) {
          if (ownerBuilder_ == null) {
            owner_ = builderForValue.build();
            onChanged();
          } else {
            ownerBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        /**
         * <code>required .Address owner = 1;</code>
         */
        public Builder mergeOwner(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address value) {
          if (ownerBuilder_ == null) {
            if (((bitField0_ & 0x00000001) == 0x00000001) &&
                owner_ != akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.getDefaultInstance()) {
              owner_ =
                akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.newBuilder(owner_).mergeFrom(value).buildPartial();
            } else {
              owner_ = value;
            }
            onChanged();
          } else {
            ownerBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        /**
         * <code>required .Address owner = 1;</code>
         */
        public Builder clearOwner() {
          if (ownerBuilder_ == null) {
            owner_ = akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.getDefaultInstance();
            onChanged();
          } else {
            ownerBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }
        /**
         * <code>required .Address owner = 1;</code>
         */
        public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.Builder getOwnerBuilder() {
          bitField0_ |= 0x00000001;
          onChanged();
          return getOwnerFieldBuilder().getBuilder();
        }
        /**
         * <code>required .Address owner = 1;</code>
         */
        public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.AddressOrBuilder getOwnerOrBuilder() {
          if (ownerBuilder_ != null) {
            return ownerBuilder_.getMessageOrBuilder();
          } else {
            return owner_;
          }
        }
        /**
         * <code>required .Address owner = 1;</code>
         */
        private akka.protobuf.SingleFieldBuilder<
            akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.Builder, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.AddressOrBuilder> 
            getOwnerFieldBuilder() {
          if (ownerBuilder_ == null) {
            ownerBuilder_ = new akka.protobuf.SingleFieldBuilder<
                akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.Builder, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.AddressOrBuilder>(
                    owner_,
                    getParentForChildren(),
                    isClean());
            owner_ = null;
          }
          return ownerBuilder_;
        }

        // required int64 version = 2;
        private long version_ ;
        /**
         * <code>required int64 version = 2;</code>
         */
        public boolean hasVersion() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <code>required int64 version = 2;</code>
         */
        public long getVersion() {
          return version_;
        }
        /**
         * <code>required int64 version = 2;</code>
         */
        public Builder setVersion(long value) {
          bitField0_ |= 0x00000002;
          version_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>required int64 version = 2;</code>
         */
        public Builder clearVersion() {
          bitField0_ = (bitField0_ & ~0x00000002);
          version_ = 0L;
          onChanged();
          return this;
        }

        // repeated .Delta.Entry content = 3;
        private java.util.List<akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry> content_ =
          java.util.Collections.emptyList();
        private void ensureContentIsMutable() {
          if (!((bitField0_ & 0x00000004) == 0x00000004)) {
            content_ = new java.util.ArrayList<akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry>(content_);
            bitField0_ |= 0x00000004;
           }
        }

        private akka.protobuf.RepeatedFieldBuilder<
            akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry.Builder, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.EntryOrBuilder> contentBuilder_;

        /**
         * <code>repeated .Delta.Entry content = 3;</code>
         */
        public java.util.List<akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry> getContentList() {
          if (contentBuilder_ == null) {
            return java.util.Collections.unmodifiableList(content_);
          } else {
            return contentBuilder_.getMessageList();
          }
        }
        /**
         * <code>repeated .Delta.Entry content = 3;</code>
         */
        public int getContentCount() {
          if (contentBuilder_ == null) {
            return content_.size();
          } else {
            return contentBuilder_.getCount();
          }
        }
        /**
         * <code>repeated .Delta.Entry content = 3;</code>
         */
        public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry getContent(int index) {
          if (contentBuilder_ == null) {
            return content_.get(index);
          } else {
            return contentBuilder_.getMessage(index);
          }
        }
        /**
         * <code>repeated .Delta.Entry content = 3;</code>
         */
        public Builder setContent(
            int index, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry value) {
          if (contentBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureContentIsMutable();
            content_.set(index, value);
            onChanged();
          } else {
            contentBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .Delta.Entry content = 3;</code>
         */
        public Builder setContent(
            int index, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry.Builder builderForValue) {
          if (contentBuilder_ == null) {
            ensureContentIsMutable();
            content_.set(index, builderForValue.build());
            onChanged();
          } else {
            contentBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .Delta.Entry content = 3;</code>
         */
        public Builder addContent(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry value) {
          if (contentBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureContentIsMutable();
            content_.add(value);
            onChanged();
          } else {
            contentBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <code>repeated .Delta.Entry content = 3;</code>
         */
        public Builder addContent(
            int index, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry value) {
          if (contentBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureContentIsMutable();
            content_.add(index, value);
            onChanged();
          } else {
            contentBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .Delta.Entry content = 3;</code>
         */
        public Builder addContent(
            akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry.Builder builderForValue) {
          if (contentBuilder_ == null) {
            ensureContentIsMutable();
            content_.add(builderForValue.build());
            onChanged();
          } else {
            contentBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .Delta.Entry content = 3;</code>
         */
        public Builder addContent(
            int index, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry.Builder builderForValue) {
          if (contentBuilder_ == null) {
            ensureContentIsMutable();
            content_.add(index, builderForValue.build());
            onChanged();
          } else {
            contentBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .Delta.Entry content = 3;</code>
         */
        public Builder addAllContent(
            java.lang.Iterable<? extends akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry> values) {
          if (contentBuilder_ == null) {
            ensureContentIsMutable();
            super.addAll(values, content_);
            onChanged();
          } else {
            contentBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <code>repeated .Delta.Entry content = 3;</code>
         */
        public Builder clearContent() {
          if (contentBuilder_ == null) {
            content_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000004);
            onChanged();
          } else {
            contentBuilder_.clear();
          }
          return this;
        }
        /**
         * <code>repeated .Delta.Entry content = 3;</code>
         */
        public Builder removeContent(int index) {
          if (contentBuilder_ == null) {
            ensureContentIsMutable();
            content_.remove(index);
            onChanged();
          } else {
            contentBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <code>repeated .Delta.Entry content = 3;</code>
         */
        public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry.Builder getContentBuilder(
            int index) {
          return getContentFieldBuilder().getBuilder(index);
        }
        /**
         * <code>repeated .Delta.Entry content = 3;</code>
         */
        public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.EntryOrBuilder getContentOrBuilder(
            int index) {
          if (contentBuilder_ == null) {
            return content_.get(index);  } else {
            return contentBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <code>repeated .Delta.Entry content = 3;</code>
         */
        public java.util.List<? extends akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.EntryOrBuilder> 
             getContentOrBuilderList() {
          if (contentBuilder_ != null) {
            return contentBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(content_);
          }
        }
        /**
         * <code>repeated .Delta.Entry content = 3;</code>
         */
        public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry.Builder addContentBuilder() {
          return getContentFieldBuilder().addBuilder(
              akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry.getDefaultInstance());
        }
        /**
         * <code>repeated .Delta.Entry content = 3;</code>
         */
        public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry.Builder addContentBuilder(
            int index) {
          return getContentFieldBuilder().addBuilder(
              index, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry.getDefaultInstance());
        }
        /**
         * <code>repeated .Delta.Entry content = 3;</code>
         */
        public java.util.List<akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry.Builder> 
             getContentBuilderList() {
          return getContentFieldBuilder().getBuilderList();
        }
        private akka.protobuf.RepeatedFieldBuilder<
            akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry.Builder, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.EntryOrBuilder> 
            getContentFieldBuilder() {
          if (contentBuilder_ == null) {
            contentBuilder_ = new akka.protobuf.RepeatedFieldBuilder<
                akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Entry.Builder, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.EntryOrBuilder>(
                    content_,
                    ((bitField0_ & 0x00000004) == 0x00000004),
                    getParentForChildren(),
                    isClean());
            content_ = null;
          }
          return contentBuilder_;
        }

        // @@protoc_insertion_point(builder_scope:Delta.Bucket)
      }

      static {
        defaultInstance = new Bucket(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:Delta.Bucket)
    }

    // repeated .Delta.Bucket buckets = 1;
    public static final int BUCKETS_FIELD_NUMBER = 1;
    private java.util.List<akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket> buckets_;
    /**
     * <code>repeated .Delta.Bucket buckets = 1;</code>
     */
    public java.util.List<akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket> getBucketsList() {
      return buckets_;
    }
    /**
     * <code>repeated .Delta.Bucket buckets = 1;</code>
     */
    public java.util.List<? extends akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.BucketOrBuilder> 
        getBucketsOrBuilderList() {
      return buckets_;
    }
    /**
     * <code>repeated .Delta.Bucket buckets = 1;</code>
     */
    public int getBucketsCount() {
      return buckets_.size();
    }
    /**
     * <code>repeated .Delta.Bucket buckets = 1;</code>
     */
    public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket getBuckets(int index) {
      return buckets_.get(index);
    }
    /**
     * <code>repeated .Delta.Bucket buckets = 1;</code>
     */
    public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.BucketOrBuilder getBucketsOrBuilder(
        int index) {
      return buckets_.get(index);
    }

    private void initFields() {
      buckets_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      for (int i = 0; i < getBucketsCount(); i++) {
        if (!getBuckets(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < buckets_.size(); i++) {
        output.writeMessage(1, buckets_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < buckets_.size(); i++) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(1, buckets_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code Delta}
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.DeltaOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Delta_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Delta_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.class, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Builder.class);
      }

      // Construct using akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getBucketsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (bucketsBuilder_ == null) {
          buckets_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          bucketsBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Delta_descriptor;
      }

      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta getDefaultInstanceForType() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.getDefaultInstance();
      }

      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta build() {
        akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta buildPartial() {
        akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta result = new akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta(this);
        int from_bitField0_ = bitField0_;
        if (bucketsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            buckets_ = java.util.Collections.unmodifiableList(buckets_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.buckets_ = buckets_;
        } else {
          result.buckets_ = bucketsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta) {
          return mergeFrom((akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta other) {
        if (other == akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.getDefaultInstance()) return this;
        if (bucketsBuilder_ == null) {
          if (!other.buckets_.isEmpty()) {
            if (buckets_.isEmpty()) {
              buckets_ = other.buckets_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureBucketsIsMutable();
              buckets_.addAll(other.buckets_);
            }
            onChanged();
          }
        } else {
          if (!other.buckets_.isEmpty()) {
            if (bucketsBuilder_.isEmpty()) {
              bucketsBuilder_.dispose();
              bucketsBuilder_ = null;
              buckets_ = other.buckets_;
              bitField0_ = (bitField0_ & ~0x00000001);
              bucketsBuilder_ = 
                akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getBucketsFieldBuilder() : null;
            } else {
              bucketsBuilder_.addAllMessages(other.buckets_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        for (int i = 0; i < getBucketsCount(); i++) {
          if (!getBuckets(i).isInitialized()) {
            
            return false;
          }
        }
        return true;
      }

      public Builder mergeFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // repeated .Delta.Bucket buckets = 1;
      private java.util.List<akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket> buckets_ =
        java.util.Collections.emptyList();
      private void ensureBucketsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          buckets_ = new java.util.ArrayList<akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket>(buckets_);
          bitField0_ |= 0x00000001;
         }
      }

      private akka.protobuf.RepeatedFieldBuilder<
          akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket.Builder, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.BucketOrBuilder> bucketsBuilder_;

      /**
       * <code>repeated .Delta.Bucket buckets = 1;</code>
       */
      public java.util.List<akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket> getBucketsList() {
        if (bucketsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(buckets_);
        } else {
          return bucketsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .Delta.Bucket buckets = 1;</code>
       */
      public int getBucketsCount() {
        if (bucketsBuilder_ == null) {
          return buckets_.size();
        } else {
          return bucketsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .Delta.Bucket buckets = 1;</code>
       */
      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket getBuckets(int index) {
        if (bucketsBuilder_ == null) {
          return buckets_.get(index);
        } else {
          return bucketsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .Delta.Bucket buckets = 1;</code>
       */
      public Builder setBuckets(
          int index, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket value) {
        if (bucketsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureBucketsIsMutable();
          buckets_.set(index, value);
          onChanged();
        } else {
          bucketsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Delta.Bucket buckets = 1;</code>
       */
      public Builder setBuckets(
          int index, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket.Builder builderForValue) {
        if (bucketsBuilder_ == null) {
          ensureBucketsIsMutable();
          buckets_.set(index, builderForValue.build());
          onChanged();
        } else {
          bucketsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Delta.Bucket buckets = 1;</code>
       */
      public Builder addBuckets(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket value) {
        if (bucketsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureBucketsIsMutable();
          buckets_.add(value);
          onChanged();
        } else {
          bucketsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .Delta.Bucket buckets = 1;</code>
       */
      public Builder addBuckets(
          int index, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket value) {
        if (bucketsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureBucketsIsMutable();
          buckets_.add(index, value);
          onChanged();
        } else {
          bucketsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Delta.Bucket buckets = 1;</code>
       */
      public Builder addBuckets(
          akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket.Builder builderForValue) {
        if (bucketsBuilder_ == null) {
          ensureBucketsIsMutable();
          buckets_.add(builderForValue.build());
          onChanged();
        } else {
          bucketsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Delta.Bucket buckets = 1;</code>
       */
      public Builder addBuckets(
          int index, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket.Builder builderForValue) {
        if (bucketsBuilder_ == null) {
          ensureBucketsIsMutable();
          buckets_.add(index, builderForValue.build());
          onChanged();
        } else {
          bucketsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Delta.Bucket buckets = 1;</code>
       */
      public Builder addAllBuckets(
          java.lang.Iterable<? extends akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket> values) {
        if (bucketsBuilder_ == null) {
          ensureBucketsIsMutable();
          super.addAll(values, buckets_);
          onChanged();
        } else {
          bucketsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .Delta.Bucket buckets = 1;</code>
       */
      public Builder clearBuckets() {
        if (bucketsBuilder_ == null) {
          buckets_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          bucketsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .Delta.Bucket buckets = 1;</code>
       */
      public Builder removeBuckets(int index) {
        if (bucketsBuilder_ == null) {
          ensureBucketsIsMutable();
          buckets_.remove(index);
          onChanged();
        } else {
          bucketsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .Delta.Bucket buckets = 1;</code>
       */
      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket.Builder getBucketsBuilder(
          int index) {
        return getBucketsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .Delta.Bucket buckets = 1;</code>
       */
      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.BucketOrBuilder getBucketsOrBuilder(
          int index) {
        if (bucketsBuilder_ == null) {
          return buckets_.get(index);  } else {
          return bucketsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .Delta.Bucket buckets = 1;</code>
       */
      public java.util.List<? extends akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.BucketOrBuilder> 
           getBucketsOrBuilderList() {
        if (bucketsBuilder_ != null) {
          return bucketsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(buckets_);
        }
      }
      /**
       * <code>repeated .Delta.Bucket buckets = 1;</code>
       */
      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket.Builder addBucketsBuilder() {
        return getBucketsFieldBuilder().addBuilder(
            akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket.getDefaultInstance());
      }
      /**
       * <code>repeated .Delta.Bucket buckets = 1;</code>
       */
      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket.Builder addBucketsBuilder(
          int index) {
        return getBucketsFieldBuilder().addBuilder(
            index, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket.getDefaultInstance());
      }
      /**
       * <code>repeated .Delta.Bucket buckets = 1;</code>
       */
      public java.util.List<akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket.Builder> 
           getBucketsBuilderList() {
        return getBucketsFieldBuilder().getBuilderList();
      }
      private akka.protobuf.RepeatedFieldBuilder<
          akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket.Builder, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.BucketOrBuilder> 
          getBucketsFieldBuilder() {
        if (bucketsBuilder_ == null) {
          bucketsBuilder_ = new akka.protobuf.RepeatedFieldBuilder<
              akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.Bucket.Builder, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Delta.BucketOrBuilder>(
                  buckets_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          buckets_ = null;
        }
        return bucketsBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:Delta)
    }

    static {
      defaultInstance = new Delta(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:Delta)
  }

  public interface AddressOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required string system = 1;
    /**
     * <code>required string system = 1;</code>
     */
    boolean hasSystem();
    /**
     * <code>required string system = 1;</code>
     */
    java.lang.String getSystem();
    /**
     * <code>required string system = 1;</code>
     */
    akka.protobuf.ByteString
        getSystemBytes();

    // required string hostname = 2;
    /**
     * <code>required string hostname = 2;</code>
     */
    boolean hasHostname();
    /**
     * <code>required string hostname = 2;</code>
     */
    java.lang.String getHostname();
    /**
     * <code>required string hostname = 2;</code>
     */
    akka.protobuf.ByteString
        getHostnameBytes();

    // required uint32 port = 3;
    /**
     * <code>required uint32 port = 3;</code>
     */
    boolean hasPort();
    /**
     * <code>required uint32 port = 3;</code>
     */
    int getPort();

    // optional string protocol = 4;
    /**
     * <code>optional string protocol = 4;</code>
     */
    boolean hasProtocol();
    /**
     * <code>optional string protocol = 4;</code>
     */
    java.lang.String getProtocol();
    /**
     * <code>optional string protocol = 4;</code>
     */
    akka.protobuf.ByteString
        getProtocolBytes();
  }
  /**
   * Protobuf type {@code Address}
   *
   * <pre>
   **
   * Defines a remote address.
   * </pre>
   */
  public static final class Address extends
      akka.protobuf.GeneratedMessage
      implements AddressOrBuilder {
    // Use Address.newBuilder() to construct.
    private Address(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Address(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Address defaultInstance;
    public static Address getDefaultInstance() {
      return defaultInstance;
    }

    public Address getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Address(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              system_ = input.readBytes();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              hostname_ = input.readBytes();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              port_ = input.readUInt32();
              break;
            }
            case 34: {
              bitField0_ |= 0x00000008;
              protocol_ = input.readBytes();
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Address_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Address_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.class, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.Builder.class);
    }

    public static akka.protobuf.Parser<Address> PARSER =
        new akka.protobuf.AbstractParser<Address>() {
      public Address parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new Address(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<Address> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required string system = 1;
    public static final int SYSTEM_FIELD_NUMBER = 1;
    private java.lang.Object system_;
    /**
     * <code>required string system = 1;</code>
     */
    public boolean hasSystem() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required string system = 1;</code>
     */
    public java.lang.String getSystem() {
      java.lang.Object ref = system_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          system_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string system = 1;</code>
     */
    public akka.protobuf.ByteString
        getSystemBytes() {
      java.lang.Object ref = system_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        system_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

    // required string hostname = 2;
    public static final int HOSTNAME_FIELD_NUMBER = 2;
    private java.lang.Object hostname_;
    /**
     * <code>required string hostname = 2;</code>
     */
    public boolean hasHostname() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required string hostname = 2;</code>
     */
    public java.lang.String getHostname() {
      java.lang.Object ref = hostname_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          hostname_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string hostname = 2;</code>
     */
    public akka.protobuf.ByteString
        getHostnameBytes() {
      java.lang.Object ref = hostname_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        hostname_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

    // required uint32 port = 3;
    public static final int PORT_FIELD_NUMBER = 3;
    private int port_;
    /**
     * <code>required uint32 port = 3;</code>
     */
    public boolean hasPort() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required uint32 port = 3;</code>
     */
    public int getPort() {
      return port_;
    }

    // optional string protocol = 4;
    public static final int PROTOCOL_FIELD_NUMBER = 4;
    private java.lang.Object protocol_;
    /**
     * <code>optional string protocol = 4;</code>
     */
    public boolean hasProtocol() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>optional string protocol = 4;</code>
     */
    public java.lang.String getProtocol() {
      java.lang.Object ref = protocol_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          protocol_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string protocol = 4;</code>
     */
    public akka.protobuf.ByteString
        getProtocolBytes() {
      java.lang.Object ref = protocol_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        protocol_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      system_ = "";
      hostname_ = "";
      port_ = 0;
      protocol_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasSystem()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasHostname()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPort()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getSystemBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getHostnameBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, port_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBytes(4, getProtocolBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(1, getSystemBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(2, getHostnameBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += akka.protobuf.CodedOutputStream
          .computeUInt32Size(3, port_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(4, getProtocolBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code Address}
     *
     * <pre>
     **
     * Defines a remote address.
     * </pre>
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.AddressOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Address_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Address_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.class, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.Builder.class);
      }

      // Construct using akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        system_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        hostname_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        port_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        protocol_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Address_descriptor;
      }

      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address getDefaultInstanceForType() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.getDefaultInstance();
      }

      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address build() {
        akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address buildPartial() {
        akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address result = new akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.system_ = system_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.hostname_ = hostname_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.port_ = port_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.protocol_ = protocol_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address) {
          return mergeFrom((akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address other) {
        if (other == akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address.getDefaultInstance()) return this;
        if (other.hasSystem()) {
          bitField0_ |= 0x00000001;
          system_ = other.system_;
          onChanged();
        }
        if (other.hasHostname()) {
          bitField0_ |= 0x00000002;
          hostname_ = other.hostname_;
          onChanged();
        }
        if (other.hasPort()) {
          setPort(other.getPort());
        }
        if (other.hasProtocol()) {
          bitField0_ |= 0x00000008;
          protocol_ = other.protocol_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasSystem()) {
          
          return false;
        }
        if (!hasHostname()) {
          
          return false;
        }
        if (!hasPort()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Address) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required string system = 1;
      private java.lang.Object system_ = "";
      /**
       * <code>required string system = 1;</code>
       */
      public boolean hasSystem() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required string system = 1;</code>
       */
      public java.lang.String getSystem() {
        java.lang.Object ref = system_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          system_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string system = 1;</code>
       */
      public akka.protobuf.ByteString
          getSystemBytes() {
        java.lang.Object ref = system_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          system_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string system = 1;</code>
       */
      public Builder setSystem(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        system_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string system = 1;</code>
       */
      public Builder clearSystem() {
        bitField0_ = (bitField0_ & ~0x00000001);
        system_ = getDefaultInstance().getSystem();
        onChanged();
        return this;
      }
      /**
       * <code>required string system = 1;</code>
       */
      public Builder setSystemBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        system_ = value;
        onChanged();
        return this;
      }

      // required string hostname = 2;
      private java.lang.Object hostname_ = "";
      /**
       * <code>required string hostname = 2;</code>
       */
      public boolean hasHostname() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required string hostname = 2;</code>
       */
      public java.lang.String getHostname() {
        java.lang.Object ref = hostname_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          hostname_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string hostname = 2;</code>
       */
      public akka.protobuf.ByteString
          getHostnameBytes() {
        java.lang.Object ref = hostname_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          hostname_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string hostname = 2;</code>
       */
      public Builder setHostname(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        hostname_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string hostname = 2;</code>
       */
      public Builder clearHostname() {
        bitField0_ = (bitField0_ & ~0x00000002);
        hostname_ = getDefaultInstance().getHostname();
        onChanged();
        return this;
      }
      /**
       * <code>required string hostname = 2;</code>
       */
      public Builder setHostnameBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        hostname_ = value;
        onChanged();
        return this;
      }

      // required uint32 port = 3;
      private int port_ ;
      /**
       * <code>required uint32 port = 3;</code>
       */
      public boolean hasPort() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required uint32 port = 3;</code>
       */
      public int getPort() {
        return port_;
      }
      /**
       * <code>required uint32 port = 3;</code>
       */
      public Builder setPort(int value) {
        bitField0_ |= 0x00000004;
        port_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 port = 3;</code>
       */
      public Builder clearPort() {
        bitField0_ = (bitField0_ & ~0x00000004);
        port_ = 0;
        onChanged();
        return this;
      }

      // optional string protocol = 4;
      private java.lang.Object protocol_ = "";
      /**
       * <code>optional string protocol = 4;</code>
       */
      public boolean hasProtocol() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional string protocol = 4;</code>
       */
      public java.lang.String getProtocol() {
        java.lang.Object ref = protocol_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          protocol_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string protocol = 4;</code>
       */
      public akka.protobuf.ByteString
          getProtocolBytes() {
        java.lang.Object ref = protocol_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          protocol_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string protocol = 4;</code>
       */
      public Builder setProtocol(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        protocol_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string protocol = 4;</code>
       */
      public Builder clearProtocol() {
        bitField0_ = (bitField0_ & ~0x00000008);
        protocol_ = getDefaultInstance().getProtocol();
        onChanged();
        return this;
      }
      /**
       * <code>optional string protocol = 4;</code>
       */
      public Builder setProtocolBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        protocol_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:Address)
    }

    static {
      defaultInstance = new Address(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:Address)
  }

  public interface SendOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required string path = 1;
    /**
     * <code>required string path = 1;</code>
     */
    boolean hasPath();
    /**
     * <code>required string path = 1;</code>
     */
    java.lang.String getPath();
    /**
     * <code>required string path = 1;</code>
     */
    akka.protobuf.ByteString
        getPathBytes();

    // required bool localAffinity = 2;
    /**
     * <code>required bool localAffinity = 2;</code>
     */
    boolean hasLocalAffinity();
    /**
     * <code>required bool localAffinity = 2;</code>
     */
    boolean getLocalAffinity();

    // required .Payload payload = 3;
    /**
     * <code>required .Payload payload = 3;</code>
     */
    boolean hasPayload();
    /**
     * <code>required .Payload payload = 3;</code>
     */
    akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload getPayload();
    /**
     * <code>required .Payload payload = 3;</code>
     */
    akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.PayloadOrBuilder getPayloadOrBuilder();
  }
  /**
   * Protobuf type {@code Send}
   *
   * <pre>
   **
   * Send normally local, but it is also used by the ClusterClient.
   * </pre>
   */
  public static final class Send extends
      akka.protobuf.GeneratedMessage
      implements SendOrBuilder {
    // Use Send.newBuilder() to construct.
    private Send(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Send(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Send defaultInstance;
    public static Send getDefaultInstance() {
      return defaultInstance;
    }

    public Send getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Send(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              path_ = input.readBytes();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              localAffinity_ = input.readBool();
              break;
            }
            case 26: {
              akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                subBuilder = payload_.toBuilder();
              }
              payload_ = input.readMessage(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(payload_);
                payload_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Send_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Send_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Send.class, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Send.Builder.class);
    }

    public static akka.protobuf.Parser<Send> PARSER =
        new akka.protobuf.AbstractParser<Send>() {
      public Send parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new Send(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<Send> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required string path = 1;
    public static final int PATH_FIELD_NUMBER = 1;
    private java.lang.Object path_;
    /**
     * <code>required string path = 1;</code>
     */
    public boolean hasPath() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required string path = 1;</code>
     */
    public java.lang.String getPath() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          path_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string path = 1;</code>
     */
    public akka.protobuf.ByteString
        getPathBytes() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        path_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

    // required bool localAffinity = 2;
    public static final int LOCALAFFINITY_FIELD_NUMBER = 2;
    private boolean localAffinity_;
    /**
     * <code>required bool localAffinity = 2;</code>
     */
    public boolean hasLocalAffinity() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required bool localAffinity = 2;</code>
     */
    public boolean getLocalAffinity() {
      return localAffinity_;
    }

    // required .Payload payload = 3;
    public static final int PAYLOAD_FIELD_NUMBER = 3;
    private akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload payload_;
    /**
     * <code>required .Payload payload = 3;</code>
     */
    public boolean hasPayload() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required .Payload payload = 3;</code>
     */
    public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload getPayload() {
      return payload_;
    }
    /**
     * <code>required .Payload payload = 3;</code>
     */
    public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.PayloadOrBuilder getPayloadOrBuilder() {
      return payload_;
    }

    private void initFields() {
      path_ = "";
      localAffinity_ = false;
      payload_ = akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasPath()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLocalAffinity()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPayload()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getPayload().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getPathBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, localAffinity_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, payload_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(1, getPathBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeBoolSize(2, localAffinity_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(3, payload_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Send parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Send parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Send parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Send parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Send parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Send parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Send parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Send parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Send parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Send parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Send prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code Send}
     *
     * <pre>
     **
     * Send normally local, but it is also used by the ClusterClient.
     * </pre>
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Send_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Send_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Send.class, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Send.Builder.class);
      }

      // Construct using akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Send.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getPayloadFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        path_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        localAffinity_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (payloadBuilder_ == null) {
          payload_ = akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.getDefaultInstance();
        } else {
          payloadBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Send_descriptor;
      }

      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Send getDefaultInstanceForType() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Send.getDefaultInstance();
      }

      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Send build() {
        akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Send result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Send buildPartial() {
        akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Send result = new akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Send(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.path_ = path_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.localAffinity_ = localAffinity_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (payloadBuilder_ == null) {
          result.payload_ = payload_;
        } else {
          result.payload_ = payloadBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Send) {
          return mergeFrom((akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Send)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Send other) {
        if (other == akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Send.getDefaultInstance()) return this;
        if (other.hasPath()) {
          bitField0_ |= 0x00000001;
          path_ = other.path_;
          onChanged();
        }
        if (other.hasLocalAffinity()) {
          setLocalAffinity(other.getLocalAffinity());
        }
        if (other.hasPayload()) {
          mergePayload(other.getPayload());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPath()) {
          
          return false;
        }
        if (!hasLocalAffinity()) {
          
          return false;
        }
        if (!hasPayload()) {
          
          return false;
        }
        if (!getPayload().isInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Send parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Send) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required string path = 1;
      private java.lang.Object path_ = "";
      /**
       * <code>required string path = 1;</code>
       */
      public boolean hasPath() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required string path = 1;</code>
       */
      public java.lang.String getPath() {
        java.lang.Object ref = path_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          path_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string path = 1;</code>
       */
      public akka.protobuf.ByteString
          getPathBytes() {
        java.lang.Object ref = path_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          path_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string path = 1;</code>
       */
      public Builder setPath(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        path_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string path = 1;</code>
       */
      public Builder clearPath() {
        bitField0_ = (bitField0_ & ~0x00000001);
        path_ = getDefaultInstance().getPath();
        onChanged();
        return this;
      }
      /**
       * <code>required string path = 1;</code>
       */
      public Builder setPathBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        path_ = value;
        onChanged();
        return this;
      }

      // required bool localAffinity = 2;
      private boolean localAffinity_ ;
      /**
       * <code>required bool localAffinity = 2;</code>
       */
      public boolean hasLocalAffinity() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required bool localAffinity = 2;</code>
       */
      public boolean getLocalAffinity() {
        return localAffinity_;
      }
      /**
       * <code>required bool localAffinity = 2;</code>
       */
      public Builder setLocalAffinity(boolean value) {
        bitField0_ |= 0x00000002;
        localAffinity_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required bool localAffinity = 2;</code>
       */
      public Builder clearLocalAffinity() {
        bitField0_ = (bitField0_ & ~0x00000002);
        localAffinity_ = false;
        onChanged();
        return this;
      }

      // required .Payload payload = 3;
      private akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload payload_ = akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.Builder, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.PayloadOrBuilder> payloadBuilder_;
      /**
       * <code>required .Payload payload = 3;</code>
       */
      public boolean hasPayload() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required .Payload payload = 3;</code>
       */
      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload getPayload() {
        if (payloadBuilder_ == null) {
          return payload_;
        } else {
          return payloadBuilder_.getMessage();
        }
      }
      /**
       * <code>required .Payload payload = 3;</code>
       */
      public Builder setPayload(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload value) {
        if (payloadBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          payloadBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>required .Payload payload = 3;</code>
       */
      public Builder setPayload(
          akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.Builder builderForValue) {
        if (payloadBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          payloadBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>required .Payload payload = 3;</code>
       */
      public Builder mergePayload(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload value) {
        if (payloadBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004) &&
              payload_ != akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.getDefaultInstance()) {
            payload_ =
              akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.newBuilder(payload_).mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          payloadBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>required .Payload payload = 3;</code>
       */
      public Builder clearPayload() {
        if (payloadBuilder_ == null) {
          payload_ = akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.getDefaultInstance();
          onChanged();
        } else {
          payloadBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * <code>required .Payload payload = 3;</code>
       */
      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.Builder getPayloadBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getPayloadFieldBuilder().getBuilder();
      }
      /**
       * <code>required .Payload payload = 3;</code>
       */
      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.PayloadOrBuilder getPayloadOrBuilder() {
        if (payloadBuilder_ != null) {
          return payloadBuilder_.getMessageOrBuilder();
        } else {
          return payload_;
        }
      }
      /**
       * <code>required .Payload payload = 3;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.Builder, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.PayloadOrBuilder> 
          getPayloadFieldBuilder() {
        if (payloadBuilder_ == null) {
          payloadBuilder_ = new akka.protobuf.SingleFieldBuilder<
              akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.Builder, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.PayloadOrBuilder>(
                  payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        return payloadBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:Send)
    }

    static {
      defaultInstance = new Send(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:Send)
  }

  public interface SendToAllOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required string path = 1;
    /**
     * <code>required string path = 1;</code>
     */
    boolean hasPath();
    /**
     * <code>required string path = 1;</code>
     */
    java.lang.String getPath();
    /**
     * <code>required string path = 1;</code>
     */
    akka.protobuf.ByteString
        getPathBytes();

    // required bool allButSelf = 2;
    /**
     * <code>required bool allButSelf = 2;</code>
     */
    boolean hasAllButSelf();
    /**
     * <code>required bool allButSelf = 2;</code>
     */
    boolean getAllButSelf();

    // required .Payload payload = 3;
    /**
     * <code>required .Payload payload = 3;</code>
     */
    boolean hasPayload();
    /**
     * <code>required .Payload payload = 3;</code>
     */
    akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload getPayload();
    /**
     * <code>required .Payload payload = 3;</code>
     */
    akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.PayloadOrBuilder getPayloadOrBuilder();
  }
  /**
   * Protobuf type {@code SendToAll}
   *
   * <pre>
   **
   * SendToAll normally local, but it is also used by the ClusterClient.
   * </pre>
   */
  public static final class SendToAll extends
      akka.protobuf.GeneratedMessage
      implements SendToAllOrBuilder {
    // Use SendToAll.newBuilder() to construct.
    private SendToAll(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private SendToAll(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final SendToAll defaultInstance;
    public static SendToAll getDefaultInstance() {
      return defaultInstance;
    }

    public SendToAll getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private SendToAll(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              path_ = input.readBytes();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              allButSelf_ = input.readBool();
              break;
            }
            case 26: {
              akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) == 0x00000004)) {
                subBuilder = payload_.toBuilder();
              }
              payload_ = input.readMessage(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(payload_);
                payload_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_SendToAll_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_SendToAll_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToAll.class, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToAll.Builder.class);
    }

    public static akka.protobuf.Parser<SendToAll> PARSER =
        new akka.protobuf.AbstractParser<SendToAll>() {
      public SendToAll parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new SendToAll(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<SendToAll> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required string path = 1;
    public static final int PATH_FIELD_NUMBER = 1;
    private java.lang.Object path_;
    /**
     * <code>required string path = 1;</code>
     */
    public boolean hasPath() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required string path = 1;</code>
     */
    public java.lang.String getPath() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          path_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string path = 1;</code>
     */
    public akka.protobuf.ByteString
        getPathBytes() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        path_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

    // required bool allButSelf = 2;
    public static final int ALLBUTSELF_FIELD_NUMBER = 2;
    private boolean allButSelf_;
    /**
     * <code>required bool allButSelf = 2;</code>
     */
    public boolean hasAllButSelf() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required bool allButSelf = 2;</code>
     */
    public boolean getAllButSelf() {
      return allButSelf_;
    }

    // required .Payload payload = 3;
    public static final int PAYLOAD_FIELD_NUMBER = 3;
    private akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload payload_;
    /**
     * <code>required .Payload payload = 3;</code>
     */
    public boolean hasPayload() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required .Payload payload = 3;</code>
     */
    public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload getPayload() {
      return payload_;
    }
    /**
     * <code>required .Payload payload = 3;</code>
     */
    public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.PayloadOrBuilder getPayloadOrBuilder() {
      return payload_;
    }

    private void initFields() {
      path_ = "";
      allButSelf_ = false;
      payload_ = akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasPath()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasAllButSelf()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPayload()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getPayload().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getPathBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, allButSelf_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, payload_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(1, getPathBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeBoolSize(2, allButSelf_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(3, payload_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToAll parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToAll parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToAll parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToAll parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToAll parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToAll parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToAll parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToAll parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToAll parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToAll parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToAll prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code SendToAll}
     *
     * <pre>
     **
     * SendToAll normally local, but it is also used by the ClusterClient.
     * </pre>
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToAllOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_SendToAll_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_SendToAll_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToAll.class, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToAll.Builder.class);
      }

      // Construct using akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToAll.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getPayloadFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        path_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        allButSelf_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (payloadBuilder_ == null) {
          payload_ = akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.getDefaultInstance();
        } else {
          payloadBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_SendToAll_descriptor;
      }

      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToAll getDefaultInstanceForType() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToAll.getDefaultInstance();
      }

      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToAll build() {
        akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToAll result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToAll buildPartial() {
        akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToAll result = new akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToAll(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.path_ = path_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.allButSelf_ = allButSelf_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (payloadBuilder_ == null) {
          result.payload_ = payload_;
        } else {
          result.payload_ = payloadBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToAll) {
          return mergeFrom((akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToAll)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToAll other) {
        if (other == akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToAll.getDefaultInstance()) return this;
        if (other.hasPath()) {
          bitField0_ |= 0x00000001;
          path_ = other.path_;
          onChanged();
        }
        if (other.hasAllButSelf()) {
          setAllButSelf(other.getAllButSelf());
        }
        if (other.hasPayload()) {
          mergePayload(other.getPayload());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPath()) {
          
          return false;
        }
        if (!hasAllButSelf()) {
          
          return false;
        }
        if (!hasPayload()) {
          
          return false;
        }
        if (!getPayload().isInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToAll parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToAll) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required string path = 1;
      private java.lang.Object path_ = "";
      /**
       * <code>required string path = 1;</code>
       */
      public boolean hasPath() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required string path = 1;</code>
       */
      public java.lang.String getPath() {
        java.lang.Object ref = path_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          path_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string path = 1;</code>
       */
      public akka.protobuf.ByteString
          getPathBytes() {
        java.lang.Object ref = path_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          path_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string path = 1;</code>
       */
      public Builder setPath(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        path_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string path = 1;</code>
       */
      public Builder clearPath() {
        bitField0_ = (bitField0_ & ~0x00000001);
        path_ = getDefaultInstance().getPath();
        onChanged();
        return this;
      }
      /**
       * <code>required string path = 1;</code>
       */
      public Builder setPathBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        path_ = value;
        onChanged();
        return this;
      }

      // required bool allButSelf = 2;
      private boolean allButSelf_ ;
      /**
       * <code>required bool allButSelf = 2;</code>
       */
      public boolean hasAllButSelf() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required bool allButSelf = 2;</code>
       */
      public boolean getAllButSelf() {
        return allButSelf_;
      }
      /**
       * <code>required bool allButSelf = 2;</code>
       */
      public Builder setAllButSelf(boolean value) {
        bitField0_ |= 0x00000002;
        allButSelf_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required bool allButSelf = 2;</code>
       */
      public Builder clearAllButSelf() {
        bitField0_ = (bitField0_ & ~0x00000002);
        allButSelf_ = false;
        onChanged();
        return this;
      }

      // required .Payload payload = 3;
      private akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload payload_ = akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.Builder, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.PayloadOrBuilder> payloadBuilder_;
      /**
       * <code>required .Payload payload = 3;</code>
       */
      public boolean hasPayload() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required .Payload payload = 3;</code>
       */
      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload getPayload() {
        if (payloadBuilder_ == null) {
          return payload_;
        } else {
          return payloadBuilder_.getMessage();
        }
      }
      /**
       * <code>required .Payload payload = 3;</code>
       */
      public Builder setPayload(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload value) {
        if (payloadBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          payloadBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>required .Payload payload = 3;</code>
       */
      public Builder setPayload(
          akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.Builder builderForValue) {
        if (payloadBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          payloadBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>required .Payload payload = 3;</code>
       */
      public Builder mergePayload(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload value) {
        if (payloadBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004) &&
              payload_ != akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.getDefaultInstance()) {
            payload_ =
              akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.newBuilder(payload_).mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          payloadBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>required .Payload payload = 3;</code>
       */
      public Builder clearPayload() {
        if (payloadBuilder_ == null) {
          payload_ = akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.getDefaultInstance();
          onChanged();
        } else {
          payloadBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * <code>required .Payload payload = 3;</code>
       */
      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.Builder getPayloadBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getPayloadFieldBuilder().getBuilder();
      }
      /**
       * <code>required .Payload payload = 3;</code>
       */
      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.PayloadOrBuilder getPayloadOrBuilder() {
        if (payloadBuilder_ != null) {
          return payloadBuilder_.getMessageOrBuilder();
        } else {
          return payload_;
        }
      }
      /**
       * <code>required .Payload payload = 3;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.Builder, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.PayloadOrBuilder> 
          getPayloadFieldBuilder() {
        if (payloadBuilder_ == null) {
          payloadBuilder_ = new akka.protobuf.SingleFieldBuilder<
              akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.Builder, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.PayloadOrBuilder>(
                  payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        return payloadBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:SendToAll)
    }

    static {
      defaultInstance = new SendToAll(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:SendToAll)
  }

  public interface PublishOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required string topic = 1;
    /**
     * <code>required string topic = 1;</code>
     */
    boolean hasTopic();
    /**
     * <code>required string topic = 1;</code>
     */
    java.lang.String getTopic();
    /**
     * <code>required string topic = 1;</code>
     */
    akka.protobuf.ByteString
        getTopicBytes();

    // required .Payload payload = 3;
    /**
     * <code>required .Payload payload = 3;</code>
     */
    boolean hasPayload();
    /**
     * <code>required .Payload payload = 3;</code>
     */
    akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload getPayload();
    /**
     * <code>required .Payload payload = 3;</code>
     */
    akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.PayloadOrBuilder getPayloadOrBuilder();
  }
  /**
   * Protobuf type {@code Publish}
   *
   * <pre>
   **
   * Publish normally local, but it is also used by the ClusterClient.
   * </pre>
   */
  public static final class Publish extends
      akka.protobuf.GeneratedMessage
      implements PublishOrBuilder {
    // Use Publish.newBuilder() to construct.
    private Publish(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Publish(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Publish defaultInstance;
    public static Publish getDefaultInstance() {
      return defaultInstance;
    }

    public Publish getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Publish(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              topic_ = input.readBytes();
              break;
            }
            case 26: {
              akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = payload_.toBuilder();
              }
              payload_ = input.readMessage(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(payload_);
                payload_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Publish_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Publish_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Publish.class, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Publish.Builder.class);
    }

    public static akka.protobuf.Parser<Publish> PARSER =
        new akka.protobuf.AbstractParser<Publish>() {
      public Publish parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new Publish(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<Publish> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required string topic = 1;
    public static final int TOPIC_FIELD_NUMBER = 1;
    private java.lang.Object topic_;
    /**
     * <code>required string topic = 1;</code>
     */
    public boolean hasTopic() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required string topic = 1;</code>
     */
    public java.lang.String getTopic() {
      java.lang.Object ref = topic_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          topic_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string topic = 1;</code>
     */
    public akka.protobuf.ByteString
        getTopicBytes() {
      java.lang.Object ref = topic_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        topic_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

    // required .Payload payload = 3;
    public static final int PAYLOAD_FIELD_NUMBER = 3;
    private akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload payload_;
    /**
     * <code>required .Payload payload = 3;</code>
     */
    public boolean hasPayload() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required .Payload payload = 3;</code>
     */
    public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload getPayload() {
      return payload_;
    }
    /**
     * <code>required .Payload payload = 3;</code>
     */
    public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.PayloadOrBuilder getPayloadOrBuilder() {
      return payload_;
    }

    private void initFields() {
      topic_ = "";
      payload_ = akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasTopic()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPayload()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getPayload().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getTopicBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(3, payload_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(1, getTopicBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(3, payload_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Publish parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Publish parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Publish parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Publish parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Publish parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Publish parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Publish parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Publish parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Publish parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Publish parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Publish prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code Publish}
     *
     * <pre>
     **
     * Publish normally local, but it is also used by the ClusterClient.
     * </pre>
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.PublishOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Publish_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Publish_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Publish.class, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Publish.Builder.class);
      }

      // Construct using akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Publish.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getPayloadFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        topic_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        if (payloadBuilder_ == null) {
          payload_ = akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.getDefaultInstance();
        } else {
          payloadBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Publish_descriptor;
      }

      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Publish getDefaultInstanceForType() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Publish.getDefaultInstance();
      }

      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Publish build() {
        akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Publish result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Publish buildPartial() {
        akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Publish result = new akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Publish(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.topic_ = topic_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (payloadBuilder_ == null) {
          result.payload_ = payload_;
        } else {
          result.payload_ = payloadBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Publish) {
          return mergeFrom((akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Publish)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Publish other) {
        if (other == akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Publish.getDefaultInstance()) return this;
        if (other.hasTopic()) {
          bitField0_ |= 0x00000001;
          topic_ = other.topic_;
          onChanged();
        }
        if (other.hasPayload()) {
          mergePayload(other.getPayload());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasTopic()) {
          
          return false;
        }
        if (!hasPayload()) {
          
          return false;
        }
        if (!getPayload().isInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Publish parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Publish) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required string topic = 1;
      private java.lang.Object topic_ = "";
      /**
       * <code>required string topic = 1;</code>
       */
      public boolean hasTopic() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required string topic = 1;</code>
       */
      public java.lang.String getTopic() {
        java.lang.Object ref = topic_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          topic_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string topic = 1;</code>
       */
      public akka.protobuf.ByteString
          getTopicBytes() {
        java.lang.Object ref = topic_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          topic_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string topic = 1;</code>
       */
      public Builder setTopic(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        topic_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string topic = 1;</code>
       */
      public Builder clearTopic() {
        bitField0_ = (bitField0_ & ~0x00000001);
        topic_ = getDefaultInstance().getTopic();
        onChanged();
        return this;
      }
      /**
       * <code>required string topic = 1;</code>
       */
      public Builder setTopicBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        topic_ = value;
        onChanged();
        return this;
      }

      // required .Payload payload = 3;
      private akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload payload_ = akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.Builder, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.PayloadOrBuilder> payloadBuilder_;
      /**
       * <code>required .Payload payload = 3;</code>
       */
      public boolean hasPayload() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .Payload payload = 3;</code>
       */
      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload getPayload() {
        if (payloadBuilder_ == null) {
          return payload_;
        } else {
          return payloadBuilder_.getMessage();
        }
      }
      /**
       * <code>required .Payload payload = 3;</code>
       */
      public Builder setPayload(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload value) {
        if (payloadBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          payloadBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .Payload payload = 3;</code>
       */
      public Builder setPayload(
          akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.Builder builderForValue) {
        if (payloadBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          payloadBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .Payload payload = 3;</code>
       */
      public Builder mergePayload(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload value) {
        if (payloadBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              payload_ != akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.getDefaultInstance()) {
            payload_ =
              akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.newBuilder(payload_).mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          payloadBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .Payload payload = 3;</code>
       */
      public Builder clearPayload() {
        if (payloadBuilder_ == null) {
          payload_ = akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.getDefaultInstance();
          onChanged();
        } else {
          payloadBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * <code>required .Payload payload = 3;</code>
       */
      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.Builder getPayloadBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getPayloadFieldBuilder().getBuilder();
      }
      /**
       * <code>required .Payload payload = 3;</code>
       */
      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.PayloadOrBuilder getPayloadOrBuilder() {
        if (payloadBuilder_ != null) {
          return payloadBuilder_.getMessageOrBuilder();
        } else {
          return payload_;
        }
      }
      /**
       * <code>required .Payload payload = 3;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.Builder, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.PayloadOrBuilder> 
          getPayloadFieldBuilder() {
        if (payloadBuilder_ == null) {
          payloadBuilder_ = new akka.protobuf.SingleFieldBuilder<
              akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.Builder, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.PayloadOrBuilder>(
                  payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        return payloadBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:Publish)
    }

    static {
      defaultInstance = new Publish(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:Publish)
  }

  public interface SendToOneSubscriberOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required .Payload payload = 1;
    /**
     * <code>required .Payload payload = 1;</code>
     */
    boolean hasPayload();
    /**
     * <code>required .Payload payload = 1;</code>
     */
    akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload getPayload();
    /**
     * <code>required .Payload payload = 1;</code>
     */
    akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.PayloadOrBuilder getPayloadOrBuilder();
  }
  /**
   * Protobuf type {@code SendToOneSubscriber}
   *
   * <pre>
   **
   * Send a message to only one subscriber of a group.
   * </pre>
   */
  public static final class SendToOneSubscriber extends
      akka.protobuf.GeneratedMessage
      implements SendToOneSubscriberOrBuilder {
    // Use SendToOneSubscriber.newBuilder() to construct.
    private SendToOneSubscriber(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private SendToOneSubscriber(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final SendToOneSubscriber defaultInstance;
    public static SendToOneSubscriber getDefaultInstance() {
      return defaultInstance;
    }

    public SendToOneSubscriber getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private SendToOneSubscriber(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = payload_.toBuilder();
              }
              payload_ = input.readMessage(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(payload_);
                payload_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_SendToOneSubscriber_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_SendToOneSubscriber_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToOneSubscriber.class, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToOneSubscriber.Builder.class);
    }

    public static akka.protobuf.Parser<SendToOneSubscriber> PARSER =
        new akka.protobuf.AbstractParser<SendToOneSubscriber>() {
      public SendToOneSubscriber parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new SendToOneSubscriber(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<SendToOneSubscriber> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required .Payload payload = 1;
    public static final int PAYLOAD_FIELD_NUMBER = 1;
    private akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload payload_;
    /**
     * <code>required .Payload payload = 1;</code>
     */
    public boolean hasPayload() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .Payload payload = 1;</code>
     */
    public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload getPayload() {
      return payload_;
    }
    /**
     * <code>required .Payload payload = 1;</code>
     */
    public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.PayloadOrBuilder getPayloadOrBuilder() {
      return payload_;
    }

    private void initFields() {
      payload_ = akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasPayload()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getPayload().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, payload_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(1, payload_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToOneSubscriber parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToOneSubscriber parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToOneSubscriber parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToOneSubscriber parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToOneSubscriber parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToOneSubscriber parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToOneSubscriber parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToOneSubscriber parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToOneSubscriber parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToOneSubscriber parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToOneSubscriber prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code SendToOneSubscriber}
     *
     * <pre>
     **
     * Send a message to only one subscriber of a group.
     * </pre>
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToOneSubscriberOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_SendToOneSubscriber_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_SendToOneSubscriber_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToOneSubscriber.class, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToOneSubscriber.Builder.class);
      }

      // Construct using akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToOneSubscriber.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getPayloadFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (payloadBuilder_ == null) {
          payload_ = akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.getDefaultInstance();
        } else {
          payloadBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_SendToOneSubscriber_descriptor;
      }

      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToOneSubscriber getDefaultInstanceForType() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToOneSubscriber.getDefaultInstance();
      }

      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToOneSubscriber build() {
        akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToOneSubscriber result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToOneSubscriber buildPartial() {
        akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToOneSubscriber result = new akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToOneSubscriber(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (payloadBuilder_ == null) {
          result.payload_ = payload_;
        } else {
          result.payload_ = payloadBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToOneSubscriber) {
          return mergeFrom((akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToOneSubscriber)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToOneSubscriber other) {
        if (other == akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToOneSubscriber.getDefaultInstance()) return this;
        if (other.hasPayload()) {
          mergePayload(other.getPayload());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasPayload()) {
          
          return false;
        }
        if (!getPayload().isInitialized()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToOneSubscriber parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.SendToOneSubscriber) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required .Payload payload = 1;
      private akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload payload_ = akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.Builder, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.PayloadOrBuilder> payloadBuilder_;
      /**
       * <code>required .Payload payload = 1;</code>
       */
      public boolean hasPayload() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .Payload payload = 1;</code>
       */
      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload getPayload() {
        if (payloadBuilder_ == null) {
          return payload_;
        } else {
          return payloadBuilder_.getMessage();
        }
      }
      /**
       * <code>required .Payload payload = 1;</code>
       */
      public Builder setPayload(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload value) {
        if (payloadBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          payload_ = value;
          onChanged();
        } else {
          payloadBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Payload payload = 1;</code>
       */
      public Builder setPayload(
          akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.Builder builderForValue) {
        if (payloadBuilder_ == null) {
          payload_ = builderForValue.build();
          onChanged();
        } else {
          payloadBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Payload payload = 1;</code>
       */
      public Builder mergePayload(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload value) {
        if (payloadBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              payload_ != akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.getDefaultInstance()) {
            payload_ =
              akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.newBuilder(payload_).mergeFrom(value).buildPartial();
          } else {
            payload_ = value;
          }
          onChanged();
        } else {
          payloadBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .Payload payload = 1;</code>
       */
      public Builder clearPayload() {
        if (payloadBuilder_ == null) {
          payload_ = akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.getDefaultInstance();
          onChanged();
        } else {
          payloadBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .Payload payload = 1;</code>
       */
      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.Builder getPayloadBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getPayloadFieldBuilder().getBuilder();
      }
      /**
       * <code>required .Payload payload = 1;</code>
       */
      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.PayloadOrBuilder getPayloadOrBuilder() {
        if (payloadBuilder_ != null) {
          return payloadBuilder_.getMessageOrBuilder();
        } else {
          return payload_;
        }
      }
      /**
       * <code>required .Payload payload = 1;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.Builder, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.PayloadOrBuilder> 
          getPayloadFieldBuilder() {
        if (payloadBuilder_ == null) {
          payloadBuilder_ = new akka.protobuf.SingleFieldBuilder<
              akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.Builder, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.PayloadOrBuilder>(
                  payload_,
                  getParentForChildren(),
                  isClean());
          payload_ = null;
        }
        return payloadBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:SendToOneSubscriber)
    }

    static {
      defaultInstance = new SendToOneSubscriber(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:SendToOneSubscriber)
  }

  public interface PayloadOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required bytes enclosedMessage = 1;
    /**
     * <code>required bytes enclosedMessage = 1;</code>
     */
    boolean hasEnclosedMessage();
    /**
     * <code>required bytes enclosedMessage = 1;</code>
     */
    akka.protobuf.ByteString getEnclosedMessage();

    // required int32 serializerId = 2;
    /**
     * <code>required int32 serializerId = 2;</code>
     */
    boolean hasSerializerId();
    /**
     * <code>required int32 serializerId = 2;</code>
     */
    int getSerializerId();

    // optional bytes messageManifest = 4;
    /**
     * <code>optional bytes messageManifest = 4;</code>
     */
    boolean hasMessageManifest();
    /**
     * <code>optional bytes messageManifest = 4;</code>
     */
    akka.protobuf.ByteString getMessageManifest();
  }
  /**
   * Protobuf type {@code Payload}
   */
  public static final class Payload extends
      akka.protobuf.GeneratedMessage
      implements PayloadOrBuilder {
    // Use Payload.newBuilder() to construct.
    private Payload(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Payload(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Payload defaultInstance;
    public static Payload getDefaultInstance() {
      return defaultInstance;
    }

    public Payload getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Payload(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              enclosedMessage_ = input.readBytes();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              serializerId_ = input.readInt32();
              break;
            }
            case 34: {
              bitField0_ |= 0x00000004;
              messageManifest_ = input.readBytes();
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Payload_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Payload_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.class, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.Builder.class);
    }

    public static akka.protobuf.Parser<Payload> PARSER =
        new akka.protobuf.AbstractParser<Payload>() {
      public Payload parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new Payload(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<Payload> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required bytes enclosedMessage = 1;
    public static final int ENCLOSEDMESSAGE_FIELD_NUMBER = 1;
    private akka.protobuf.ByteString enclosedMessage_;
    /**
     * <code>required bytes enclosedMessage = 1;</code>
     */
    public boolean hasEnclosedMessage() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required bytes enclosedMessage = 1;</code>
     */
    public akka.protobuf.ByteString getEnclosedMessage() {
      return enclosedMessage_;
    }

    // required int32 serializerId = 2;
    public static final int SERIALIZERID_FIELD_NUMBER = 2;
    private int serializerId_;
    /**
     * <code>required int32 serializerId = 2;</code>
     */
    public boolean hasSerializerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int32 serializerId = 2;</code>
     */
    public int getSerializerId() {
      return serializerId_;
    }

    // optional bytes messageManifest = 4;
    public static final int MESSAGEMANIFEST_FIELD_NUMBER = 4;
    private akka.protobuf.ByteString messageManifest_;
    /**
     * <code>optional bytes messageManifest = 4;</code>
     */
    public boolean hasMessageManifest() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional bytes messageManifest = 4;</code>
     */
    public akka.protobuf.ByteString getMessageManifest() {
      return messageManifest_;
    }

    private void initFields() {
      enclosedMessage_ = akka.protobuf.ByteString.EMPTY;
      serializerId_ = 0;
      messageManifest_ = akka.protobuf.ByteString.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasEnclosedMessage()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSerializerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, enclosedMessage_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, serializerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(4, messageManifest_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(1, enclosedMessage_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeInt32Size(2, serializerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(4, messageManifest_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code Payload}
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.PayloadOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Payload_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Payload_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.class, akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.Builder.class);
      }

      // Construct using akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        enclosedMessage_ = akka.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        serializerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        messageManifest_ = akka.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.internal_static_Payload_descriptor;
      }

      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload getDefaultInstanceForType() {
        return akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.getDefaultInstance();
      }

      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload build() {
        akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload buildPartial() {
        akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload result = new akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.enclosedMessage_ = enclosedMessage_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.serializerId_ = serializerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.messageManifest_ = messageManifest_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.Message other) {
        if (other instanceof akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload) {
          return mergeFrom((akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload other) {
        if (other == akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload.getDefaultInstance()) return this;
        if (other.hasEnclosedMessage()) {
          setEnclosedMessage(other.getEnclosedMessage());
        }
        if (other.hasSerializerId()) {
          setSerializerId(other.getSerializerId());
        }
        if (other.hasMessageManifest()) {
          setMessageManifest(other.getMessageManifest());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasEnclosedMessage()) {
          
          return false;
        }
        if (!hasSerializerId()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.pubsub.protobuf.msg.DistributedPubSubMessages.Payload) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // required bytes enclosedMessage = 1;
      private akka.protobuf.ByteString enclosedMessage_ = akka.protobuf.ByteString.EMPTY;
      /**
       * <code>required bytes enclosedMessage = 1;</code>
       */
      public boolean hasEnclosedMessage() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required bytes enclosedMessage = 1;</code>
       */
      public akka.protobuf.ByteString getEnclosedMessage() {
        return enclosedMessage_;
      }
      /**
       * <code>required bytes enclosedMessage = 1;</code>
       */
      public Builder setEnclosedMessage(akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        enclosedMessage_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required bytes enclosedMessage = 1;</code>
       */
      public Builder clearEnclosedMessage() {
        bitField0_ = (bitField0_ & ~0x00000001);
        enclosedMessage_ = getDefaultInstance().getEnclosedMessage();
        onChanged();
        return this;
      }

      // required int32 serializerId = 2;
      private int serializerId_ ;
      /**
       * <code>required int32 serializerId = 2;</code>
       */
      public boolean hasSerializerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int32 serializerId = 2;</code>
       */
      public int getSerializerId() {
        return serializerId_;
      }
      /**
       * <code>required int32 serializerId = 2;</code>
       */
      public Builder setSerializerId(int value) {
        bitField0_ |= 0x00000002;
        serializerId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 serializerId = 2;</code>
       */
      public Builder clearSerializerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        serializerId_ = 0;
        onChanged();
        return this;
      }

      // optional bytes messageManifest = 4;
      private akka.protobuf.ByteString messageManifest_ = akka.protobuf.ByteString.EMPTY;
      /**
       * <code>optional bytes messageManifest = 4;</code>
       */
      public boolean hasMessageManifest() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional bytes messageManifest = 4;</code>
       */
      public akka.protobuf.ByteString getMessageManifest() {
        return messageManifest_;
      }
      /**
       * <code>optional bytes messageManifest = 4;</code>
       */
      public Builder setMessageManifest(akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        messageManifest_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bytes messageManifest = 4;</code>
       */
      public Builder clearMessageManifest() {
        bitField0_ = (bitField0_ & ~0x00000004);
        messageManifest_ = getDefaultInstance().getMessageManifest();
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:Payload)
    }

    static {
      defaultInstance = new Payload(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:Payload)
  }

  private static akka.protobuf.Descriptors.Descriptor
    internal_static_Status_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Status_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_Status_Version_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Status_Version_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_Delta_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Delta_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_Delta_Entry_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Delta_Entry_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_Delta_Bucket_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Delta_Bucket_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_Address_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Address_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_Send_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Send_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_SendToAll_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_SendToAll_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_Publish_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Publish_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_SendToOneSubscriber_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_SendToOneSubscriber_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_Payload_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Payload_fieldAccessorTable;

  public static akka.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static akka.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\037DistributedPubSubMessages.proto\"{\n\006Sta" +
      "tus\022!\n\010versions\030\001 \003(\0132\017.Status.Version\022\025" +
      "\n\rreplyToStatus\030\002 \001(\010\0327\n\007Version\022\031\n\007addr" +
      "ess\030\001 \002(\0132\010.Address\022\021\n\ttimestamp\030\002 \002(\003\"\256" +
      "\001\n\005Delta\022\036\n\007buckets\030\001 \003(\0132\r.Delta.Bucket" +
      "\0322\n\005Entry\022\013\n\003key\030\001 \002(\t\022\017\n\007version\030\002 \002(\003\022" +
      "\013\n\003ref\030\003 \001(\t\032Q\n\006Bucket\022\027\n\005owner\030\001 \002(\0132\010." +
      "Address\022\017\n\007version\030\002 \002(\003\022\035\n\007content\030\003 \003(" +
      "\0132\014.Delta.Entry\"K\n\007Address\022\016\n\006system\030\001 \002" +
      "(\t\022\020\n\010hostname\030\002 \002(\t\022\014\n\004port\030\003 \002(\r\022\020\n\010pr",
      "otocol\030\004 \001(\t\"F\n\004Send\022\014\n\004path\030\001 \002(\t\022\025\n\rlo" +
      "calAffinity\030\002 \002(\010\022\031\n\007payload\030\003 \002(\0132\010.Pay" +
      "load\"H\n\tSendToAll\022\014\n\004path\030\001 \002(\t\022\022\n\nallBu" +
      "tSelf\030\002 \002(\010\022\031\n\007payload\030\003 \002(\0132\010.Payload\"3" +
      "\n\007Publish\022\r\n\005topic\030\001 \002(\t\022\031\n\007payload\030\003 \002(" +
      "\0132\010.Payload\"0\n\023SendToOneSubscriber\022\031\n\007pa" +
      "yload\030\001 \002(\0132\010.Payload\"Q\n\007Payload\022\027\n\017encl" +
      "osedMessage\030\001 \002(\014\022\024\n\014serializerId\030\002 \002(\005\022" +
      "\027\n\017messageManifest\030\004 \001(\014B$\n akka.cluster" +
      ".pubsub.protobuf.msgH\001"
    };
    akka.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new akka.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
        public akka.protobuf.ExtensionRegistry assignDescriptors(
            akka.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
          internal_static_Status_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_Status_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_Status_descriptor,
              new java.lang.String[] { "Versions", "ReplyToStatus", });
          internal_static_Status_Version_descriptor =
            internal_static_Status_descriptor.getNestedTypes().get(0);
          internal_static_Status_Version_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_Status_Version_descriptor,
              new java.lang.String[] { "Address", "Timestamp", });
          internal_static_Delta_descriptor =
            getDescriptor().getMessageTypes().get(1);
          internal_static_Delta_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_Delta_descriptor,
              new java.lang.String[] { "Buckets", });
          internal_static_Delta_Entry_descriptor =
            internal_static_Delta_descriptor.getNestedTypes().get(0);
          internal_static_Delta_Entry_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_Delta_Entry_descriptor,
              new java.lang.String[] { "Key", "Version", "Ref", });
          internal_static_Delta_Bucket_descriptor =
            internal_static_Delta_descriptor.getNestedTypes().get(1);
          internal_static_Delta_Bucket_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_Delta_Bucket_descriptor,
              new java.lang.String[] { "Owner", "Version", "Content", });
          internal_static_Address_descriptor =
            getDescriptor().getMessageTypes().get(2);
          internal_static_Address_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_Address_descriptor,
              new java.lang.String[] { "System", "Hostname", "Port", "Protocol", });
          internal_static_Send_descriptor =
            getDescriptor().getMessageTypes().get(3);
          internal_static_Send_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_Send_descriptor,
              new java.lang.String[] { "Path", "LocalAffinity", "Payload", });
          internal_static_SendToAll_descriptor =
            getDescriptor().getMessageTypes().get(4);
          internal_static_SendToAll_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_SendToAll_descriptor,
              new java.lang.String[] { "Path", "AllButSelf", "Payload", });
          internal_static_Publish_descriptor =
            getDescriptor().getMessageTypes().get(5);
          internal_static_Publish_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_Publish_descriptor,
              new java.lang.String[] { "Topic", "Payload", });
          internal_static_SendToOneSubscriber_descriptor =
            getDescriptor().getMessageTypes().get(6);
          internal_static_SendToOneSubscriber_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_SendToOneSubscriber_descriptor,
              new java.lang.String[] { "Payload", });
          internal_static_Payload_descriptor =
            getDescriptor().getMessageTypes().get(7);
          internal_static_Payload_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_Payload_descriptor,
              new java.lang.String[] { "EnclosedMessage", "SerializerId", "MessageManifest", });
          return null;
        }
      };
    akka.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new akka.protobuf.Descriptors.FileDescriptor[] {
        }, assigner);
  }

  // @@protoc_insertion_point(outer_class_scope)
}
