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

package pb.xiugou.x1.protobuf.rank;

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

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  /**
   * Protobuf enum {@code pb.PbRankType}
   */
  public enum PbRankType
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>NONE_RANK_TYPE = 0;</code>
     */
    NONE_RANK_TYPE(0),
    /**
     * <pre>
     *等级排行榜，PbPlayerNormalTop3
     * </pre>
     *
     * <code>LEVEL_RANK = 1;</code>
     */
    LEVEL_RANK(1),
    /**
     * <pre>
     *主线战力排行榜，PbPlayerNormalTop3
     * </pre>
     *
     * <code>FIGHTING_RANK = 2;</code>
     */
    FIGHTING_RANK(2),
    /**
     * <pre>
     *英雄基础战力排行榜，PbPlayerNormalTop3
     * </pre>
     *
     * <code>HERO_RANK = 3;</code>
     */
    HERO_RANK(3),
    /**
     * <pre>
     *装备排行榜，PbPlayerNormalTop3
     * </pre>
     *
     * <code>EQUIP_RANK = 4;</code>
     */
    EQUIP_RANK(4),
    /**
     * <pre>
     *炼狱轮回阶数排行榜，PbPlayerNormalTop3
     * </pre>
     *
     * <code>PURGATORY_RANK = 5;</code>
     */
    PURGATORY_RANK(5),
    /**
     * <pre>
     *村庄保卫关卡排行榜，PbPlayerNormalTop3
     * </pre>
     *
     * <code>VILLAGE_RANK = 6;</code>
     */
    VILLAGE_RANK(6),
    /**
     * <pre>
     *迷雾解锁排行榜，PbPlayerNormalTop3
     * </pre>
     *
     * <code>FOG = 7;</code>
     */
    FOG(7),
    UNRECOGNIZED(-1),
    ;

    /**
     * <code>NONE_RANK_TYPE = 0;</code>
     */
    public static final int NONE_RANK_TYPE_VALUE = 0;
    /**
     * <pre>
     *等级排行榜，PbPlayerNormalTop3
     * </pre>
     *
     * <code>LEVEL_RANK = 1;</code>
     */
    public static final int LEVEL_RANK_VALUE = 1;
    /**
     * <pre>
     *主线战力排行榜，PbPlayerNormalTop3
     * </pre>
     *
     * <code>FIGHTING_RANK = 2;</code>
     */
    public static final int FIGHTING_RANK_VALUE = 2;
    /**
     * <pre>
     *英雄基础战力排行榜，PbPlayerNormalTop3
     * </pre>
     *
     * <code>HERO_RANK = 3;</code>
     */
    public static final int HERO_RANK_VALUE = 3;
    /**
     * <pre>
     *装备排行榜，PbPlayerNormalTop3
     * </pre>
     *
     * <code>EQUIP_RANK = 4;</code>
     */
    public static final int EQUIP_RANK_VALUE = 4;
    /**
     * <pre>
     *炼狱轮回阶数排行榜，PbPlayerNormalTop3
     * </pre>
     *
     * <code>PURGATORY_RANK = 5;</code>
     */
    public static final int PURGATORY_RANK_VALUE = 5;
    /**
     * <pre>
     *村庄保卫关卡排行榜，PbPlayerNormalTop3
     * </pre>
     *
     * <code>VILLAGE_RANK = 6;</code>
     */
    public static final int VILLAGE_RANK_VALUE = 6;
    /**
     * <pre>
     *迷雾解锁排行榜，PbPlayerNormalTop3
     * </pre>
     *
     * <code>FOG = 7;</code>
     */
    public static final int FOG_VALUE = 7;


    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 PbRankType 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 PbRankType forNumber(int value) {
      switch (value) {
        case 0: return NONE_RANK_TYPE;
        case 1: return LEVEL_RANK;
        case 2: return FIGHTING_RANK;
        case 3: return HERO_RANK;
        case 4: return EQUIP_RANK;
        case 5: return PURGATORY_RANK;
        case 6: return VILLAGE_RANK;
        case 7: return FOG;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<PbRankType>
        internalGetValueMap() {
      return internalValueMap;
    }
    private static final com.google.protobuf.Internal.EnumLiteMap<
        PbRankType> internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<PbRankType>() {
            public PbRankType findValueByNumber(int number) {
              return PbRankType.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.rank.Rank.getDescriptor().getEnumTypes().get(0);
    }

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

    public static PbRankType 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 PbRankType(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:pb.PbRankType)
  }

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

    /**
     * <pre>
     *排行榜类型 1等级 2战力 3英雄 4装备 5炼狱轮回
     * </pre>
     *
     * <code>int32 rank_type = 1;</code>
     * @return The rankType.
     */
    int getRankType();

    /**
     * <pre>
     *页码，从1开始 直接发1就好
     * </pre>
     *
     * <code>int32 page = 2;</code>
     * @return The page.
     */
    int getPage();
  }
  /**
   * <pre>
   *排行榜数据
   * </pre>
   *
   * Protobuf type {@code pb.RankRequest}
   */
  public  static final class RankRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.RankRequest)
      RankRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RankRequest.newBuilder() to construct.
    private RankRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RankRequest() {
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private RankRequest(
        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: {

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

              page_ = 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.rank.Rank.internal_static_pb_RankRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_RankRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.rank.Rank.RankRequest.class, pb.xiugou.x1.protobuf.rank.Rank.RankRequest.Builder.class);
    }

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

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


      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 2300001: 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.rank.Rank.RankRequest.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.RankRequest.Proto)
    }

    public static final int RANK_TYPE_FIELD_NUMBER = 1;
    private int rankType_;
    /**
     * <pre>
     *排行榜类型 1等级 2战力 3英雄 4装备 5炼狱轮回
     * </pre>
     *
     * <code>int32 rank_type = 1;</code>
     * @return The rankType.
     */
    public int getRankType() {
      return rankType_;
    }

    public static final int PAGE_FIELD_NUMBER = 2;
    private int page_;
    /**
     * <pre>
     *页码，从1开始 直接发1就好
     * </pre>
     *
     * <code>int32 page = 2;</code>
     * @return The page.
     */
    public int getPage() {
      return page_;
    }

    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 (rankType_ != 0) {
        output.writeInt32(1, rankType_);
      }
      if (page_ != 0) {
        output.writeInt32(2, page_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (rankType_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, rankType_);
      }
      if (page_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, page_);
      }
      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.rank.Rank.RankRequest)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.rank.Rank.RankRequest other = (pb.xiugou.x1.protobuf.rank.Rank.RankRequest) obj;

      if (getRankType()
          != other.getRankType()) return false;
      if (getPage()
          != other.getPage()) 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) + RANK_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getRankType();
      hash = (37 * hash) + PAGE_FIELD_NUMBER;
      hash = (53 * hash) + getPage();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.rank.Rank.RankRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankRequest 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.rank.Rank.RankRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankRequest 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.rank.Rank.RankRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankRequest 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.rank.Rank.RankRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankRequest 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.rank.Rank.RankRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankRequest 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.rank.Rank.RankRequest 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.RankRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.RankRequest)
        pb.xiugou.x1.protobuf.rank.Rank.RankRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_RankRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_RankRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.rank.Rank.RankRequest.class, pb.xiugou.x1.protobuf.rank.Rank.RankRequest.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.rank.Rank.RankRequest.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();
        rankType_ = 0;

        page_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_RankRequest_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.rank.Rank.RankRequest getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.rank.Rank.RankRequest.getDefaultInstance();
      }

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

      @java.lang.Override
      public pb.xiugou.x1.protobuf.rank.Rank.RankRequest buildPartial() {
        pb.xiugou.x1.protobuf.rank.Rank.RankRequest result = new pb.xiugou.x1.protobuf.rank.Rank.RankRequest(this);
        result.rankType_ = rankType_;
        result.page_ = page_;
        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.rank.Rank.RankRequest) {
          return mergeFrom((pb.xiugou.x1.protobuf.rank.Rank.RankRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.rank.Rank.RankRequest other) {
        if (other == pb.xiugou.x1.protobuf.rank.Rank.RankRequest.getDefaultInstance()) return this;
        if (other.getRankType() != 0) {
          setRankType(other.getRankType());
        }
        if (other.getPage() != 0) {
          setPage(other.getPage());
        }
        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.rank.Rank.RankRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.rank.Rank.RankRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int rankType_ ;
      /**
       * <pre>
       *排行榜类型 1等级 2战力 3英雄 4装备 5炼狱轮回
       * </pre>
       *
       * <code>int32 rank_type = 1;</code>
       * @return The rankType.
       */
      public int getRankType() {
        return rankType_;
      }
      /**
       * <pre>
       *排行榜类型 1等级 2战力 3英雄 4装备 5炼狱轮回
       * </pre>
       *
       * <code>int32 rank_type = 1;</code>
       * @param value The rankType to set.
       * @return This builder for chaining.
       */
      public Builder setRankType(int value) {
        
        rankType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *排行榜类型 1等级 2战力 3英雄 4装备 5炼狱轮回
       * </pre>
       *
       * <code>int32 rank_type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearRankType() {
        
        rankType_ = 0;
        onChanged();
        return this;
      }

      private int page_ ;
      /**
       * <pre>
       *页码，从1开始 直接发1就好
       * </pre>
       *
       * <code>int32 page = 2;</code>
       * @return The page.
       */
      public int getPage() {
        return page_;
      }
      /**
       * <pre>
       *页码，从1开始 直接发1就好
       * </pre>
       *
       * <code>int32 page = 2;</code>
       * @param value The page to set.
       * @return This builder for chaining.
       */
      public Builder setPage(int value) {
        
        page_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *页码，从1开始 直接发1就好
       * </pre>
       *
       * <code>int32 page = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPage() {
        
        page_ = 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.RankRequest)
    }

    // @@protoc_insertion_point(class_scope:pb.RankRequest)
    private static final pb.xiugou.x1.protobuf.rank.Rank.RankRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.rank.Rank.RankRequest();
    }

    public static pb.xiugou.x1.protobuf.rank.Rank.RankRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public pb.xiugou.x1.protobuf.rank.Rank.RankRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     *排行榜类型
     * </pre>
     *
     * <code>int32 rank_type = 1;</code>
     * @return The rankType.
     */
    int getRankType();

    /**
     * <pre>
     *页码，从1开始
     * </pre>
     *
     * <code>int32 page = 2;</code>
     * @return The page.
     */
    int getPage();

    /**
     * <pre>
     *已领取奖励列表 奖励Id（有数据则说明已领取）
     * </pre>
     *
     * <code>repeated int32 reward_id = 3;</code>
     * @return A list containing the rewardId.
     */
    java.util.List<java.lang.Integer> getRewardIdList();
    /**
     * <pre>
     *已领取奖励列表 奖励Id（有数据则说明已领取）
     * </pre>
     *
     * <code>repeated int32 reward_id = 3;</code>
     * @return The count of rewardId.
     */
    int getRewardIdCount();
    /**
     * <pre>
     *已领取奖励列表 奖励Id（有数据则说明已领取）
     * </pre>
     *
     * <code>repeated int32 reward_id = 3;</code>
     * @param index The index of the element to return.
     * @return The rewardId at the given index.
     */
    int getRewardId(int index);

    /**
     * <pre>
     *排行榜列表
     * </pre>
     *
     * <code>repeated .pb.PbRanker rank_list = 4;</code>
     */
    java.util.List<pb.xiugou.x1.protobuf.rank.Rank.PbRanker> 
        getRankListList();
    /**
     * <pre>
     *排行榜列表
     * </pre>
     *
     * <code>repeated .pb.PbRanker rank_list = 4;</code>
     */
    pb.xiugou.x1.protobuf.rank.Rank.PbRanker getRankList(int index);
    /**
     * <pre>
     *排行榜列表
     * </pre>
     *
     * <code>repeated .pb.PbRanker rank_list = 4;</code>
     */
    int getRankListCount();
    /**
     * <pre>
     *排行榜列表
     * </pre>
     *
     * <code>repeated .pb.PbRanker rank_list = 4;</code>
     */
    java.util.List<? extends pb.xiugou.x1.protobuf.rank.Rank.PbRankerOrBuilder> 
        getRankListOrBuilderList();
    /**
     * <pre>
     *排行榜列表
     * </pre>
     *
     * <code>repeated .pb.PbRanker rank_list = 4;</code>
     */
    pb.xiugou.x1.protobuf.rank.Rank.PbRankerOrBuilder getRankListOrBuilder(
        int index);

    /**
     * <pre>
     *自己的排行数据
     * </pre>
     *
     * <code>.pb.PbRanker self_rank = 5;</code>
     * @return Whether the selfRank field is set.
     */
    boolean hasSelfRank();
    /**
     * <pre>
     *自己的排行数据
     * </pre>
     *
     * <code>.pb.PbRanker self_rank = 5;</code>
     * @return The selfRank.
     */
    pb.xiugou.x1.protobuf.rank.Rank.PbRanker getSelfRank();
    /**
     * <pre>
     *自己的排行数据
     * </pre>
     *
     * <code>.pb.PbRanker self_rank = 5;</code>
     */
    pb.xiugou.x1.protobuf.rank.Rank.PbRankerOrBuilder getSelfRankOrBuilder();

    /**
     * <pre>
     *达成奖励（有数据则说明可领取）
     * </pre>
     *
     * <code>int32 achieve_id = 6;</code>
     * @return The achieveId.
     */
    int getAchieveId();

    /**
     * <pre>
     *新触发的首位达成信息
     * </pre>
     *
     * <code>repeated .pb.PbRankFirstReach first_reaches = 7;</code>
     */
    java.util.List<pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach> 
        getFirstReachesList();
    /**
     * <pre>
     *新触发的首位达成信息
     * </pre>
     *
     * <code>repeated .pb.PbRankFirstReach first_reaches = 7;</code>
     */
    pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach getFirstReaches(int index);
    /**
     * <pre>
     *新触发的首位达成信息
     * </pre>
     *
     * <code>repeated .pb.PbRankFirstReach first_reaches = 7;</code>
     */
    int getFirstReachesCount();
    /**
     * <pre>
     *新触发的首位达成信息
     * </pre>
     *
     * <code>repeated .pb.PbRankFirstReach first_reaches = 7;</code>
     */
    java.util.List<? extends pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReachOrBuilder> 
        getFirstReachesOrBuilderList();
    /**
     * <pre>
     *新触发的首位达成信息
     * </pre>
     *
     * <code>repeated .pb.PbRankFirstReach first_reaches = 7;</code>
     */
    pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReachOrBuilder getFirstReachesOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code pb.RankResponse}
   */
  public  static final class RankResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.RankResponse)
      RankResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RankResponse.newBuilder() to construct.
    private RankResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RankResponse() {
      rewardId_ = emptyIntList();
      rankList_ = java.util.Collections.emptyList();
      firstReaches_ = java.util.Collections.emptyList();
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private RankResponse(
        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: {

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

              page_ = input.readInt32();
              break;
            }
            case 24: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                rewardId_ = newIntList();
                mutable_bitField0_ |= 0x00000001;
              }
              rewardId_.addInt(input.readInt32());
              break;
            }
            case 26: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
                rewardId_ = newIntList();
                mutable_bitField0_ |= 0x00000001;
              }
              while (input.getBytesUntilLimit() > 0) {
                rewardId_.addInt(input.readInt32());
              }
              input.popLimit(limit);
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                rankList_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.rank.Rank.PbRanker>();
                mutable_bitField0_ |= 0x00000002;
              }
              rankList_.add(
                  input.readMessage(pb.xiugou.x1.protobuf.rank.Rank.PbRanker.parser(), extensionRegistry));
              break;
            }
            case 42: {
              pb.xiugou.x1.protobuf.rank.Rank.PbRanker.Builder subBuilder = null;
              if (selfRank_ != null) {
                subBuilder = selfRank_.toBuilder();
              }
              selfRank_ = input.readMessage(pb.xiugou.x1.protobuf.rank.Rank.PbRanker.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(selfRank_);
                selfRank_ = subBuilder.buildPartial();
              }

              break;
            }
            case 48: {

              achieveId_ = input.readInt32();
              break;
            }
            case 58: {
              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
                firstReaches_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach>();
                mutable_bitField0_ |= 0x00000004;
              }
              firstReaches_.add(
                  input.readMessage(pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.parser(), extensionRegistry));
              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)) {
          rewardId_.makeImmutable(); // C
        }
        if (((mutable_bitField0_ & 0x00000002) != 0)) {
          rankList_ = java.util.Collections.unmodifiableList(rankList_);
        }
        if (((mutable_bitField0_ & 0x00000004) != 0)) {
          firstReaches_ = java.util.Collections.unmodifiableList(firstReaches_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_RankResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_RankResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.rank.Rank.RankResponse.class, pb.xiugou.x1.protobuf.rank.Rank.RankResponse.Builder.class);
    }

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

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


      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 2300001: 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.rank.Rank.RankResponse.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.RankResponse.Proto)
    }

    public static final int RANK_TYPE_FIELD_NUMBER = 1;
    private int rankType_;
    /**
     * <pre>
     *排行榜类型
     * </pre>
     *
     * <code>int32 rank_type = 1;</code>
     * @return The rankType.
     */
    public int getRankType() {
      return rankType_;
    }

    public static final int PAGE_FIELD_NUMBER = 2;
    private int page_;
    /**
     * <pre>
     *页码，从1开始
     * </pre>
     *
     * <code>int32 page = 2;</code>
     * @return The page.
     */
    public int getPage() {
      return page_;
    }

    public static final int REWARD_ID_FIELD_NUMBER = 3;
    private com.google.protobuf.Internal.IntList rewardId_;
    /**
     * <pre>
     *已领取奖励列表 奖励Id（有数据则说明已领取）
     * </pre>
     *
     * <code>repeated int32 reward_id = 3;</code>
     * @return A list containing the rewardId.
     */
    public java.util.List<java.lang.Integer>
        getRewardIdList() {
      return rewardId_;
    }
    /**
     * <pre>
     *已领取奖励列表 奖励Id（有数据则说明已领取）
     * </pre>
     *
     * <code>repeated int32 reward_id = 3;</code>
     * @return The count of rewardId.
     */
    public int getRewardIdCount() {
      return rewardId_.size();
    }
    /**
     * <pre>
     *已领取奖励列表 奖励Id（有数据则说明已领取）
     * </pre>
     *
     * <code>repeated int32 reward_id = 3;</code>
     * @param index The index of the element to return.
     * @return The rewardId at the given index.
     */
    public int getRewardId(int index) {
      return rewardId_.getInt(index);
    }
    private int rewardIdMemoizedSerializedSize = -1;

    public static final int RANK_LIST_FIELD_NUMBER = 4;
    private java.util.List<pb.xiugou.x1.protobuf.rank.Rank.PbRanker> rankList_;
    /**
     * <pre>
     *排行榜列表
     * </pre>
     *
     * <code>repeated .pb.PbRanker rank_list = 4;</code>
     */
    public java.util.List<pb.xiugou.x1.protobuf.rank.Rank.PbRanker> getRankListList() {
      return rankList_;
    }
    /**
     * <pre>
     *排行榜列表
     * </pre>
     *
     * <code>repeated .pb.PbRanker rank_list = 4;</code>
     */
    public java.util.List<? extends pb.xiugou.x1.protobuf.rank.Rank.PbRankerOrBuilder> 
        getRankListOrBuilderList() {
      return rankList_;
    }
    /**
     * <pre>
     *排行榜列表
     * </pre>
     *
     * <code>repeated .pb.PbRanker rank_list = 4;</code>
     */
    public int getRankListCount() {
      return rankList_.size();
    }
    /**
     * <pre>
     *排行榜列表
     * </pre>
     *
     * <code>repeated .pb.PbRanker rank_list = 4;</code>
     */
    public pb.xiugou.x1.protobuf.rank.Rank.PbRanker getRankList(int index) {
      return rankList_.get(index);
    }
    /**
     * <pre>
     *排行榜列表
     * </pre>
     *
     * <code>repeated .pb.PbRanker rank_list = 4;</code>
     */
    public pb.xiugou.x1.protobuf.rank.Rank.PbRankerOrBuilder getRankListOrBuilder(
        int index) {
      return rankList_.get(index);
    }

    public static final int SELF_RANK_FIELD_NUMBER = 5;
    private pb.xiugou.x1.protobuf.rank.Rank.PbRanker selfRank_;
    /**
     * <pre>
     *自己的排行数据
     * </pre>
     *
     * <code>.pb.PbRanker self_rank = 5;</code>
     * @return Whether the selfRank field is set.
     */
    public boolean hasSelfRank() {
      return selfRank_ != null;
    }
    /**
     * <pre>
     *自己的排行数据
     * </pre>
     *
     * <code>.pb.PbRanker self_rank = 5;</code>
     * @return The selfRank.
     */
    public pb.xiugou.x1.protobuf.rank.Rank.PbRanker getSelfRank() {
      return selfRank_ == null ? pb.xiugou.x1.protobuf.rank.Rank.PbRanker.getDefaultInstance() : selfRank_;
    }
    /**
     * <pre>
     *自己的排行数据
     * </pre>
     *
     * <code>.pb.PbRanker self_rank = 5;</code>
     */
    public pb.xiugou.x1.protobuf.rank.Rank.PbRankerOrBuilder getSelfRankOrBuilder() {
      return getSelfRank();
    }

    public static final int ACHIEVE_ID_FIELD_NUMBER = 6;
    private int achieveId_;
    /**
     * <pre>
     *达成奖励（有数据则说明可领取）
     * </pre>
     *
     * <code>int32 achieve_id = 6;</code>
     * @return The achieveId.
     */
    public int getAchieveId() {
      return achieveId_;
    }

    public static final int FIRST_REACHES_FIELD_NUMBER = 7;
    private java.util.List<pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach> firstReaches_;
    /**
     * <pre>
     *新触发的首位达成信息
     * </pre>
     *
     * <code>repeated .pb.PbRankFirstReach first_reaches = 7;</code>
     */
    public java.util.List<pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach> getFirstReachesList() {
      return firstReaches_;
    }
    /**
     * <pre>
     *新触发的首位达成信息
     * </pre>
     *
     * <code>repeated .pb.PbRankFirstReach first_reaches = 7;</code>
     */
    public java.util.List<? extends pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReachOrBuilder> 
        getFirstReachesOrBuilderList() {
      return firstReaches_;
    }
    /**
     * <pre>
     *新触发的首位达成信息
     * </pre>
     *
     * <code>repeated .pb.PbRankFirstReach first_reaches = 7;</code>
     */
    public int getFirstReachesCount() {
      return firstReaches_.size();
    }
    /**
     * <pre>
     *新触发的首位达成信息
     * </pre>
     *
     * <code>repeated .pb.PbRankFirstReach first_reaches = 7;</code>
     */
    public pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach getFirstReaches(int index) {
      return firstReaches_.get(index);
    }
    /**
     * <pre>
     *新触发的首位达成信息
     * </pre>
     *
     * <code>repeated .pb.PbRankFirstReach first_reaches = 7;</code>
     */
    public pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReachOrBuilder getFirstReachesOrBuilder(
        int index) {
      return firstReaches_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (rankType_ != 0) {
        output.writeInt32(1, rankType_);
      }
      if (page_ != 0) {
        output.writeInt32(2, page_);
      }
      if (getRewardIdList().size() > 0) {
        output.writeUInt32NoTag(26);
        output.writeUInt32NoTag(rewardIdMemoizedSerializedSize);
      }
      for (int i = 0; i < rewardId_.size(); i++) {
        output.writeInt32NoTag(rewardId_.getInt(i));
      }
      for (int i = 0; i < rankList_.size(); i++) {
        output.writeMessage(4, rankList_.get(i));
      }
      if (selfRank_ != null) {
        output.writeMessage(5, getSelfRank());
      }
      if (achieveId_ != 0) {
        output.writeInt32(6, achieveId_);
      }
      for (int i = 0; i < firstReaches_.size(); i++) {
        output.writeMessage(7, firstReaches_.get(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (rankType_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, rankType_);
      }
      if (page_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, page_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < rewardId_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(rewardId_.getInt(i));
        }
        size += dataSize;
        if (!getRewardIdList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        rewardIdMemoizedSerializedSize = dataSize;
      }
      for (int i = 0; i < rankList_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, rankList_.get(i));
      }
      if (selfRank_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getSelfRank());
      }
      if (achieveId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, achieveId_);
      }
      for (int i = 0; i < firstReaches_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, firstReaches_.get(i));
      }
      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.rank.Rank.RankResponse)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.rank.Rank.RankResponse other = (pb.xiugou.x1.protobuf.rank.Rank.RankResponse) obj;

      if (getRankType()
          != other.getRankType()) return false;
      if (getPage()
          != other.getPage()) return false;
      if (!getRewardIdList()
          .equals(other.getRewardIdList())) return false;
      if (!getRankListList()
          .equals(other.getRankListList())) return false;
      if (hasSelfRank() != other.hasSelfRank()) return false;
      if (hasSelfRank()) {
        if (!getSelfRank()
            .equals(other.getSelfRank())) return false;
      }
      if (getAchieveId()
          != other.getAchieveId()) return false;
      if (!getFirstReachesList()
          .equals(other.getFirstReachesList())) 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) + RANK_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getRankType();
      hash = (37 * hash) + PAGE_FIELD_NUMBER;
      hash = (53 * hash) + getPage();
      if (getRewardIdCount() > 0) {
        hash = (37 * hash) + REWARD_ID_FIELD_NUMBER;
        hash = (53 * hash) + getRewardIdList().hashCode();
      }
      if (getRankListCount() > 0) {
        hash = (37 * hash) + RANK_LIST_FIELD_NUMBER;
        hash = (53 * hash) + getRankListList().hashCode();
      }
      if (hasSelfRank()) {
        hash = (37 * hash) + SELF_RANK_FIELD_NUMBER;
        hash = (53 * hash) + getSelfRank().hashCode();
      }
      hash = (37 * hash) + ACHIEVE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getAchieveId();
      if (getFirstReachesCount() > 0) {
        hash = (37 * hash) + FIRST_REACHES_FIELD_NUMBER;
        hash = (53 * hash) + getFirstReachesList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.rank.Rank.RankResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankResponse 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.rank.Rank.RankResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankResponse 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.rank.Rank.RankResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankResponse 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.rank.Rank.RankResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankResponse 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.rank.Rank.RankResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankResponse 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.rank.Rank.RankResponse 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.RankResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.RankResponse)
        pb.xiugou.x1.protobuf.rank.Rank.RankResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_RankResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_RankResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.rank.Rank.RankResponse.class, pb.xiugou.x1.protobuf.rank.Rank.RankResponse.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.rank.Rank.RankResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

        page_ = 0;

        rewardId_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000001);
        if (rankListBuilder_ == null) {
          rankList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          rankListBuilder_.clear();
        }
        if (selfRankBuilder_ == null) {
          selfRank_ = null;
        } else {
          selfRank_ = null;
          selfRankBuilder_ = null;
        }
        achieveId_ = 0;

        if (firstReachesBuilder_ == null) {
          firstReaches_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          firstReachesBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_RankResponse_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.rank.Rank.RankResponse getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.rank.Rank.RankResponse.getDefaultInstance();
      }

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

      @java.lang.Override
      public pb.xiugou.x1.protobuf.rank.Rank.RankResponse buildPartial() {
        pb.xiugou.x1.protobuf.rank.Rank.RankResponse result = new pb.xiugou.x1.protobuf.rank.Rank.RankResponse(this);
        int from_bitField0_ = bitField0_;
        result.rankType_ = rankType_;
        result.page_ = page_;
        if (((bitField0_ & 0x00000001) != 0)) {
          rewardId_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.rewardId_ = rewardId_;
        if (rankListBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            rankList_ = java.util.Collections.unmodifiableList(rankList_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.rankList_ = rankList_;
        } else {
          result.rankList_ = rankListBuilder_.build();
        }
        if (selfRankBuilder_ == null) {
          result.selfRank_ = selfRank_;
        } else {
          result.selfRank_ = selfRankBuilder_.build();
        }
        result.achieveId_ = achieveId_;
        if (firstReachesBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            firstReaches_ = java.util.Collections.unmodifiableList(firstReaches_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.firstReaches_ = firstReaches_;
        } else {
          result.firstReaches_ = firstReachesBuilder_.build();
        }
        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.rank.Rank.RankResponse) {
          return mergeFrom((pb.xiugou.x1.protobuf.rank.Rank.RankResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.rank.Rank.RankResponse other) {
        if (other == pb.xiugou.x1.protobuf.rank.Rank.RankResponse.getDefaultInstance()) return this;
        if (other.getRankType() != 0) {
          setRankType(other.getRankType());
        }
        if (other.getPage() != 0) {
          setPage(other.getPage());
        }
        if (!other.rewardId_.isEmpty()) {
          if (rewardId_.isEmpty()) {
            rewardId_ = other.rewardId_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureRewardIdIsMutable();
            rewardId_.addAll(other.rewardId_);
          }
          onChanged();
        }
        if (rankListBuilder_ == null) {
          if (!other.rankList_.isEmpty()) {
            if (rankList_.isEmpty()) {
              rankList_ = other.rankList_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureRankListIsMutable();
              rankList_.addAll(other.rankList_);
            }
            onChanged();
          }
        } else {
          if (!other.rankList_.isEmpty()) {
            if (rankListBuilder_.isEmpty()) {
              rankListBuilder_.dispose();
              rankListBuilder_ = null;
              rankList_ = other.rankList_;
              bitField0_ = (bitField0_ & ~0x00000002);
              rankListBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getRankListFieldBuilder() : null;
            } else {
              rankListBuilder_.addAllMessages(other.rankList_);
            }
          }
        }
        if (other.hasSelfRank()) {
          mergeSelfRank(other.getSelfRank());
        }
        if (other.getAchieveId() != 0) {
          setAchieveId(other.getAchieveId());
        }
        if (firstReachesBuilder_ == null) {
          if (!other.firstReaches_.isEmpty()) {
            if (firstReaches_.isEmpty()) {
              firstReaches_ = other.firstReaches_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureFirstReachesIsMutable();
              firstReaches_.addAll(other.firstReaches_);
            }
            onChanged();
          }
        } else {
          if (!other.firstReaches_.isEmpty()) {
            if (firstReachesBuilder_.isEmpty()) {
              firstReachesBuilder_.dispose();
              firstReachesBuilder_ = null;
              firstReaches_ = other.firstReaches_;
              bitField0_ = (bitField0_ & ~0x00000004);
              firstReachesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getFirstReachesFieldBuilder() : null;
            } else {
              firstReachesBuilder_.addAllMessages(other.firstReaches_);
            }
          }
        }
        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.rank.Rank.RankResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.rank.Rank.RankResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int rankType_ ;
      /**
       * <pre>
       *排行榜类型
       * </pre>
       *
       * <code>int32 rank_type = 1;</code>
       * @return The rankType.
       */
      public int getRankType() {
        return rankType_;
      }
      /**
       * <pre>
       *排行榜类型
       * </pre>
       *
       * <code>int32 rank_type = 1;</code>
       * @param value The rankType to set.
       * @return This builder for chaining.
       */
      public Builder setRankType(int value) {
        
        rankType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *排行榜类型
       * </pre>
       *
       * <code>int32 rank_type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearRankType() {
        
        rankType_ = 0;
        onChanged();
        return this;
      }

      private int page_ ;
      /**
       * <pre>
       *页码，从1开始
       * </pre>
       *
       * <code>int32 page = 2;</code>
       * @return The page.
       */
      public int getPage() {
        return page_;
      }
      /**
       * <pre>
       *页码，从1开始
       * </pre>
       *
       * <code>int32 page = 2;</code>
       * @param value The page to set.
       * @return This builder for chaining.
       */
      public Builder setPage(int value) {
        
        page_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *页码，从1开始
       * </pre>
       *
       * <code>int32 page = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPage() {
        
        page_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList rewardId_ = emptyIntList();
      private void ensureRewardIdIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          rewardId_ = mutableCopy(rewardId_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <pre>
       *已领取奖励列表 奖励Id（有数据则说明已领取）
       * </pre>
       *
       * <code>repeated int32 reward_id = 3;</code>
       * @return A list containing the rewardId.
       */
      public java.util.List<java.lang.Integer>
          getRewardIdList() {
        return ((bitField0_ & 0x00000001) != 0) ?
                 java.util.Collections.unmodifiableList(rewardId_) : rewardId_;
      }
      /**
       * <pre>
       *已领取奖励列表 奖励Id（有数据则说明已领取）
       * </pre>
       *
       * <code>repeated int32 reward_id = 3;</code>
       * @return The count of rewardId.
       */
      public int getRewardIdCount() {
        return rewardId_.size();
      }
      /**
       * <pre>
       *已领取奖励列表 奖励Id（有数据则说明已领取）
       * </pre>
       *
       * <code>repeated int32 reward_id = 3;</code>
       * @param index The index of the element to return.
       * @return The rewardId at the given index.
       */
      public int getRewardId(int index) {
        return rewardId_.getInt(index);
      }
      /**
       * <pre>
       *已领取奖励列表 奖励Id（有数据则说明已领取）
       * </pre>
       *
       * <code>repeated int32 reward_id = 3;</code>
       * @param index The index to set the value at.
       * @param value The rewardId to set.
       * @return This builder for chaining.
       */
      public Builder setRewardId(
          int index, int value) {
        ensureRewardIdIsMutable();
        rewardId_.setInt(index, value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       *已领取奖励列表 奖励Id（有数据则说明已领取）
       * </pre>
       *
       * <code>repeated int32 reward_id = 3;</code>
       * @param value The rewardId to add.
       * @return This builder for chaining.
       */
      public Builder addRewardId(int value) {
        ensureRewardIdIsMutable();
        rewardId_.addInt(value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       *已领取奖励列表 奖励Id（有数据则说明已领取）
       * </pre>
       *
       * <code>repeated int32 reward_id = 3;</code>
       * @param values The rewardId to add.
       * @return This builder for chaining.
       */
      public Builder addAllRewardId(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureRewardIdIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, rewardId_);
        onChanged();
        return this;
      }
      /**
       * <pre>
       *已领取奖励列表 奖励Id（有数据则说明已领取）
       * </pre>
       *
       * <code>repeated int32 reward_id = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRewardId() {
        rewardId_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }

      private java.util.List<pb.xiugou.x1.protobuf.rank.Rank.PbRanker> rankList_ =
        java.util.Collections.emptyList();
      private void ensureRankListIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          rankList_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.rank.Rank.PbRanker>(rankList_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.rank.Rank.PbRanker, pb.xiugou.x1.protobuf.rank.Rank.PbRanker.Builder, pb.xiugou.x1.protobuf.rank.Rank.PbRankerOrBuilder> rankListBuilder_;

      /**
       * <pre>
       *排行榜列表
       * </pre>
       *
       * <code>repeated .pb.PbRanker rank_list = 4;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.rank.Rank.PbRanker> getRankListList() {
        if (rankListBuilder_ == null) {
          return java.util.Collections.unmodifiableList(rankList_);
        } else {
          return rankListBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       *排行榜列表
       * </pre>
       *
       * <code>repeated .pb.PbRanker rank_list = 4;</code>
       */
      public int getRankListCount() {
        if (rankListBuilder_ == null) {
          return rankList_.size();
        } else {
          return rankListBuilder_.getCount();
        }
      }
      /**
       * <pre>
       *排行榜列表
       * </pre>
       *
       * <code>repeated .pb.PbRanker rank_list = 4;</code>
       */
      public pb.xiugou.x1.protobuf.rank.Rank.PbRanker getRankList(int index) {
        if (rankListBuilder_ == null) {
          return rankList_.get(index);
        } else {
          return rankListBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       *排行榜列表
       * </pre>
       *
       * <code>repeated .pb.PbRanker rank_list = 4;</code>
       */
      public Builder setRankList(
          int index, pb.xiugou.x1.protobuf.rank.Rank.PbRanker value) {
        if (rankListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRankListIsMutable();
          rankList_.set(index, value);
          onChanged();
        } else {
          rankListBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *排行榜列表
       * </pre>
       *
       * <code>repeated .pb.PbRanker rank_list = 4;</code>
       */
      public Builder setRankList(
          int index, pb.xiugou.x1.protobuf.rank.Rank.PbRanker.Builder builderForValue) {
        if (rankListBuilder_ == null) {
          ensureRankListIsMutable();
          rankList_.set(index, builderForValue.build());
          onChanged();
        } else {
          rankListBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *排行榜列表
       * </pre>
       *
       * <code>repeated .pb.PbRanker rank_list = 4;</code>
       */
      public Builder addRankList(pb.xiugou.x1.protobuf.rank.Rank.PbRanker value) {
        if (rankListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRankListIsMutable();
          rankList_.add(value);
          onChanged();
        } else {
          rankListBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       *排行榜列表
       * </pre>
       *
       * <code>repeated .pb.PbRanker rank_list = 4;</code>
       */
      public Builder addRankList(
          int index, pb.xiugou.x1.protobuf.rank.Rank.PbRanker value) {
        if (rankListBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRankListIsMutable();
          rankList_.add(index, value);
          onChanged();
        } else {
          rankListBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *排行榜列表
       * </pre>
       *
       * <code>repeated .pb.PbRanker rank_list = 4;</code>
       */
      public Builder addRankList(
          pb.xiugou.x1.protobuf.rank.Rank.PbRanker.Builder builderForValue) {
        if (rankListBuilder_ == null) {
          ensureRankListIsMutable();
          rankList_.add(builderForValue.build());
          onChanged();
        } else {
          rankListBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *排行榜列表
       * </pre>
       *
       * <code>repeated .pb.PbRanker rank_list = 4;</code>
       */
      public Builder addRankList(
          int index, pb.xiugou.x1.protobuf.rank.Rank.PbRanker.Builder builderForValue) {
        if (rankListBuilder_ == null) {
          ensureRankListIsMutable();
          rankList_.add(index, builderForValue.build());
          onChanged();
        } else {
          rankListBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *排行榜列表
       * </pre>
       *
       * <code>repeated .pb.PbRanker rank_list = 4;</code>
       */
      public Builder addAllRankList(
          java.lang.Iterable<? extends pb.xiugou.x1.protobuf.rank.Rank.PbRanker> values) {
        if (rankListBuilder_ == null) {
          ensureRankListIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, rankList_);
          onChanged();
        } else {
          rankListBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       *排行榜列表
       * </pre>
       *
       * <code>repeated .pb.PbRanker rank_list = 4;</code>
       */
      public Builder clearRankList() {
        if (rankListBuilder_ == null) {
          rankList_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          rankListBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       *排行榜列表
       * </pre>
       *
       * <code>repeated .pb.PbRanker rank_list = 4;</code>
       */
      public Builder removeRankList(int index) {
        if (rankListBuilder_ == null) {
          ensureRankListIsMutable();
          rankList_.remove(index);
          onChanged();
        } else {
          rankListBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       *排行榜列表
       * </pre>
       *
       * <code>repeated .pb.PbRanker rank_list = 4;</code>
       */
      public pb.xiugou.x1.protobuf.rank.Rank.PbRanker.Builder getRankListBuilder(
          int index) {
        return getRankListFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       *排行榜列表
       * </pre>
       *
       * <code>repeated .pb.PbRanker rank_list = 4;</code>
       */
      public pb.xiugou.x1.protobuf.rank.Rank.PbRankerOrBuilder getRankListOrBuilder(
          int index) {
        if (rankListBuilder_ == null) {
          return rankList_.get(index);  } else {
          return rankListBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       *排行榜列表
       * </pre>
       *
       * <code>repeated .pb.PbRanker rank_list = 4;</code>
       */
      public java.util.List<? extends pb.xiugou.x1.protobuf.rank.Rank.PbRankerOrBuilder> 
           getRankListOrBuilderList() {
        if (rankListBuilder_ != null) {
          return rankListBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(rankList_);
        }
      }
      /**
       * <pre>
       *排行榜列表
       * </pre>
       *
       * <code>repeated .pb.PbRanker rank_list = 4;</code>
       */
      public pb.xiugou.x1.protobuf.rank.Rank.PbRanker.Builder addRankListBuilder() {
        return getRankListFieldBuilder().addBuilder(
            pb.xiugou.x1.protobuf.rank.Rank.PbRanker.getDefaultInstance());
      }
      /**
       * <pre>
       *排行榜列表
       * </pre>
       *
       * <code>repeated .pb.PbRanker rank_list = 4;</code>
       */
      public pb.xiugou.x1.protobuf.rank.Rank.PbRanker.Builder addRankListBuilder(
          int index) {
        return getRankListFieldBuilder().addBuilder(
            index, pb.xiugou.x1.protobuf.rank.Rank.PbRanker.getDefaultInstance());
      }
      /**
       * <pre>
       *排行榜列表
       * </pre>
       *
       * <code>repeated .pb.PbRanker rank_list = 4;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.rank.Rank.PbRanker.Builder> 
           getRankListBuilderList() {
        return getRankListFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.rank.Rank.PbRanker, pb.xiugou.x1.protobuf.rank.Rank.PbRanker.Builder, pb.xiugou.x1.protobuf.rank.Rank.PbRankerOrBuilder> 
          getRankListFieldBuilder() {
        if (rankListBuilder_ == null) {
          rankListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              pb.xiugou.x1.protobuf.rank.Rank.PbRanker, pb.xiugou.x1.protobuf.rank.Rank.PbRanker.Builder, pb.xiugou.x1.protobuf.rank.Rank.PbRankerOrBuilder>(
                  rankList_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          rankList_ = null;
        }
        return rankListBuilder_;
      }

      private pb.xiugou.x1.protobuf.rank.Rank.PbRanker selfRank_;
      private com.google.protobuf.SingleFieldBuilderV3<
          pb.xiugou.x1.protobuf.rank.Rank.PbRanker, pb.xiugou.x1.protobuf.rank.Rank.PbRanker.Builder, pb.xiugou.x1.protobuf.rank.Rank.PbRankerOrBuilder> selfRankBuilder_;
      /**
       * <pre>
       *自己的排行数据
       * </pre>
       *
       * <code>.pb.PbRanker self_rank = 5;</code>
       * @return Whether the selfRank field is set.
       */
      public boolean hasSelfRank() {
        return selfRankBuilder_ != null || selfRank_ != null;
      }
      /**
       * <pre>
       *自己的排行数据
       * </pre>
       *
       * <code>.pb.PbRanker self_rank = 5;</code>
       * @return The selfRank.
       */
      public pb.xiugou.x1.protobuf.rank.Rank.PbRanker getSelfRank() {
        if (selfRankBuilder_ == null) {
          return selfRank_ == null ? pb.xiugou.x1.protobuf.rank.Rank.PbRanker.getDefaultInstance() : selfRank_;
        } else {
          return selfRankBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       *自己的排行数据
       * </pre>
       *
       * <code>.pb.PbRanker self_rank = 5;</code>
       */
      public Builder setSelfRank(pb.xiugou.x1.protobuf.rank.Rank.PbRanker value) {
        if (selfRankBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          selfRank_ = value;
          onChanged();
        } else {
          selfRankBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <pre>
       *自己的排行数据
       * </pre>
       *
       * <code>.pb.PbRanker self_rank = 5;</code>
       */
      public Builder setSelfRank(
          pb.xiugou.x1.protobuf.rank.Rank.PbRanker.Builder builderForValue) {
        if (selfRankBuilder_ == null) {
          selfRank_ = builderForValue.build();
          onChanged();
        } else {
          selfRankBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <pre>
       *自己的排行数据
       * </pre>
       *
       * <code>.pb.PbRanker self_rank = 5;</code>
       */
      public Builder mergeSelfRank(pb.xiugou.x1.protobuf.rank.Rank.PbRanker value) {
        if (selfRankBuilder_ == null) {
          if (selfRank_ != null) {
            selfRank_ =
              pb.xiugou.x1.protobuf.rank.Rank.PbRanker.newBuilder(selfRank_).mergeFrom(value).buildPartial();
          } else {
            selfRank_ = value;
          }
          onChanged();
        } else {
          selfRankBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <pre>
       *自己的排行数据
       * </pre>
       *
       * <code>.pb.PbRanker self_rank = 5;</code>
       */
      public Builder clearSelfRank() {
        if (selfRankBuilder_ == null) {
          selfRank_ = null;
          onChanged();
        } else {
          selfRank_ = null;
          selfRankBuilder_ = null;
        }

        return this;
      }
      /**
       * <pre>
       *自己的排行数据
       * </pre>
       *
       * <code>.pb.PbRanker self_rank = 5;</code>
       */
      public pb.xiugou.x1.protobuf.rank.Rank.PbRanker.Builder getSelfRankBuilder() {
        
        onChanged();
        return getSelfRankFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       *自己的排行数据
       * </pre>
       *
       * <code>.pb.PbRanker self_rank = 5;</code>
       */
      public pb.xiugou.x1.protobuf.rank.Rank.PbRankerOrBuilder getSelfRankOrBuilder() {
        if (selfRankBuilder_ != null) {
          return selfRankBuilder_.getMessageOrBuilder();
        } else {
          return selfRank_ == null ?
              pb.xiugou.x1.protobuf.rank.Rank.PbRanker.getDefaultInstance() : selfRank_;
        }
      }
      /**
       * <pre>
       *自己的排行数据
       * </pre>
       *
       * <code>.pb.PbRanker self_rank = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          pb.xiugou.x1.protobuf.rank.Rank.PbRanker, pb.xiugou.x1.protobuf.rank.Rank.PbRanker.Builder, pb.xiugou.x1.protobuf.rank.Rank.PbRankerOrBuilder> 
          getSelfRankFieldBuilder() {
        if (selfRankBuilder_ == null) {
          selfRankBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              pb.xiugou.x1.protobuf.rank.Rank.PbRanker, pb.xiugou.x1.protobuf.rank.Rank.PbRanker.Builder, pb.xiugou.x1.protobuf.rank.Rank.PbRankerOrBuilder>(
                  getSelfRank(),
                  getParentForChildren(),
                  isClean());
          selfRank_ = null;
        }
        return selfRankBuilder_;
      }

      private int achieveId_ ;
      /**
       * <pre>
       *达成奖励（有数据则说明可领取）
       * </pre>
       *
       * <code>int32 achieve_id = 6;</code>
       * @return The achieveId.
       */
      public int getAchieveId() {
        return achieveId_;
      }
      /**
       * <pre>
       *达成奖励（有数据则说明可领取）
       * </pre>
       *
       * <code>int32 achieve_id = 6;</code>
       * @param value The achieveId to set.
       * @return This builder for chaining.
       */
      public Builder setAchieveId(int value) {
        
        achieveId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *达成奖励（有数据则说明可领取）
       * </pre>
       *
       * <code>int32 achieve_id = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearAchieveId() {
        
        achieveId_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach> firstReaches_ =
        java.util.Collections.emptyList();
      private void ensureFirstReachesIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          firstReaches_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach>(firstReaches_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach, pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.Builder, pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReachOrBuilder> firstReachesBuilder_;

      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 7;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach> getFirstReachesList() {
        if (firstReachesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(firstReaches_);
        } else {
          return firstReachesBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 7;</code>
       */
      public int getFirstReachesCount() {
        if (firstReachesBuilder_ == null) {
          return firstReaches_.size();
        } else {
          return firstReachesBuilder_.getCount();
        }
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 7;</code>
       */
      public pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach getFirstReaches(int index) {
        if (firstReachesBuilder_ == null) {
          return firstReaches_.get(index);
        } else {
          return firstReachesBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 7;</code>
       */
      public Builder setFirstReaches(
          int index, pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach value) {
        if (firstReachesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFirstReachesIsMutable();
          firstReaches_.set(index, value);
          onChanged();
        } else {
          firstReachesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 7;</code>
       */
      public Builder setFirstReaches(
          int index, pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.Builder builderForValue) {
        if (firstReachesBuilder_ == null) {
          ensureFirstReachesIsMutable();
          firstReaches_.set(index, builderForValue.build());
          onChanged();
        } else {
          firstReachesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 7;</code>
       */
      public Builder addFirstReaches(pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach value) {
        if (firstReachesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFirstReachesIsMutable();
          firstReaches_.add(value);
          onChanged();
        } else {
          firstReachesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 7;</code>
       */
      public Builder addFirstReaches(
          int index, pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach value) {
        if (firstReachesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFirstReachesIsMutable();
          firstReaches_.add(index, value);
          onChanged();
        } else {
          firstReachesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 7;</code>
       */
      public Builder addFirstReaches(
          pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.Builder builderForValue) {
        if (firstReachesBuilder_ == null) {
          ensureFirstReachesIsMutable();
          firstReaches_.add(builderForValue.build());
          onChanged();
        } else {
          firstReachesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 7;</code>
       */
      public Builder addFirstReaches(
          int index, pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.Builder builderForValue) {
        if (firstReachesBuilder_ == null) {
          ensureFirstReachesIsMutable();
          firstReaches_.add(index, builderForValue.build());
          onChanged();
        } else {
          firstReachesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 7;</code>
       */
      public Builder addAllFirstReaches(
          java.lang.Iterable<? extends pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach> values) {
        if (firstReachesBuilder_ == null) {
          ensureFirstReachesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, firstReaches_);
          onChanged();
        } else {
          firstReachesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 7;</code>
       */
      public Builder clearFirstReaches() {
        if (firstReachesBuilder_ == null) {
          firstReaches_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          firstReachesBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 7;</code>
       */
      public Builder removeFirstReaches(int index) {
        if (firstReachesBuilder_ == null) {
          ensureFirstReachesIsMutable();
          firstReaches_.remove(index);
          onChanged();
        } else {
          firstReachesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 7;</code>
       */
      public pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.Builder getFirstReachesBuilder(
          int index) {
        return getFirstReachesFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 7;</code>
       */
      public pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReachOrBuilder getFirstReachesOrBuilder(
          int index) {
        if (firstReachesBuilder_ == null) {
          return firstReaches_.get(index);  } else {
          return firstReachesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 7;</code>
       */
      public java.util.List<? extends pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReachOrBuilder> 
           getFirstReachesOrBuilderList() {
        if (firstReachesBuilder_ != null) {
          return firstReachesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(firstReaches_);
        }
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 7;</code>
       */
      public pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.Builder addFirstReachesBuilder() {
        return getFirstReachesFieldBuilder().addBuilder(
            pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.getDefaultInstance());
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 7;</code>
       */
      public pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.Builder addFirstReachesBuilder(
          int index) {
        return getFirstReachesFieldBuilder().addBuilder(
            index, pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.getDefaultInstance());
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 7;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.Builder> 
           getFirstReachesBuilderList() {
        return getFirstReachesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach, pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.Builder, pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReachOrBuilder> 
          getFirstReachesFieldBuilder() {
        if (firstReachesBuilder_ == null) {
          firstReachesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach, pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.Builder, pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReachOrBuilder>(
                  firstReaches_,
                  ((bitField0_ & 0x00000004) != 0),
                  getParentForChildren(),
                  isClean());
          firstReaches_ = null;
        }
        return firstReachesBuilder_;
      }
      @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.RankResponse)
    }

    // @@protoc_insertion_point(class_scope:pb.RankResponse)
    private static final pb.xiugou.x1.protobuf.rank.Rank.RankResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.rank.Rank.RankResponse();
    }

    public static pb.xiugou.x1.protobuf.rank.Rank.RankResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public pb.xiugou.x1.protobuf.rank.Rank.RankResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     *排行榜信息列表
     * </pre>
     *
     * <code>repeated .pb.PbRankInfo rank_infos = 1;</code>
     */
    java.util.List<pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo> 
        getRankInfosList();
    /**
     * <pre>
     *排行榜信息列表
     * </pre>
     *
     * <code>repeated .pb.PbRankInfo rank_infos = 1;</code>
     */
    pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo getRankInfos(int index);
    /**
     * <pre>
     *排行榜信息列表
     * </pre>
     *
     * <code>repeated .pb.PbRankInfo rank_infos = 1;</code>
     */
    int getRankInfosCount();
    /**
     * <pre>
     *排行榜信息列表
     * </pre>
     *
     * <code>repeated .pb.PbRankInfo rank_infos = 1;</code>
     */
    java.util.List<? extends pb.xiugou.x1.protobuf.rank.Rank.PbRankInfoOrBuilder> 
        getRankInfosOrBuilderList();
    /**
     * <pre>
     *排行榜信息列表
     * </pre>
     *
     * <code>repeated .pb.PbRankInfo rank_infos = 1;</code>
     */
    pb.xiugou.x1.protobuf.rank.Rank.PbRankInfoOrBuilder getRankInfosOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code pb.RankInfoResponse}
   */
  public  static final class RankInfoResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.RankInfoResponse)
      RankInfoResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RankInfoResponse.newBuilder() to construct.
    private RankInfoResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RankInfoResponse() {
      rankInfos_ = java.util.Collections.emptyList();
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private RankInfoResponse(
        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)) {
                rankInfos_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo>();
                mutable_bitField0_ |= 0x00000001;
              }
              rankInfos_.add(
                  input.readMessage(pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo.parser(), extensionRegistry));
              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)) {
          rankInfos_ = java.util.Collections.unmodifiableList(rankInfos_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_RankInfoResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_RankInfoResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.rank.Rank.RankInfoResponse.class, pb.xiugou.x1.protobuf.rank.Rank.RankInfoResponse.Builder.class);
    }

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

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


      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 2300003: 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.rank.Rank.RankInfoResponse.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.RankInfoResponse.Proto)
    }

    public static final int RANK_INFOS_FIELD_NUMBER = 1;
    private java.util.List<pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo> rankInfos_;
    /**
     * <pre>
     *排行榜信息列表
     * </pre>
     *
     * <code>repeated .pb.PbRankInfo rank_infos = 1;</code>
     */
    public java.util.List<pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo> getRankInfosList() {
      return rankInfos_;
    }
    /**
     * <pre>
     *排行榜信息列表
     * </pre>
     *
     * <code>repeated .pb.PbRankInfo rank_infos = 1;</code>
     */
    public java.util.List<? extends pb.xiugou.x1.protobuf.rank.Rank.PbRankInfoOrBuilder> 
        getRankInfosOrBuilderList() {
      return rankInfos_;
    }
    /**
     * <pre>
     *排行榜信息列表
     * </pre>
     *
     * <code>repeated .pb.PbRankInfo rank_infos = 1;</code>
     */
    public int getRankInfosCount() {
      return rankInfos_.size();
    }
    /**
     * <pre>
     *排行榜信息列表
     * </pre>
     *
     * <code>repeated .pb.PbRankInfo rank_infos = 1;</code>
     */
    public pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo getRankInfos(int index) {
      return rankInfos_.get(index);
    }
    /**
     * <pre>
     *排行榜信息列表
     * </pre>
     *
     * <code>repeated .pb.PbRankInfo rank_infos = 1;</code>
     */
    public pb.xiugou.x1.protobuf.rank.Rank.PbRankInfoOrBuilder getRankInfosOrBuilder(
        int index) {
      return rankInfos_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < rankInfos_.size(); i++) {
        output.writeMessage(1, rankInfos_.get(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      for (int i = 0; i < rankInfos_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, rankInfos_.get(i));
      }
      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.rank.Rank.RankInfoResponse)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.rank.Rank.RankInfoResponse other = (pb.xiugou.x1.protobuf.rank.Rank.RankInfoResponse) obj;

      if (!getRankInfosList()
          .equals(other.getRankInfosList())) 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 (getRankInfosCount() > 0) {
        hash = (37 * hash) + RANK_INFOS_FIELD_NUMBER;
        hash = (53 * hash) + getRankInfosList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.rank.Rank.RankInfoResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankInfoResponse 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.rank.Rank.RankInfoResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankInfoResponse 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.rank.Rank.RankInfoResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankInfoResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankInfoResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankInfoResponse 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.rank.Rank.RankInfoResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankInfoResponse 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.rank.Rank.RankInfoResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankInfoResponse 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.rank.Rank.RankInfoResponse 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.RankInfoResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.RankInfoResponse)
        pb.xiugou.x1.protobuf.rank.Rank.RankInfoResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_RankInfoResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_RankInfoResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.rank.Rank.RankInfoResponse.class, pb.xiugou.x1.protobuf.rank.Rank.RankInfoResponse.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.rank.Rank.RankInfoResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getRankInfosFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (rankInfosBuilder_ == null) {
          rankInfos_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          rankInfosBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_RankInfoResponse_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.rank.Rank.RankInfoResponse getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.rank.Rank.RankInfoResponse.getDefaultInstance();
      }

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

      @java.lang.Override
      public pb.xiugou.x1.protobuf.rank.Rank.RankInfoResponse buildPartial() {
        pb.xiugou.x1.protobuf.rank.Rank.RankInfoResponse result = new pb.xiugou.x1.protobuf.rank.Rank.RankInfoResponse(this);
        int from_bitField0_ = bitField0_;
        if (rankInfosBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            rankInfos_ = java.util.Collections.unmodifiableList(rankInfos_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.rankInfos_ = rankInfos_;
        } else {
          result.rankInfos_ = rankInfosBuilder_.build();
        }
        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.rank.Rank.RankInfoResponse) {
          return mergeFrom((pb.xiugou.x1.protobuf.rank.Rank.RankInfoResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.rank.Rank.RankInfoResponse other) {
        if (other == pb.xiugou.x1.protobuf.rank.Rank.RankInfoResponse.getDefaultInstance()) return this;
        if (rankInfosBuilder_ == null) {
          if (!other.rankInfos_.isEmpty()) {
            if (rankInfos_.isEmpty()) {
              rankInfos_ = other.rankInfos_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureRankInfosIsMutable();
              rankInfos_.addAll(other.rankInfos_);
            }
            onChanged();
          }
        } else {
          if (!other.rankInfos_.isEmpty()) {
            if (rankInfosBuilder_.isEmpty()) {
              rankInfosBuilder_.dispose();
              rankInfosBuilder_ = null;
              rankInfos_ = other.rankInfos_;
              bitField0_ = (bitField0_ & ~0x00000001);
              rankInfosBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getRankInfosFieldBuilder() : null;
            } else {
              rankInfosBuilder_.addAllMessages(other.rankInfos_);
            }
          }
        }
        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.rank.Rank.RankInfoResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.rank.Rank.RankInfoResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List<pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo> rankInfos_ =
        java.util.Collections.emptyList();
      private void ensureRankInfosIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          rankInfos_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo>(rankInfos_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo, pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo.Builder, pb.xiugou.x1.protobuf.rank.Rank.PbRankInfoOrBuilder> rankInfosBuilder_;

      /**
       * <pre>
       *排行榜信息列表
       * </pre>
       *
       * <code>repeated .pb.PbRankInfo rank_infos = 1;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo> getRankInfosList() {
        if (rankInfosBuilder_ == null) {
          return java.util.Collections.unmodifiableList(rankInfos_);
        } else {
          return rankInfosBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       *排行榜信息列表
       * </pre>
       *
       * <code>repeated .pb.PbRankInfo rank_infos = 1;</code>
       */
      public int getRankInfosCount() {
        if (rankInfosBuilder_ == null) {
          return rankInfos_.size();
        } else {
          return rankInfosBuilder_.getCount();
        }
      }
      /**
       * <pre>
       *排行榜信息列表
       * </pre>
       *
       * <code>repeated .pb.PbRankInfo rank_infos = 1;</code>
       */
      public pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo getRankInfos(int index) {
        if (rankInfosBuilder_ == null) {
          return rankInfos_.get(index);
        } else {
          return rankInfosBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       *排行榜信息列表
       * </pre>
       *
       * <code>repeated .pb.PbRankInfo rank_infos = 1;</code>
       */
      public Builder setRankInfos(
          int index, pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo value) {
        if (rankInfosBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRankInfosIsMutable();
          rankInfos_.set(index, value);
          onChanged();
        } else {
          rankInfosBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *排行榜信息列表
       * </pre>
       *
       * <code>repeated .pb.PbRankInfo rank_infos = 1;</code>
       */
      public Builder setRankInfos(
          int index, pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo.Builder builderForValue) {
        if (rankInfosBuilder_ == null) {
          ensureRankInfosIsMutable();
          rankInfos_.set(index, builderForValue.build());
          onChanged();
        } else {
          rankInfosBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *排行榜信息列表
       * </pre>
       *
       * <code>repeated .pb.PbRankInfo rank_infos = 1;</code>
       */
      public Builder addRankInfos(pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo value) {
        if (rankInfosBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRankInfosIsMutable();
          rankInfos_.add(value);
          onChanged();
        } else {
          rankInfosBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       *排行榜信息列表
       * </pre>
       *
       * <code>repeated .pb.PbRankInfo rank_infos = 1;</code>
       */
      public Builder addRankInfos(
          int index, pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo value) {
        if (rankInfosBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRankInfosIsMutable();
          rankInfos_.add(index, value);
          onChanged();
        } else {
          rankInfosBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *排行榜信息列表
       * </pre>
       *
       * <code>repeated .pb.PbRankInfo rank_infos = 1;</code>
       */
      public Builder addRankInfos(
          pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo.Builder builderForValue) {
        if (rankInfosBuilder_ == null) {
          ensureRankInfosIsMutable();
          rankInfos_.add(builderForValue.build());
          onChanged();
        } else {
          rankInfosBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *排行榜信息列表
       * </pre>
       *
       * <code>repeated .pb.PbRankInfo rank_infos = 1;</code>
       */
      public Builder addRankInfos(
          int index, pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo.Builder builderForValue) {
        if (rankInfosBuilder_ == null) {
          ensureRankInfosIsMutable();
          rankInfos_.add(index, builderForValue.build());
          onChanged();
        } else {
          rankInfosBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *排行榜信息列表
       * </pre>
       *
       * <code>repeated .pb.PbRankInfo rank_infos = 1;</code>
       */
      public Builder addAllRankInfos(
          java.lang.Iterable<? extends pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo> values) {
        if (rankInfosBuilder_ == null) {
          ensureRankInfosIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, rankInfos_);
          onChanged();
        } else {
          rankInfosBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       *排行榜信息列表
       * </pre>
       *
       * <code>repeated .pb.PbRankInfo rank_infos = 1;</code>
       */
      public Builder clearRankInfos() {
        if (rankInfosBuilder_ == null) {
          rankInfos_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          rankInfosBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       *排行榜信息列表
       * </pre>
       *
       * <code>repeated .pb.PbRankInfo rank_infos = 1;</code>
       */
      public Builder removeRankInfos(int index) {
        if (rankInfosBuilder_ == null) {
          ensureRankInfosIsMutable();
          rankInfos_.remove(index);
          onChanged();
        } else {
          rankInfosBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       *排行榜信息列表
       * </pre>
       *
       * <code>repeated .pb.PbRankInfo rank_infos = 1;</code>
       */
      public pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo.Builder getRankInfosBuilder(
          int index) {
        return getRankInfosFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       *排行榜信息列表
       * </pre>
       *
       * <code>repeated .pb.PbRankInfo rank_infos = 1;</code>
       */
      public pb.xiugou.x1.protobuf.rank.Rank.PbRankInfoOrBuilder getRankInfosOrBuilder(
          int index) {
        if (rankInfosBuilder_ == null) {
          return rankInfos_.get(index);  } else {
          return rankInfosBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       *排行榜信息列表
       * </pre>
       *
       * <code>repeated .pb.PbRankInfo rank_infos = 1;</code>
       */
      public java.util.List<? extends pb.xiugou.x1.protobuf.rank.Rank.PbRankInfoOrBuilder> 
           getRankInfosOrBuilderList() {
        if (rankInfosBuilder_ != null) {
          return rankInfosBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(rankInfos_);
        }
      }
      /**
       * <pre>
       *排行榜信息列表
       * </pre>
       *
       * <code>repeated .pb.PbRankInfo rank_infos = 1;</code>
       */
      public pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo.Builder addRankInfosBuilder() {
        return getRankInfosFieldBuilder().addBuilder(
            pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo.getDefaultInstance());
      }
      /**
       * <pre>
       *排行榜信息列表
       * </pre>
       *
       * <code>repeated .pb.PbRankInfo rank_infos = 1;</code>
       */
      public pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo.Builder addRankInfosBuilder(
          int index) {
        return getRankInfosFieldBuilder().addBuilder(
            index, pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo.getDefaultInstance());
      }
      /**
       * <pre>
       *排行榜信息列表
       * </pre>
       *
       * <code>repeated .pb.PbRankInfo rank_infos = 1;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo.Builder> 
           getRankInfosBuilderList() {
        return getRankInfosFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo, pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo.Builder, pb.xiugou.x1.protobuf.rank.Rank.PbRankInfoOrBuilder> 
          getRankInfosFieldBuilder() {
        if (rankInfosBuilder_ == null) {
          rankInfosBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo, pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo.Builder, pb.xiugou.x1.protobuf.rank.Rank.PbRankInfoOrBuilder>(
                  rankInfos_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          rankInfos_ = null;
        }
        return rankInfosBuilder_;
      }
      @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.RankInfoResponse)
    }

    // @@protoc_insertion_point(class_scope:pb.RankInfoResponse)
    private static final pb.xiugou.x1.protobuf.rank.Rank.RankInfoResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.rank.Rank.RankInfoResponse();
    }

    public static pb.xiugou.x1.protobuf.rank.Rank.RankInfoResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public pb.xiugou.x1.protobuf.rank.Rank.RankInfoResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     *排行榜类型，参考PbRankType
     * </pre>
     *
     * <code>int32 rank_type = 1;</code>
     * @return The rankType.
     */
    int getRankType();

    /**
     * <pre>
     *奖励ID
     * </pre>
     *
     * <code>int32 reward_id = 2;</code>
     * @return The rewardId.
     */
    int getRewardId();
  }
  /**
   * <pre>
   *领取排行榜奖励
   * </pre>
   *
   * Protobuf type {@code pb.RankRewardRequest}
   */
  public  static final class RankRewardRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.RankRewardRequest)
      RankRewardRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RankRewardRequest.newBuilder() to construct.
    private RankRewardRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RankRewardRequest() {
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private RankRewardRequest(
        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: {

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

              rewardId_ = 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.rank.Rank.internal_static_pb_RankRewardRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_RankRewardRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.rank.Rank.RankRewardRequest.class, pb.xiugou.x1.protobuf.rank.Rank.RankRewardRequest.Builder.class);
    }

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

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


      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 2300002: 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.rank.Rank.RankRewardRequest.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.RankRewardRequest.Proto)
    }

    public static final int RANK_TYPE_FIELD_NUMBER = 1;
    private int rankType_;
    /**
     * <pre>
     *排行榜类型，参考PbRankType
     * </pre>
     *
     * <code>int32 rank_type = 1;</code>
     * @return The rankType.
     */
    public int getRankType() {
      return rankType_;
    }

    public static final int REWARD_ID_FIELD_NUMBER = 2;
    private int rewardId_;
    /**
     * <pre>
     *奖励ID
     * </pre>
     *
     * <code>int32 reward_id = 2;</code>
     * @return The rewardId.
     */
    public int getRewardId() {
      return rewardId_;
    }

    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 (rankType_ != 0) {
        output.writeInt32(1, rankType_);
      }
      if (rewardId_ != 0) {
        output.writeInt32(2, rewardId_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (rankType_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, rankType_);
      }
      if (rewardId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, rewardId_);
      }
      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.rank.Rank.RankRewardRequest)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.rank.Rank.RankRewardRequest other = (pb.xiugou.x1.protobuf.rank.Rank.RankRewardRequest) obj;

      if (getRankType()
          != other.getRankType()) return false;
      if (getRewardId()
          != other.getRewardId()) 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) + RANK_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getRankType();
      hash = (37 * hash) + REWARD_ID_FIELD_NUMBER;
      hash = (53 * hash) + getRewardId();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.rank.Rank.RankRewardRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankRewardRequest 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.rank.Rank.RankRewardRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankRewardRequest 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.rank.Rank.RankRewardRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankRewardRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankRewardRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankRewardRequest 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.rank.Rank.RankRewardRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankRewardRequest 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.rank.Rank.RankRewardRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankRewardRequest 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.rank.Rank.RankRewardRequest 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.RankRewardRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.RankRewardRequest)
        pb.xiugou.x1.protobuf.rank.Rank.RankRewardRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_RankRewardRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_RankRewardRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.rank.Rank.RankRewardRequest.class, pb.xiugou.x1.protobuf.rank.Rank.RankRewardRequest.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.rank.Rank.RankRewardRequest.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();
        rankType_ = 0;

        rewardId_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_RankRewardRequest_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.rank.Rank.RankRewardRequest getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.rank.Rank.RankRewardRequest.getDefaultInstance();
      }

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

      @java.lang.Override
      public pb.xiugou.x1.protobuf.rank.Rank.RankRewardRequest buildPartial() {
        pb.xiugou.x1.protobuf.rank.Rank.RankRewardRequest result = new pb.xiugou.x1.protobuf.rank.Rank.RankRewardRequest(this);
        result.rankType_ = rankType_;
        result.rewardId_ = rewardId_;
        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.rank.Rank.RankRewardRequest) {
          return mergeFrom((pb.xiugou.x1.protobuf.rank.Rank.RankRewardRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.rank.Rank.RankRewardRequest other) {
        if (other == pb.xiugou.x1.protobuf.rank.Rank.RankRewardRequest.getDefaultInstance()) return this;
        if (other.getRankType() != 0) {
          setRankType(other.getRankType());
        }
        if (other.getRewardId() != 0) {
          setRewardId(other.getRewardId());
        }
        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.rank.Rank.RankRewardRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.rank.Rank.RankRewardRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int rankType_ ;
      /**
       * <pre>
       *排行榜类型，参考PbRankType
       * </pre>
       *
       * <code>int32 rank_type = 1;</code>
       * @return The rankType.
       */
      public int getRankType() {
        return rankType_;
      }
      /**
       * <pre>
       *排行榜类型，参考PbRankType
       * </pre>
       *
       * <code>int32 rank_type = 1;</code>
       * @param value The rankType to set.
       * @return This builder for chaining.
       */
      public Builder setRankType(int value) {
        
        rankType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *排行榜类型，参考PbRankType
       * </pre>
       *
       * <code>int32 rank_type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearRankType() {
        
        rankType_ = 0;
        onChanged();
        return this;
      }

      private int rewardId_ ;
      /**
       * <pre>
       *奖励ID
       * </pre>
       *
       * <code>int32 reward_id = 2;</code>
       * @return The rewardId.
       */
      public int getRewardId() {
        return rewardId_;
      }
      /**
       * <pre>
       *奖励ID
       * </pre>
       *
       * <code>int32 reward_id = 2;</code>
       * @param value The rewardId to set.
       * @return This builder for chaining.
       */
      public Builder setRewardId(int value) {
        
        rewardId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *奖励ID
       * </pre>
       *
       * <code>int32 reward_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRewardId() {
        
        rewardId_ = 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.RankRewardRequest)
    }

    // @@protoc_insertion_point(class_scope:pb.RankRewardRequest)
    private static final pb.xiugou.x1.protobuf.rank.Rank.RankRewardRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.rank.Rank.RankRewardRequest();
    }

    public static pb.xiugou.x1.protobuf.rank.Rank.RankRewardRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public pb.xiugou.x1.protobuf.rank.Rank.RankRewardRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     *排行榜类型，参考PbRankType
     * </pre>
     *
     * <code>int32 rank_type = 1;</code>
     * @return The rankType.
     */
    int getRankType();

    /**
     * <pre>
     *已领取奖励列表奖励Id （有数据则说明已领取）
     * </pre>
     *
     * <code>repeated int32 reward_id = 2;</code>
     * @return A list containing the rewardId.
     */
    java.util.List<java.lang.Integer> getRewardIdList();
    /**
     * <pre>
     *已领取奖励列表奖励Id （有数据则说明已领取）
     * </pre>
     *
     * <code>repeated int32 reward_id = 2;</code>
     * @return The count of rewardId.
     */
    int getRewardIdCount();
    /**
     * <pre>
     *已领取奖励列表奖励Id （有数据则说明已领取）
     * </pre>
     *
     * <code>repeated int32 reward_id = 2;</code>
     * @param index The index of the element to return.
     * @return The rewardId at the given index.
     */
    int getRewardId(int index);
  }
  /**
   * Protobuf type {@code pb.RankRewardResponse}
   */
  public  static final class RankRewardResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.RankRewardResponse)
      RankRewardResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RankRewardResponse.newBuilder() to construct.
    private RankRewardResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RankRewardResponse() {
      rewardId_ = emptyIntList();
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private RankRewardResponse(
        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: {

              rankType_ = input.readInt32();
              break;
            }
            case 16: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                rewardId_ = newIntList();
                mutable_bitField0_ |= 0x00000001;
              }
              rewardId_.addInt(input.readInt32());
              break;
            }
            case 18: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
                rewardId_ = newIntList();
                mutable_bitField0_ |= 0x00000001;
              }
              while (input.getBytesUntilLimit() > 0) {
                rewardId_.addInt(input.readInt32());
              }
              input.popLimit(limit);
              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)) {
          rewardId_.makeImmutable(); // C
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_RankRewardResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_RankRewardResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.rank.Rank.RankRewardResponse.class, pb.xiugou.x1.protobuf.rank.Rank.RankRewardResponse.Builder.class);
    }

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

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


      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 2300002: 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.rank.Rank.RankRewardResponse.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.RankRewardResponse.Proto)
    }

    public static final int RANK_TYPE_FIELD_NUMBER = 1;
    private int rankType_;
    /**
     * <pre>
     *排行榜类型，参考PbRankType
     * </pre>
     *
     * <code>int32 rank_type = 1;</code>
     * @return The rankType.
     */
    public int getRankType() {
      return rankType_;
    }

    public static final int REWARD_ID_FIELD_NUMBER = 2;
    private com.google.protobuf.Internal.IntList rewardId_;
    /**
     * <pre>
     *已领取奖励列表奖励Id （有数据则说明已领取）
     * </pre>
     *
     * <code>repeated int32 reward_id = 2;</code>
     * @return A list containing the rewardId.
     */
    public java.util.List<java.lang.Integer>
        getRewardIdList() {
      return rewardId_;
    }
    /**
     * <pre>
     *已领取奖励列表奖励Id （有数据则说明已领取）
     * </pre>
     *
     * <code>repeated int32 reward_id = 2;</code>
     * @return The count of rewardId.
     */
    public int getRewardIdCount() {
      return rewardId_.size();
    }
    /**
     * <pre>
     *已领取奖励列表奖励Id （有数据则说明已领取）
     * </pre>
     *
     * <code>repeated int32 reward_id = 2;</code>
     * @param index The index of the element to return.
     * @return The rewardId at the given index.
     */
    public int getRewardId(int index) {
      return rewardId_.getInt(index);
    }
    private int rewardIdMemoizedSerializedSize = -1;

    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 {
      getSerializedSize();
      if (rankType_ != 0) {
        output.writeInt32(1, rankType_);
      }
      if (getRewardIdList().size() > 0) {
        output.writeUInt32NoTag(18);
        output.writeUInt32NoTag(rewardIdMemoizedSerializedSize);
      }
      for (int i = 0; i < rewardId_.size(); i++) {
        output.writeInt32NoTag(rewardId_.getInt(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (rankType_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, rankType_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < rewardId_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(rewardId_.getInt(i));
        }
        size += dataSize;
        if (!getRewardIdList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        rewardIdMemoizedSerializedSize = dataSize;
      }
      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.rank.Rank.RankRewardResponse)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.rank.Rank.RankRewardResponse other = (pb.xiugou.x1.protobuf.rank.Rank.RankRewardResponse) obj;

      if (getRankType()
          != other.getRankType()) return false;
      if (!getRewardIdList()
          .equals(other.getRewardIdList())) 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) + RANK_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getRankType();
      if (getRewardIdCount() > 0) {
        hash = (37 * hash) + REWARD_ID_FIELD_NUMBER;
        hash = (53 * hash) + getRewardIdList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.rank.Rank.RankRewardResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankRewardResponse 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.rank.Rank.RankRewardResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankRewardResponse 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.rank.Rank.RankRewardResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankRewardResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankRewardResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankRewardResponse 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.rank.Rank.RankRewardResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankRewardResponse 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.rank.Rank.RankRewardResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankRewardResponse 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.rank.Rank.RankRewardResponse 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.RankRewardResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.RankRewardResponse)
        pb.xiugou.x1.protobuf.rank.Rank.RankRewardResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_RankRewardResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_RankRewardResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.rank.Rank.RankRewardResponse.class, pb.xiugou.x1.protobuf.rank.Rank.RankRewardResponse.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.rank.Rank.RankRewardResponse.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();
        rankType_ = 0;

        rewardId_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_RankRewardResponse_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.rank.Rank.RankRewardResponse getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.rank.Rank.RankRewardResponse.getDefaultInstance();
      }

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

      @java.lang.Override
      public pb.xiugou.x1.protobuf.rank.Rank.RankRewardResponse buildPartial() {
        pb.xiugou.x1.protobuf.rank.Rank.RankRewardResponse result = new pb.xiugou.x1.protobuf.rank.Rank.RankRewardResponse(this);
        int from_bitField0_ = bitField0_;
        result.rankType_ = rankType_;
        if (((bitField0_ & 0x00000001) != 0)) {
          rewardId_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.rewardId_ = rewardId_;
        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.rank.Rank.RankRewardResponse) {
          return mergeFrom((pb.xiugou.x1.protobuf.rank.Rank.RankRewardResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.rank.Rank.RankRewardResponse other) {
        if (other == pb.xiugou.x1.protobuf.rank.Rank.RankRewardResponse.getDefaultInstance()) return this;
        if (other.getRankType() != 0) {
          setRankType(other.getRankType());
        }
        if (!other.rewardId_.isEmpty()) {
          if (rewardId_.isEmpty()) {
            rewardId_ = other.rewardId_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureRewardIdIsMutable();
            rewardId_.addAll(other.rewardId_);
          }
          onChanged();
        }
        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.rank.Rank.RankRewardResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.rank.Rank.RankRewardResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int rankType_ ;
      /**
       * <pre>
       *排行榜类型，参考PbRankType
       * </pre>
       *
       * <code>int32 rank_type = 1;</code>
       * @return The rankType.
       */
      public int getRankType() {
        return rankType_;
      }
      /**
       * <pre>
       *排行榜类型，参考PbRankType
       * </pre>
       *
       * <code>int32 rank_type = 1;</code>
       * @param value The rankType to set.
       * @return This builder for chaining.
       */
      public Builder setRankType(int value) {
        
        rankType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *排行榜类型，参考PbRankType
       * </pre>
       *
       * <code>int32 rank_type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearRankType() {
        
        rankType_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList rewardId_ = emptyIntList();
      private void ensureRewardIdIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          rewardId_ = mutableCopy(rewardId_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <pre>
       *已领取奖励列表奖励Id （有数据则说明已领取）
       * </pre>
       *
       * <code>repeated int32 reward_id = 2;</code>
       * @return A list containing the rewardId.
       */
      public java.util.List<java.lang.Integer>
          getRewardIdList() {
        return ((bitField0_ & 0x00000001) != 0) ?
                 java.util.Collections.unmodifiableList(rewardId_) : rewardId_;
      }
      /**
       * <pre>
       *已领取奖励列表奖励Id （有数据则说明已领取）
       * </pre>
       *
       * <code>repeated int32 reward_id = 2;</code>
       * @return The count of rewardId.
       */
      public int getRewardIdCount() {
        return rewardId_.size();
      }
      /**
       * <pre>
       *已领取奖励列表奖励Id （有数据则说明已领取）
       * </pre>
       *
       * <code>repeated int32 reward_id = 2;</code>
       * @param index The index of the element to return.
       * @return The rewardId at the given index.
       */
      public int getRewardId(int index) {
        return rewardId_.getInt(index);
      }
      /**
       * <pre>
       *已领取奖励列表奖励Id （有数据则说明已领取）
       * </pre>
       *
       * <code>repeated int32 reward_id = 2;</code>
       * @param index The index to set the value at.
       * @param value The rewardId to set.
       * @return This builder for chaining.
       */
      public Builder setRewardId(
          int index, int value) {
        ensureRewardIdIsMutable();
        rewardId_.setInt(index, value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       *已领取奖励列表奖励Id （有数据则说明已领取）
       * </pre>
       *
       * <code>repeated int32 reward_id = 2;</code>
       * @param value The rewardId to add.
       * @return This builder for chaining.
       */
      public Builder addRewardId(int value) {
        ensureRewardIdIsMutable();
        rewardId_.addInt(value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       *已领取奖励列表奖励Id （有数据则说明已领取）
       * </pre>
       *
       * <code>repeated int32 reward_id = 2;</code>
       * @param values The rewardId to add.
       * @return This builder for chaining.
       */
      public Builder addAllRewardId(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureRewardIdIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, rewardId_);
        onChanged();
        return this;
      }
      /**
       * <pre>
       *已领取奖励列表奖励Id （有数据则说明已领取）
       * </pre>
       *
       * <code>repeated int32 reward_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRewardId() {
        rewardId_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000001);
        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.RankRewardResponse)
    }

    // @@protoc_insertion_point(class_scope:pb.RankRewardResponse)
    private static final pb.xiugou.x1.protobuf.rank.Rank.RankRewardResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.rank.Rank.RankRewardResponse();
    }

    public static pb.xiugou.x1.protobuf.rank.Rank.RankRewardResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public pb.xiugou.x1.protobuf.rank.Rank.RankRewardResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     *排行榜类型，参考PbRankType
     * </pre>
     *
     * <code>int32 rank_type = 1;</code>
     * @return The rankType.
     */
    int getRankType();

    /**
     * <pre>
     *达成奖励（有数据则说明可领取）
     * </pre>
     *
     * <code>int32 achieve_id = 2;</code>
     * @return The achieveId.
     */
    int getAchieveId();

    /**
     * <pre>
     *新触发的首位达成信息
     * </pre>
     *
     * <code>repeated .pb.PbRankFirstReach first_reaches = 3;</code>
     */
    java.util.List<pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach> 
        getFirstReachesList();
    /**
     * <pre>
     *新触发的首位达成信息
     * </pre>
     *
     * <code>repeated .pb.PbRankFirstReach first_reaches = 3;</code>
     */
    pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach getFirstReaches(int index);
    /**
     * <pre>
     *新触发的首位达成信息
     * </pre>
     *
     * <code>repeated .pb.PbRankFirstReach first_reaches = 3;</code>
     */
    int getFirstReachesCount();
    /**
     * <pre>
     *新触发的首位达成信息
     * </pre>
     *
     * <code>repeated .pb.PbRankFirstReach first_reaches = 3;</code>
     */
    java.util.List<? extends pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReachOrBuilder> 
        getFirstReachesOrBuilderList();
    /**
     * <pre>
     *新触发的首位达成信息
     * </pre>
     *
     * <code>repeated .pb.PbRankFirstReach first_reaches = 3;</code>
     */
    pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReachOrBuilder getFirstReachesOrBuilder(
        int index);
  }
  /**
   * <pre>
   *有新奖励达成时的推送
   * </pre>
   *
   * Protobuf type {@code pb.RankRewardPushMessage}
   */
  public  static final class RankRewardPushMessage extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.RankRewardPushMessage)
      RankRewardPushMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RankRewardPushMessage.newBuilder() to construct.
    private RankRewardPushMessage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private RankRewardPushMessage() {
      firstReaches_ = java.util.Collections.emptyList();
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private RankRewardPushMessage(
        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: {

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

              achieveId_ = input.readInt32();
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                firstReaches_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach>();
                mutable_bitField0_ |= 0x00000001;
              }
              firstReaches_.add(
                  input.readMessage(pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.parser(), extensionRegistry));
              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)) {
          firstReaches_ = java.util.Collections.unmodifiableList(firstReaches_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_RankRewardPushMessage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_RankRewardPushMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.rank.Rank.RankRewardPushMessage.class, pb.xiugou.x1.protobuf.rank.Rank.RankRewardPushMessage.Builder.class);
    }

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

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


      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 2300004: 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.rank.Rank.RankRewardPushMessage.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.RankRewardPushMessage.Proto)
    }

    public static final int RANK_TYPE_FIELD_NUMBER = 1;
    private int rankType_;
    /**
     * <pre>
     *排行榜类型，参考PbRankType
     * </pre>
     *
     * <code>int32 rank_type = 1;</code>
     * @return The rankType.
     */
    public int getRankType() {
      return rankType_;
    }

    public static final int ACHIEVE_ID_FIELD_NUMBER = 2;
    private int achieveId_;
    /**
     * <pre>
     *达成奖励（有数据则说明可领取）
     * </pre>
     *
     * <code>int32 achieve_id = 2;</code>
     * @return The achieveId.
     */
    public int getAchieveId() {
      return achieveId_;
    }

    public static final int FIRST_REACHES_FIELD_NUMBER = 3;
    private java.util.List<pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach> firstReaches_;
    /**
     * <pre>
     *新触发的首位达成信息
     * </pre>
     *
     * <code>repeated .pb.PbRankFirstReach first_reaches = 3;</code>
     */
    public java.util.List<pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach> getFirstReachesList() {
      return firstReaches_;
    }
    /**
     * <pre>
     *新触发的首位达成信息
     * </pre>
     *
     * <code>repeated .pb.PbRankFirstReach first_reaches = 3;</code>
     */
    public java.util.List<? extends pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReachOrBuilder> 
        getFirstReachesOrBuilderList() {
      return firstReaches_;
    }
    /**
     * <pre>
     *新触发的首位达成信息
     * </pre>
     *
     * <code>repeated .pb.PbRankFirstReach first_reaches = 3;</code>
     */
    public int getFirstReachesCount() {
      return firstReaches_.size();
    }
    /**
     * <pre>
     *新触发的首位达成信息
     * </pre>
     *
     * <code>repeated .pb.PbRankFirstReach first_reaches = 3;</code>
     */
    public pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach getFirstReaches(int index) {
      return firstReaches_.get(index);
    }
    /**
     * <pre>
     *新触发的首位达成信息
     * </pre>
     *
     * <code>repeated .pb.PbRankFirstReach first_reaches = 3;</code>
     */
    public pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReachOrBuilder getFirstReachesOrBuilder(
        int index) {
      return firstReaches_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (rankType_ != 0) {
        output.writeInt32(1, rankType_);
      }
      if (achieveId_ != 0) {
        output.writeInt32(2, achieveId_);
      }
      for (int i = 0; i < firstReaches_.size(); i++) {
        output.writeMessage(3, firstReaches_.get(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (rankType_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, rankType_);
      }
      if (achieveId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, achieveId_);
      }
      for (int i = 0; i < firstReaches_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, firstReaches_.get(i));
      }
      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.rank.Rank.RankRewardPushMessage)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.rank.Rank.RankRewardPushMessage other = (pb.xiugou.x1.protobuf.rank.Rank.RankRewardPushMessage) obj;

      if (getRankType()
          != other.getRankType()) return false;
      if (getAchieveId()
          != other.getAchieveId()) return false;
      if (!getFirstReachesList()
          .equals(other.getFirstReachesList())) 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) + RANK_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getRankType();
      hash = (37 * hash) + ACHIEVE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getAchieveId();
      if (getFirstReachesCount() > 0) {
        hash = (37 * hash) + FIRST_REACHES_FIELD_NUMBER;
        hash = (53 * hash) + getFirstReachesList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.rank.Rank.RankRewardPushMessage parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankRewardPushMessage 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.rank.Rank.RankRewardPushMessage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankRewardPushMessage 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.rank.Rank.RankRewardPushMessage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankRewardPushMessage parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankRewardPushMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankRewardPushMessage 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.rank.Rank.RankRewardPushMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankRewardPushMessage 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.rank.Rank.RankRewardPushMessage parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.RankRewardPushMessage 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.rank.Rank.RankRewardPushMessage 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.RankRewardPushMessage}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.RankRewardPushMessage)
        pb.xiugou.x1.protobuf.rank.Rank.RankRewardPushMessageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_RankRewardPushMessage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_RankRewardPushMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.rank.Rank.RankRewardPushMessage.class, pb.xiugou.x1.protobuf.rank.Rank.RankRewardPushMessage.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.rank.Rank.RankRewardPushMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

        achieveId_ = 0;

        if (firstReachesBuilder_ == null) {
          firstReaches_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          firstReachesBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_RankRewardPushMessage_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.rank.Rank.RankRewardPushMessage getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.rank.Rank.RankRewardPushMessage.getDefaultInstance();
      }

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

      @java.lang.Override
      public pb.xiugou.x1.protobuf.rank.Rank.RankRewardPushMessage buildPartial() {
        pb.xiugou.x1.protobuf.rank.Rank.RankRewardPushMessage result = new pb.xiugou.x1.protobuf.rank.Rank.RankRewardPushMessage(this);
        int from_bitField0_ = bitField0_;
        result.rankType_ = rankType_;
        result.achieveId_ = achieveId_;
        if (firstReachesBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            firstReaches_ = java.util.Collections.unmodifiableList(firstReaches_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.firstReaches_ = firstReaches_;
        } else {
          result.firstReaches_ = firstReachesBuilder_.build();
        }
        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.rank.Rank.RankRewardPushMessage) {
          return mergeFrom((pb.xiugou.x1.protobuf.rank.Rank.RankRewardPushMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.rank.Rank.RankRewardPushMessage other) {
        if (other == pb.xiugou.x1.protobuf.rank.Rank.RankRewardPushMessage.getDefaultInstance()) return this;
        if (other.getRankType() != 0) {
          setRankType(other.getRankType());
        }
        if (other.getAchieveId() != 0) {
          setAchieveId(other.getAchieveId());
        }
        if (firstReachesBuilder_ == null) {
          if (!other.firstReaches_.isEmpty()) {
            if (firstReaches_.isEmpty()) {
              firstReaches_ = other.firstReaches_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureFirstReachesIsMutable();
              firstReaches_.addAll(other.firstReaches_);
            }
            onChanged();
          }
        } else {
          if (!other.firstReaches_.isEmpty()) {
            if (firstReachesBuilder_.isEmpty()) {
              firstReachesBuilder_.dispose();
              firstReachesBuilder_ = null;
              firstReaches_ = other.firstReaches_;
              bitField0_ = (bitField0_ & ~0x00000001);
              firstReachesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getFirstReachesFieldBuilder() : null;
            } else {
              firstReachesBuilder_.addAllMessages(other.firstReaches_);
            }
          }
        }
        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.rank.Rank.RankRewardPushMessage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.rank.Rank.RankRewardPushMessage) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int rankType_ ;
      /**
       * <pre>
       *排行榜类型，参考PbRankType
       * </pre>
       *
       * <code>int32 rank_type = 1;</code>
       * @return The rankType.
       */
      public int getRankType() {
        return rankType_;
      }
      /**
       * <pre>
       *排行榜类型，参考PbRankType
       * </pre>
       *
       * <code>int32 rank_type = 1;</code>
       * @param value The rankType to set.
       * @return This builder for chaining.
       */
      public Builder setRankType(int value) {
        
        rankType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *排行榜类型，参考PbRankType
       * </pre>
       *
       * <code>int32 rank_type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearRankType() {
        
        rankType_ = 0;
        onChanged();
        return this;
      }

      private int achieveId_ ;
      /**
       * <pre>
       *达成奖励（有数据则说明可领取）
       * </pre>
       *
       * <code>int32 achieve_id = 2;</code>
       * @return The achieveId.
       */
      public int getAchieveId() {
        return achieveId_;
      }
      /**
       * <pre>
       *达成奖励（有数据则说明可领取）
       * </pre>
       *
       * <code>int32 achieve_id = 2;</code>
       * @param value The achieveId to set.
       * @return This builder for chaining.
       */
      public Builder setAchieveId(int value) {
        
        achieveId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *达成奖励（有数据则说明可领取）
       * </pre>
       *
       * <code>int32 achieve_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearAchieveId() {
        
        achieveId_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach> firstReaches_ =
        java.util.Collections.emptyList();
      private void ensureFirstReachesIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          firstReaches_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach>(firstReaches_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach, pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.Builder, pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReachOrBuilder> firstReachesBuilder_;

      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 3;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach> getFirstReachesList() {
        if (firstReachesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(firstReaches_);
        } else {
          return firstReachesBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 3;</code>
       */
      public int getFirstReachesCount() {
        if (firstReachesBuilder_ == null) {
          return firstReaches_.size();
        } else {
          return firstReachesBuilder_.getCount();
        }
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 3;</code>
       */
      public pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach getFirstReaches(int index) {
        if (firstReachesBuilder_ == null) {
          return firstReaches_.get(index);
        } else {
          return firstReachesBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 3;</code>
       */
      public Builder setFirstReaches(
          int index, pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach value) {
        if (firstReachesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFirstReachesIsMutable();
          firstReaches_.set(index, value);
          onChanged();
        } else {
          firstReachesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 3;</code>
       */
      public Builder setFirstReaches(
          int index, pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.Builder builderForValue) {
        if (firstReachesBuilder_ == null) {
          ensureFirstReachesIsMutable();
          firstReaches_.set(index, builderForValue.build());
          onChanged();
        } else {
          firstReachesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 3;</code>
       */
      public Builder addFirstReaches(pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach value) {
        if (firstReachesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFirstReachesIsMutable();
          firstReaches_.add(value);
          onChanged();
        } else {
          firstReachesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 3;</code>
       */
      public Builder addFirstReaches(
          int index, pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach value) {
        if (firstReachesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFirstReachesIsMutable();
          firstReaches_.add(index, value);
          onChanged();
        } else {
          firstReachesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 3;</code>
       */
      public Builder addFirstReaches(
          pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.Builder builderForValue) {
        if (firstReachesBuilder_ == null) {
          ensureFirstReachesIsMutable();
          firstReaches_.add(builderForValue.build());
          onChanged();
        } else {
          firstReachesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 3;</code>
       */
      public Builder addFirstReaches(
          int index, pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.Builder builderForValue) {
        if (firstReachesBuilder_ == null) {
          ensureFirstReachesIsMutable();
          firstReaches_.add(index, builderForValue.build());
          onChanged();
        } else {
          firstReachesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 3;</code>
       */
      public Builder addAllFirstReaches(
          java.lang.Iterable<? extends pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach> values) {
        if (firstReachesBuilder_ == null) {
          ensureFirstReachesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, firstReaches_);
          onChanged();
        } else {
          firstReachesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 3;</code>
       */
      public Builder clearFirstReaches() {
        if (firstReachesBuilder_ == null) {
          firstReaches_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          firstReachesBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 3;</code>
       */
      public Builder removeFirstReaches(int index) {
        if (firstReachesBuilder_ == null) {
          ensureFirstReachesIsMutable();
          firstReaches_.remove(index);
          onChanged();
        } else {
          firstReachesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 3;</code>
       */
      public pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.Builder getFirstReachesBuilder(
          int index) {
        return getFirstReachesFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 3;</code>
       */
      public pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReachOrBuilder getFirstReachesOrBuilder(
          int index) {
        if (firstReachesBuilder_ == null) {
          return firstReaches_.get(index);  } else {
          return firstReachesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 3;</code>
       */
      public java.util.List<? extends pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReachOrBuilder> 
           getFirstReachesOrBuilderList() {
        if (firstReachesBuilder_ != null) {
          return firstReachesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(firstReaches_);
        }
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 3;</code>
       */
      public pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.Builder addFirstReachesBuilder() {
        return getFirstReachesFieldBuilder().addBuilder(
            pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.getDefaultInstance());
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 3;</code>
       */
      public pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.Builder addFirstReachesBuilder(
          int index) {
        return getFirstReachesFieldBuilder().addBuilder(
            index, pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.getDefaultInstance());
      }
      /**
       * <pre>
       *新触发的首位达成信息
       * </pre>
       *
       * <code>repeated .pb.PbRankFirstReach first_reaches = 3;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.Builder> 
           getFirstReachesBuilderList() {
        return getFirstReachesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach, pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.Builder, pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReachOrBuilder> 
          getFirstReachesFieldBuilder() {
        if (firstReachesBuilder_ == null) {
          firstReachesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach, pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.Builder, pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReachOrBuilder>(
                  firstReaches_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          firstReaches_ = null;
        }
        return firstReachesBuilder_;
      }
      @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.RankRewardPushMessage)
    }

    // @@protoc_insertion_point(class_scope:pb.RankRewardPushMessage)
    private static final pb.xiugou.x1.protobuf.rank.Rank.RankRewardPushMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.rank.Rank.RankRewardPushMessage();
    }

    public static pb.xiugou.x1.protobuf.rank.Rank.RankRewardPushMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public pb.xiugou.x1.protobuf.rank.Rank.RankRewardPushMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     *实体ID
     * </pre>
     *
     * <code>int64 entity_id = 1;</code>
     * @return The entityId.
     */
    long getEntityId();

    /**
     * <pre>
     *名字
     * </pre>
     *
     * <code>string name = 2;</code>
     * @return The name.
     */
    java.lang.String getName();
    /**
     * <pre>
     *名字
     * </pre>
     *
     * <code>string name = 2;</code>
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();

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

    /**
     * <pre>
     *二级分数
     * </pre>
     *
     * <code>int64 sub_score = 4;</code>
     * @return The subScore.
     */
    long getSubScore();

    /**
     * <pre>
     *排名
     * </pre>
     *
     * <code>int32 rank = 5;</code>
     * @return The rank.
     */
    int getRank();

    /**
     * <pre>
     *头像
     * </pre>
     *
     * <code>string head = 6;</code>
     * @return The head.
     */
    java.lang.String getHead();
    /**
     * <pre>
     *头像
     * </pre>
     *
     * <code>string head = 6;</code>
     * @return The bytes for head.
     */
    com.google.protobuf.ByteString
        getHeadBytes();

    /**
     * <pre>
     *排行榜个性化数据，结合排行榜类型做解析，需要判空
     * </pre>
     *
     * <code>bytes data = 7;</code>
     * @return The data.
     */
    com.google.protobuf.ByteString getData();
  }
  /**
   * <pre>
   *排行榜对象
   * </pre>
   *
   * Protobuf type {@code pb.PbRanker}
   */
  public  static final class PbRanker extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.PbRanker)
      PbRankerOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PbRanker.newBuilder() to construct.
    private PbRanker(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PbRanker() {
      name_ = "";
      head_ = "";
      data_ = com.google.protobuf.ByteString.EMPTY;
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PbRanker(
        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: {

              entityId_ = input.readInt64();
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              name_ = s;
              break;
            }
            case 24: {

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

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

              rank_ = input.readInt32();
              break;
            }
            case 50: {
              java.lang.String s = input.readStringRequireUtf8();

              head_ = s;
              break;
            }
            case 58: {

              data_ = input.readBytes();
              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.rank.Rank.internal_static_pb_PbRanker_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_PbRanker_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.rank.Rank.PbRanker.class, pb.xiugou.x1.protobuf.rank.Rank.PbRanker.Builder.class);
    }

    public static final int ENTITY_ID_FIELD_NUMBER = 1;
    private long entityId_;
    /**
     * <pre>
     *实体ID
     * </pre>
     *
     * <code>int64 entity_id = 1;</code>
     * @return The entityId.
     */
    public long getEntityId() {
      return entityId_;
    }

    public static final int NAME_FIELD_NUMBER = 2;
    private volatile java.lang.Object name_;
    /**
     * <pre>
     *名字
     * </pre>
     *
     * <code>string name = 2;</code>
     * @return The name.
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        name_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *名字
     * </pre>
     *
     * <code>string name = 2;</code>
     * @return The bytes for name.
     */
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    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 SUB_SCORE_FIELD_NUMBER = 4;
    private long subScore_;
    /**
     * <pre>
     *二级分数
     * </pre>
     *
     * <code>int64 sub_score = 4;</code>
     * @return The subScore.
     */
    public long getSubScore() {
      return subScore_;
    }

    public static final int RANK_FIELD_NUMBER = 5;
    private int rank_;
    /**
     * <pre>
     *排名
     * </pre>
     *
     * <code>int32 rank = 5;</code>
     * @return The rank.
     */
    public int getRank() {
      return rank_;
    }

    public static final int HEAD_FIELD_NUMBER = 6;
    private volatile java.lang.Object head_;
    /**
     * <pre>
     *头像
     * </pre>
     *
     * <code>string head = 6;</code>
     * @return The head.
     */
    public java.lang.String getHead() {
      java.lang.Object ref = head_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        head_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *头像
     * </pre>
     *
     * <code>string head = 6;</code>
     * @return The bytes for head.
     */
    public com.google.protobuf.ByteString
        getHeadBytes() {
      java.lang.Object ref = head_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        head_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DATA_FIELD_NUMBER = 7;
    private com.google.protobuf.ByteString data_;
    /**
     * <pre>
     *排行榜个性化数据，结合排行榜类型做解析，需要判空
     * </pre>
     *
     * <code>bytes data = 7;</code>
     * @return The data.
     */
    public com.google.protobuf.ByteString getData() {
      return data_;
    }

    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 (entityId_ != 0L) {
        output.writeInt64(1, entityId_);
      }
      if (!getNameBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_);
      }
      if (score_ != 0L) {
        output.writeInt64(3, score_);
      }
      if (subScore_ != 0L) {
        output.writeInt64(4, subScore_);
      }
      if (rank_ != 0) {
        output.writeInt32(5, rank_);
      }
      if (!getHeadBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, head_);
      }
      if (!data_.isEmpty()) {
        output.writeBytes(7, data_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (entityId_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, entityId_);
      }
      if (!getNameBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_);
      }
      if (score_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, score_);
      }
      if (subScore_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, subScore_);
      }
      if (rank_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, rank_);
      }
      if (!getHeadBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, head_);
      }
      if (!data_.isEmpty()) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(7, data_);
      }
      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.rank.Rank.PbRanker)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.rank.Rank.PbRanker other = (pb.xiugou.x1.protobuf.rank.Rank.PbRanker) obj;

      if (getEntityId()
          != other.getEntityId()) return false;
      if (!getName()
          .equals(other.getName())) return false;
      if (getScore()
          != other.getScore()) return false;
      if (getSubScore()
          != other.getSubScore()) return false;
      if (getRank()
          != other.getRank()) return false;
      if (!getHead()
          .equals(other.getHead())) return false;
      if (!getData()
          .equals(other.getData())) 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) + ENTITY_ID_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getEntityId());
      hash = (37 * hash) + NAME_FIELD_NUMBER;
      hash = (53 * hash) + getName().hashCode();
      hash = (37 * hash) + SCORE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getScore());
      hash = (37 * hash) + SUB_SCORE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getSubScore());
      hash = (37 * hash) + RANK_FIELD_NUMBER;
      hash = (53 * hash) + getRank();
      hash = (37 * hash) + HEAD_FIELD_NUMBER;
      hash = (53 * hash) + getHead().hashCode();
      hash = (37 * hash) + DATA_FIELD_NUMBER;
      hash = (53 * hash) + getData().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.rank.Rank.PbRanker parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.PbRanker 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.rank.Rank.PbRanker parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.PbRanker 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.rank.Rank.PbRanker parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.PbRanker parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.PbRanker parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.PbRanker 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.rank.Rank.PbRanker parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.PbRanker 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.rank.Rank.PbRanker parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.PbRanker 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.rank.Rank.PbRanker 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.PbRanker}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.PbRanker)
        pb.xiugou.x1.protobuf.rank.Rank.PbRankerOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_PbRanker_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_PbRanker_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.rank.Rank.PbRanker.class, pb.xiugou.x1.protobuf.rank.Rank.PbRanker.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.rank.Rank.PbRanker.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();
        entityId_ = 0L;

        name_ = "";

        score_ = 0L;

        subScore_ = 0L;

        rank_ = 0;

        head_ = "";

        data_ = com.google.protobuf.ByteString.EMPTY;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_PbRanker_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.rank.Rank.PbRanker getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.rank.Rank.PbRanker.getDefaultInstance();
      }

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

      @java.lang.Override
      public pb.xiugou.x1.protobuf.rank.Rank.PbRanker buildPartial() {
        pb.xiugou.x1.protobuf.rank.Rank.PbRanker result = new pb.xiugou.x1.protobuf.rank.Rank.PbRanker(this);
        result.entityId_ = entityId_;
        result.name_ = name_;
        result.score_ = score_;
        result.subScore_ = subScore_;
        result.rank_ = rank_;
        result.head_ = head_;
        result.data_ = data_;
        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.rank.Rank.PbRanker) {
          return mergeFrom((pb.xiugou.x1.protobuf.rank.Rank.PbRanker)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.rank.Rank.PbRanker other) {
        if (other == pb.xiugou.x1.protobuf.rank.Rank.PbRanker.getDefaultInstance()) return this;
        if (other.getEntityId() != 0L) {
          setEntityId(other.getEntityId());
        }
        if (!other.getName().isEmpty()) {
          name_ = other.name_;
          onChanged();
        }
        if (other.getScore() != 0L) {
          setScore(other.getScore());
        }
        if (other.getSubScore() != 0L) {
          setSubScore(other.getSubScore());
        }
        if (other.getRank() != 0) {
          setRank(other.getRank());
        }
        if (!other.getHead().isEmpty()) {
          head_ = other.head_;
          onChanged();
        }
        if (other.getData() != com.google.protobuf.ByteString.EMPTY) {
          setData(other.getData());
        }
        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.rank.Rank.PbRanker parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.rank.Rank.PbRanker) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private long entityId_ ;
      /**
       * <pre>
       *实体ID
       * </pre>
       *
       * <code>int64 entity_id = 1;</code>
       * @return The entityId.
       */
      public long getEntityId() {
        return entityId_;
      }
      /**
       * <pre>
       *实体ID
       * </pre>
       *
       * <code>int64 entity_id = 1;</code>
       * @param value The entityId to set.
       * @return This builder for chaining.
       */
      public Builder setEntityId(long value) {
        
        entityId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *实体ID
       * </pre>
       *
       * <code>int64 entity_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearEntityId() {
        
        entityId_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object name_ = "";
      /**
       * <pre>
       *名字
       * </pre>
       *
       * <code>string name = 2;</code>
       * @return The name.
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          name_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *名字
       * </pre>
       *
       * <code>string name = 2;</code>
       * @return The bytes for name.
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *名字
       * </pre>
       *
       * <code>string name = 2;</code>
       * @param value The name to set.
       * @return This builder for chaining.
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *名字
       * </pre>
       *
       * <code>string name = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearName() {
        
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *名字
       * </pre>
       *
       * <code>string name = 2;</code>
       * @param value The bytes for name to set.
       * @return This builder for chaining.
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        name_ = value;
        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 long subScore_ ;
      /**
       * <pre>
       *二级分数
       * </pre>
       *
       * <code>int64 sub_score = 4;</code>
       * @return The subScore.
       */
      public long getSubScore() {
        return subScore_;
      }
      /**
       * <pre>
       *二级分数
       * </pre>
       *
       * <code>int64 sub_score = 4;</code>
       * @param value The subScore to set.
       * @return This builder for chaining.
       */
      public Builder setSubScore(long value) {
        
        subScore_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *二级分数
       * </pre>
       *
       * <code>int64 sub_score = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearSubScore() {
        
        subScore_ = 0L;
        onChanged();
        return this;
      }

      private int rank_ ;
      /**
       * <pre>
       *排名
       * </pre>
       *
       * <code>int32 rank = 5;</code>
       * @return The rank.
       */
      public int getRank() {
        return rank_;
      }
      /**
       * <pre>
       *排名
       * </pre>
       *
       * <code>int32 rank = 5;</code>
       * @param value The rank to set.
       * @return This builder for chaining.
       */
      public Builder setRank(int value) {
        
        rank_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *排名
       * </pre>
       *
       * <code>int32 rank = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearRank() {
        
        rank_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object head_ = "";
      /**
       * <pre>
       *头像
       * </pre>
       *
       * <code>string head = 6;</code>
       * @return The head.
       */
      public java.lang.String getHead() {
        java.lang.Object ref = head_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          head_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *头像
       * </pre>
       *
       * <code>string head = 6;</code>
       * @return The bytes for head.
       */
      public com.google.protobuf.ByteString
          getHeadBytes() {
        java.lang.Object ref = head_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          head_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *头像
       * </pre>
       *
       * <code>string head = 6;</code>
       * @param value The head to set.
       * @return This builder for chaining.
       */
      public Builder setHead(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        head_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *头像
       * </pre>
       *
       * <code>string head = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearHead() {
        
        head_ = getDefaultInstance().getHead();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *头像
       * </pre>
       *
       * <code>string head = 6;</code>
       * @param value The bytes for head to set.
       * @return This builder for chaining.
       */
      public Builder setHeadBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        head_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       *排行榜个性化数据，结合排行榜类型做解析，需要判空
       * </pre>
       *
       * <code>bytes data = 7;</code>
       * @return The data.
       */
      public com.google.protobuf.ByteString getData() {
        return data_;
      }
      /**
       * <pre>
       *排行榜个性化数据，结合排行榜类型做解析，需要判空
       * </pre>
       *
       * <code>bytes data = 7;</code>
       * @param value The data to set.
       * @return This builder for chaining.
       */
      public Builder setData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        data_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *排行榜个性化数据，结合排行榜类型做解析，需要判空
       * </pre>
       *
       * <code>bytes data = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearData() {
        
        data_ = getDefaultInstance().getData();
        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.PbRanker)
    }

    // @@protoc_insertion_point(class_scope:pb.PbRanker)
    private static final pb.xiugou.x1.protobuf.rank.Rank.PbRanker DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.rank.Rank.PbRanker();
    }

    public static pb.xiugou.x1.protobuf.rank.Rank.PbRanker getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public pb.xiugou.x1.protobuf.rank.Rank.PbRanker getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     *对长英雄标识
     * </pre>
     *
     * <code>int32 leader_hero = 1;</code>
     * @return The leaderHero.
     */
    int getLeaderHero();
  }
  /**
   * <pre>
   *普通的玩家前三信息
   * </pre>
   *
   * Protobuf type {@code pb.PbPlayerNormalTop3}
   */
  public  static final class PbPlayerNormalTop3 extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.PbPlayerNormalTop3)
      PbPlayerNormalTop3OrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PbPlayerNormalTop3.newBuilder() to construct.
    private PbPlayerNormalTop3(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PbPlayerNormalTop3() {
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PbPlayerNormalTop3(
        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: {

              leaderHero_ = 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.rank.Rank.internal_static_pb_PbPlayerNormalTop3_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_PbPlayerNormalTop3_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.rank.Rank.PbPlayerNormalTop3.class, pb.xiugou.x1.protobuf.rank.Rank.PbPlayerNormalTop3.Builder.class);
    }

    public static final int LEADER_HERO_FIELD_NUMBER = 1;
    private int leaderHero_;
    /**
     * <pre>
     *对长英雄标识
     * </pre>
     *
     * <code>int32 leader_hero = 1;</code>
     * @return The leaderHero.
     */
    public int getLeaderHero() {
      return leaderHero_;
    }

    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 (leaderHero_ != 0) {
        output.writeInt32(1, leaderHero_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (leaderHero_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, leaderHero_);
      }
      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.rank.Rank.PbPlayerNormalTop3)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.rank.Rank.PbPlayerNormalTop3 other = (pb.xiugou.x1.protobuf.rank.Rank.PbPlayerNormalTop3) obj;

      if (getLeaderHero()
          != other.getLeaderHero()) 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) + LEADER_HERO_FIELD_NUMBER;
      hash = (53 * hash) + getLeaderHero();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.rank.Rank.PbPlayerNormalTop3 parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.PbPlayerNormalTop3 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.rank.Rank.PbPlayerNormalTop3 parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.PbPlayerNormalTop3 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.rank.Rank.PbPlayerNormalTop3 parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.PbPlayerNormalTop3 parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.PbPlayerNormalTop3 parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.PbPlayerNormalTop3 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.rank.Rank.PbPlayerNormalTop3 parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.PbPlayerNormalTop3 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.rank.Rank.PbPlayerNormalTop3 parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.PbPlayerNormalTop3 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.rank.Rank.PbPlayerNormalTop3 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.PbPlayerNormalTop3}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.PbPlayerNormalTop3)
        pb.xiugou.x1.protobuf.rank.Rank.PbPlayerNormalTop3OrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_PbPlayerNormalTop3_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_PbPlayerNormalTop3_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.rank.Rank.PbPlayerNormalTop3.class, pb.xiugou.x1.protobuf.rank.Rank.PbPlayerNormalTop3.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.rank.Rank.PbPlayerNormalTop3.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();
        leaderHero_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_PbPlayerNormalTop3_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.rank.Rank.PbPlayerNormalTop3 getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.rank.Rank.PbPlayerNormalTop3.getDefaultInstance();
      }

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

      @java.lang.Override
      public pb.xiugou.x1.protobuf.rank.Rank.PbPlayerNormalTop3 buildPartial() {
        pb.xiugou.x1.protobuf.rank.Rank.PbPlayerNormalTop3 result = new pb.xiugou.x1.protobuf.rank.Rank.PbPlayerNormalTop3(this);
        result.leaderHero_ = leaderHero_;
        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.rank.Rank.PbPlayerNormalTop3) {
          return mergeFrom((pb.xiugou.x1.protobuf.rank.Rank.PbPlayerNormalTop3)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.rank.Rank.PbPlayerNormalTop3 other) {
        if (other == pb.xiugou.x1.protobuf.rank.Rank.PbPlayerNormalTop3.getDefaultInstance()) return this;
        if (other.getLeaderHero() != 0) {
          setLeaderHero(other.getLeaderHero());
        }
        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.rank.Rank.PbPlayerNormalTop3 parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.rank.Rank.PbPlayerNormalTop3) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int leaderHero_ ;
      /**
       * <pre>
       *对长英雄标识
       * </pre>
       *
       * <code>int32 leader_hero = 1;</code>
       * @return The leaderHero.
       */
      public int getLeaderHero() {
        return leaderHero_;
      }
      /**
       * <pre>
       *对长英雄标识
       * </pre>
       *
       * <code>int32 leader_hero = 1;</code>
       * @param value The leaderHero to set.
       * @return This builder for chaining.
       */
      public Builder setLeaderHero(int value) {
        
        leaderHero_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *对长英雄标识
       * </pre>
       *
       * <code>int32 leader_hero = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearLeaderHero() {
        
        leaderHero_ = 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.PbPlayerNormalTop3)
    }

    // @@protoc_insertion_point(class_scope:pb.PbPlayerNormalTop3)
    private static final pb.xiugou.x1.protobuf.rank.Rank.PbPlayerNormalTop3 DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.rank.Rank.PbPlayerNormalTop3();
    }

    public static pb.xiugou.x1.protobuf.rank.Rank.PbPlayerNormalTop3 getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public pb.xiugou.x1.protobuf.rank.Rank.PbPlayerNormalTop3 getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     *排行榜类型
     * </pre>
     *
     * <code>int32 rank_type = 1;</code>
     * @return The rankType.
     */
    int getRankType();

    /**
     * <pre>
     *达成奖励（有数据则说明可领取）
     * </pre>
     *
     * <code>int32 achieve_id = 2;</code>
     * @return The achieveId.
     */
    int getAchieveId();

    /**
     * <pre>
     *已领取奖励列表 奖励Id（有数据则说明已领取）
     * </pre>
     *
     * <code>repeated int32 reward_id = 3;</code>
     * @return A list containing the rewardId.
     */
    java.util.List<java.lang.Integer> getRewardIdList();
    /**
     * <pre>
     *已领取奖励列表 奖励Id（有数据则说明已领取）
     * </pre>
     *
     * <code>repeated int32 reward_id = 3;</code>
     * @return The count of rewardId.
     */
    int getRewardIdCount();
    /**
     * <pre>
     *已领取奖励列表 奖励Id（有数据则说明已领取）
     * </pre>
     *
     * <code>repeated int32 reward_id = 3;</code>
     * @param index The index of the element to return.
     * @return The rewardId at the given index.
     */
    int getRewardId(int index);
  }
  /**
   * Protobuf type {@code pb.PbRankInfo}
   */
  public  static final class PbRankInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.PbRankInfo)
      PbRankInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PbRankInfo.newBuilder() to construct.
    private PbRankInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PbRankInfo() {
      rewardId_ = emptyIntList();
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PbRankInfo(
        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: {

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

              achieveId_ = input.readInt32();
              break;
            }
            case 24: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                rewardId_ = newIntList();
                mutable_bitField0_ |= 0x00000001;
              }
              rewardId_.addInt(input.readInt32());
              break;
            }
            case 26: {
              int length = input.readRawVarint32();
              int limit = input.pushLimit(length);
              if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
                rewardId_ = newIntList();
                mutable_bitField0_ |= 0x00000001;
              }
              while (input.getBytesUntilLimit() > 0) {
                rewardId_.addInt(input.readInt32());
              }
              input.popLimit(limit);
              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)) {
          rewardId_.makeImmutable(); // C
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_PbRankInfo_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_PbRankInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo.class, pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo.Builder.class);
    }

    public static final int RANK_TYPE_FIELD_NUMBER = 1;
    private int rankType_;
    /**
     * <pre>
     *排行榜类型
     * </pre>
     *
     * <code>int32 rank_type = 1;</code>
     * @return The rankType.
     */
    public int getRankType() {
      return rankType_;
    }

    public static final int ACHIEVE_ID_FIELD_NUMBER = 2;
    private int achieveId_;
    /**
     * <pre>
     *达成奖励（有数据则说明可领取）
     * </pre>
     *
     * <code>int32 achieve_id = 2;</code>
     * @return The achieveId.
     */
    public int getAchieveId() {
      return achieveId_;
    }

    public static final int REWARD_ID_FIELD_NUMBER = 3;
    private com.google.protobuf.Internal.IntList rewardId_;
    /**
     * <pre>
     *已领取奖励列表 奖励Id（有数据则说明已领取）
     * </pre>
     *
     * <code>repeated int32 reward_id = 3;</code>
     * @return A list containing the rewardId.
     */
    public java.util.List<java.lang.Integer>
        getRewardIdList() {
      return rewardId_;
    }
    /**
     * <pre>
     *已领取奖励列表 奖励Id（有数据则说明已领取）
     * </pre>
     *
     * <code>repeated int32 reward_id = 3;</code>
     * @return The count of rewardId.
     */
    public int getRewardIdCount() {
      return rewardId_.size();
    }
    /**
     * <pre>
     *已领取奖励列表 奖励Id（有数据则说明已领取）
     * </pre>
     *
     * <code>repeated int32 reward_id = 3;</code>
     * @param index The index of the element to return.
     * @return The rewardId at the given index.
     */
    public int getRewardId(int index) {
      return rewardId_.getInt(index);
    }
    private int rewardIdMemoizedSerializedSize = -1;

    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 {
      getSerializedSize();
      if (rankType_ != 0) {
        output.writeInt32(1, rankType_);
      }
      if (achieveId_ != 0) {
        output.writeInt32(2, achieveId_);
      }
      if (getRewardIdList().size() > 0) {
        output.writeUInt32NoTag(26);
        output.writeUInt32NoTag(rewardIdMemoizedSerializedSize);
      }
      for (int i = 0; i < rewardId_.size(); i++) {
        output.writeInt32NoTag(rewardId_.getInt(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (rankType_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, rankType_);
      }
      if (achieveId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, achieveId_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < rewardId_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(rewardId_.getInt(i));
        }
        size += dataSize;
        if (!getRewardIdList().isEmpty()) {
          size += 1;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        rewardIdMemoizedSerializedSize = dataSize;
      }
      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.rank.Rank.PbRankInfo)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo other = (pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo) obj;

      if (getRankType()
          != other.getRankType()) return false;
      if (getAchieveId()
          != other.getAchieveId()) return false;
      if (!getRewardIdList()
          .equals(other.getRewardIdList())) 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) + RANK_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getRankType();
      hash = (37 * hash) + ACHIEVE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getAchieveId();
      if (getRewardIdCount() > 0) {
        hash = (37 * hash) + REWARD_ID_FIELD_NUMBER;
        hash = (53 * hash) + getRewardIdList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo 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.rank.Rank.PbRankInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo 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.rank.Rank.PbRankInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo 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.rank.Rank.PbRankInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo 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.rank.Rank.PbRankInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo 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.rank.Rank.PbRankInfo 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.PbRankInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.PbRankInfo)
        pb.xiugou.x1.protobuf.rank.Rank.PbRankInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_PbRankInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_PbRankInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo.class, pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo.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();
        rankType_ = 0;

        achieveId_ = 0;

        rewardId_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_PbRankInfo_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo.getDefaultInstance();
      }

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

      @java.lang.Override
      public pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo buildPartial() {
        pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo result = new pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo(this);
        int from_bitField0_ = bitField0_;
        result.rankType_ = rankType_;
        result.achieveId_ = achieveId_;
        if (((bitField0_ & 0x00000001) != 0)) {
          rewardId_.makeImmutable();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.rewardId_ = rewardId_;
        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.rank.Rank.PbRankInfo) {
          return mergeFrom((pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo other) {
        if (other == pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo.getDefaultInstance()) return this;
        if (other.getRankType() != 0) {
          setRankType(other.getRankType());
        }
        if (other.getAchieveId() != 0) {
          setAchieveId(other.getAchieveId());
        }
        if (!other.rewardId_.isEmpty()) {
          if (rewardId_.isEmpty()) {
            rewardId_ = other.rewardId_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureRewardIdIsMutable();
            rewardId_.addAll(other.rewardId_);
          }
          onChanged();
        }
        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.rank.Rank.PbRankInfo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int rankType_ ;
      /**
       * <pre>
       *排行榜类型
       * </pre>
       *
       * <code>int32 rank_type = 1;</code>
       * @return The rankType.
       */
      public int getRankType() {
        return rankType_;
      }
      /**
       * <pre>
       *排行榜类型
       * </pre>
       *
       * <code>int32 rank_type = 1;</code>
       * @param value The rankType to set.
       * @return This builder for chaining.
       */
      public Builder setRankType(int value) {
        
        rankType_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *排行榜类型
       * </pre>
       *
       * <code>int32 rank_type = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearRankType() {
        
        rankType_ = 0;
        onChanged();
        return this;
      }

      private int achieveId_ ;
      /**
       * <pre>
       *达成奖励（有数据则说明可领取）
       * </pre>
       *
       * <code>int32 achieve_id = 2;</code>
       * @return The achieveId.
       */
      public int getAchieveId() {
        return achieveId_;
      }
      /**
       * <pre>
       *达成奖励（有数据则说明可领取）
       * </pre>
       *
       * <code>int32 achieve_id = 2;</code>
       * @param value The achieveId to set.
       * @return This builder for chaining.
       */
      public Builder setAchieveId(int value) {
        
        achieveId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *达成奖励（有数据则说明可领取）
       * </pre>
       *
       * <code>int32 achieve_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearAchieveId() {
        
        achieveId_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.IntList rewardId_ = emptyIntList();
      private void ensureRewardIdIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          rewardId_ = mutableCopy(rewardId_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <pre>
       *已领取奖励列表 奖励Id（有数据则说明已领取）
       * </pre>
       *
       * <code>repeated int32 reward_id = 3;</code>
       * @return A list containing the rewardId.
       */
      public java.util.List<java.lang.Integer>
          getRewardIdList() {
        return ((bitField0_ & 0x00000001) != 0) ?
                 java.util.Collections.unmodifiableList(rewardId_) : rewardId_;
      }
      /**
       * <pre>
       *已领取奖励列表 奖励Id（有数据则说明已领取）
       * </pre>
       *
       * <code>repeated int32 reward_id = 3;</code>
       * @return The count of rewardId.
       */
      public int getRewardIdCount() {
        return rewardId_.size();
      }
      /**
       * <pre>
       *已领取奖励列表 奖励Id（有数据则说明已领取）
       * </pre>
       *
       * <code>repeated int32 reward_id = 3;</code>
       * @param index The index of the element to return.
       * @return The rewardId at the given index.
       */
      public int getRewardId(int index) {
        return rewardId_.getInt(index);
      }
      /**
       * <pre>
       *已领取奖励列表 奖励Id（有数据则说明已领取）
       * </pre>
       *
       * <code>repeated int32 reward_id = 3;</code>
       * @param index The index to set the value at.
       * @param value The rewardId to set.
       * @return This builder for chaining.
       */
      public Builder setRewardId(
          int index, int value) {
        ensureRewardIdIsMutable();
        rewardId_.setInt(index, value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       *已领取奖励列表 奖励Id（有数据则说明已领取）
       * </pre>
       *
       * <code>repeated int32 reward_id = 3;</code>
       * @param value The rewardId to add.
       * @return This builder for chaining.
       */
      public Builder addRewardId(int value) {
        ensureRewardIdIsMutable();
        rewardId_.addInt(value);
        onChanged();
        return this;
      }
      /**
       * <pre>
       *已领取奖励列表 奖励Id（有数据则说明已领取）
       * </pre>
       *
       * <code>repeated int32 reward_id = 3;</code>
       * @param values The rewardId to add.
       * @return This builder for chaining.
       */
      public Builder addAllRewardId(
          java.lang.Iterable<? extends java.lang.Integer> values) {
        ensureRewardIdIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, rewardId_);
        onChanged();
        return this;
      }
      /**
       * <pre>
       *已领取奖励列表 奖励Id（有数据则说明已领取）
       * </pre>
       *
       * <code>repeated int32 reward_id = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearRewardId() {
        rewardId_ = emptyIntList();
        bitField0_ = (bitField0_ & ~0x00000001);
        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.PbRankInfo)
    }

    // @@protoc_insertion_point(class_scope:pb.PbRankInfo)
    private static final pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo();
    }

    public static pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public pb.xiugou.x1.protobuf.rank.Rank.PbRankInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

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

    /**
     * <pre>
     *对应奖励配置中的奖励ID
     * </pre>
     *
     * <code>int32 id = 1;</code>
     * @return The id.
     */
    int getId();

    /**
     * <pre>
     *玩家ID
     * </pre>
     *
     * <code>int64 player_id = 2;</code>
     * @return The playerId.
     */
    long getPlayerId();

    /**
     * <pre>
     *昵称
     * </pre>
     *
     * <code>string nick = 3;</code>
     * @return The nick.
     */
    java.lang.String getNick();
    /**
     * <pre>
     *昵称
     * </pre>
     *
     * <code>string nick = 3;</code>
     * @return The bytes for nick.
     */
    com.google.protobuf.ByteString
        getNickBytes();

    /**
     * <pre>
     *头像
     * </pre>
     *
     * <code>string head = 4;</code>
     * @return The head.
     */
    java.lang.String getHead();
    /**
     * <pre>
     *头像
     * </pre>
     *
     * <code>string head = 4;</code>
     * @return The bytes for head.
     */
    com.google.protobuf.ByteString
        getHeadBytes();

    /**
     * <pre>
     *达成时间戳，毫秒
     * </pre>
     *
     * <code>int64 time = 5;</code>
     * @return The time.
     */
    long getTime();
  }
  /**
   * <pre>
   *排行榜首位达成
   * </pre>
   *
   * Protobuf type {@code pb.PbRankFirstReach}
   */
  public  static final class PbRankFirstReach extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.PbRankFirstReach)
      PbRankFirstReachOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PbRankFirstReach.newBuilder() to construct.
    private PbRankFirstReach(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PbRankFirstReach() {
      nick_ = "";
      head_ = "";
    }

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

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PbRankFirstReach(
        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: {

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

              playerId_ = input.readInt64();
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();

              nick_ = s;
              break;
            }
            case 34: {
              java.lang.String s = input.readStringRequireUtf8();

              head_ = s;
              break;
            }
            case 40: {

              time_ = 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 {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_PbRankFirstReach_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_PbRankFirstReach_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.class, pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.Builder.class);
    }

    public static final int ID_FIELD_NUMBER = 1;
    private int id_;
    /**
     * <pre>
     *对应奖励配置中的奖励ID
     * </pre>
     *
     * <code>int32 id = 1;</code>
     * @return The id.
     */
    public int getId() {
      return id_;
    }

    public static final int PLAYER_ID_FIELD_NUMBER = 2;
    private long playerId_;
    /**
     * <pre>
     *玩家ID
     * </pre>
     *
     * <code>int64 player_id = 2;</code>
     * @return The playerId.
     */
    public long getPlayerId() {
      return playerId_;
    }

    public static final int NICK_FIELD_NUMBER = 3;
    private volatile java.lang.Object nick_;
    /**
     * <pre>
     *昵称
     * </pre>
     *
     * <code>string nick = 3;</code>
     * @return The nick.
     */
    public java.lang.String getNick() {
      java.lang.Object ref = nick_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        nick_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *昵称
     * </pre>
     *
     * <code>string nick = 3;</code>
     * @return The bytes for nick.
     */
    public com.google.protobuf.ByteString
        getNickBytes() {
      java.lang.Object ref = nick_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        nick_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HEAD_FIELD_NUMBER = 4;
    private volatile java.lang.Object head_;
    /**
     * <pre>
     *头像
     * </pre>
     *
     * <code>string head = 4;</code>
     * @return The head.
     */
    public java.lang.String getHead() {
      java.lang.Object ref = head_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        head_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *头像
     * </pre>
     *
     * <code>string head = 4;</code>
     * @return The bytes for head.
     */
    public com.google.protobuf.ByteString
        getHeadBytes() {
      java.lang.Object ref = head_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        head_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TIME_FIELD_NUMBER = 5;
    private long time_;
    /**
     * <pre>
     *达成时间戳，毫秒
     * </pre>
     *
     * <code>int64 time = 5;</code>
     * @return The time.
     */
    public long getTime() {
      return time_;
    }

    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 (id_ != 0) {
        output.writeInt32(1, id_);
      }
      if (playerId_ != 0L) {
        output.writeInt64(2, playerId_);
      }
      if (!getNickBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, nick_);
      }
      if (!getHeadBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, head_);
      }
      if (time_ != 0L) {
        output.writeInt64(5, time_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (id_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, id_);
      }
      if (playerId_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, playerId_);
      }
      if (!getNickBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, nick_);
      }
      if (!getHeadBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, head_);
      }
      if (time_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(5, time_);
      }
      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.rank.Rank.PbRankFirstReach)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach other = (pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach) obj;

      if (getId()
          != other.getId()) return false;
      if (getPlayerId()
          != other.getPlayerId()) return false;
      if (!getNick()
          .equals(other.getNick())) return false;
      if (!getHead()
          .equals(other.getHead())) return false;
      if (getTime()
          != other.getTime()) 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) + ID_FIELD_NUMBER;
      hash = (53 * hash) + getId();
      hash = (37 * hash) + PLAYER_ID_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getPlayerId());
      hash = (37 * hash) + NICK_FIELD_NUMBER;
      hash = (53 * hash) + getNick().hashCode();
      hash = (37 * hash) + HEAD_FIELD_NUMBER;
      hash = (53 * hash) + getHead().hashCode();
      hash = (37 * hash) + TIME_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getTime());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach 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.rank.Rank.PbRankFirstReach parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach 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.rank.Rank.PbRankFirstReach parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach 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.rank.Rank.PbRankFirstReach parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach 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.rank.Rank.PbRankFirstReach parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach 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.rank.Rank.PbRankFirstReach 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.PbRankFirstReach}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.PbRankFirstReach)
        pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReachOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_PbRankFirstReach_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_PbRankFirstReach_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.class, pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.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();
        id_ = 0;

        playerId_ = 0L;

        nick_ = "";

        head_ = "";

        time_ = 0L;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.rank.Rank.internal_static_pb_PbRankFirstReach_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.getDefaultInstance();
      }

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

      @java.lang.Override
      public pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach buildPartial() {
        pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach result = new pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach(this);
        result.id_ = id_;
        result.playerId_ = playerId_;
        result.nick_ = nick_;
        result.head_ = head_;
        result.time_ = time_;
        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.rank.Rank.PbRankFirstReach) {
          return mergeFrom((pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach other) {
        if (other == pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach.getDefaultInstance()) return this;
        if (other.getId() != 0) {
          setId(other.getId());
        }
        if (other.getPlayerId() != 0L) {
          setPlayerId(other.getPlayerId());
        }
        if (!other.getNick().isEmpty()) {
          nick_ = other.nick_;
          onChanged();
        }
        if (!other.getHead().isEmpty()) {
          head_ = other.head_;
          onChanged();
        }
        if (other.getTime() != 0L) {
          setTime(other.getTime());
        }
        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.rank.Rank.PbRankFirstReach parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int id_ ;
      /**
       * <pre>
       *对应奖励配置中的奖励ID
       * </pre>
       *
       * <code>int32 id = 1;</code>
       * @return The id.
       */
      public int getId() {
        return id_;
      }
      /**
       * <pre>
       *对应奖励配置中的奖励ID
       * </pre>
       *
       * <code>int32 id = 1;</code>
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(int value) {
        
        id_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *对应奖励配置中的奖励ID
       * </pre>
       *
       * <code>int32 id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        
        id_ = 0;
        onChanged();
        return this;
      }

      private long playerId_ ;
      /**
       * <pre>
       *玩家ID
       * </pre>
       *
       * <code>int64 player_id = 2;</code>
       * @return The playerId.
       */
      public long getPlayerId() {
        return playerId_;
      }
      /**
       * <pre>
       *玩家ID
       * </pre>
       *
       * <code>int64 player_id = 2;</code>
       * @param value The playerId to set.
       * @return This builder for chaining.
       */
      public Builder setPlayerId(long value) {
        
        playerId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *玩家ID
       * </pre>
       *
       * <code>int64 player_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPlayerId() {
        
        playerId_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object nick_ = "";
      /**
       * <pre>
       *昵称
       * </pre>
       *
       * <code>string nick = 3;</code>
       * @return The nick.
       */
      public java.lang.String getNick() {
        java.lang.Object ref = nick_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          nick_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *昵称
       * </pre>
       *
       * <code>string nick = 3;</code>
       * @return The bytes for nick.
       */
      public com.google.protobuf.ByteString
          getNickBytes() {
        java.lang.Object ref = nick_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          nick_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *昵称
       * </pre>
       *
       * <code>string nick = 3;</code>
       * @param value The nick to set.
       * @return This builder for chaining.
       */
      public Builder setNick(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        nick_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *昵称
       * </pre>
       *
       * <code>string nick = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearNick() {
        
        nick_ = getDefaultInstance().getNick();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *昵称
       * </pre>
       *
       * <code>string nick = 3;</code>
       * @param value The bytes for nick to set.
       * @return This builder for chaining.
       */
      public Builder setNickBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        nick_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object head_ = "";
      /**
       * <pre>
       *头像
       * </pre>
       *
       * <code>string head = 4;</code>
       * @return The head.
       */
      public java.lang.String getHead() {
        java.lang.Object ref = head_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          head_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *头像
       * </pre>
       *
       * <code>string head = 4;</code>
       * @return The bytes for head.
       */
      public com.google.protobuf.ByteString
          getHeadBytes() {
        java.lang.Object ref = head_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          head_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *头像
       * </pre>
       *
       * <code>string head = 4;</code>
       * @param value The head to set.
       * @return This builder for chaining.
       */
      public Builder setHead(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        head_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *头像
       * </pre>
       *
       * <code>string head = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearHead() {
        
        head_ = getDefaultInstance().getHead();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *头像
       * </pre>
       *
       * <code>string head = 4;</code>
       * @param value The bytes for head to set.
       * @return This builder for chaining.
       */
      public Builder setHeadBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        head_ = value;
        onChanged();
        return this;
      }

      private long time_ ;
      /**
       * <pre>
       *达成时间戳，毫秒
       * </pre>
       *
       * <code>int64 time = 5;</code>
       * @return The time.
       */
      public long getTime() {
        return time_;
      }
      /**
       * <pre>
       *达成时间戳，毫秒
       * </pre>
       *
       * <code>int64 time = 5;</code>
       * @param value The time to set.
       * @return This builder for chaining.
       */
      public Builder setTime(long value) {
        
        time_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *达成时间戳，毫秒
       * </pre>
       *
       * <code>int64 time = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearTime() {
        
        time_ = 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.PbRankFirstReach)
    }

    // @@protoc_insertion_point(class_scope:pb.PbRankFirstReach)
    private static final pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach();
    }

    public static pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public pb.xiugou.x1.protobuf.rank.Rank.PbRankFirstReach getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_RankRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_RankRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_RankResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_RankResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_RankInfoResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_RankInfoResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_RankRewardRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_RankRewardRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_RankRewardResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_RankRewardResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_RankRewardPushMessage_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_RankRewardPushMessage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_PbRanker_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_PbRanker_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_PbPlayerNormalTop3_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_PbPlayerNormalTop3_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_PbRankInfo_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_PbRankInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_PbRankFirstReach_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_PbRankFirstReach_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\nRank.proto\022\002pb\"O\n\013RankRequest\022\021\n\trank_" +
      "type\030\001 \001(\005\022\014\n\004page\030\002 \001(\005\"\037\n\005Proto\022\013\n\007UNK" +
      "NOWN\020\000\022\t\n\002ID\020\341\260\214\001\"\346\001\n\014RankResponse\022\021\n\tra" +
      "nk_type\030\001 \001(\005\022\014\n\004page\030\002 \001(\005\022\021\n\treward_id" +
      "\030\003 \003(\005\022\037\n\trank_list\030\004 \003(\0132\014.pb.PbRanker\022" +
      "\037\n\tself_rank\030\005 \001(\0132\014.pb.PbRanker\022\022\n\nachi" +
      "eve_id\030\006 \001(\005\022+\n\rfirst_reaches\030\007 \003(\0132\024.pb" +
      ".PbRankFirstReach\"\037\n\005Proto\022\013\n\007UNKNOWN\020\000\022" +
      "\t\n\002ID\020\341\260\214\001\"W\n\020RankInfoResponse\022\"\n\nrank_i" +
      "nfos\030\001 \003(\0132\016.pb.PbRankInfo\"\037\n\005Proto\022\013\n\007U" +
      "NKNOWN\020\000\022\t\n\002ID\020\343\260\214\001\"Z\n\021RankRewardRequest" +
      "\022\021\n\trank_type\030\001 \001(\005\022\021\n\treward_id\030\002 \001(\005\"\037" +
      "\n\005Proto\022\013\n\007UNKNOWN\020\000\022\t\n\002ID\020\342\260\214\001\"[\n\022RankR" +
      "ewardResponse\022\021\n\trank_type\030\001 \001(\005\022\021\n\trewa" +
      "rd_id\030\002 \003(\005\"\037\n\005Proto\022\013\n\007UNKNOWN\020\000\022\t\n\002ID\020" +
      "\342\260\214\001\"\214\001\n\025RankRewardPushMessage\022\021\n\trank_t" +
      "ype\030\001 \001(\005\022\022\n\nachieve_id\030\002 \001(\005\022+\n\rfirst_r" +
      "eaches\030\003 \003(\0132\024.pb.PbRankFirstReach\"\037\n\005Pr" +
      "oto\022\013\n\007UNKNOWN\020\000\022\t\n\002ID\020\344\260\214\001\"w\n\010PbRanker\022" +
      "\021\n\tentity_id\030\001 \001(\003\022\014\n\004name\030\002 \001(\t\022\r\n\005scor" +
      "e\030\003 \001(\003\022\021\n\tsub_score\030\004 \001(\003\022\014\n\004rank\030\005 \001(\005" +
      "\022\014\n\004head\030\006 \001(\t\022\014\n\004data\030\007 \001(\014\")\n\022PbPlayer" +
      "NormalTop3\022\023\n\013leader_hero\030\001 \001(\005\"F\n\nPbRan" +
      "kInfo\022\021\n\trank_type\030\001 \001(\005\022\022\n\nachieve_id\030\002" +
      " \001(\005\022\021\n\treward_id\030\003 \003(\005\"[\n\020PbRankFirstRe" +
      "ach\022\n\n\002id\030\001 \001(\005\022\021\n\tplayer_id\030\002 \001(\003\022\014\n\004ni" +
      "ck\030\003 \001(\t\022\014\n\004head\030\004 \001(\t\022\014\n\004time\030\005 \001(\003*\221\001\n" +
      "\nPbRankType\022\022\n\016NONE_RANK_TYPE\020\000\022\016\n\nLEVEL" +
      "_RANK\020\001\022\021\n\rFIGHTING_RANK\020\002\022\r\n\tHERO_RANK\020" +
      "\003\022\016\n\nEQUIP_RANK\020\004\022\022\n\016PURGATORY_RANK\020\005\022\020\n" +
      "\014VILLAGE_RANK\020\006\022\007\n\003FOG\020\007B4\n\032pb.xiugou.x1" +
      ".protobuf.rank\252\002\025pb.xiugou.x1.protobufb\006" +
      "proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        });
    internal_static_pb_RankRequest_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_pb_RankRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_RankRequest_descriptor,
        new java.lang.String[] { "RankType", "Page", });
    internal_static_pb_RankResponse_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_pb_RankResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_RankResponse_descriptor,
        new java.lang.String[] { "RankType", "Page", "RewardId", "RankList", "SelfRank", "AchieveId", "FirstReaches", });
    internal_static_pb_RankInfoResponse_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_pb_RankInfoResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_RankInfoResponse_descriptor,
        new java.lang.String[] { "RankInfos", });
    internal_static_pb_RankRewardRequest_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_pb_RankRewardRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_RankRewardRequest_descriptor,
        new java.lang.String[] { "RankType", "RewardId", });
    internal_static_pb_RankRewardResponse_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_pb_RankRewardResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_RankRewardResponse_descriptor,
        new java.lang.String[] { "RankType", "RewardId", });
    internal_static_pb_RankRewardPushMessage_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_pb_RankRewardPushMessage_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_RankRewardPushMessage_descriptor,
        new java.lang.String[] { "RankType", "AchieveId", "FirstReaches", });
    internal_static_pb_PbRanker_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_pb_PbRanker_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_PbRanker_descriptor,
        new java.lang.String[] { "EntityId", "Name", "Score", "SubScore", "Rank", "Head", "Data", });
    internal_static_pb_PbPlayerNormalTop3_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_pb_PbPlayerNormalTop3_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_PbPlayerNormalTop3_descriptor,
        new java.lang.String[] { "LeaderHero", });
    internal_static_pb_PbRankInfo_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_pb_PbRankInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_PbRankInfo_descriptor,
        new java.lang.String[] { "RankType", "AchieveId", "RewardId", });
    internal_static_pb_PbRankFirstReach_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_pb_PbRankFirstReach_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_PbRankFirstReach_descriptor,
        new java.lang.String[] { "Id", "PlayerId", "Nick", "Head", "Time", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}
