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

package pb.xiugou.x1.protobuf.recruit;

public final class Recruit {
  private Recruit() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface RecruitInfoRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.RecruitInfoRequest)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * <pre>
   *召唤信息，刷新倒计时结束时也请求info
   * </pre>
   *
   * Protobuf type {@code pb.RecruitInfoRequest}
   */
  public  static final class RecruitInfoRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.RecruitInfoRequest)
      RecruitInfoRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RecruitInfoRequest.newBuilder() to construct.
    private RecruitInfoRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RecruitInfoRequest() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new RecruitInfoRequest();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private RecruitInfoRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.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;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_RecruitInfoRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_RecruitInfoRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest.class, pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.RecruitInfoRequest.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 1600001;</code>
       */
      ID(1600001),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 1600001;</code>
       */
      public static final int ID_VALUE = 1600001;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 1600001: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.RecruitInfoRequest.Proto)
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest other = (pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest) obj;

      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     *召唤信息，刷新倒计时结束时也请求info
     * </pre>
     *
     * Protobuf type {@code pb.RecruitInfoRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.RecruitInfoRequest)
        pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_RecruitInfoRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_RecruitInfoRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest.class, pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_RecruitInfoRequest_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest build() {
        pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest buildPartial() {
        pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest result = new pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest) {
          return mergeFrom((pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest other) {
        if (other == pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.RecruitInfoRequest)
    }

    // @@protoc_insertion_point(class_scope:pb.RecruitInfoRequest)
    private static final pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest();
    }

    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<RecruitInfoRequest>
        PARSER = new com.google.protobuf.AbstractParser<RecruitInfoRequest>() {
      @java.lang.Override
      public RecruitInfoRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new RecruitInfoRequest(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<RecruitInfoRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<RecruitInfoRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RecruitInfoResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.RecruitInfoResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *当前阶段，1：10次后紫色概率提升，2：10次后橙色概率提升
     * </pre>
     *
     * <code>int32 stage = 1;</code>
     * @return The stage.
     */
    int getStage();

    /**
     * <pre>
     *当前阶段的次数
     * </pre>
     *
     * <code>int32 stage_num = 2;</code>
     * @return The stageNum.
     */
    int getStageNum();

    /**
     * <pre>
     *可召唤英雄
     * </pre>
     *
     * <code>repeated .pb.PbRecruitSlot slots = 3;</code>
     */
    java.util.List<pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot> 
        getSlotsList();
    /**
     * <pre>
     *可召唤英雄
     * </pre>
     *
     * <code>repeated .pb.PbRecruitSlot slots = 3;</code>
     */
    pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot getSlots(int index);
    /**
     * <pre>
     *可召唤英雄
     * </pre>
     *
     * <code>repeated .pb.PbRecruitSlot slots = 3;</code>
     */
    int getSlotsCount();
    /**
     * <pre>
     *可召唤英雄
     * </pre>
     *
     * <code>repeated .pb.PbRecruitSlot slots = 3;</code>
     */
    java.util.List<? extends pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlotOrBuilder> 
        getSlotsOrBuilderList();
    /**
     * <pre>
     *可召唤英雄
     * </pre>
     *
     * <code>repeated .pb.PbRecruitSlot slots = 3;</code>
     */
    pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlotOrBuilder getSlotsOrBuilder(
        int index);

    /**
     * <pre>
     *刷新时间
     * </pre>
     *
     * <code>int64 refresh_time = 4;</code>
     * @return The refreshTime.
     */
    long getRefreshTime();

    /**
     * <pre>
     *今日已使用折扣次数
     * </pre>
     *
     * <code>int32 discount_num = 5;</code>
     * @return The discountNum.
     */
    int getDiscountNum();

    /**
     * <pre>
     *已观看广告次数
     * </pre>
     *
     * <code>int32 ad_free_num = 6;</code>
     * @return The adFreeNum.
     */
    int getAdFreeNum();

    /**
     * <pre>
     *当前使用的倍数
     * </pre>
     *
     * <code>int32 multiple = 7;</code>
     * @return The multiple.
     */
    int getMultiple();

    /**
     * <pre>
     *酒馆激活标志 true 为激活
     * </pre>
     *
     * <code>bool activateFlag = 8;</code>
     * @return The activateFlag.
     */
    boolean getActivateFlag();

    /**
     * <pre>
     *招募总次数
     * </pre>
     *
     * <code>int32 total_num = 9;</code>
     * @return The totalNum.
     */
    int getTotalNum();

    /**
     * <pre>
     *招募总积分
     * </pre>
     *
     * <code>int64 recruit_point = 10;</code>
     * @return The recruitPoint.
     */
    long getRecruitPoint();
  }
  /**
   * Protobuf type {@code pb.RecruitInfoResponse}
   */
  public  static final class RecruitInfoResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.RecruitInfoResponse)
      RecruitInfoResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RecruitInfoResponse.newBuilder() to construct.
    private RecruitInfoResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RecruitInfoResponse() {
      slots_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new RecruitInfoResponse();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private RecruitInfoResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              stage_ = input.readInt32();
              break;
            }
            case 16: {

              stageNum_ = input.readInt32();
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                slots_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot>();
                mutable_bitField0_ |= 0x00000001;
              }
              slots_.add(
                  input.readMessage(pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.parser(), extensionRegistry));
              break;
            }
            case 32: {

              refreshTime_ = input.readInt64();
              break;
            }
            case 40: {

              discountNum_ = input.readInt32();
              break;
            }
            case 48: {

              adFreeNum_ = input.readInt32();
              break;
            }
            case 56: {

              multiple_ = input.readInt32();
              break;
            }
            case 64: {

              activateFlag_ = input.readBool();
              break;
            }
            case 72: {

              totalNum_ = input.readInt32();
              break;
            }
            case 80: {

              recruitPoint_ = input.readInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          slots_ = java.util.Collections.unmodifiableList(slots_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_RecruitInfoResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_RecruitInfoResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse.class, pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.RecruitInfoResponse.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 1600001;</code>
       */
      ID(1600001),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 1600001;</code>
       */
      public static final int ID_VALUE = 1600001;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 1600001: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.RecruitInfoResponse.Proto)
    }

    public static final int STAGE_FIELD_NUMBER = 1;
    private int stage_;
    /**
     * <pre>
     *当前阶段，1：10次后紫色概率提升，2：10次后橙色概率提升
     * </pre>
     *
     * <code>int32 stage = 1;</code>
     * @return The stage.
     */
    public int getStage() {
      return stage_;
    }

    public static final int STAGE_NUM_FIELD_NUMBER = 2;
    private int stageNum_;
    /**
     * <pre>
     *当前阶段的次数
     * </pre>
     *
     * <code>int32 stage_num = 2;</code>
     * @return The stageNum.
     */
    public int getStageNum() {
      return stageNum_;
    }

    public static final int SLOTS_FIELD_NUMBER = 3;
    private java.util.List<pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot> slots_;
    /**
     * <pre>
     *可召唤英雄
     * </pre>
     *
     * <code>repeated .pb.PbRecruitSlot slots = 3;</code>
     */
    public java.util.List<pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot> getSlotsList() {
      return slots_;
    }
    /**
     * <pre>
     *可召唤英雄
     * </pre>
     *
     * <code>repeated .pb.PbRecruitSlot slots = 3;</code>
     */
    public java.util.List<? extends pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlotOrBuilder> 
        getSlotsOrBuilderList() {
      return slots_;
    }
    /**
     * <pre>
     *可召唤英雄
     * </pre>
     *
     * <code>repeated .pb.PbRecruitSlot slots = 3;</code>
     */
    public int getSlotsCount() {
      return slots_.size();
    }
    /**
     * <pre>
     *可召唤英雄
     * </pre>
     *
     * <code>repeated .pb.PbRecruitSlot slots = 3;</code>
     */
    public pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot getSlots(int index) {
      return slots_.get(index);
    }
    /**
     * <pre>
     *可召唤英雄
     * </pre>
     *
     * <code>repeated .pb.PbRecruitSlot slots = 3;</code>
     */
    public pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlotOrBuilder getSlotsOrBuilder(
        int index) {
      return slots_.get(index);
    }

    public static final int REFRESH_TIME_FIELD_NUMBER = 4;
    private long refreshTime_;
    /**
     * <pre>
     *刷新时间
     * </pre>
     *
     * <code>int64 refresh_time = 4;</code>
     * @return The refreshTime.
     */
    public long getRefreshTime() {
      return refreshTime_;
    }

    public static final int DISCOUNT_NUM_FIELD_NUMBER = 5;
    private int discountNum_;
    /**
     * <pre>
     *今日已使用折扣次数
     * </pre>
     *
     * <code>int32 discount_num = 5;</code>
     * @return The discountNum.
     */
    public int getDiscountNum() {
      return discountNum_;
    }

    public static final int AD_FREE_NUM_FIELD_NUMBER = 6;
    private int adFreeNum_;
    /**
     * <pre>
     *已观看广告次数
     * </pre>
     *
     * <code>int32 ad_free_num = 6;</code>
     * @return The adFreeNum.
     */
    public int getAdFreeNum() {
      return adFreeNum_;
    }

    public static final int MULTIPLE_FIELD_NUMBER = 7;
    private int multiple_;
    /**
     * <pre>
     *当前使用的倍数
     * </pre>
     *
     * <code>int32 multiple = 7;</code>
     * @return The multiple.
     */
    public int getMultiple() {
      return multiple_;
    }

    public static final int ACTIVATEFLAG_FIELD_NUMBER = 8;
    private boolean activateFlag_;
    /**
     * <pre>
     *酒馆激活标志 true 为激活
     * </pre>
     *
     * <code>bool activateFlag = 8;</code>
     * @return The activateFlag.
     */
    public boolean getActivateFlag() {
      return activateFlag_;
    }

    public static final int TOTAL_NUM_FIELD_NUMBER = 9;
    private int totalNum_;
    /**
     * <pre>
     *招募总次数
     * </pre>
     *
     * <code>int32 total_num = 9;</code>
     * @return The totalNum.
     */
    public int getTotalNum() {
      return totalNum_;
    }

    public static final int RECRUIT_POINT_FIELD_NUMBER = 10;
    private long recruitPoint_;
    /**
     * <pre>
     *招募总积分
     * </pre>
     *
     * <code>int64 recruit_point = 10;</code>
     * @return The recruitPoint.
     */
    public long getRecruitPoint() {
      return recruitPoint_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (stage_ != 0) {
        output.writeInt32(1, stage_);
      }
      if (stageNum_ != 0) {
        output.writeInt32(2, stageNum_);
      }
      for (int i = 0; i < slots_.size(); i++) {
        output.writeMessage(3, slots_.get(i));
      }
      if (refreshTime_ != 0L) {
        output.writeInt64(4, refreshTime_);
      }
      if (discountNum_ != 0) {
        output.writeInt32(5, discountNum_);
      }
      if (adFreeNum_ != 0) {
        output.writeInt32(6, adFreeNum_);
      }
      if (multiple_ != 0) {
        output.writeInt32(7, multiple_);
      }
      if (activateFlag_ != false) {
        output.writeBool(8, activateFlag_);
      }
      if (totalNum_ != 0) {
        output.writeInt32(9, totalNum_);
      }
      if (recruitPoint_ != 0L) {
        output.writeInt64(10, recruitPoint_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (stage_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, stage_);
      }
      if (stageNum_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, stageNum_);
      }
      for (int i = 0; i < slots_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, slots_.get(i));
      }
      if (refreshTime_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, refreshTime_);
      }
      if (discountNum_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, discountNum_);
      }
      if (adFreeNum_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, adFreeNum_);
      }
      if (multiple_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(7, multiple_);
      }
      if (activateFlag_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(8, activateFlag_);
      }
      if (totalNum_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(9, totalNum_);
      }
      if (recruitPoint_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(10, recruitPoint_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse other = (pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse) obj;

      if (getStage()
          != other.getStage()) return false;
      if (getStageNum()
          != other.getStageNum()) return false;
      if (!getSlotsList()
          .equals(other.getSlotsList())) return false;
      if (getRefreshTime()
          != other.getRefreshTime()) return false;
      if (getDiscountNum()
          != other.getDiscountNum()) return false;
      if (getAdFreeNum()
          != other.getAdFreeNum()) return false;
      if (getMultiple()
          != other.getMultiple()) return false;
      if (getActivateFlag()
          != other.getActivateFlag()) return false;
      if (getTotalNum()
          != other.getTotalNum()) return false;
      if (getRecruitPoint()
          != other.getRecruitPoint()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + STAGE_FIELD_NUMBER;
      hash = (53 * hash) + getStage();
      hash = (37 * hash) + STAGE_NUM_FIELD_NUMBER;
      hash = (53 * hash) + getStageNum();
      if (getSlotsCount() > 0) {
        hash = (37 * hash) + SLOTS_FIELD_NUMBER;
        hash = (53 * hash) + getSlotsList().hashCode();
      }
      hash = (37 * hash) + REFRESH_TIME_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getRefreshTime());
      hash = (37 * hash) + DISCOUNT_NUM_FIELD_NUMBER;
      hash = (53 * hash) + getDiscountNum();
      hash = (37 * hash) + AD_FREE_NUM_FIELD_NUMBER;
      hash = (53 * hash) + getAdFreeNum();
      hash = (37 * hash) + MULTIPLE_FIELD_NUMBER;
      hash = (53 * hash) + getMultiple();
      hash = (37 * hash) + ACTIVATEFLAG_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getActivateFlag());
      hash = (37 * hash) + TOTAL_NUM_FIELD_NUMBER;
      hash = (53 * hash) + getTotalNum();
      hash = (37 * hash) + RECRUIT_POINT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getRecruitPoint());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code pb.RecruitInfoResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.RecruitInfoResponse)
        pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_RecruitInfoResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_RecruitInfoResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse.class, pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getSlotsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        stage_ = 0;

        stageNum_ = 0;

        if (slotsBuilder_ == null) {
          slots_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          slotsBuilder_.clear();
        }
        refreshTime_ = 0L;

        discountNum_ = 0;

        adFreeNum_ = 0;

        multiple_ = 0;

        activateFlag_ = false;

        totalNum_ = 0;

        recruitPoint_ = 0L;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_RecruitInfoResponse_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse build() {
        pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse buildPartial() {
        pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse result = new pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse(this);
        int from_bitField0_ = bitField0_;
        result.stage_ = stage_;
        result.stageNum_ = stageNum_;
        if (slotsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            slots_ = java.util.Collections.unmodifiableList(slots_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.slots_ = slots_;
        } else {
          result.slots_ = slotsBuilder_.build();
        }
        result.refreshTime_ = refreshTime_;
        result.discountNum_ = discountNum_;
        result.adFreeNum_ = adFreeNum_;
        result.multiple_ = multiple_;
        result.activateFlag_ = activateFlag_;
        result.totalNum_ = totalNum_;
        result.recruitPoint_ = recruitPoint_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse) {
          return mergeFrom((pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse other) {
        if (other == pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse.getDefaultInstance()) return this;
        if (other.getStage() != 0) {
          setStage(other.getStage());
        }
        if (other.getStageNum() != 0) {
          setStageNum(other.getStageNum());
        }
        if (slotsBuilder_ == null) {
          if (!other.slots_.isEmpty()) {
            if (slots_.isEmpty()) {
              slots_ = other.slots_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureSlotsIsMutable();
              slots_.addAll(other.slots_);
            }
            onChanged();
          }
        } else {
          if (!other.slots_.isEmpty()) {
            if (slotsBuilder_.isEmpty()) {
              slotsBuilder_.dispose();
              slotsBuilder_ = null;
              slots_ = other.slots_;
              bitField0_ = (bitField0_ & ~0x00000001);
              slotsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getSlotsFieldBuilder() : null;
            } else {
              slotsBuilder_.addAllMessages(other.slots_);
            }
          }
        }
        if (other.getRefreshTime() != 0L) {
          setRefreshTime(other.getRefreshTime());
        }
        if (other.getDiscountNum() != 0) {
          setDiscountNum(other.getDiscountNum());
        }
        if (other.getAdFreeNum() != 0) {
          setAdFreeNum(other.getAdFreeNum());
        }
        if (other.getMultiple() != 0) {
          setMultiple(other.getMultiple());
        }
        if (other.getActivateFlag() != false) {
          setActivateFlag(other.getActivateFlag());
        }
        if (other.getTotalNum() != 0) {
          setTotalNum(other.getTotalNum());
        }
        if (other.getRecruitPoint() != 0L) {
          setRecruitPoint(other.getRecruitPoint());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int stage_ ;
      /**
       * <pre>
       *当前阶段，1：10次后紫色概率提升，2：10次后橙色概率提升
       * </pre>
       *
       * <code>int32 stage = 1;</code>
       * @return The stage.
       */
      public int getStage() {
        return stage_;
      }
      /**
       * <pre>
       *当前阶段，1：10次后紫色概率提升，2：10次后橙色概率提升
       * </pre>
       *
       * <code>int32 stage = 1;</code>
       * @param value The stage to set.
       * @return This builder for chaining.
       */
      public Builder setStage(int value) {
        
        stage_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *当前阶段，1：10次后紫色概率提升，2：10次后橙色概率提升
       * </pre>
       *
       * <code>int32 stage = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearStage() {
        
        stage_ = 0;
        onChanged();
        return this;
      }

      private int stageNum_ ;
      /**
       * <pre>
       *当前阶段的次数
       * </pre>
       *
       * <code>int32 stage_num = 2;</code>
       * @return The stageNum.
       */
      public int getStageNum() {
        return stageNum_;
      }
      /**
       * <pre>
       *当前阶段的次数
       * </pre>
       *
       * <code>int32 stage_num = 2;</code>
       * @param value The stageNum to set.
       * @return This builder for chaining.
       */
      public Builder setStageNum(int value) {
        
        stageNum_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *当前阶段的次数
       * </pre>
       *
       * <code>int32 stage_num = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearStageNum() {
        
        stageNum_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot> slots_ =
        java.util.Collections.emptyList();
      private void ensureSlotsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          slots_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot>(slots_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.Builder, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlotOrBuilder> slotsBuilder_;

      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 3;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot> getSlotsList() {
        if (slotsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(slots_);
        } else {
          return slotsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 3;</code>
       */
      public int getSlotsCount() {
        if (slotsBuilder_ == null) {
          return slots_.size();
        } else {
          return slotsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 3;</code>
       */
      public pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot getSlots(int index) {
        if (slotsBuilder_ == null) {
          return slots_.get(index);
        } else {
          return slotsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 3;</code>
       */
      public Builder setSlots(
          int index, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot value) {
        if (slotsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSlotsIsMutable();
          slots_.set(index, value);
          onChanged();
        } else {
          slotsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 3;</code>
       */
      public Builder setSlots(
          int index, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.Builder builderForValue) {
        if (slotsBuilder_ == null) {
          ensureSlotsIsMutable();
          slots_.set(index, builderForValue.build());
          onChanged();
        } else {
          slotsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 3;</code>
       */
      public Builder addSlots(pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot value) {
        if (slotsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSlotsIsMutable();
          slots_.add(value);
          onChanged();
        } else {
          slotsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 3;</code>
       */
      public Builder addSlots(
          int index, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot value) {
        if (slotsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSlotsIsMutable();
          slots_.add(index, value);
          onChanged();
        } else {
          slotsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 3;</code>
       */
      public Builder addSlots(
          pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.Builder builderForValue) {
        if (slotsBuilder_ == null) {
          ensureSlotsIsMutable();
          slots_.add(builderForValue.build());
          onChanged();
        } else {
          slotsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 3;</code>
       */
      public Builder addSlots(
          int index, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.Builder builderForValue) {
        if (slotsBuilder_ == null) {
          ensureSlotsIsMutable();
          slots_.add(index, builderForValue.build());
          onChanged();
        } else {
          slotsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 3;</code>
       */
      public Builder addAllSlots(
          java.lang.Iterable<? extends pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot> values) {
        if (slotsBuilder_ == null) {
          ensureSlotsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, slots_);
          onChanged();
        } else {
          slotsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 3;</code>
       */
      public Builder clearSlots() {
        if (slotsBuilder_ == null) {
          slots_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          slotsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 3;</code>
       */
      public Builder removeSlots(int index) {
        if (slotsBuilder_ == null) {
          ensureSlotsIsMutable();
          slots_.remove(index);
          onChanged();
        } else {
          slotsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 3;</code>
       */
      public pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.Builder getSlotsBuilder(
          int index) {
        return getSlotsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 3;</code>
       */
      public pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlotOrBuilder getSlotsOrBuilder(
          int index) {
        if (slotsBuilder_ == null) {
          return slots_.get(index);  } else {
          return slotsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 3;</code>
       */
      public java.util.List<? extends pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlotOrBuilder> 
           getSlotsOrBuilderList() {
        if (slotsBuilder_ != null) {
          return slotsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(slots_);
        }
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 3;</code>
       */
      public pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.Builder addSlotsBuilder() {
        return getSlotsFieldBuilder().addBuilder(
            pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.getDefaultInstance());
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 3;</code>
       */
      public pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.Builder addSlotsBuilder(
          int index) {
        return getSlotsFieldBuilder().addBuilder(
            index, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.getDefaultInstance());
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 3;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.Builder> 
           getSlotsBuilderList() {
        return getSlotsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.Builder, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlotOrBuilder> 
          getSlotsFieldBuilder() {
        if (slotsBuilder_ == null) {
          slotsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.Builder, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlotOrBuilder>(
                  slots_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          slots_ = null;
        }
        return slotsBuilder_;
      }

      private long refreshTime_ ;
      /**
       * <pre>
       *刷新时间
       * </pre>
       *
       * <code>int64 refresh_time = 4;</code>
       * @return The refreshTime.
       */
      public long getRefreshTime() {
        return refreshTime_;
      }
      /**
       * <pre>
       *刷新时间
       * </pre>
       *
       * <code>int64 refresh_time = 4;</code>
       * @param value The refreshTime to set.
       * @return This builder for chaining.
       */
      public Builder setRefreshTime(long value) {
        
        refreshTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *刷新时间
       * </pre>
       *
       * <code>int64 refresh_time = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearRefreshTime() {
        
        refreshTime_ = 0L;
        onChanged();
        return this;
      }

      private int discountNum_ ;
      /**
       * <pre>
       *今日已使用折扣次数
       * </pre>
       *
       * <code>int32 discount_num = 5;</code>
       * @return The discountNum.
       */
      public int getDiscountNum() {
        return discountNum_;
      }
      /**
       * <pre>
       *今日已使用折扣次数
       * </pre>
       *
       * <code>int32 discount_num = 5;</code>
       * @param value The discountNum to set.
       * @return This builder for chaining.
       */
      public Builder setDiscountNum(int value) {
        
        discountNum_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *今日已使用折扣次数
       * </pre>
       *
       * <code>int32 discount_num = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearDiscountNum() {
        
        discountNum_ = 0;
        onChanged();
        return this;
      }

      private int adFreeNum_ ;
      /**
       * <pre>
       *已观看广告次数
       * </pre>
       *
       * <code>int32 ad_free_num = 6;</code>
       * @return The adFreeNum.
       */
      public int getAdFreeNum() {
        return adFreeNum_;
      }
      /**
       * <pre>
       *已观看广告次数
       * </pre>
       *
       * <code>int32 ad_free_num = 6;</code>
       * @param value The adFreeNum to set.
       * @return This builder for chaining.
       */
      public Builder setAdFreeNum(int value) {
        
        adFreeNum_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *已观看广告次数
       * </pre>
       *
       * <code>int32 ad_free_num = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearAdFreeNum() {
        
        adFreeNum_ = 0;
        onChanged();
        return this;
      }

      private int multiple_ ;
      /**
       * <pre>
       *当前使用的倍数
       * </pre>
       *
       * <code>int32 multiple = 7;</code>
       * @return The multiple.
       */
      public int getMultiple() {
        return multiple_;
      }
      /**
       * <pre>
       *当前使用的倍数
       * </pre>
       *
       * <code>int32 multiple = 7;</code>
       * @param value The multiple to set.
       * @return This builder for chaining.
       */
      public Builder setMultiple(int value) {
        
        multiple_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *当前使用的倍数
       * </pre>
       *
       * <code>int32 multiple = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearMultiple() {
        
        multiple_ = 0;
        onChanged();
        return this;
      }

      private boolean activateFlag_ ;
      /**
       * <pre>
       *酒馆激活标志 true 为激活
       * </pre>
       *
       * <code>bool activateFlag = 8;</code>
       * @return The activateFlag.
       */
      public boolean getActivateFlag() {
        return activateFlag_;
      }
      /**
       * <pre>
       *酒馆激活标志 true 为激活
       * </pre>
       *
       * <code>bool activateFlag = 8;</code>
       * @param value The activateFlag to set.
       * @return This builder for chaining.
       */
      public Builder setActivateFlag(boolean value) {
        
        activateFlag_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *酒馆激活标志 true 为激活
       * </pre>
       *
       * <code>bool activateFlag = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearActivateFlag() {
        
        activateFlag_ = false;
        onChanged();
        return this;
      }

      private int totalNum_ ;
      /**
       * <pre>
       *招募总次数
       * </pre>
       *
       * <code>int32 total_num = 9;</code>
       * @return The totalNum.
       */
      public int getTotalNum() {
        return totalNum_;
      }
      /**
       * <pre>
       *招募总次数
       * </pre>
       *
       * <code>int32 total_num = 9;</code>
       * @param value The totalNum to set.
       * @return This builder for chaining.
       */
      public Builder setTotalNum(int value) {
        
        totalNum_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *招募总次数
       * </pre>
       *
       * <code>int32 total_num = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearTotalNum() {
        
        totalNum_ = 0;
        onChanged();
        return this;
      }

      private long recruitPoint_ ;
      /**
       * <pre>
       *招募总积分
       * </pre>
       *
       * <code>int64 recruit_point = 10;</code>
       * @return The recruitPoint.
       */
      public long getRecruitPoint() {
        return recruitPoint_;
      }
      /**
       * <pre>
       *招募总积分
       * </pre>
       *
       * <code>int64 recruit_point = 10;</code>
       * @param value The recruitPoint to set.
       * @return This builder for chaining.
       */
      public Builder setRecruitPoint(long value) {
        
        recruitPoint_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *招募总积分
       * </pre>
       *
       * <code>int64 recruit_point = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearRecruitPoint() {
        
        recruitPoint_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.RecruitInfoResponse)
    }

    // @@protoc_insertion_point(class_scope:pb.RecruitInfoResponse)
    private static final pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse();
    }

    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<RecruitInfoResponse>
        PARSER = new com.google.protobuf.AbstractParser<RecruitInfoResponse>() {
      @java.lang.Override
      public RecruitInfoResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new RecruitInfoResponse(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<RecruitInfoResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<RecruitInfoResponse> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.recruit.Recruit.RecruitInfoResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RecruitHeroRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.RecruitHeroRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *倍数
     * </pre>
     *
     * <code>int32 multiple = 1;</code>
     * @return The multiple.
     */
    int getMultiple();
  }
  /**
   * <pre>
   *召唤英雄
   * </pre>
   *
   * Protobuf type {@code pb.RecruitHeroRequest}
   */
  public  static final class RecruitHeroRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.RecruitHeroRequest)
      RecruitHeroRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RecruitHeroRequest.newBuilder() to construct.
    private RecruitHeroRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RecruitHeroRequest() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new RecruitHeroRequest();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private RecruitHeroRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              multiple_ = input.readInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_RecruitHeroRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_RecruitHeroRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest.class, pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.RecruitHeroRequest.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 1600002;</code>
       */
      ID(1600002),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 1600002;</code>
       */
      public static final int ID_VALUE = 1600002;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 1600002: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.RecruitHeroRequest.Proto)
    }

    public static final int MULTIPLE_FIELD_NUMBER = 1;
    private int multiple_;
    /**
     * <pre>
     *倍数
     * </pre>
     *
     * <code>int32 multiple = 1;</code>
     * @return The multiple.
     */
    public int getMultiple() {
      return multiple_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (multiple_ != 0) {
        output.writeInt32(1, multiple_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (multiple_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, multiple_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest other = (pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest) obj;

      if (getMultiple()
          != other.getMultiple()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + MULTIPLE_FIELD_NUMBER;
      hash = (53 * hash) + getMultiple();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     *召唤英雄
     * </pre>
     *
     * Protobuf type {@code pb.RecruitHeroRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.RecruitHeroRequest)
        pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_RecruitHeroRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_RecruitHeroRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest.class, pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        multiple_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_RecruitHeroRequest_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest build() {
        pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest buildPartial() {
        pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest result = new pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest(this);
        result.multiple_ = multiple_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest) {
          return mergeFrom((pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest other) {
        if (other == pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest.getDefaultInstance()) return this;
        if (other.getMultiple() != 0) {
          setMultiple(other.getMultiple());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int multiple_ ;
      /**
       * <pre>
       *倍数
       * </pre>
       *
       * <code>int32 multiple = 1;</code>
       * @return The multiple.
       */
      public int getMultiple() {
        return multiple_;
      }
      /**
       * <pre>
       *倍数
       * </pre>
       *
       * <code>int32 multiple = 1;</code>
       * @param value The multiple to set.
       * @return This builder for chaining.
       */
      public Builder setMultiple(int value) {
        
        multiple_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *倍数
       * </pre>
       *
       * <code>int32 multiple = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearMultiple() {
        
        multiple_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.RecruitHeroRequest)
    }

    // @@protoc_insertion_point(class_scope:pb.RecruitHeroRequest)
    private static final pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest();
    }

    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<RecruitHeroRequest>
        PARSER = new com.google.protobuf.AbstractParser<RecruitHeroRequest>() {
      @java.lang.Override
      public RecruitHeroRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new RecruitHeroRequest(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<RecruitHeroRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<RecruitHeroRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RecruitHeroResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.RecruitHeroResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *倍数
     * </pre>
     *
     * <code>int32 multiple = 1;</code>
     * @return The multiple.
     */
    int getMultiple();

    /**
     * <pre>
     *召唤槽位信息
     * </pre>
     *
     * <code>repeated .pb.PbRecruitSlot slot = 2;</code>
     */
    java.util.List<pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot> 
        getSlotList();
    /**
     * <pre>
     *召唤槽位信息
     * </pre>
     *
     * <code>repeated .pb.PbRecruitSlot slot = 2;</code>
     */
    pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot getSlot(int index);
    /**
     * <pre>
     *召唤槽位信息
     * </pre>
     *
     * <code>repeated .pb.PbRecruitSlot slot = 2;</code>
     */
    int getSlotCount();
    /**
     * <pre>
     *召唤槽位信息
     * </pre>
     *
     * <code>repeated .pb.PbRecruitSlot slot = 2;</code>
     */
    java.util.List<? extends pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlotOrBuilder> 
        getSlotOrBuilderList();
    /**
     * <pre>
     *召唤槽位信息
     * </pre>
     *
     * <code>repeated .pb.PbRecruitSlot slot = 2;</code>
     */
    pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlotOrBuilder getSlotOrBuilder(
        int index);

    /**
     * <pre>
     *今日已使用折扣次数
     * </pre>
     *
     * <code>int32 discount_num = 3;</code>
     * @return The discountNum.
     */
    int getDiscountNum();

    /**
     * <pre>
     *当前阶段，1：10次后紫色概率提升，2：10次后橙色概率提升
     * </pre>
     *
     * <code>int32 stage = 4;</code>
     * @return The stage.
     */
    int getStage();

    /**
     * <pre>
     *当前阶段的次数
     * </pre>
     *
     * <code>int32 stage_num = 5;</code>
     * @return The stageNum.
     */
    int getStageNum();

    /**
     * <pre>
     *招募总次数
     * </pre>
     *
     * <code>int32 total_num = 6;</code>
     * @return The totalNum.
     */
    int getTotalNum();

    /**
     * <pre>
     *招募总积分
     * </pre>
     *
     * <code>int64 recruit_point = 7;</code>
     * @return The recruitPoint.
     */
    long getRecruitPoint();
  }
  /**
   * Protobuf type {@code pb.RecruitHeroResponse}
   */
  public  static final class RecruitHeroResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.RecruitHeroResponse)
      RecruitHeroResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RecruitHeroResponse.newBuilder() to construct.
    private RecruitHeroResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RecruitHeroResponse() {
      slot_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new RecruitHeroResponse();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private RecruitHeroResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              multiple_ = input.readInt32();
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                slot_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot>();
                mutable_bitField0_ |= 0x00000001;
              }
              slot_.add(
                  input.readMessage(pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.parser(), extensionRegistry));
              break;
            }
            case 24: {

              discountNum_ = input.readInt32();
              break;
            }
            case 32: {

              stage_ = input.readInt32();
              break;
            }
            case 40: {

              stageNum_ = input.readInt32();
              break;
            }
            case 48: {

              totalNum_ = input.readInt32();
              break;
            }
            case 56: {

              recruitPoint_ = input.readInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          slot_ = java.util.Collections.unmodifiableList(slot_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_RecruitHeroResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_RecruitHeroResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse.class, pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.RecruitHeroResponse.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 1600002;</code>
       */
      ID(1600002),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 1600002;</code>
       */
      public static final int ID_VALUE = 1600002;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 1600002: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.RecruitHeroResponse.Proto)
    }

    public static final int MULTIPLE_FIELD_NUMBER = 1;
    private int multiple_;
    /**
     * <pre>
     *倍数
     * </pre>
     *
     * <code>int32 multiple = 1;</code>
     * @return The multiple.
     */
    public int getMultiple() {
      return multiple_;
    }

    public static final int SLOT_FIELD_NUMBER = 2;
    private java.util.List<pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot> slot_;
    /**
     * <pre>
     *召唤槽位信息
     * </pre>
     *
     * <code>repeated .pb.PbRecruitSlot slot = 2;</code>
     */
    public java.util.List<pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot> getSlotList() {
      return slot_;
    }
    /**
     * <pre>
     *召唤槽位信息
     * </pre>
     *
     * <code>repeated .pb.PbRecruitSlot slot = 2;</code>
     */
    public java.util.List<? extends pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlotOrBuilder> 
        getSlotOrBuilderList() {
      return slot_;
    }
    /**
     * <pre>
     *召唤槽位信息
     * </pre>
     *
     * <code>repeated .pb.PbRecruitSlot slot = 2;</code>
     */
    public int getSlotCount() {
      return slot_.size();
    }
    /**
     * <pre>
     *召唤槽位信息
     * </pre>
     *
     * <code>repeated .pb.PbRecruitSlot slot = 2;</code>
     */
    public pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot getSlot(int index) {
      return slot_.get(index);
    }
    /**
     * <pre>
     *召唤槽位信息
     * </pre>
     *
     * <code>repeated .pb.PbRecruitSlot slot = 2;</code>
     */
    public pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlotOrBuilder getSlotOrBuilder(
        int index) {
      return slot_.get(index);
    }

    public static final int DISCOUNT_NUM_FIELD_NUMBER = 3;
    private int discountNum_;
    /**
     * <pre>
     *今日已使用折扣次数
     * </pre>
     *
     * <code>int32 discount_num = 3;</code>
     * @return The discountNum.
     */
    public int getDiscountNum() {
      return discountNum_;
    }

    public static final int STAGE_FIELD_NUMBER = 4;
    private int stage_;
    /**
     * <pre>
     *当前阶段，1：10次后紫色概率提升，2：10次后橙色概率提升
     * </pre>
     *
     * <code>int32 stage = 4;</code>
     * @return The stage.
     */
    public int getStage() {
      return stage_;
    }

    public static final int STAGE_NUM_FIELD_NUMBER = 5;
    private int stageNum_;
    /**
     * <pre>
     *当前阶段的次数
     * </pre>
     *
     * <code>int32 stage_num = 5;</code>
     * @return The stageNum.
     */
    public int getStageNum() {
      return stageNum_;
    }

    public static final int TOTAL_NUM_FIELD_NUMBER = 6;
    private int totalNum_;
    /**
     * <pre>
     *招募总次数
     * </pre>
     *
     * <code>int32 total_num = 6;</code>
     * @return The totalNum.
     */
    public int getTotalNum() {
      return totalNum_;
    }

    public static final int RECRUIT_POINT_FIELD_NUMBER = 7;
    private long recruitPoint_;
    /**
     * <pre>
     *招募总积分
     * </pre>
     *
     * <code>int64 recruit_point = 7;</code>
     * @return The recruitPoint.
     */
    public long getRecruitPoint() {
      return recruitPoint_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (multiple_ != 0) {
        output.writeInt32(1, multiple_);
      }
      for (int i = 0; i < slot_.size(); i++) {
        output.writeMessage(2, slot_.get(i));
      }
      if (discountNum_ != 0) {
        output.writeInt32(3, discountNum_);
      }
      if (stage_ != 0) {
        output.writeInt32(4, stage_);
      }
      if (stageNum_ != 0) {
        output.writeInt32(5, stageNum_);
      }
      if (totalNum_ != 0) {
        output.writeInt32(6, totalNum_);
      }
      if (recruitPoint_ != 0L) {
        output.writeInt64(7, recruitPoint_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (multiple_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, multiple_);
      }
      for (int i = 0; i < slot_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, slot_.get(i));
      }
      if (discountNum_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, discountNum_);
      }
      if (stage_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, stage_);
      }
      if (stageNum_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, stageNum_);
      }
      if (totalNum_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, totalNum_);
      }
      if (recruitPoint_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(7, recruitPoint_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse other = (pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse) obj;

      if (getMultiple()
          != other.getMultiple()) return false;
      if (!getSlotList()
          .equals(other.getSlotList())) return false;
      if (getDiscountNum()
          != other.getDiscountNum()) return false;
      if (getStage()
          != other.getStage()) return false;
      if (getStageNum()
          != other.getStageNum()) return false;
      if (getTotalNum()
          != other.getTotalNum()) return false;
      if (getRecruitPoint()
          != other.getRecruitPoint()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + MULTIPLE_FIELD_NUMBER;
      hash = (53 * hash) + getMultiple();
      if (getSlotCount() > 0) {
        hash = (37 * hash) + SLOT_FIELD_NUMBER;
        hash = (53 * hash) + getSlotList().hashCode();
      }
      hash = (37 * hash) + DISCOUNT_NUM_FIELD_NUMBER;
      hash = (53 * hash) + getDiscountNum();
      hash = (37 * hash) + STAGE_FIELD_NUMBER;
      hash = (53 * hash) + getStage();
      hash = (37 * hash) + STAGE_NUM_FIELD_NUMBER;
      hash = (53 * hash) + getStageNum();
      hash = (37 * hash) + TOTAL_NUM_FIELD_NUMBER;
      hash = (53 * hash) + getTotalNum();
      hash = (37 * hash) + RECRUIT_POINT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getRecruitPoint());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code pb.RecruitHeroResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.RecruitHeroResponse)
        pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_RecruitHeroResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_RecruitHeroResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse.class, pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getSlotFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        multiple_ = 0;

        if (slotBuilder_ == null) {
          slot_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          slotBuilder_.clear();
        }
        discountNum_ = 0;

        stage_ = 0;

        stageNum_ = 0;

        totalNum_ = 0;

        recruitPoint_ = 0L;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_RecruitHeroResponse_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse build() {
        pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse buildPartial() {
        pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse result = new pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse(this);
        int from_bitField0_ = bitField0_;
        result.multiple_ = multiple_;
        if (slotBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            slot_ = java.util.Collections.unmodifiableList(slot_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.slot_ = slot_;
        } else {
          result.slot_ = slotBuilder_.build();
        }
        result.discountNum_ = discountNum_;
        result.stage_ = stage_;
        result.stageNum_ = stageNum_;
        result.totalNum_ = totalNum_;
        result.recruitPoint_ = recruitPoint_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse) {
          return mergeFrom((pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse other) {
        if (other == pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse.getDefaultInstance()) return this;
        if (other.getMultiple() != 0) {
          setMultiple(other.getMultiple());
        }
        if (slotBuilder_ == null) {
          if (!other.slot_.isEmpty()) {
            if (slot_.isEmpty()) {
              slot_ = other.slot_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureSlotIsMutable();
              slot_.addAll(other.slot_);
            }
            onChanged();
          }
        } else {
          if (!other.slot_.isEmpty()) {
            if (slotBuilder_.isEmpty()) {
              slotBuilder_.dispose();
              slotBuilder_ = null;
              slot_ = other.slot_;
              bitField0_ = (bitField0_ & ~0x00000001);
              slotBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getSlotFieldBuilder() : null;
            } else {
              slotBuilder_.addAllMessages(other.slot_);
            }
          }
        }
        if (other.getDiscountNum() != 0) {
          setDiscountNum(other.getDiscountNum());
        }
        if (other.getStage() != 0) {
          setStage(other.getStage());
        }
        if (other.getStageNum() != 0) {
          setStageNum(other.getStageNum());
        }
        if (other.getTotalNum() != 0) {
          setTotalNum(other.getTotalNum());
        }
        if (other.getRecruitPoint() != 0L) {
          setRecruitPoint(other.getRecruitPoint());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int multiple_ ;
      /**
       * <pre>
       *倍数
       * </pre>
       *
       * <code>int32 multiple = 1;</code>
       * @return The multiple.
       */
      public int getMultiple() {
        return multiple_;
      }
      /**
       * <pre>
       *倍数
       * </pre>
       *
       * <code>int32 multiple = 1;</code>
       * @param value The multiple to set.
       * @return This builder for chaining.
       */
      public Builder setMultiple(int value) {
        
        multiple_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *倍数
       * </pre>
       *
       * <code>int32 multiple = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearMultiple() {
        
        multiple_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot> slot_ =
        java.util.Collections.emptyList();
      private void ensureSlotIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          slot_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot>(slot_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.Builder, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlotOrBuilder> slotBuilder_;

      /**
       * <pre>
       *召唤槽位信息
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slot = 2;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot> getSlotList() {
        if (slotBuilder_ == null) {
          return java.util.Collections.unmodifiableList(slot_);
        } else {
          return slotBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       *召唤槽位信息
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slot = 2;</code>
       */
      public int getSlotCount() {
        if (slotBuilder_ == null) {
          return slot_.size();
        } else {
          return slotBuilder_.getCount();
        }
      }
      /**
       * <pre>
       *召唤槽位信息
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slot = 2;</code>
       */
      public pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot getSlot(int index) {
        if (slotBuilder_ == null) {
          return slot_.get(index);
        } else {
          return slotBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       *召唤槽位信息
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slot = 2;</code>
       */
      public Builder setSlot(
          int index, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot value) {
        if (slotBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSlotIsMutable();
          slot_.set(index, value);
          onChanged();
        } else {
          slotBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *召唤槽位信息
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slot = 2;</code>
       */
      public Builder setSlot(
          int index, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.Builder builderForValue) {
        if (slotBuilder_ == null) {
          ensureSlotIsMutable();
          slot_.set(index, builderForValue.build());
          onChanged();
        } else {
          slotBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *召唤槽位信息
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slot = 2;</code>
       */
      public Builder addSlot(pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot value) {
        if (slotBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSlotIsMutable();
          slot_.add(value);
          onChanged();
        } else {
          slotBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       *召唤槽位信息
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slot = 2;</code>
       */
      public Builder addSlot(
          int index, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot value) {
        if (slotBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSlotIsMutable();
          slot_.add(index, value);
          onChanged();
        } else {
          slotBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *召唤槽位信息
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slot = 2;</code>
       */
      public Builder addSlot(
          pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.Builder builderForValue) {
        if (slotBuilder_ == null) {
          ensureSlotIsMutable();
          slot_.add(builderForValue.build());
          onChanged();
        } else {
          slotBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *召唤槽位信息
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slot = 2;</code>
       */
      public Builder addSlot(
          int index, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.Builder builderForValue) {
        if (slotBuilder_ == null) {
          ensureSlotIsMutable();
          slot_.add(index, builderForValue.build());
          onChanged();
        } else {
          slotBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *召唤槽位信息
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slot = 2;</code>
       */
      public Builder addAllSlot(
          java.lang.Iterable<? extends pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot> values) {
        if (slotBuilder_ == null) {
          ensureSlotIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, slot_);
          onChanged();
        } else {
          slotBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       *召唤槽位信息
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slot = 2;</code>
       */
      public Builder clearSlot() {
        if (slotBuilder_ == null) {
          slot_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          slotBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       *召唤槽位信息
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slot = 2;</code>
       */
      public Builder removeSlot(int index) {
        if (slotBuilder_ == null) {
          ensureSlotIsMutable();
          slot_.remove(index);
          onChanged();
        } else {
          slotBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       *召唤槽位信息
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slot = 2;</code>
       */
      public pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.Builder getSlotBuilder(
          int index) {
        return getSlotFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       *召唤槽位信息
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slot = 2;</code>
       */
      public pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlotOrBuilder getSlotOrBuilder(
          int index) {
        if (slotBuilder_ == null) {
          return slot_.get(index);  } else {
          return slotBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       *召唤槽位信息
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slot = 2;</code>
       */
      public java.util.List<? extends pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlotOrBuilder> 
           getSlotOrBuilderList() {
        if (slotBuilder_ != null) {
          return slotBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(slot_);
        }
      }
      /**
       * <pre>
       *召唤槽位信息
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slot = 2;</code>
       */
      public pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.Builder addSlotBuilder() {
        return getSlotFieldBuilder().addBuilder(
            pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.getDefaultInstance());
      }
      /**
       * <pre>
       *召唤槽位信息
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slot = 2;</code>
       */
      public pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.Builder addSlotBuilder(
          int index) {
        return getSlotFieldBuilder().addBuilder(
            index, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.getDefaultInstance());
      }
      /**
       * <pre>
       *召唤槽位信息
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slot = 2;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.Builder> 
           getSlotBuilderList() {
        return getSlotFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.Builder, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlotOrBuilder> 
          getSlotFieldBuilder() {
        if (slotBuilder_ == null) {
          slotBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.Builder, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlotOrBuilder>(
                  slot_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          slot_ = null;
        }
        return slotBuilder_;
      }

      private int discountNum_ ;
      /**
       * <pre>
       *今日已使用折扣次数
       * </pre>
       *
       * <code>int32 discount_num = 3;</code>
       * @return The discountNum.
       */
      public int getDiscountNum() {
        return discountNum_;
      }
      /**
       * <pre>
       *今日已使用折扣次数
       * </pre>
       *
       * <code>int32 discount_num = 3;</code>
       * @param value The discountNum to set.
       * @return This builder for chaining.
       */
      public Builder setDiscountNum(int value) {
        
        discountNum_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *今日已使用折扣次数
       * </pre>
       *
       * <code>int32 discount_num = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearDiscountNum() {
        
        discountNum_ = 0;
        onChanged();
        return this;
      }

      private int stage_ ;
      /**
       * <pre>
       *当前阶段，1：10次后紫色概率提升，2：10次后橙色概率提升
       * </pre>
       *
       * <code>int32 stage = 4;</code>
       * @return The stage.
       */
      public int getStage() {
        return stage_;
      }
      /**
       * <pre>
       *当前阶段，1：10次后紫色概率提升，2：10次后橙色概率提升
       * </pre>
       *
       * <code>int32 stage = 4;</code>
       * @param value The stage to set.
       * @return This builder for chaining.
       */
      public Builder setStage(int value) {
        
        stage_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *当前阶段，1：10次后紫色概率提升，2：10次后橙色概率提升
       * </pre>
       *
       * <code>int32 stage = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearStage() {
        
        stage_ = 0;
        onChanged();
        return this;
      }

      private int stageNum_ ;
      /**
       * <pre>
       *当前阶段的次数
       * </pre>
       *
       * <code>int32 stage_num = 5;</code>
       * @return The stageNum.
       */
      public int getStageNum() {
        return stageNum_;
      }
      /**
       * <pre>
       *当前阶段的次数
       * </pre>
       *
       * <code>int32 stage_num = 5;</code>
       * @param value The stageNum to set.
       * @return This builder for chaining.
       */
      public Builder setStageNum(int value) {
        
        stageNum_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *当前阶段的次数
       * </pre>
       *
       * <code>int32 stage_num = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearStageNum() {
        
        stageNum_ = 0;
        onChanged();
        return this;
      }

      private int totalNum_ ;
      /**
       * <pre>
       *招募总次数
       * </pre>
       *
       * <code>int32 total_num = 6;</code>
       * @return The totalNum.
       */
      public int getTotalNum() {
        return totalNum_;
      }
      /**
       * <pre>
       *招募总次数
       * </pre>
       *
       * <code>int32 total_num = 6;</code>
       * @param value The totalNum to set.
       * @return This builder for chaining.
       */
      public Builder setTotalNum(int value) {
        
        totalNum_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *招募总次数
       * </pre>
       *
       * <code>int32 total_num = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearTotalNum() {
        
        totalNum_ = 0;
        onChanged();
        return this;
      }

      private long recruitPoint_ ;
      /**
       * <pre>
       *招募总积分
       * </pre>
       *
       * <code>int64 recruit_point = 7;</code>
       * @return The recruitPoint.
       */
      public long getRecruitPoint() {
        return recruitPoint_;
      }
      /**
       * <pre>
       *招募总积分
       * </pre>
       *
       * <code>int64 recruit_point = 7;</code>
       * @param value The recruitPoint to set.
       * @return This builder for chaining.
       */
      public Builder setRecruitPoint(long value) {
        
        recruitPoint_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *招募总积分
       * </pre>
       *
       * <code>int64 recruit_point = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearRecruitPoint() {
        
        recruitPoint_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.RecruitHeroResponse)
    }

    // @@protoc_insertion_point(class_scope:pb.RecruitHeroResponse)
    private static final pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse();
    }

    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<RecruitHeroResponse>
        PARSER = new com.google.protobuf.AbstractParser<RecruitHeroResponse>() {
      @java.lang.Override
      public RecruitHeroResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new RecruitHeroResponse(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<RecruitHeroResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<RecruitHeroResponse> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.recruit.Recruit.RecruitHeroResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RecruitRefreshRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.RecruitRefreshRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *1放弃当前召唤，2使用刷新券，3使用钻石，4广告免费刷新 5抽完三个英雄 6到达系统时间刷新
     * </pre>
     *
     * <code>int32 cost_type = 1;</code>
     * @return The costType.
     */
    int getCostType();
  }
  /**
   * <pre>
   *手动召唤刷新
   * </pre>
   *
   * Protobuf type {@code pb.RecruitRefreshRequest}
   */
  public  static final class RecruitRefreshRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.RecruitRefreshRequest)
      RecruitRefreshRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RecruitRefreshRequest.newBuilder() to construct.
    private RecruitRefreshRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RecruitRefreshRequest() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new RecruitRefreshRequest();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private RecruitRefreshRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              costType_ = input.readInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_RecruitRefreshRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_RecruitRefreshRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest.class, pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.RecruitRefreshRequest.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 1600003;</code>
       */
      ID(1600003),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 1600003;</code>
       */
      public static final int ID_VALUE = 1600003;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 1600003: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.RecruitRefreshRequest.Proto)
    }

    public static final int COST_TYPE_FIELD_NUMBER = 1;
    private int costType_;
    /**
     * <pre>
     *1放弃当前召唤，2使用刷新券，3使用钻石，4广告免费刷新 5抽完三个英雄 6到达系统时间刷新
     * </pre>
     *
     * <code>int32 cost_type = 1;</code>
     * @return The costType.
     */
    public int getCostType() {
      return costType_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (costType_ != 0) {
        output.writeInt32(1, costType_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (costType_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, costType_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest other = (pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest) obj;

      if (getCostType()
          != other.getCostType()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + COST_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getCostType();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     *手动召唤刷新
     * </pre>
     *
     * Protobuf type {@code pb.RecruitRefreshRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.RecruitRefreshRequest)
        pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_RecruitRefreshRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_RecruitRefreshRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest.class, pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        costType_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_RecruitRefreshRequest_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest build() {
        pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest buildPartial() {
        pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest result = new pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest(this);
        result.costType_ = costType_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest) {
          return mergeFrom((pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest other) {
        if (other == pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest.getDefaultInstance()) return this;
        if (other.getCostType() != 0) {
          setCostType(other.getCostType());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int costType_ ;
      /**
       * <pre>
       *1放弃当前召唤，2使用刷新券，3使用钻石，4广告免费刷新 5抽完三个英雄 6到达系统时间刷新
       * </pre>
       *
       * <code>int32 cost_type = 1;</code>
       * @return The costType.
       */
      public int getCostType() {
        return costType_;
      }
      /**
       * <pre>
       *1放弃当前召唤，2使用刷新券，3使用钻石，4广告免费刷新 5抽完三个英雄 6到达系统时间刷新
       * </pre>
       *
       * <code>int32 cost_type = 1;</code>
       * @param value The costType to set.
       * @return This builder for chaining.
       */
      public Builder setCostType(int value) {
        
        costType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *1放弃当前召唤，2使用刷新券，3使用钻石，4广告免费刷新 5抽完三个英雄 6到达系统时间刷新
       * </pre>
       *
       * <code>int32 cost_type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearCostType() {
        
        costType_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.RecruitRefreshRequest)
    }

    // @@protoc_insertion_point(class_scope:pb.RecruitRefreshRequest)
    private static final pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest();
    }

    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<RecruitRefreshRequest>
        PARSER = new com.google.protobuf.AbstractParser<RecruitRefreshRequest>() {
      @java.lang.Override
      public RecruitRefreshRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new RecruitRefreshRequest(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<RecruitRefreshRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<RecruitRefreshRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface RecruitRefreshResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.RecruitRefreshResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *可召唤英雄
     * </pre>
     *
     * <code>repeated .pb.PbRecruitSlot slots = 1;</code>
     */
    java.util.List<pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot> 
        getSlotsList();
    /**
     * <pre>
     *可召唤英雄
     * </pre>
     *
     * <code>repeated .pb.PbRecruitSlot slots = 1;</code>
     */
    pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot getSlots(int index);
    /**
     * <pre>
     *可召唤英雄
     * </pre>
     *
     * <code>repeated .pb.PbRecruitSlot slots = 1;</code>
     */
    int getSlotsCount();
    /**
     * <pre>
     *可召唤英雄
     * </pre>
     *
     * <code>repeated .pb.PbRecruitSlot slots = 1;</code>
     */
    java.util.List<? extends pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlotOrBuilder> 
        getSlotsOrBuilderList();
    /**
     * <pre>
     *可召唤英雄
     * </pre>
     *
     * <code>repeated .pb.PbRecruitSlot slots = 1;</code>
     */
    pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlotOrBuilder getSlotsOrBuilder(
        int index);

    /**
     * <pre>
     *刷新时间
     * </pre>
     *
     * <code>int64 refresh_time = 2;</code>
     * @return The refreshTime.
     */
    long getRefreshTime();

    /**
     * <pre>
     *当前使用的倍数
     * </pre>
     *
     * <code>int32 multiple = 3;</code>
     * @return The multiple.
     */
    int getMultiple();

    /**
     * <pre>
     *已观看广告次数
     * </pre>
     *
     * <code>int32 ad_free_num = 4;</code>
     * @return The adFreeNum.
     */
    int getAdFreeNum();

    /**
     * <pre>
     *品质阶段
     * </pre>
     *
     * <code>int32 stage = 5;</code>
     * @return The stage.
     */
    int getStage();

    /**
     * <pre>
     *当前阶段中的进度数量
     * </pre>
     *
     * <code>int32 stage_num = 6;</code>
     * @return The stageNum.
     */
    int getStageNum();
  }
  /**
   * Protobuf type {@code pb.RecruitRefreshResponse}
   */
  public  static final class RecruitRefreshResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.RecruitRefreshResponse)
      RecruitRefreshResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RecruitRefreshResponse.newBuilder() to construct.
    private RecruitRefreshResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RecruitRefreshResponse() {
      slots_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new RecruitRefreshResponse();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private RecruitRefreshResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                slots_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot>();
                mutable_bitField0_ |= 0x00000001;
              }
              slots_.add(
                  input.readMessage(pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.parser(), extensionRegistry));
              break;
            }
            case 16: {

              refreshTime_ = input.readInt64();
              break;
            }
            case 24: {

              multiple_ = input.readInt32();
              break;
            }
            case 32: {

              adFreeNum_ = input.readInt32();
              break;
            }
            case 40: {

              stage_ = input.readInt32();
              break;
            }
            case 48: {

              stageNum_ = input.readInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          slots_ = java.util.Collections.unmodifiableList(slots_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_RecruitRefreshResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_RecruitRefreshResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse.class, pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.RecruitRefreshResponse.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 1600003;</code>
       */
      ID(1600003),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 1600003;</code>
       */
      public static final int ID_VALUE = 1600003;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 1600003: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.RecruitRefreshResponse.Proto)
    }

    public static final int SLOTS_FIELD_NUMBER = 1;
    private java.util.List<pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot> slots_;
    /**
     * <pre>
     *可召唤英雄
     * </pre>
     *
     * <code>repeated .pb.PbRecruitSlot slots = 1;</code>
     */
    public java.util.List<pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot> getSlotsList() {
      return slots_;
    }
    /**
     * <pre>
     *可召唤英雄
     * </pre>
     *
     * <code>repeated .pb.PbRecruitSlot slots = 1;</code>
     */
    public java.util.List<? extends pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlotOrBuilder> 
        getSlotsOrBuilderList() {
      return slots_;
    }
    /**
     * <pre>
     *可召唤英雄
     * </pre>
     *
     * <code>repeated .pb.PbRecruitSlot slots = 1;</code>
     */
    public int getSlotsCount() {
      return slots_.size();
    }
    /**
     * <pre>
     *可召唤英雄
     * </pre>
     *
     * <code>repeated .pb.PbRecruitSlot slots = 1;</code>
     */
    public pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot getSlots(int index) {
      return slots_.get(index);
    }
    /**
     * <pre>
     *可召唤英雄
     * </pre>
     *
     * <code>repeated .pb.PbRecruitSlot slots = 1;</code>
     */
    public pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlotOrBuilder getSlotsOrBuilder(
        int index) {
      return slots_.get(index);
    }

    public static final int REFRESH_TIME_FIELD_NUMBER = 2;
    private long refreshTime_;
    /**
     * <pre>
     *刷新时间
     * </pre>
     *
     * <code>int64 refresh_time = 2;</code>
     * @return The refreshTime.
     */
    public long getRefreshTime() {
      return refreshTime_;
    }

    public static final int MULTIPLE_FIELD_NUMBER = 3;
    private int multiple_;
    /**
     * <pre>
     *当前使用的倍数
     * </pre>
     *
     * <code>int32 multiple = 3;</code>
     * @return The multiple.
     */
    public int getMultiple() {
      return multiple_;
    }

    public static final int AD_FREE_NUM_FIELD_NUMBER = 4;
    private int adFreeNum_;
    /**
     * <pre>
     *已观看广告次数
     * </pre>
     *
     * <code>int32 ad_free_num = 4;</code>
     * @return The adFreeNum.
     */
    public int getAdFreeNum() {
      return adFreeNum_;
    }

    public static final int STAGE_FIELD_NUMBER = 5;
    private int stage_;
    /**
     * <pre>
     *品质阶段
     * </pre>
     *
     * <code>int32 stage = 5;</code>
     * @return The stage.
     */
    public int getStage() {
      return stage_;
    }

    public static final int STAGE_NUM_FIELD_NUMBER = 6;
    private int stageNum_;
    /**
     * <pre>
     *当前阶段中的进度数量
     * </pre>
     *
     * <code>int32 stage_num = 6;</code>
     * @return The stageNum.
     */
    public int getStageNum() {
      return stageNum_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < slots_.size(); i++) {
        output.writeMessage(1, slots_.get(i));
      }
      if (refreshTime_ != 0L) {
        output.writeInt64(2, refreshTime_);
      }
      if (multiple_ != 0) {
        output.writeInt32(3, multiple_);
      }
      if (adFreeNum_ != 0) {
        output.writeInt32(4, adFreeNum_);
      }
      if (stage_ != 0) {
        output.writeInt32(5, stage_);
      }
      if (stageNum_ != 0) {
        output.writeInt32(6, stageNum_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < slots_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, slots_.get(i));
      }
      if (refreshTime_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, refreshTime_);
      }
      if (multiple_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, multiple_);
      }
      if (adFreeNum_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, adFreeNum_);
      }
      if (stage_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, stage_);
      }
      if (stageNum_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, stageNum_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse other = (pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse) obj;

      if (!getSlotsList()
          .equals(other.getSlotsList())) return false;
      if (getRefreshTime()
          != other.getRefreshTime()) return false;
      if (getMultiple()
          != other.getMultiple()) return false;
      if (getAdFreeNum()
          != other.getAdFreeNum()) return false;
      if (getStage()
          != other.getStage()) return false;
      if (getStageNum()
          != other.getStageNum()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getSlotsCount() > 0) {
        hash = (37 * hash) + SLOTS_FIELD_NUMBER;
        hash = (53 * hash) + getSlotsList().hashCode();
      }
      hash = (37 * hash) + REFRESH_TIME_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getRefreshTime());
      hash = (37 * hash) + MULTIPLE_FIELD_NUMBER;
      hash = (53 * hash) + getMultiple();
      hash = (37 * hash) + AD_FREE_NUM_FIELD_NUMBER;
      hash = (53 * hash) + getAdFreeNum();
      hash = (37 * hash) + STAGE_FIELD_NUMBER;
      hash = (53 * hash) + getStage();
      hash = (37 * hash) + STAGE_NUM_FIELD_NUMBER;
      hash = (53 * hash) + getStageNum();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code pb.RecruitRefreshResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.RecruitRefreshResponse)
        pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_RecruitRefreshResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_RecruitRefreshResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse.class, pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getSlotsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (slotsBuilder_ == null) {
          slots_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          slotsBuilder_.clear();
        }
        refreshTime_ = 0L;

        multiple_ = 0;

        adFreeNum_ = 0;

        stage_ = 0;

        stageNum_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_RecruitRefreshResponse_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse build() {
        pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse buildPartial() {
        pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse result = new pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse(this);
        int from_bitField0_ = bitField0_;
        if (slotsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            slots_ = java.util.Collections.unmodifiableList(slots_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.slots_ = slots_;
        } else {
          result.slots_ = slotsBuilder_.build();
        }
        result.refreshTime_ = refreshTime_;
        result.multiple_ = multiple_;
        result.adFreeNum_ = adFreeNum_;
        result.stage_ = stage_;
        result.stageNum_ = stageNum_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse) {
          return mergeFrom((pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse other) {
        if (other == pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse.getDefaultInstance()) return this;
        if (slotsBuilder_ == null) {
          if (!other.slots_.isEmpty()) {
            if (slots_.isEmpty()) {
              slots_ = other.slots_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureSlotsIsMutable();
              slots_.addAll(other.slots_);
            }
            onChanged();
          }
        } else {
          if (!other.slots_.isEmpty()) {
            if (slotsBuilder_.isEmpty()) {
              slotsBuilder_.dispose();
              slotsBuilder_ = null;
              slots_ = other.slots_;
              bitField0_ = (bitField0_ & ~0x00000001);
              slotsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getSlotsFieldBuilder() : null;
            } else {
              slotsBuilder_.addAllMessages(other.slots_);
            }
          }
        }
        if (other.getRefreshTime() != 0L) {
          setRefreshTime(other.getRefreshTime());
        }
        if (other.getMultiple() != 0) {
          setMultiple(other.getMultiple());
        }
        if (other.getAdFreeNum() != 0) {
          setAdFreeNum(other.getAdFreeNum());
        }
        if (other.getStage() != 0) {
          setStage(other.getStage());
        }
        if (other.getStageNum() != 0) {
          setStageNum(other.getStageNum());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List<pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot> slots_ =
        java.util.Collections.emptyList();
      private void ensureSlotsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          slots_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot>(slots_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.Builder, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlotOrBuilder> slotsBuilder_;

      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 1;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot> getSlotsList() {
        if (slotsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(slots_);
        } else {
          return slotsBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 1;</code>
       */
      public int getSlotsCount() {
        if (slotsBuilder_ == null) {
          return slots_.size();
        } else {
          return slotsBuilder_.getCount();
        }
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 1;</code>
       */
      public pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot getSlots(int index) {
        if (slotsBuilder_ == null) {
          return slots_.get(index);
        } else {
          return slotsBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 1;</code>
       */
      public Builder setSlots(
          int index, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot value) {
        if (slotsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSlotsIsMutable();
          slots_.set(index, value);
          onChanged();
        } else {
          slotsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 1;</code>
       */
      public Builder setSlots(
          int index, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.Builder builderForValue) {
        if (slotsBuilder_ == null) {
          ensureSlotsIsMutable();
          slots_.set(index, builderForValue.build());
          onChanged();
        } else {
          slotsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 1;</code>
       */
      public Builder addSlots(pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot value) {
        if (slotsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSlotsIsMutable();
          slots_.add(value);
          onChanged();
        } else {
          slotsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 1;</code>
       */
      public Builder addSlots(
          int index, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot value) {
        if (slotsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSlotsIsMutable();
          slots_.add(index, value);
          onChanged();
        } else {
          slotsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 1;</code>
       */
      public Builder addSlots(
          pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.Builder builderForValue) {
        if (slotsBuilder_ == null) {
          ensureSlotsIsMutable();
          slots_.add(builderForValue.build());
          onChanged();
        } else {
          slotsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 1;</code>
       */
      public Builder addSlots(
          int index, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.Builder builderForValue) {
        if (slotsBuilder_ == null) {
          ensureSlotsIsMutable();
          slots_.add(index, builderForValue.build());
          onChanged();
        } else {
          slotsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 1;</code>
       */
      public Builder addAllSlots(
          java.lang.Iterable<? extends pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot> values) {
        if (slotsBuilder_ == null) {
          ensureSlotsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, slots_);
          onChanged();
        } else {
          slotsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 1;</code>
       */
      public Builder clearSlots() {
        if (slotsBuilder_ == null) {
          slots_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          slotsBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 1;</code>
       */
      public Builder removeSlots(int index) {
        if (slotsBuilder_ == null) {
          ensureSlotsIsMutable();
          slots_.remove(index);
          onChanged();
        } else {
          slotsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 1;</code>
       */
      public pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.Builder getSlotsBuilder(
          int index) {
        return getSlotsFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 1;</code>
       */
      public pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlotOrBuilder getSlotsOrBuilder(
          int index) {
        if (slotsBuilder_ == null) {
          return slots_.get(index);  } else {
          return slotsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 1;</code>
       */
      public java.util.List<? extends pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlotOrBuilder> 
           getSlotsOrBuilderList() {
        if (slotsBuilder_ != null) {
          return slotsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(slots_);
        }
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 1;</code>
       */
      public pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.Builder addSlotsBuilder() {
        return getSlotsFieldBuilder().addBuilder(
            pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.getDefaultInstance());
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 1;</code>
       */
      public pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.Builder addSlotsBuilder(
          int index) {
        return getSlotsFieldBuilder().addBuilder(
            index, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.getDefaultInstance());
      }
      /**
       * <pre>
       *可召唤英雄
       * </pre>
       *
       * <code>repeated .pb.PbRecruitSlot slots = 1;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.Builder> 
           getSlotsBuilderList() {
        return getSlotsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.Builder, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlotOrBuilder> 
          getSlotsFieldBuilder() {
        if (slotsBuilder_ == null) {
          slotsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.Builder, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlotOrBuilder>(
                  slots_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          slots_ = null;
        }
        return slotsBuilder_;
      }

      private long refreshTime_ ;
      /**
       * <pre>
       *刷新时间
       * </pre>
       *
       * <code>int64 refresh_time = 2;</code>
       * @return The refreshTime.
       */
      public long getRefreshTime() {
        return refreshTime_;
      }
      /**
       * <pre>
       *刷新时间
       * </pre>
       *
       * <code>int64 refresh_time = 2;</code>
       * @param value The refreshTime to set.
       * @return This builder for chaining.
       */
      public Builder setRefreshTime(long value) {
        
        refreshTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *刷新时间
       * </pre>
       *
       * <code>int64 refresh_time = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRefreshTime() {
        
        refreshTime_ = 0L;
        onChanged();
        return this;
      }

      private int multiple_ ;
      /**
       * <pre>
       *当前使用的倍数
       * </pre>
       *
       * <code>int32 multiple = 3;</code>
       * @return The multiple.
       */
      public int getMultiple() {
        return multiple_;
      }
      /**
       * <pre>
       *当前使用的倍数
       * </pre>
       *
       * <code>int32 multiple = 3;</code>
       * @param value The multiple to set.
       * @return This builder for chaining.
       */
      public Builder setMultiple(int value) {
        
        multiple_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *当前使用的倍数
       * </pre>
       *
       * <code>int32 multiple = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearMultiple() {
        
        multiple_ = 0;
        onChanged();
        return this;
      }

      private int adFreeNum_ ;
      /**
       * <pre>
       *已观看广告次数
       * </pre>
       *
       * <code>int32 ad_free_num = 4;</code>
       * @return The adFreeNum.
       */
      public int getAdFreeNum() {
        return adFreeNum_;
      }
      /**
       * <pre>
       *已观看广告次数
       * </pre>
       *
       * <code>int32 ad_free_num = 4;</code>
       * @param value The adFreeNum to set.
       * @return This builder for chaining.
       */
      public Builder setAdFreeNum(int value) {
        
        adFreeNum_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *已观看广告次数
       * </pre>
       *
       * <code>int32 ad_free_num = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearAdFreeNum() {
        
        adFreeNum_ = 0;
        onChanged();
        return this;
      }

      private int stage_ ;
      /**
       * <pre>
       *品质阶段
       * </pre>
       *
       * <code>int32 stage = 5;</code>
       * @return The stage.
       */
      public int getStage() {
        return stage_;
      }
      /**
       * <pre>
       *品质阶段
       * </pre>
       *
       * <code>int32 stage = 5;</code>
       * @param value The stage to set.
       * @return This builder for chaining.
       */
      public Builder setStage(int value) {
        
        stage_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *品质阶段
       * </pre>
       *
       * <code>int32 stage = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearStage() {
        
        stage_ = 0;
        onChanged();
        return this;
      }

      private int stageNum_ ;
      /**
       * <pre>
       *当前阶段中的进度数量
       * </pre>
       *
       * <code>int32 stage_num = 6;</code>
       * @return The stageNum.
       */
      public int getStageNum() {
        return stageNum_;
      }
      /**
       * <pre>
       *当前阶段中的进度数量
       * </pre>
       *
       * <code>int32 stage_num = 6;</code>
       * @param value The stageNum to set.
       * @return This builder for chaining.
       */
      public Builder setStageNum(int value) {
        
        stageNum_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *当前阶段中的进度数量
       * </pre>
       *
       * <code>int32 stage_num = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearStageNum() {
        
        stageNum_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.RecruitRefreshResponse)
    }

    // @@protoc_insertion_point(class_scope:pb.RecruitRefreshResponse)
    private static final pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse();
    }

    public static pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<RecruitRefreshResponse>
        PARSER = new com.google.protobuf.AbstractParser<RecruitRefreshResponse>() {
      @java.lang.Override
      public RecruitRefreshResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new RecruitRefreshResponse(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<RecruitRefreshResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<RecruitRefreshResponse> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.recruit.Recruit.RecruitRefreshResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PbRecruitSlotOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.PbRecruitSlot)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *英雄标识
     * </pre>
     *
     * <code>int32 identity = 1;</code>
     * @return The identity.
     */
    int getIdentity();

    /**
     * <pre>
     *碎片数量
     * </pre>
     *
     * <code>int32 fragment = 2;</code>
     * @return The fragment.
     */
    int getFragment();

    /**
     * <pre>
     *积分
     * </pre>
     *
     * <code>int64 score = 3;</code>
     * @return The score.
     */
    long getScore();

    /**
     * <pre>
     *1为未中 2为已抽
     * </pre>
     *
     * <code>int32 take = 4;</code>
     * @return The take.
     */
    int getTake();

    /**
     * <code>bool multiple_score = 5;</code>
     * @return The multipleScore.
     */
    boolean getMultipleScore();
  }
  /**
   * <pre>
   *召唤槽位
   * </pre>
   *
   * Protobuf type {@code pb.PbRecruitSlot}
   */
  public  static final class PbRecruitSlot extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.PbRecruitSlot)
      PbRecruitSlotOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PbRecruitSlot.newBuilder() to construct.
    private PbRecruitSlot(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PbRecruitSlot() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PbRecruitSlot();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PbRecruitSlot(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              identity_ = input.readInt32();
              break;
            }
            case 16: {

              fragment_ = input.readInt32();
              break;
            }
            case 24: {

              score_ = input.readInt64();
              break;
            }
            case 32: {

              take_ = input.readInt32();
              break;
            }
            case 40: {

              multipleScore_ = input.readBool();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_PbRecruitSlot_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_PbRecruitSlot_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.class, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.Builder.class);
    }

    public static final int IDENTITY_FIELD_NUMBER = 1;
    private int identity_;
    /**
     * <pre>
     *英雄标识
     * </pre>
     *
     * <code>int32 identity = 1;</code>
     * @return The identity.
     */
    public int getIdentity() {
      return identity_;
    }

    public static final int FRAGMENT_FIELD_NUMBER = 2;
    private int fragment_;
    /**
     * <pre>
     *碎片数量
     * </pre>
     *
     * <code>int32 fragment = 2;</code>
     * @return The fragment.
     */
    public int getFragment() {
      return fragment_;
    }

    public static final int SCORE_FIELD_NUMBER = 3;
    private long score_;
    /**
     * <pre>
     *积分
     * </pre>
     *
     * <code>int64 score = 3;</code>
     * @return The score.
     */
    public long getScore() {
      return score_;
    }

    public static final int TAKE_FIELD_NUMBER = 4;
    private int take_;
    /**
     * <pre>
     *1为未中 2为已抽
     * </pre>
     *
     * <code>int32 take = 4;</code>
     * @return The take.
     */
    public int getTake() {
      return take_;
    }

    public static final int MULTIPLE_SCORE_FIELD_NUMBER = 5;
    private boolean multipleScore_;
    /**
     * <code>bool multiple_score = 5;</code>
     * @return The multipleScore.
     */
    public boolean getMultipleScore() {
      return multipleScore_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (identity_ != 0) {
        output.writeInt32(1, identity_);
      }
      if (fragment_ != 0) {
        output.writeInt32(2, fragment_);
      }
      if (score_ != 0L) {
        output.writeInt64(3, score_);
      }
      if (take_ != 0) {
        output.writeInt32(4, take_);
      }
      if (multipleScore_ != false) {
        output.writeBool(5, multipleScore_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (identity_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, identity_);
      }
      if (fragment_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, fragment_);
      }
      if (score_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, score_);
      }
      if (take_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, take_);
      }
      if (multipleScore_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(5, multipleScore_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot other = (pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot) obj;

      if (getIdentity()
          != other.getIdentity()) return false;
      if (getFragment()
          != other.getFragment()) return false;
      if (getScore()
          != other.getScore()) return false;
      if (getTake()
          != other.getTake()) return false;
      if (getMultipleScore()
          != other.getMultipleScore()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + IDENTITY_FIELD_NUMBER;
      hash = (53 * hash) + getIdentity();
      hash = (37 * hash) + FRAGMENT_FIELD_NUMBER;
      hash = (53 * hash) + getFragment();
      hash = (37 * hash) + SCORE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getScore());
      hash = (37 * hash) + TAKE_FIELD_NUMBER;
      hash = (53 * hash) + getTake();
      hash = (37 * hash) + MULTIPLE_SCORE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getMultipleScore());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     *召唤槽位
     * </pre>
     *
     * Protobuf type {@code pb.PbRecruitSlot}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.PbRecruitSlot)
        pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlotOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_PbRecruitSlot_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_PbRecruitSlot_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.class, pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        identity_ = 0;

        fragment_ = 0;

        score_ = 0L;

        take_ = 0;

        multipleScore_ = false;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.internal_static_pb_PbRecruitSlot_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot build() {
        pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot buildPartial() {
        pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot result = new pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot(this);
        result.identity_ = identity_;
        result.fragment_ = fragment_;
        result.score_ = score_;
        result.take_ = take_;
        result.multipleScore_ = multipleScore_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot) {
          return mergeFrom((pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot other) {
        if (other == pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot.getDefaultInstance()) return this;
        if (other.getIdentity() != 0) {
          setIdentity(other.getIdentity());
        }
        if (other.getFragment() != 0) {
          setFragment(other.getFragment());
        }
        if (other.getScore() != 0L) {
          setScore(other.getScore());
        }
        if (other.getTake() != 0) {
          setTake(other.getTake());
        }
        if (other.getMultipleScore() != false) {
          setMultipleScore(other.getMultipleScore());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int identity_ ;
      /**
       * <pre>
       *英雄标识
       * </pre>
       *
       * <code>int32 identity = 1;</code>
       * @return The identity.
       */
      public int getIdentity() {
        return identity_;
      }
      /**
       * <pre>
       *英雄标识
       * </pre>
       *
       * <code>int32 identity = 1;</code>
       * @param value The identity to set.
       * @return This builder for chaining.
       */
      public Builder setIdentity(int value) {
        
        identity_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *英雄标识
       * </pre>
       *
       * <code>int32 identity = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearIdentity() {
        
        identity_ = 0;
        onChanged();
        return this;
      }

      private int fragment_ ;
      /**
       * <pre>
       *碎片数量
       * </pre>
       *
       * <code>int32 fragment = 2;</code>
       * @return The fragment.
       */
      public int getFragment() {
        return fragment_;
      }
      /**
       * <pre>
       *碎片数量
       * </pre>
       *
       * <code>int32 fragment = 2;</code>
       * @param value The fragment to set.
       * @return This builder for chaining.
       */
      public Builder setFragment(int value) {
        
        fragment_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *碎片数量
       * </pre>
       *
       * <code>int32 fragment = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearFragment() {
        
        fragment_ = 0;
        onChanged();
        return this;
      }

      private long score_ ;
      /**
       * <pre>
       *积分
       * </pre>
       *
       * <code>int64 score = 3;</code>
       * @return The score.
       */
      public long getScore() {
        return score_;
      }
      /**
       * <pre>
       *积分
       * </pre>
       *
       * <code>int64 score = 3;</code>
       * @param value The score to set.
       * @return This builder for chaining.
       */
      public Builder setScore(long value) {
        
        score_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *积分
       * </pre>
       *
       * <code>int64 score = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearScore() {
        
        score_ = 0L;
        onChanged();
        return this;
      }

      private int take_ ;
      /**
       * <pre>
       *1为未中 2为已抽
       * </pre>
       *
       * <code>int32 take = 4;</code>
       * @return The take.
       */
      public int getTake() {
        return take_;
      }
      /**
       * <pre>
       *1为未中 2为已抽
       * </pre>
       *
       * <code>int32 take = 4;</code>
       * @param value The take to set.
       * @return This builder for chaining.
       */
      public Builder setTake(int value) {
        
        take_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *1为未中 2为已抽
       * </pre>
       *
       * <code>int32 take = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearTake() {
        
        take_ = 0;
        onChanged();
        return this;
      }

      private boolean multipleScore_ ;
      /**
       * <code>bool multiple_score = 5;</code>
       * @return The multipleScore.
       */
      public boolean getMultipleScore() {
        return multipleScore_;
      }
      /**
       * <code>bool multiple_score = 5;</code>
       * @param value The multipleScore to set.
       * @return This builder for chaining.
       */
      public Builder setMultipleScore(boolean value) {
        
        multipleScore_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>bool multiple_score = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearMultipleScore() {
        
        multipleScore_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.PbRecruitSlot)
    }

    // @@protoc_insertion_point(class_scope:pb.PbRecruitSlot)
    private static final pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot();
    }

    public static pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<PbRecruitSlot>
        PARSER = new com.google.protobuf.AbstractParser<PbRecruitSlot>() {
      @java.lang.Override
      public PbRecruitSlot parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PbRecruitSlot(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<PbRecruitSlot> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PbRecruitSlot> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.recruit.Recruit.PbRecruitSlot getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_RecruitInfoRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_RecruitInfoRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_RecruitInfoResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_RecruitInfoResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_RecruitHeroRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_RecruitHeroRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_RecruitHeroResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_RecruitHeroResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_RecruitRefreshRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_RecruitRefreshRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_RecruitRefreshResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_RecruitRefreshResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_PbRecruitSlot_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_PbRecruitSlot_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\rRecruit.proto\022\002pb\"4\n\022RecruitInfoReques" +
      "t\"\036\n\005Proto\022\013\n\007UNKNOWN\020\000\022\010\n\002ID\020\201\324a\"\214\002\n\023Re" +
      "cruitInfoResponse\022\r\n\005stage\030\001 \001(\005\022\021\n\tstag" +
      "e_num\030\002 \001(\005\022 \n\005slots\030\003 \003(\0132\021.pb.PbRecrui" +
      "tSlot\022\024\n\014refresh_time\030\004 \001(\003\022\024\n\014discount_" +
      "num\030\005 \001(\005\022\023\n\013ad_free_num\030\006 \001(\005\022\020\n\010multip" +
      "le\030\007 \001(\005\022\024\n\014activateFlag\030\010 \001(\010\022\021\n\ttotal_" +
      "num\030\t \001(\005\022\025\n\rrecruit_point\030\n \001(\003\"\036\n\005Prot" +
      "o\022\013\n\007UNKNOWN\020\000\022\010\n\002ID\020\201\324a\"F\n\022RecruitHeroR" +
      "equest\022\020\n\010multiple\030\001 \001(\005\"\036\n\005Proto\022\013\n\007UNK" +
      "NOWN\020\000\022\010\n\002ID\020\202\324a\"\312\001\n\023RecruitHeroResponse" +
      "\022\020\n\010multiple\030\001 \001(\005\022\037\n\004slot\030\002 \003(\0132\021.pb.Pb" +
      "RecruitSlot\022\024\n\014discount_num\030\003 \001(\005\022\r\n\005sta" +
      "ge\030\004 \001(\005\022\021\n\tstage_num\030\005 \001(\005\022\021\n\ttotal_num" +
      "\030\006 \001(\005\022\025\n\rrecruit_point\030\007 \001(\003\"\036\n\005Proto\022\013" +
      "\n\007UNKNOWN\020\000\022\010\n\002ID\020\202\324a\"J\n\025RecruitRefreshR" +
      "equest\022\021\n\tcost_type\030\001 \001(\005\"\036\n\005Proto\022\013\n\007UN" +
      "KNOWN\020\000\022\010\n\002ID\020\203\324a\"\271\001\n\026RecruitRefreshResp" +
      "onse\022 \n\005slots\030\001 \003(\0132\021.pb.PbRecruitSlot\022\024" +
      "\n\014refresh_time\030\002 \001(\003\022\020\n\010multiple\030\003 \001(\005\022\023" +
      "\n\013ad_free_num\030\004 \001(\005\022\r\n\005stage\030\005 \001(\005\022\021\n\tst" +
      "age_num\030\006 \001(\005\"\036\n\005Proto\022\013\n\007UNKNOWN\020\000\022\010\n\002I" +
      "D\020\203\324a\"h\n\rPbRecruitSlot\022\020\n\010identity\030\001 \001(\005" +
      "\022\020\n\010fragment\030\002 \001(\005\022\r\n\005score\030\003 \001(\003\022\014\n\004tak" +
      "e\030\004 \001(\005\022\026\n\016multiple_score\030\005 \001(\010B7\n\035pb.xi" +
      "ugou.x1.protobuf.recruit\252\002\025pb.xiugou.x1." +
      "protobufb\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        });
    internal_static_pb_RecruitInfoRequest_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_pb_RecruitInfoRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_RecruitInfoRequest_descriptor,
        new java.lang.String[] { });
    internal_static_pb_RecruitInfoResponse_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_pb_RecruitInfoResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_RecruitInfoResponse_descriptor,
        new java.lang.String[] { "Stage", "StageNum", "Slots", "RefreshTime", "DiscountNum", "AdFreeNum", "Multiple", "ActivateFlag", "TotalNum", "RecruitPoint", });
    internal_static_pb_RecruitHeroRequest_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_pb_RecruitHeroRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_RecruitHeroRequest_descriptor,
        new java.lang.String[] { "Multiple", });
    internal_static_pb_RecruitHeroResponse_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_pb_RecruitHeroResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_RecruitHeroResponse_descriptor,
        new java.lang.String[] { "Multiple", "Slot", "DiscountNum", "Stage", "StageNum", "TotalNum", "RecruitPoint", });
    internal_static_pb_RecruitRefreshRequest_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_pb_RecruitRefreshRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_RecruitRefreshRequest_descriptor,
        new java.lang.String[] { "CostType", });
    internal_static_pb_RecruitRefreshResponse_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_pb_RecruitRefreshResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_RecruitRefreshResponse_descriptor,
        new java.lang.String[] { "Slots", "RefreshTime", "Multiple", "AdFreeNum", "Stage", "StageNum", });
    internal_static_pb_PbRecruitSlot_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_pb_PbRecruitSlot_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_PbRecruitSlot_descriptor,
        new java.lang.String[] { "Identity", "Fragment", "Score", "Take", "MultipleScore", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}
