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

package com.akdeniz.googleplaycrawler.gsf;

public final class GoogleServicesFramework {
  private GoogleServicesFramework() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
  }
  public interface LoginRequestOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional string packetid = 1;
    /**
     * <code>optional string packetid = 1;</code>
     */
    boolean hasPacketid();
    /**
     * <code>optional string packetid = 1;</code>
     */
    java.lang.String getPacketid();
    /**
     * <code>optional string packetid = 1;</code>
     */
    com.google.protobuf.ByteString
        getPacketidBytes();

    // optional string domain = 2;
    /**
     * <code>optional string domain = 2;</code>
     */
    boolean hasDomain();
    /**
     * <code>optional string domain = 2;</code>
     */
    java.lang.String getDomain();
    /**
     * <code>optional string domain = 2;</code>
     */
    com.google.protobuf.ByteString
        getDomainBytes();

    // optional string user = 3;
    /**
     * <code>optional string user = 3;</code>
     */
    boolean hasUser();
    /**
     * <code>optional string user = 3;</code>
     */
    java.lang.String getUser();
    /**
     * <code>optional string user = 3;</code>
     */
    com.google.protobuf.ByteString
        getUserBytes();

    // optional string resource = 4;
    /**
     * <code>optional string resource = 4;</code>
     */
    boolean hasResource();
    /**
     * <code>optional string resource = 4;</code>
     */
    java.lang.String getResource();
    /**
     * <code>optional string resource = 4;</code>
     */
    com.google.protobuf.ByteString
        getResourceBytes();

    // optional string token = 5;
    /**
     * <code>optional string token = 5;</code>
     */
    boolean hasToken();
    /**
     * <code>optional string token = 5;</code>
     */
    java.lang.String getToken();
    /**
     * <code>optional string token = 5;</code>
     */
    com.google.protobuf.ByteString
        getTokenBytes();

    // optional string deviceid = 6;
    /**
     * <code>optional string deviceid = 6;</code>
     */
    boolean hasDeviceid();
    /**
     * <code>optional string deviceid = 6;</code>
     */
    java.lang.String getDeviceid();
    /**
     * <code>optional string deviceid = 6;</code>
     */
    com.google.protobuf.ByteString
        getDeviceidBytes();

    // optional int64 lastrmqid = 7;
    /**
     * <code>optional int64 lastrmqid = 7;</code>
     */
    boolean hasLastrmqid();
    /**
     * <code>optional int64 lastrmqid = 7;</code>
     */
    long getLastrmqid();

    // repeated .Setting settings = 8;
    /**
     * <code>repeated .Setting settings = 8;</code>
     */
    java.util.List<com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting> 
        getSettingsList();
    /**
     * <code>repeated .Setting settings = 8;</code>
     */
    com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting getSettings(int index);
    /**
     * <code>repeated .Setting settings = 8;</code>
     */
    int getSettingsCount();
    /**
     * <code>repeated .Setting settings = 8;</code>
     */
    java.util.List<? extends com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.SettingOrBuilder> 
        getSettingsOrBuilderList();
    /**
     * <code>repeated .Setting settings = 8;</code>
     */
    com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.SettingOrBuilder getSettingsOrBuilder(
        int index);

    // optional int32 compress = 9;
    /**
     * <code>optional int32 compress = 9;</code>
     */
    boolean hasCompress();
    /**
     * <code>optional int32 compress = 9;</code>
     */
    int getCompress();

    // repeated string persistentids = 10;
    /**
     * <code>repeated string persistentids = 10;</code>
     */
    java.util.List<java.lang.String>
    getPersistentidsList();
    /**
     * <code>repeated string persistentids = 10;</code>
     */
    int getPersistentidsCount();
    /**
     * <code>repeated string persistentids = 10;</code>
     */
    java.lang.String getPersistentids(int index);
    /**
     * <code>repeated string persistentids = 10;</code>
     */
    com.google.protobuf.ByteString
        getPersistentidsBytes(int index);

    // optional bool includestreamidinprotobuf = 11;
    /**
     * <code>optional bool includestreamidinprotobuf = 11;</code>
     */
    boolean hasIncludestreamidinprotobuf();
    /**
     * <code>optional bool includestreamidinprotobuf = 11;</code>
     */
    boolean getIncludestreamidinprotobuf();

    // optional bool adaptiveheartbeat = 12;
    /**
     * <code>optional bool adaptiveheartbeat = 12;</code>
     */
    boolean hasAdaptiveheartbeat();
    /**
     * <code>optional bool adaptiveheartbeat = 12;</code>
     */
    boolean getAdaptiveheartbeat();

    // optional .HeartBeatStat heartbeatstat = 13;
    /**
     * <code>optional .HeartBeatStat heartbeatstat = 13;</code>
     */
    boolean hasHeartbeatstat();
    /**
     * <code>optional .HeartBeatStat heartbeatstat = 13;</code>
     */
    com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat getHeartbeatstat();
    /**
     * <code>optional .HeartBeatStat heartbeatstat = 13;</code>
     */
    com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStatOrBuilder getHeartbeatstatOrBuilder();

    // optional bool usermq2 = 14;
    /**
     * <code>optional bool usermq2 = 14;</code>
     */
    boolean hasUsermq2();
    /**
     * <code>optional bool usermq2 = 14;</code>
     */
    boolean getUsermq2();

    // optional int64 accountid = 15;
    /**
     * <code>optional int64 accountid = 15;</code>
     */
    boolean hasAccountid();
    /**
     * <code>optional int64 accountid = 15;</code>
     */
    long getAccountid();

    // optional int64 unknown1 = 16;
    /**
     * <code>optional int64 unknown1 = 16;</code>
     */
    boolean hasUnknown1();
    /**
     * <code>optional int64 unknown1 = 16;</code>
     */
    long getUnknown1();

    // optional int32 networktype = 17;
    /**
     * <code>optional int32 networktype = 17;</code>
     */
    boolean hasNetworktype();
    /**
     * <code>optional int32 networktype = 17;</code>
     */
    int getNetworktype();
  }
  /**
   * Protobuf type {@code LoginRequest}
   */
  public static final class LoginRequest extends
      com.google.protobuf.GeneratedMessage
      implements LoginRequestOrBuilder {
    // Use LoginRequest.newBuilder() to construct.
    private LoginRequest(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private LoginRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public LoginRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private LoginRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      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;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              packetid_ = input.readBytes();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              domain_ = input.readBytes();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              user_ = input.readBytes();
              break;
            }
            case 34: {
              bitField0_ |= 0x00000008;
              resource_ = input.readBytes();
              break;
            }
            case 42: {
              bitField0_ |= 0x00000010;
              token_ = input.readBytes();
              break;
            }
            case 50: {
              bitField0_ |= 0x00000020;
              deviceid_ = input.readBytes();
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              lastrmqid_ = input.readInt64();
              break;
            }
            case 66: {
              if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
                settings_ = new java.util.ArrayList<com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting>();
                mutable_bitField0_ |= 0x00000080;
              }
              settings_.add(input.readMessage(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.PARSER, extensionRegistry));
              break;
            }
            case 72: {
              bitField0_ |= 0x00000080;
              compress_ = input.readInt32();
              break;
            }
            case 82: {
              if (!((mutable_bitField0_ & 0x00000200) == 0x00000200)) {
                persistentids_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000200;
              }
              persistentids_.add(input.readBytes());
              break;
            }
            case 88: {
              bitField0_ |= 0x00000100;
              includestreamidinprotobuf_ = input.readBool();
              break;
            }
            case 96: {
              bitField0_ |= 0x00000200;
              adaptiveheartbeat_ = input.readBool();
              break;
            }
            case 106: {
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat.Builder subBuilder = null;
              if (((bitField0_ & 0x00000400) == 0x00000400)) {
                subBuilder = heartbeatstat_.toBuilder();
              }
              heartbeatstat_ = input.readMessage(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(heartbeatstat_);
                heartbeatstat_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000400;
              break;
            }
            case 112: {
              bitField0_ |= 0x00000800;
              usermq2_ = input.readBool();
              break;
            }
            case 120: {
              bitField0_ |= 0x00001000;
              accountid_ = input.readInt64();
              break;
            }
            case 128: {
              bitField0_ |= 0x00002000;
              unknown1_ = input.readInt64();
              break;
            }
            case 136: {
              bitField0_ |= 0x00004000;
              networktype_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
          settings_ = java.util.Collections.unmodifiableList(settings_);
        }
        if (((mutable_bitField0_ & 0x00000200) == 0x00000200)) {
          persistentids_ = new com.google.protobuf.UnmodifiableLazyStringList(persistentids_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_LoginRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_LoginRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginRequest.class, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginRequest.Builder.class);
    }

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

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

    private int bitField0_;
    // optional string packetid = 1;
    public static final int PACKETID_FIELD_NUMBER = 1;
    private java.lang.Object packetid_;
    /**
     * <code>optional string packetid = 1;</code>
     */
    public boolean hasPacketid() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional string packetid = 1;</code>
     */
    public java.lang.String getPacketid() {
      java.lang.Object ref = packetid_;
      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();
        if (bs.isValidUtf8()) {
          packetid_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string packetid = 1;</code>
     */
    public com.google.protobuf.ByteString
        getPacketidBytes() {
      java.lang.Object ref = packetid_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        packetid_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string domain = 2;
    public static final int DOMAIN_FIELD_NUMBER = 2;
    private java.lang.Object domain_;
    /**
     * <code>optional string domain = 2;</code>
     */
    public boolean hasDomain() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional string domain = 2;</code>
     */
    public java.lang.String getDomain() {
      java.lang.Object ref = domain_;
      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();
        if (bs.isValidUtf8()) {
          domain_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string domain = 2;</code>
     */
    public com.google.protobuf.ByteString
        getDomainBytes() {
      java.lang.Object ref = domain_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        domain_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string user = 3;
    public static final int USER_FIELD_NUMBER = 3;
    private java.lang.Object user_;
    /**
     * <code>optional string user = 3;</code>
     */
    public boolean hasUser() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional string user = 3;</code>
     */
    public java.lang.String getUser() {
      java.lang.Object ref = user_;
      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();
        if (bs.isValidUtf8()) {
          user_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string user = 3;</code>
     */
    public com.google.protobuf.ByteString
        getUserBytes() {
      java.lang.Object ref = user_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        user_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string resource = 4;
    public static final int RESOURCE_FIELD_NUMBER = 4;
    private java.lang.Object resource_;
    /**
     * <code>optional string resource = 4;</code>
     */
    public boolean hasResource() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>optional string resource = 4;</code>
     */
    public java.lang.String getResource() {
      java.lang.Object ref = resource_;
      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();
        if (bs.isValidUtf8()) {
          resource_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string resource = 4;</code>
     */
    public com.google.protobuf.ByteString
        getResourceBytes() {
      java.lang.Object ref = resource_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        resource_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string token = 5;
    public static final int TOKEN_FIELD_NUMBER = 5;
    private java.lang.Object token_;
    /**
     * <code>optional string token = 5;</code>
     */
    public boolean hasToken() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>optional string token = 5;</code>
     */
    public java.lang.String getToken() {
      java.lang.Object ref = token_;
      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();
        if (bs.isValidUtf8()) {
          token_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string token = 5;</code>
     */
    public com.google.protobuf.ByteString
        getTokenBytes() {
      java.lang.Object ref = token_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        token_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string deviceid = 6;
    public static final int DEVICEID_FIELD_NUMBER = 6;
    private java.lang.Object deviceid_;
    /**
     * <code>optional string deviceid = 6;</code>
     */
    public boolean hasDeviceid() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <code>optional string deviceid = 6;</code>
     */
    public java.lang.String getDeviceid() {
      java.lang.Object ref = deviceid_;
      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();
        if (bs.isValidUtf8()) {
          deviceid_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string deviceid = 6;</code>
     */
    public com.google.protobuf.ByteString
        getDeviceidBytes() {
      java.lang.Object ref = deviceid_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        deviceid_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional int64 lastrmqid = 7;
    public static final int LASTRMQID_FIELD_NUMBER = 7;
    private long lastrmqid_;
    /**
     * <code>optional int64 lastrmqid = 7;</code>
     */
    public boolean hasLastrmqid() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * <code>optional int64 lastrmqid = 7;</code>
     */
    public long getLastrmqid() {
      return lastrmqid_;
    }

    // repeated .Setting settings = 8;
    public static final int SETTINGS_FIELD_NUMBER = 8;
    private java.util.List<com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting> settings_;
    /**
     * <code>repeated .Setting settings = 8;</code>
     */
    public java.util.List<com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting> getSettingsList() {
      return settings_;
    }
    /**
     * <code>repeated .Setting settings = 8;</code>
     */
    public java.util.List<? extends com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.SettingOrBuilder> 
        getSettingsOrBuilderList() {
      return settings_;
    }
    /**
     * <code>repeated .Setting settings = 8;</code>
     */
    public int getSettingsCount() {
      return settings_.size();
    }
    /**
     * <code>repeated .Setting settings = 8;</code>
     */
    public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting getSettings(int index) {
      return settings_.get(index);
    }
    /**
     * <code>repeated .Setting settings = 8;</code>
     */
    public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.SettingOrBuilder getSettingsOrBuilder(
        int index) {
      return settings_.get(index);
    }

    // optional int32 compress = 9;
    public static final int COMPRESS_FIELD_NUMBER = 9;
    private int compress_;
    /**
     * <code>optional int32 compress = 9;</code>
     */
    public boolean hasCompress() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * <code>optional int32 compress = 9;</code>
     */
    public int getCompress() {
      return compress_;
    }

    // repeated string persistentids = 10;
    public static final int PERSISTENTIDS_FIELD_NUMBER = 10;
    private com.google.protobuf.LazyStringList persistentids_;
    /**
     * <code>repeated string persistentids = 10;</code>
     */
    public java.util.List<java.lang.String>
        getPersistentidsList() {
      return persistentids_;
    }
    /**
     * <code>repeated string persistentids = 10;</code>
     */
    public int getPersistentidsCount() {
      return persistentids_.size();
    }
    /**
     * <code>repeated string persistentids = 10;</code>
     */
    public java.lang.String getPersistentids(int index) {
      return persistentids_.get(index);
    }
    /**
     * <code>repeated string persistentids = 10;</code>
     */
    public com.google.protobuf.ByteString
        getPersistentidsBytes(int index) {
      return persistentids_.getByteString(index);
    }

    // optional bool includestreamidinprotobuf = 11;
    public static final int INCLUDESTREAMIDINPROTOBUF_FIELD_NUMBER = 11;
    private boolean includestreamidinprotobuf_;
    /**
     * <code>optional bool includestreamidinprotobuf = 11;</code>
     */
    public boolean hasIncludestreamidinprotobuf() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * <code>optional bool includestreamidinprotobuf = 11;</code>
     */
    public boolean getIncludestreamidinprotobuf() {
      return includestreamidinprotobuf_;
    }

    // optional bool adaptiveheartbeat = 12;
    public static final int ADAPTIVEHEARTBEAT_FIELD_NUMBER = 12;
    private boolean adaptiveheartbeat_;
    /**
     * <code>optional bool adaptiveheartbeat = 12;</code>
     */
    public boolean hasAdaptiveheartbeat() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     * <code>optional bool adaptiveheartbeat = 12;</code>
     */
    public boolean getAdaptiveheartbeat() {
      return adaptiveheartbeat_;
    }

    // optional .HeartBeatStat heartbeatstat = 13;
    public static final int HEARTBEATSTAT_FIELD_NUMBER = 13;
    private com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat heartbeatstat_;
    /**
     * <code>optional .HeartBeatStat heartbeatstat = 13;</code>
     */
    public boolean hasHeartbeatstat() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    /**
     * <code>optional .HeartBeatStat heartbeatstat = 13;</code>
     */
    public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat getHeartbeatstat() {
      return heartbeatstat_;
    }
    /**
     * <code>optional .HeartBeatStat heartbeatstat = 13;</code>
     */
    public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStatOrBuilder getHeartbeatstatOrBuilder() {
      return heartbeatstat_;
    }

    // optional bool usermq2 = 14;
    public static final int USERMQ2_FIELD_NUMBER = 14;
    private boolean usermq2_;
    /**
     * <code>optional bool usermq2 = 14;</code>
     */
    public boolean hasUsermq2() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    /**
     * <code>optional bool usermq2 = 14;</code>
     */
    public boolean getUsermq2() {
      return usermq2_;
    }

    // optional int64 accountid = 15;
    public static final int ACCOUNTID_FIELD_NUMBER = 15;
    private long accountid_;
    /**
     * <code>optional int64 accountid = 15;</code>
     */
    public boolean hasAccountid() {
      return ((bitField0_ & 0x00001000) == 0x00001000);
    }
    /**
     * <code>optional int64 accountid = 15;</code>
     */
    public long getAccountid() {
      return accountid_;
    }

    // optional int64 unknown1 = 16;
    public static final int UNKNOWN1_FIELD_NUMBER = 16;
    private long unknown1_;
    /**
     * <code>optional int64 unknown1 = 16;</code>
     */
    public boolean hasUnknown1() {
      return ((bitField0_ & 0x00002000) == 0x00002000);
    }
    /**
     * <code>optional int64 unknown1 = 16;</code>
     */
    public long getUnknown1() {
      return unknown1_;
    }

    // optional int32 networktype = 17;
    public static final int NETWORKTYPE_FIELD_NUMBER = 17;
    private int networktype_;
    /**
     * <code>optional int32 networktype = 17;</code>
     */
    public boolean hasNetworktype() {
      return ((bitField0_ & 0x00004000) == 0x00004000);
    }
    /**
     * <code>optional int32 networktype = 17;</code>
     */
    public int getNetworktype() {
      return networktype_;
    }

    private void initFields() {
      packetid_ = "";
      domain_ = "";
      user_ = "";
      resource_ = "";
      token_ = "";
      deviceid_ = "";
      lastrmqid_ = 0L;
      settings_ = java.util.Collections.emptyList();
      compress_ = 0;
      persistentids_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      includestreamidinprotobuf_ = false;
      adaptiveheartbeat_ = false;
      heartbeatstat_ = com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat.getDefaultInstance();
      usermq2_ = false;
      accountid_ = 0L;
      unknown1_ = 0L;
      networktype_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getPacketidBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getDomainBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getUserBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBytes(4, getResourceBytes());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBytes(5, getTokenBytes());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBytes(6, getDeviceidBytes());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeInt64(7, lastrmqid_);
      }
      for (int i = 0; i < settings_.size(); i++) {
        output.writeMessage(8, settings_.get(i));
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeInt32(9, compress_);
      }
      for (int i = 0; i < persistentids_.size(); i++) {
        output.writeBytes(10, persistentids_.getByteString(i));
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeBool(11, includestreamidinprotobuf_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeBool(12, adaptiveheartbeat_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeMessage(13, heartbeatstat_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        output.writeBool(14, usermq2_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        output.writeInt64(15, accountid_);
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        output.writeInt64(16, unknown1_);
      }
      if (((bitField0_ & 0x00004000) == 0x00004000)) {
        output.writeInt32(17, networktype_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getPacketidBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getDomainBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getUserBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, getResourceBytes());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(5, getTokenBytes());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(6, getDeviceidBytes());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(7, lastrmqid_);
      }
      for (int i = 0; i < settings_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, settings_.get(i));
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(9, compress_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < persistentids_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(persistentids_.getByteString(i));
        }
        size += dataSize;
        size += 1 * getPersistentidsList().size();
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(11, includestreamidinprotobuf_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(12, adaptiveheartbeat_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(13, heartbeatstat_);
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(14, usermq2_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(15, accountid_);
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(16, unknown1_);
      }
      if (((bitField0_ & 0x00004000) == 0x00004000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(17, networktype_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code LoginRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_LoginRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_LoginRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginRequest.class, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginRequest.Builder.class);
      }

      // Construct using com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        packetid_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        domain_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        user_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        resource_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        token_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        deviceid_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        lastrmqid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000040);
        if (settingsBuilder_ == null) {
          settings_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000080);
        } else {
          settingsBuilder_.clear();
        }
        compress_ = 0;
        bitField0_ = (bitField0_ & ~0x00000100);
        persistentids_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000200);
        includestreamidinprotobuf_ = false;
        bitField0_ = (bitField0_ & ~0x00000400);
        adaptiveheartbeat_ = false;
        bitField0_ = (bitField0_ & ~0x00000800);
        if (heartbeatstatBuilder_ == null) {
          heartbeatstat_ = com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat.getDefaultInstance();
        } else {
          heartbeatstatBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00001000);
        usermq2_ = false;
        bitField0_ = (bitField0_ & ~0x00002000);
        accountid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00004000);
        unknown1_ = 0L;
        bitField0_ = (bitField0_ & ~0x00008000);
        networktype_ = 0;
        bitField0_ = (bitField0_ & ~0x00010000);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_LoginRequest_descriptor;
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginRequest getDefaultInstanceForType() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginRequest.getDefaultInstance();
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginRequest build() {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginRequest buildPartial() {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginRequest result = new com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.packetid_ = packetid_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.domain_ = domain_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.user_ = user_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.resource_ = resource_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.token_ = token_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.deviceid_ = deviceid_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.lastrmqid_ = lastrmqid_;
        if (settingsBuilder_ == null) {
          if (((bitField0_ & 0x00000080) == 0x00000080)) {
            settings_ = java.util.Collections.unmodifiableList(settings_);
            bitField0_ = (bitField0_ & ~0x00000080);
          }
          result.settings_ = settings_;
        } else {
          result.settings_ = settingsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000080;
        }
        result.compress_ = compress_;
        if (((bitField0_ & 0x00000200) == 0x00000200)) {
          persistentids_ = new com.google.protobuf.UnmodifiableLazyStringList(
              persistentids_);
          bitField0_ = (bitField0_ & ~0x00000200);
        }
        result.persistentids_ = persistentids_;
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000100;
        }
        result.includestreamidinprotobuf_ = includestreamidinprotobuf_;
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000200;
        }
        result.adaptiveheartbeat_ = adaptiveheartbeat_;
        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
          to_bitField0_ |= 0x00000400;
        }
        if (heartbeatstatBuilder_ == null) {
          result.heartbeatstat_ = heartbeatstat_;
        } else {
          result.heartbeatstat_ = heartbeatstatBuilder_.build();
        }
        if (((from_bitField0_ & 0x00002000) == 0x00002000)) {
          to_bitField0_ |= 0x00000800;
        }
        result.usermq2_ = usermq2_;
        if (((from_bitField0_ & 0x00004000) == 0x00004000)) {
          to_bitField0_ |= 0x00001000;
        }
        result.accountid_ = accountid_;
        if (((from_bitField0_ & 0x00008000) == 0x00008000)) {
          to_bitField0_ |= 0x00002000;
        }
        result.unknown1_ = unknown1_;
        if (((from_bitField0_ & 0x00010000) == 0x00010000)) {
          to_bitField0_ |= 0x00004000;
        }
        result.networktype_ = networktype_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginRequest) {
          return mergeFrom((com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginRequest other) {
        if (other == com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginRequest.getDefaultInstance()) return this;
        if (other.hasPacketid()) {
          bitField0_ |= 0x00000001;
          packetid_ = other.packetid_;
          onChanged();
        }
        if (other.hasDomain()) {
          bitField0_ |= 0x00000002;
          domain_ = other.domain_;
          onChanged();
        }
        if (other.hasUser()) {
          bitField0_ |= 0x00000004;
          user_ = other.user_;
          onChanged();
        }
        if (other.hasResource()) {
          bitField0_ |= 0x00000008;
          resource_ = other.resource_;
          onChanged();
        }
        if (other.hasToken()) {
          bitField0_ |= 0x00000010;
          token_ = other.token_;
          onChanged();
        }
        if (other.hasDeviceid()) {
          bitField0_ |= 0x00000020;
          deviceid_ = other.deviceid_;
          onChanged();
        }
        if (other.hasLastrmqid()) {
          setLastrmqid(other.getLastrmqid());
        }
        if (settingsBuilder_ == null) {
          if (!other.settings_.isEmpty()) {
            if (settings_.isEmpty()) {
              settings_ = other.settings_;
              bitField0_ = (bitField0_ & ~0x00000080);
            } else {
              ensureSettingsIsMutable();
              settings_.addAll(other.settings_);
            }
            onChanged();
          }
        } else {
          if (!other.settings_.isEmpty()) {
            if (settingsBuilder_.isEmpty()) {
              settingsBuilder_.dispose();
              settingsBuilder_ = null;
              settings_ = other.settings_;
              bitField0_ = (bitField0_ & ~0x00000080);
              settingsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getSettingsFieldBuilder() : null;
            } else {
              settingsBuilder_.addAllMessages(other.settings_);
            }
          }
        }
        if (other.hasCompress()) {
          setCompress(other.getCompress());
        }
        if (!other.persistentids_.isEmpty()) {
          if (persistentids_.isEmpty()) {
            persistentids_ = other.persistentids_;
            bitField0_ = (bitField0_ & ~0x00000200);
          } else {
            ensurePersistentidsIsMutable();
            persistentids_.addAll(other.persistentids_);
          }
          onChanged();
        }
        if (other.hasIncludestreamidinprotobuf()) {
          setIncludestreamidinprotobuf(other.getIncludestreamidinprotobuf());
        }
        if (other.hasAdaptiveheartbeat()) {
          setAdaptiveheartbeat(other.getAdaptiveheartbeat());
        }
        if (other.hasHeartbeatstat()) {
          mergeHeartbeatstat(other.getHeartbeatstat());
        }
        if (other.hasUsermq2()) {
          setUsermq2(other.getUsermq2());
        }
        if (other.hasAccountid()) {
          setAccountid(other.getAccountid());
        }
        if (other.hasUnknown1()) {
          setUnknown1(other.getUnknown1());
        }
        if (other.hasNetworktype()) {
          setNetworktype(other.getNetworktype());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional string packetid = 1;
      private java.lang.Object packetid_ = "";
      /**
       * <code>optional string packetid = 1;</code>
       */
      public boolean hasPacketid() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional string packetid = 1;</code>
       */
      public java.lang.String getPacketid() {
        java.lang.Object ref = packetid_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          packetid_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string packetid = 1;</code>
       */
      public com.google.protobuf.ByteString
          getPacketidBytes() {
        java.lang.Object ref = packetid_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          packetid_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string packetid = 1;</code>
       */
      public Builder setPacketid(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        packetid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string packetid = 1;</code>
       */
      public Builder clearPacketid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        packetid_ = getDefaultInstance().getPacketid();
        onChanged();
        return this;
      }
      /**
       * <code>optional string packetid = 1;</code>
       */
      public Builder setPacketidBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        packetid_ = value;
        onChanged();
        return this;
      }

      // optional string domain = 2;
      private java.lang.Object domain_ = "";
      /**
       * <code>optional string domain = 2;</code>
       */
      public boolean hasDomain() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional string domain = 2;</code>
       */
      public java.lang.String getDomain() {
        java.lang.Object ref = domain_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          domain_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string domain = 2;</code>
       */
      public com.google.protobuf.ByteString
          getDomainBytes() {
        java.lang.Object ref = domain_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          domain_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string domain = 2;</code>
       */
      public Builder setDomain(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        domain_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string domain = 2;</code>
       */
      public Builder clearDomain() {
        bitField0_ = (bitField0_ & ~0x00000002);
        domain_ = getDefaultInstance().getDomain();
        onChanged();
        return this;
      }
      /**
       * <code>optional string domain = 2;</code>
       */
      public Builder setDomainBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        domain_ = value;
        onChanged();
        return this;
      }

      // optional string user = 3;
      private java.lang.Object user_ = "";
      /**
       * <code>optional string user = 3;</code>
       */
      public boolean hasUser() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional string user = 3;</code>
       */
      public java.lang.String getUser() {
        java.lang.Object ref = user_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          user_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string user = 3;</code>
       */
      public com.google.protobuf.ByteString
          getUserBytes() {
        java.lang.Object ref = user_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          user_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string user = 3;</code>
       */
      public Builder setUser(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        user_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string user = 3;</code>
       */
      public Builder clearUser() {
        bitField0_ = (bitField0_ & ~0x00000004);
        user_ = getDefaultInstance().getUser();
        onChanged();
        return this;
      }
      /**
       * <code>optional string user = 3;</code>
       */
      public Builder setUserBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        user_ = value;
        onChanged();
        return this;
      }

      // optional string resource = 4;
      private java.lang.Object resource_ = "";
      /**
       * <code>optional string resource = 4;</code>
       */
      public boolean hasResource() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional string resource = 4;</code>
       */
      public java.lang.String getResource() {
        java.lang.Object ref = resource_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          resource_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string resource = 4;</code>
       */
      public com.google.protobuf.ByteString
          getResourceBytes() {
        java.lang.Object ref = resource_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          resource_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string resource = 4;</code>
       */
      public Builder setResource(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        resource_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string resource = 4;</code>
       */
      public Builder clearResource() {
        bitField0_ = (bitField0_ & ~0x00000008);
        resource_ = getDefaultInstance().getResource();
        onChanged();
        return this;
      }
      /**
       * <code>optional string resource = 4;</code>
       */
      public Builder setResourceBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        resource_ = value;
        onChanged();
        return this;
      }

      // optional string token = 5;
      private java.lang.Object token_ = "";
      /**
       * <code>optional string token = 5;</code>
       */
      public boolean hasToken() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>optional string token = 5;</code>
       */
      public java.lang.String getToken() {
        java.lang.Object ref = token_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          token_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string token = 5;</code>
       */
      public com.google.protobuf.ByteString
          getTokenBytes() {
        java.lang.Object ref = token_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          token_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string token = 5;</code>
       */
      public Builder setToken(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        token_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string token = 5;</code>
       */
      public Builder clearToken() {
        bitField0_ = (bitField0_ & ~0x00000010);
        token_ = getDefaultInstance().getToken();
        onChanged();
        return this;
      }
      /**
       * <code>optional string token = 5;</code>
       */
      public Builder setTokenBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        token_ = value;
        onChanged();
        return this;
      }

      // optional string deviceid = 6;
      private java.lang.Object deviceid_ = "";
      /**
       * <code>optional string deviceid = 6;</code>
       */
      public boolean hasDeviceid() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>optional string deviceid = 6;</code>
       */
      public java.lang.String getDeviceid() {
        java.lang.Object ref = deviceid_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          deviceid_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string deviceid = 6;</code>
       */
      public com.google.protobuf.ByteString
          getDeviceidBytes() {
        java.lang.Object ref = deviceid_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          deviceid_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string deviceid = 6;</code>
       */
      public Builder setDeviceid(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        deviceid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string deviceid = 6;</code>
       */
      public Builder clearDeviceid() {
        bitField0_ = (bitField0_ & ~0x00000020);
        deviceid_ = getDefaultInstance().getDeviceid();
        onChanged();
        return this;
      }
      /**
       * <code>optional string deviceid = 6;</code>
       */
      public Builder setDeviceidBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        deviceid_ = value;
        onChanged();
        return this;
      }

      // optional int64 lastrmqid = 7;
      private long lastrmqid_ ;
      /**
       * <code>optional int64 lastrmqid = 7;</code>
       */
      public boolean hasLastrmqid() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * <code>optional int64 lastrmqid = 7;</code>
       */
      public long getLastrmqid() {
        return lastrmqid_;
      }
      /**
       * <code>optional int64 lastrmqid = 7;</code>
       */
      public Builder setLastrmqid(long value) {
        bitField0_ |= 0x00000040;
        lastrmqid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 lastrmqid = 7;</code>
       */
      public Builder clearLastrmqid() {
        bitField0_ = (bitField0_ & ~0x00000040);
        lastrmqid_ = 0L;
        onChanged();
        return this;
      }

      // repeated .Setting settings = 8;
      private java.util.List<com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting> settings_ =
        java.util.Collections.emptyList();
      private void ensureSettingsIsMutable() {
        if (!((bitField0_ & 0x00000080) == 0x00000080)) {
          settings_ = new java.util.ArrayList<com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting>(settings_);
          bitField0_ |= 0x00000080;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.Builder, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.SettingOrBuilder> settingsBuilder_;

      /**
       * <code>repeated .Setting settings = 8;</code>
       */
      public java.util.List<com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting> getSettingsList() {
        if (settingsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(settings_);
        } else {
          return settingsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .Setting settings = 8;</code>
       */
      public int getSettingsCount() {
        if (settingsBuilder_ == null) {
          return settings_.size();
        } else {
          return settingsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .Setting settings = 8;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting getSettings(int index) {
        if (settingsBuilder_ == null) {
          return settings_.get(index);
        } else {
          return settingsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .Setting settings = 8;</code>
       */
      public Builder setSettings(
          int index, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting value) {
        if (settingsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSettingsIsMutable();
          settings_.set(index, value);
          onChanged();
        } else {
          settingsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Setting settings = 8;</code>
       */
      public Builder setSettings(
          int index, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.Builder builderForValue) {
        if (settingsBuilder_ == null) {
          ensureSettingsIsMutable();
          settings_.set(index, builderForValue.build());
          onChanged();
        } else {
          settingsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Setting settings = 8;</code>
       */
      public Builder addSettings(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting value) {
        if (settingsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSettingsIsMutable();
          settings_.add(value);
          onChanged();
        } else {
          settingsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .Setting settings = 8;</code>
       */
      public Builder addSettings(
          int index, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting value) {
        if (settingsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSettingsIsMutable();
          settings_.add(index, value);
          onChanged();
        } else {
          settingsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Setting settings = 8;</code>
       */
      public Builder addSettings(
          com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.Builder builderForValue) {
        if (settingsBuilder_ == null) {
          ensureSettingsIsMutable();
          settings_.add(builderForValue.build());
          onChanged();
        } else {
          settingsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Setting settings = 8;</code>
       */
      public Builder addSettings(
          int index, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.Builder builderForValue) {
        if (settingsBuilder_ == null) {
          ensureSettingsIsMutable();
          settings_.add(index, builderForValue.build());
          onChanged();
        } else {
          settingsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Setting settings = 8;</code>
       */
      public Builder addAllSettings(
          java.lang.Iterable<? extends com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting> values) {
        if (settingsBuilder_ == null) {
          ensureSettingsIsMutable();
          super.addAll(values, settings_);
          onChanged();
        } else {
          settingsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .Setting settings = 8;</code>
       */
      public Builder clearSettings() {
        if (settingsBuilder_ == null) {
          settings_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000080);
          onChanged();
        } else {
          settingsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .Setting settings = 8;</code>
       */
      public Builder removeSettings(int index) {
        if (settingsBuilder_ == null) {
          ensureSettingsIsMutable();
          settings_.remove(index);
          onChanged();
        } else {
          settingsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .Setting settings = 8;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.Builder getSettingsBuilder(
          int index) {
        return getSettingsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .Setting settings = 8;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.SettingOrBuilder getSettingsOrBuilder(
          int index) {
        if (settingsBuilder_ == null) {
          return settings_.get(index);  } else {
          return settingsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .Setting settings = 8;</code>
       */
      public java.util.List<? extends com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.SettingOrBuilder> 
           getSettingsOrBuilderList() {
        if (settingsBuilder_ != null) {
          return settingsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(settings_);
        }
      }
      /**
       * <code>repeated .Setting settings = 8;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.Builder addSettingsBuilder() {
        return getSettingsFieldBuilder().addBuilder(
            com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.getDefaultInstance());
      }
      /**
       * <code>repeated .Setting settings = 8;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.Builder addSettingsBuilder(
          int index) {
        return getSettingsFieldBuilder().addBuilder(
            index, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.getDefaultInstance());
      }
      /**
       * <code>repeated .Setting settings = 8;</code>
       */
      public java.util.List<com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.Builder> 
           getSettingsBuilderList() {
        return getSettingsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.Builder, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.SettingOrBuilder> 
          getSettingsFieldBuilder() {
        if (settingsBuilder_ == null) {
          settingsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.Builder, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.SettingOrBuilder>(
                  settings_,
                  ((bitField0_ & 0x00000080) == 0x00000080),
                  getParentForChildren(),
                  isClean());
          settings_ = null;
        }
        return settingsBuilder_;
      }

      // optional int32 compress = 9;
      private int compress_ ;
      /**
       * <code>optional int32 compress = 9;</code>
       */
      public boolean hasCompress() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * <code>optional int32 compress = 9;</code>
       */
      public int getCompress() {
        return compress_;
      }
      /**
       * <code>optional int32 compress = 9;</code>
       */
      public Builder setCompress(int value) {
        bitField0_ |= 0x00000100;
        compress_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 compress = 9;</code>
       */
      public Builder clearCompress() {
        bitField0_ = (bitField0_ & ~0x00000100);
        compress_ = 0;
        onChanged();
        return this;
      }

      // repeated string persistentids = 10;
      private com.google.protobuf.LazyStringList persistentids_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensurePersistentidsIsMutable() {
        if (!((bitField0_ & 0x00000200) == 0x00000200)) {
          persistentids_ = new com.google.protobuf.LazyStringArrayList(persistentids_);
          bitField0_ |= 0x00000200;
         }
      }
      /**
       * <code>repeated string persistentids = 10;</code>
       */
      public java.util.List<java.lang.String>
          getPersistentidsList() {
        return java.util.Collections.unmodifiableList(persistentids_);
      }
      /**
       * <code>repeated string persistentids = 10;</code>
       */
      public int getPersistentidsCount() {
        return persistentids_.size();
      }
      /**
       * <code>repeated string persistentids = 10;</code>
       */
      public java.lang.String getPersistentids(int index) {
        return persistentids_.get(index);
      }
      /**
       * <code>repeated string persistentids = 10;</code>
       */
      public com.google.protobuf.ByteString
          getPersistentidsBytes(int index) {
        return persistentids_.getByteString(index);
      }
      /**
       * <code>repeated string persistentids = 10;</code>
       */
      public Builder setPersistentids(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensurePersistentidsIsMutable();
        persistentids_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string persistentids = 10;</code>
       */
      public Builder addPersistentids(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensurePersistentidsIsMutable();
        persistentids_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string persistentids = 10;</code>
       */
      public Builder addAllPersistentids(
          java.lang.Iterable<java.lang.String> values) {
        ensurePersistentidsIsMutable();
        super.addAll(values, persistentids_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string persistentids = 10;</code>
       */
      public Builder clearPersistentids() {
        persistentids_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000200);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string persistentids = 10;</code>
       */
      public Builder addPersistentidsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensurePersistentidsIsMutable();
        persistentids_.add(value);
        onChanged();
        return this;
      }

      // optional bool includestreamidinprotobuf = 11;
      private boolean includestreamidinprotobuf_ ;
      /**
       * <code>optional bool includestreamidinprotobuf = 11;</code>
       */
      public boolean hasIncludestreamidinprotobuf() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       * <code>optional bool includestreamidinprotobuf = 11;</code>
       */
      public boolean getIncludestreamidinprotobuf() {
        return includestreamidinprotobuf_;
      }
      /**
       * <code>optional bool includestreamidinprotobuf = 11;</code>
       */
      public Builder setIncludestreamidinprotobuf(boolean value) {
        bitField0_ |= 0x00000400;
        includestreamidinprotobuf_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool includestreamidinprotobuf = 11;</code>
       */
      public Builder clearIncludestreamidinprotobuf() {
        bitField0_ = (bitField0_ & ~0x00000400);
        includestreamidinprotobuf_ = false;
        onChanged();
        return this;
      }

      // optional bool adaptiveheartbeat = 12;
      private boolean adaptiveheartbeat_ ;
      /**
       * <code>optional bool adaptiveheartbeat = 12;</code>
       */
      public boolean hasAdaptiveheartbeat() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      /**
       * <code>optional bool adaptiveheartbeat = 12;</code>
       */
      public boolean getAdaptiveheartbeat() {
        return adaptiveheartbeat_;
      }
      /**
       * <code>optional bool adaptiveheartbeat = 12;</code>
       */
      public Builder setAdaptiveheartbeat(boolean value) {
        bitField0_ |= 0x00000800;
        adaptiveheartbeat_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool adaptiveheartbeat = 12;</code>
       */
      public Builder clearAdaptiveheartbeat() {
        bitField0_ = (bitField0_ & ~0x00000800);
        adaptiveheartbeat_ = false;
        onChanged();
        return this;
      }

      // optional .HeartBeatStat heartbeatstat = 13;
      private com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat heartbeatstat_ = com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat.Builder, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStatOrBuilder> heartbeatstatBuilder_;
      /**
       * <code>optional .HeartBeatStat heartbeatstat = 13;</code>
       */
      public boolean hasHeartbeatstat() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }
      /**
       * <code>optional .HeartBeatStat heartbeatstat = 13;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat getHeartbeatstat() {
        if (heartbeatstatBuilder_ == null) {
          return heartbeatstat_;
        } else {
          return heartbeatstatBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .HeartBeatStat heartbeatstat = 13;</code>
       */
      public Builder setHeartbeatstat(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat value) {
        if (heartbeatstatBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          heartbeatstat_ = value;
          onChanged();
        } else {
          heartbeatstatBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       * <code>optional .HeartBeatStat heartbeatstat = 13;</code>
       */
      public Builder setHeartbeatstat(
          com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat.Builder builderForValue) {
        if (heartbeatstatBuilder_ == null) {
          heartbeatstat_ = builderForValue.build();
          onChanged();
        } else {
          heartbeatstatBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       * <code>optional .HeartBeatStat heartbeatstat = 13;</code>
       */
      public Builder mergeHeartbeatstat(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat value) {
        if (heartbeatstatBuilder_ == null) {
          if (((bitField0_ & 0x00001000) == 0x00001000) &&
              heartbeatstat_ != com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat.getDefaultInstance()) {
            heartbeatstat_ =
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat.newBuilder(heartbeatstat_).mergeFrom(value).buildPartial();
          } else {
            heartbeatstat_ = value;
          }
          onChanged();
        } else {
          heartbeatstatBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       * <code>optional .HeartBeatStat heartbeatstat = 13;</code>
       */
      public Builder clearHeartbeatstat() {
        if (heartbeatstatBuilder_ == null) {
          heartbeatstat_ = com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat.getDefaultInstance();
          onChanged();
        } else {
          heartbeatstatBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00001000);
        return this;
      }
      /**
       * <code>optional .HeartBeatStat heartbeatstat = 13;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat.Builder getHeartbeatstatBuilder() {
        bitField0_ |= 0x00001000;
        onChanged();
        return getHeartbeatstatFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HeartBeatStat heartbeatstat = 13;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStatOrBuilder getHeartbeatstatOrBuilder() {
        if (heartbeatstatBuilder_ != null) {
          return heartbeatstatBuilder_.getMessageOrBuilder();
        } else {
          return heartbeatstat_;
        }
      }
      /**
       * <code>optional .HeartBeatStat heartbeatstat = 13;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat.Builder, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStatOrBuilder> 
          getHeartbeatstatFieldBuilder() {
        if (heartbeatstatBuilder_ == null) {
          heartbeatstatBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat.Builder, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStatOrBuilder>(
                  heartbeatstat_,
                  getParentForChildren(),
                  isClean());
          heartbeatstat_ = null;
        }
        return heartbeatstatBuilder_;
      }

      // optional bool usermq2 = 14;
      private boolean usermq2_ ;
      /**
       * <code>optional bool usermq2 = 14;</code>
       */
      public boolean hasUsermq2() {
        return ((bitField0_ & 0x00002000) == 0x00002000);
      }
      /**
       * <code>optional bool usermq2 = 14;</code>
       */
      public boolean getUsermq2() {
        return usermq2_;
      }
      /**
       * <code>optional bool usermq2 = 14;</code>
       */
      public Builder setUsermq2(boolean value) {
        bitField0_ |= 0x00002000;
        usermq2_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool usermq2 = 14;</code>
       */
      public Builder clearUsermq2() {
        bitField0_ = (bitField0_ & ~0x00002000);
        usermq2_ = false;
        onChanged();
        return this;
      }

      // optional int64 accountid = 15;
      private long accountid_ ;
      /**
       * <code>optional int64 accountid = 15;</code>
       */
      public boolean hasAccountid() {
        return ((bitField0_ & 0x00004000) == 0x00004000);
      }
      /**
       * <code>optional int64 accountid = 15;</code>
       */
      public long getAccountid() {
        return accountid_;
      }
      /**
       * <code>optional int64 accountid = 15;</code>
       */
      public Builder setAccountid(long value) {
        bitField0_ |= 0x00004000;
        accountid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 accountid = 15;</code>
       */
      public Builder clearAccountid() {
        bitField0_ = (bitField0_ & ~0x00004000);
        accountid_ = 0L;
        onChanged();
        return this;
      }

      // optional int64 unknown1 = 16;
      private long unknown1_ ;
      /**
       * <code>optional int64 unknown1 = 16;</code>
       */
      public boolean hasUnknown1() {
        return ((bitField0_ & 0x00008000) == 0x00008000);
      }
      /**
       * <code>optional int64 unknown1 = 16;</code>
       */
      public long getUnknown1() {
        return unknown1_;
      }
      /**
       * <code>optional int64 unknown1 = 16;</code>
       */
      public Builder setUnknown1(long value) {
        bitField0_ |= 0x00008000;
        unknown1_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 unknown1 = 16;</code>
       */
      public Builder clearUnknown1() {
        bitField0_ = (bitField0_ & ~0x00008000);
        unknown1_ = 0L;
        onChanged();
        return this;
      }

      // optional int32 networktype = 17;
      private int networktype_ ;
      /**
       * <code>optional int32 networktype = 17;</code>
       */
      public boolean hasNetworktype() {
        return ((bitField0_ & 0x00010000) == 0x00010000);
      }
      /**
       * <code>optional int32 networktype = 17;</code>
       */
      public int getNetworktype() {
        return networktype_;
      }
      /**
       * <code>optional int32 networktype = 17;</code>
       */
      public Builder setNetworktype(int value) {
        bitField0_ |= 0x00010000;
        networktype_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 networktype = 17;</code>
       */
      public Builder clearNetworktype() {
        bitField0_ = (bitField0_ & ~0x00010000);
        networktype_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:LoginRequest)
    }

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

    // @@protoc_insertion_point(class_scope:LoginRequest)
  }

  public interface HeartBeatStatOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional string ip = 1;
    /**
     * <code>optional string ip = 1;</code>
     */
    boolean hasIp();
    /**
     * <code>optional string ip = 1;</code>
     */
    java.lang.String getIp();
    /**
     * <code>optional string ip = 1;</code>
     */
    com.google.protobuf.ByteString
        getIpBytes();

    // optional bool timeout = 2;
    /**
     * <code>optional bool timeout = 2;</code>
     */
    boolean hasTimeout();
    /**
     * <code>optional bool timeout = 2;</code>
     */
    boolean getTimeout();

    // optional int64 interval = 3;
    /**
     * <code>optional int64 interval = 3;</code>
     */
    boolean hasInterval();
    /**
     * <code>optional int64 interval = 3;</code>
     */
    long getInterval();
  }
  /**
   * Protobuf type {@code HeartBeatStat}
   */
  public static final class HeartBeatStat extends
      com.google.protobuf.GeneratedMessage
      implements HeartBeatStatOrBuilder {
    // Use HeartBeatStat.newBuilder() to construct.
    private HeartBeatStat(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private HeartBeatStat(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public HeartBeatStat getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private HeartBeatStat(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      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;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              ip_ = input.readBytes();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              timeout_ = input.readBool();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              interval_ = input.readInt64();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_HeartBeatStat_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_HeartBeatStat_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat.class, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat.Builder.class);
    }

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

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

    private int bitField0_;
    // optional string ip = 1;
    public static final int IP_FIELD_NUMBER = 1;
    private java.lang.Object ip_;
    /**
     * <code>optional string ip = 1;</code>
     */
    public boolean hasIp() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional string ip = 1;</code>
     */
    public java.lang.String getIp() {
      java.lang.Object ref = ip_;
      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();
        if (bs.isValidUtf8()) {
          ip_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string ip = 1;</code>
     */
    public com.google.protobuf.ByteString
        getIpBytes() {
      java.lang.Object ref = ip_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        ip_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional bool timeout = 2;
    public static final int TIMEOUT_FIELD_NUMBER = 2;
    private boolean timeout_;
    /**
     * <code>optional bool timeout = 2;</code>
     */
    public boolean hasTimeout() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional bool timeout = 2;</code>
     */
    public boolean getTimeout() {
      return timeout_;
    }

    // optional int64 interval = 3;
    public static final int INTERVAL_FIELD_NUMBER = 3;
    private long interval_;
    /**
     * <code>optional int64 interval = 3;</code>
     */
    public boolean hasInterval() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional int64 interval = 3;</code>
     */
    public long getInterval() {
      return interval_;
    }

    private void initFields() {
      ip_ = "";
      timeout_ = false;
      interval_ = 0L;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getIpBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, timeout_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt64(3, interval_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getIpBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, timeout_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, interval_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code HeartBeatStat}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStatOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_HeartBeatStat_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_HeartBeatStat_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat.class, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat.Builder.class);
      }

      // Construct using com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        ip_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        timeout_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        interval_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_HeartBeatStat_descriptor;
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat getDefaultInstanceForType() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat.getDefaultInstance();
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat build() {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat buildPartial() {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat result = new com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.ip_ = ip_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.timeout_ = timeout_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.interval_ = interval_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat) {
          return mergeFrom((com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat other) {
        if (other == com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat.getDefaultInstance()) return this;
        if (other.hasIp()) {
          bitField0_ |= 0x00000001;
          ip_ = other.ip_;
          onChanged();
        }
        if (other.hasTimeout()) {
          setTimeout(other.getTimeout());
        }
        if (other.hasInterval()) {
          setInterval(other.getInterval());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatStat) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional string ip = 1;
      private java.lang.Object ip_ = "";
      /**
       * <code>optional string ip = 1;</code>
       */
      public boolean hasIp() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional string ip = 1;</code>
       */
      public java.lang.String getIp() {
        java.lang.Object ref = ip_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          ip_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string ip = 1;</code>
       */
      public com.google.protobuf.ByteString
          getIpBytes() {
        java.lang.Object ref = ip_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          ip_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string ip = 1;</code>
       */
      public Builder setIp(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        ip_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string ip = 1;</code>
       */
      public Builder clearIp() {
        bitField0_ = (bitField0_ & ~0x00000001);
        ip_ = getDefaultInstance().getIp();
        onChanged();
        return this;
      }
      /**
       * <code>optional string ip = 1;</code>
       */
      public Builder setIpBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        ip_ = value;
        onChanged();
        return this;
      }

      // optional bool timeout = 2;
      private boolean timeout_ ;
      /**
       * <code>optional bool timeout = 2;</code>
       */
      public boolean hasTimeout() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional bool timeout = 2;</code>
       */
      public boolean getTimeout() {
        return timeout_;
      }
      /**
       * <code>optional bool timeout = 2;</code>
       */
      public Builder setTimeout(boolean value) {
        bitField0_ |= 0x00000002;
        timeout_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool timeout = 2;</code>
       */
      public Builder clearTimeout() {
        bitField0_ = (bitField0_ & ~0x00000002);
        timeout_ = false;
        onChanged();
        return this;
      }

      // optional int64 interval = 3;
      private long interval_ ;
      /**
       * <code>optional int64 interval = 3;</code>
       */
      public boolean hasInterval() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional int64 interval = 3;</code>
       */
      public long getInterval() {
        return interval_;
      }
      /**
       * <code>optional int64 interval = 3;</code>
       */
      public Builder setInterval(long value) {
        bitField0_ |= 0x00000004;
        interval_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 interval = 3;</code>
       */
      public Builder clearInterval() {
        bitField0_ = (bitField0_ & ~0x00000004);
        interval_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:HeartBeatStat)
    }

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

    // @@protoc_insertion_point(class_scope:HeartBeatStat)
  }

  public interface SettingOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

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

    // optional string value = 2;
    /**
     * <code>optional string value = 2;</code>
     */
    boolean hasValue();
    /**
     * <code>optional string value = 2;</code>
     */
    java.lang.String getValue();
    /**
     * <code>optional string value = 2;</code>
     */
    com.google.protobuf.ByteString
        getValueBytes();
  }
  /**
   * Protobuf type {@code Setting}
   */
  public static final class Setting extends
      com.google.protobuf.GeneratedMessage
      implements SettingOrBuilder {
    // Use Setting.newBuilder() to construct.
    private Setting(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Setting(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public Setting getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Setting(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      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;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              key_ = input.readBytes();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              value_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_Setting_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_Setting_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.class, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.Builder.class);
    }

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

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

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

    // optional string value = 2;
    public static final int VALUE_FIELD_NUMBER = 2;
    private java.lang.Object value_;
    /**
     * <code>optional string value = 2;</code>
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional string value = 2;</code>
     */
    public java.lang.String getValue() {
      java.lang.Object ref = value_;
      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();
        if (bs.isValidUtf8()) {
          value_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string value = 2;</code>
     */
    public com.google.protobuf.ByteString
        getValueBytes() {
      java.lang.Object ref = value_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        value_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getKeyBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getValueBytes());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getKeyBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getValueBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code Setting}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.SettingOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_Setting_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_Setting_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.class, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.Builder.class);
      }

      // Construct using com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

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

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_Setting_descriptor;
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting getDefaultInstanceForType() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.getDefaultInstance();
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting build() {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting buildPartial() {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting result = new com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.key_ = key_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.value_ = value_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting) {
          return mergeFrom((com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting other) {
        if (other == com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.getDefaultInstance()) return this;
        if (other.hasKey()) {
          bitField0_ |= 0x00000001;
          key_ = other.key_;
          onChanged();
        }
        if (other.hasValue()) {
          bitField0_ |= 0x00000002;
          value_ = other.value_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

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

      // optional string value = 2;
      private java.lang.Object value_ = "";
      /**
       * <code>optional string value = 2;</code>
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional string value = 2;</code>
       */
      public java.lang.String getValue() {
        java.lang.Object ref = value_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          value_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string value = 2;</code>
       */
      public com.google.protobuf.ByteString
          getValueBytes() {
        java.lang.Object ref = value_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          value_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string value = 2;</code>
       */
      public Builder setValue(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string value = 2;</code>
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = getDefaultInstance().getValue();
        onChanged();
        return this;
      }
      /**
       * <code>optional string value = 2;</code>
       */
      public Builder setValueBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:Setting)
    }

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

    // @@protoc_insertion_point(class_scope:Setting)
  }

  public interface HeartBeatConfigOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional int64 interval = 3;
    /**
     * <code>optional int64 interval = 3;</code>
     */
    boolean hasInterval();
    /**
     * <code>optional int64 interval = 3;</code>
     */
    long getInterval();

    // optional string ip = 2;
    /**
     * <code>optional string ip = 2;</code>
     */
    boolean hasIp();
    /**
     * <code>optional string ip = 2;</code>
     */
    java.lang.String getIp();
    /**
     * <code>optional string ip = 2;</code>
     */
    com.google.protobuf.ByteString
        getIpBytes();

    // optional bool uploadstat = 1;
    /**
     * <code>optional bool uploadstat = 1;</code>
     */
    boolean hasUploadstat();
    /**
     * <code>optional bool uploadstat = 1;</code>
     */
    boolean getUploadstat();
  }
  /**
   * Protobuf type {@code HeartBeatConfig}
   */
  public static final class HeartBeatConfig extends
      com.google.protobuf.GeneratedMessage
      implements HeartBeatConfigOrBuilder {
    // Use HeartBeatConfig.newBuilder() to construct.
    private HeartBeatConfig(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private HeartBeatConfig(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public HeartBeatConfig getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private HeartBeatConfig(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      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;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000004;
              uploadstat_ = input.readBool();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              ip_ = input.readBytes();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000001;
              interval_ = input.readInt64();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_HeartBeatConfig_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_HeartBeatConfig_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig.class, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig.Builder.class);
    }

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

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

    private int bitField0_;
    // optional int64 interval = 3;
    public static final int INTERVAL_FIELD_NUMBER = 3;
    private long interval_;
    /**
     * <code>optional int64 interval = 3;</code>
     */
    public boolean hasInterval() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional int64 interval = 3;</code>
     */
    public long getInterval() {
      return interval_;
    }

    // optional string ip = 2;
    public static final int IP_FIELD_NUMBER = 2;
    private java.lang.Object ip_;
    /**
     * <code>optional string ip = 2;</code>
     */
    public boolean hasIp() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional string ip = 2;</code>
     */
    public java.lang.String getIp() {
      java.lang.Object ref = ip_;
      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();
        if (bs.isValidUtf8()) {
          ip_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string ip = 2;</code>
     */
    public com.google.protobuf.ByteString
        getIpBytes() {
      java.lang.Object ref = ip_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        ip_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional bool uploadstat = 1;
    public static final int UPLOADSTAT_FIELD_NUMBER = 1;
    private boolean uploadstat_;
    /**
     * <code>optional bool uploadstat = 1;</code>
     */
    public boolean hasUploadstat() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional bool uploadstat = 1;</code>
     */
    public boolean getUploadstat() {
      return uploadstat_;
    }

    private void initFields() {
      interval_ = 0L;
      ip_ = "";
      uploadstat_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(1, uploadstat_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getIpBytes());
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(3, interval_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, uploadstat_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getIpBytes());
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, interval_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code HeartBeatConfig}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfigOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_HeartBeatConfig_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_HeartBeatConfig_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig.class, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig.Builder.class);
      }

      // Construct using com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        interval_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        ip_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        uploadstat_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_HeartBeatConfig_descriptor;
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig getDefaultInstanceForType() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig.getDefaultInstance();
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig build() {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig buildPartial() {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig result = new com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.interval_ = interval_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.ip_ = ip_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.uploadstat_ = uploadstat_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig) {
          return mergeFrom((com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig other) {
        if (other == com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig.getDefaultInstance()) return this;
        if (other.hasInterval()) {
          setInterval(other.getInterval());
        }
        if (other.hasIp()) {
          bitField0_ |= 0x00000002;
          ip_ = other.ip_;
          onChanged();
        }
        if (other.hasUploadstat()) {
          setUploadstat(other.getUploadstat());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional int64 interval = 3;
      private long interval_ ;
      /**
       * <code>optional int64 interval = 3;</code>
       */
      public boolean hasInterval() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional int64 interval = 3;</code>
       */
      public long getInterval() {
        return interval_;
      }
      /**
       * <code>optional int64 interval = 3;</code>
       */
      public Builder setInterval(long value) {
        bitField0_ |= 0x00000001;
        interval_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 interval = 3;</code>
       */
      public Builder clearInterval() {
        bitField0_ = (bitField0_ & ~0x00000001);
        interval_ = 0L;
        onChanged();
        return this;
      }

      // optional string ip = 2;
      private java.lang.Object ip_ = "";
      /**
       * <code>optional string ip = 2;</code>
       */
      public boolean hasIp() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional string ip = 2;</code>
       */
      public java.lang.String getIp() {
        java.lang.Object ref = ip_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          ip_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string ip = 2;</code>
       */
      public com.google.protobuf.ByteString
          getIpBytes() {
        java.lang.Object ref = ip_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          ip_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string ip = 2;</code>
       */
      public Builder setIp(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        ip_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string ip = 2;</code>
       */
      public Builder clearIp() {
        bitField0_ = (bitField0_ & ~0x00000002);
        ip_ = getDefaultInstance().getIp();
        onChanged();
        return this;
      }
      /**
       * <code>optional string ip = 2;</code>
       */
      public Builder setIpBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        ip_ = value;
        onChanged();
        return this;
      }

      // optional bool uploadstat = 1;
      private boolean uploadstat_ ;
      /**
       * <code>optional bool uploadstat = 1;</code>
       */
      public boolean hasUploadstat() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional bool uploadstat = 1;</code>
       */
      public boolean getUploadstat() {
        return uploadstat_;
      }
      /**
       * <code>optional bool uploadstat = 1;</code>
       */
      public Builder setUploadstat(boolean value) {
        bitField0_ |= 0x00000004;
        uploadstat_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool uploadstat = 1;</code>
       */
      public Builder clearUploadstat() {
        bitField0_ = (bitField0_ & ~0x00000004);
        uploadstat_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:HeartBeatConfig)
    }

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

    // @@protoc_insertion_point(class_scope:HeartBeatConfig)
  }

  public interface LoginResponseOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional string packetid = 1;
    /**
     * <code>optional string packetid = 1;</code>
     */
    boolean hasPacketid();
    /**
     * <code>optional string packetid = 1;</code>
     */
    java.lang.String getPacketid();
    /**
     * <code>optional string packetid = 1;</code>
     */
    com.google.protobuf.ByteString
        getPacketidBytes();

    // optional string jid = 2;
    /**
     * <code>optional string jid = 2;</code>
     */
    boolean hasJid();
    /**
     * <code>optional string jid = 2;</code>
     */
    java.lang.String getJid();
    /**
     * <code>optional string jid = 2;</code>
     */
    com.google.protobuf.ByteString
        getJidBytes();

    // optional int64 servertimestamp = 8;
    /**
     * <code>optional int64 servertimestamp = 8;</code>
     */
    boolean hasServertimestamp();
    /**
     * <code>optional int64 servertimestamp = 8;</code>
     */
    long getServertimestamp();

    // optional .HeartBeatConfig heartbeatconfig = 7;
    /**
     * <code>optional .HeartBeatConfig heartbeatconfig = 7;</code>
     */
    boolean hasHeartbeatconfig();
    /**
     * <code>optional .HeartBeatConfig heartbeatconfig = 7;</code>
     */
    com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig getHeartbeatconfig();
    /**
     * <code>optional .HeartBeatConfig heartbeatconfig = 7;</code>
     */
    com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfigOrBuilder getHeartbeatconfigOrBuilder();

    // repeated .Setting settings = 4;
    /**
     * <code>repeated .Setting settings = 4;</code>
     */
    java.util.List<com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting> 
        getSettingsList();
    /**
     * <code>repeated .Setting settings = 4;</code>
     */
    com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting getSettings(int index);
    /**
     * <code>repeated .Setting settings = 4;</code>
     */
    int getSettingsCount();
    /**
     * <code>repeated .Setting settings = 4;</code>
     */
    java.util.List<? extends com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.SettingOrBuilder> 
        getSettingsOrBuilderList();
    /**
     * <code>repeated .Setting settings = 4;</code>
     */
    com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.SettingOrBuilder getSettingsOrBuilder(
        int index);

    // optional int32 laststreamid = 6;
    /**
     * <code>optional int32 laststreamid = 6;</code>
     */
    boolean hasLaststreamid();
    /**
     * <code>optional int32 laststreamid = 6;</code>
     */
    int getLaststreamid();

    // optional int32 streamid = 5;
    /**
     * <code>optional int32 streamid = 5;</code>
     */
    boolean hasStreamid();
    /**
     * <code>optional int32 streamid = 5;</code>
     */
    int getStreamid();

    // optional .XMPPError error = 3;
    /**
     * <code>optional .XMPPError error = 3;</code>
     */
    boolean hasError();
    /**
     * <code>optional .XMPPError error = 3;</code>
     */
    com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError getError();
    /**
     * <code>optional .XMPPError error = 3;</code>
     */
    com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPErrorOrBuilder getErrorOrBuilder();
  }
  /**
   * Protobuf type {@code LoginResponse}
   */
  public static final class LoginResponse extends
      com.google.protobuf.GeneratedMessage
      implements LoginResponseOrBuilder {
    // Use LoginResponse.newBuilder() to construct.
    private LoginResponse(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private LoginResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public LoginResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private LoginResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      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;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              packetid_ = input.readBytes();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              jid_ = input.readBytes();
              break;
            }
            case 26: {
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.Builder subBuilder = null;
              if (((bitField0_ & 0x00000040) == 0x00000040)) {
                subBuilder = error_.toBuilder();
              }
              error_ = input.readMessage(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(error_);
                error_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000040;
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                settings_ = new java.util.ArrayList<com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting>();
                mutable_bitField0_ |= 0x00000010;
              }
              settings_.add(input.readMessage(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.PARSER, extensionRegistry));
              break;
            }
            case 40: {
              bitField0_ |= 0x00000020;
              streamid_ = input.readInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000010;
              laststreamid_ = input.readInt32();
              break;
            }
            case 58: {
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig.Builder subBuilder = null;
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                subBuilder = heartbeatconfig_.toBuilder();
              }
              heartbeatconfig_ = input.readMessage(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(heartbeatconfig_);
                heartbeatconfig_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000008;
              break;
            }
            case 64: {
              bitField0_ |= 0x00000004;
              servertimestamp_ = input.readInt64();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
          settings_ = java.util.Collections.unmodifiableList(settings_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_LoginResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_LoginResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginResponse.class, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginResponse.Builder.class);
    }

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

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

    private int bitField0_;
    // optional string packetid = 1;
    public static final int PACKETID_FIELD_NUMBER = 1;
    private java.lang.Object packetid_;
    /**
     * <code>optional string packetid = 1;</code>
     */
    public boolean hasPacketid() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional string packetid = 1;</code>
     */
    public java.lang.String getPacketid() {
      java.lang.Object ref = packetid_;
      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();
        if (bs.isValidUtf8()) {
          packetid_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string packetid = 1;</code>
     */
    public com.google.protobuf.ByteString
        getPacketidBytes() {
      java.lang.Object ref = packetid_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        packetid_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string jid = 2;
    public static final int JID_FIELD_NUMBER = 2;
    private java.lang.Object jid_;
    /**
     * <code>optional string jid = 2;</code>
     */
    public boolean hasJid() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional string jid = 2;</code>
     */
    public java.lang.String getJid() {
      java.lang.Object ref = jid_;
      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();
        if (bs.isValidUtf8()) {
          jid_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string jid = 2;</code>
     */
    public com.google.protobuf.ByteString
        getJidBytes() {
      java.lang.Object ref = jid_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        jid_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional int64 servertimestamp = 8;
    public static final int SERVERTIMESTAMP_FIELD_NUMBER = 8;
    private long servertimestamp_;
    /**
     * <code>optional int64 servertimestamp = 8;</code>
     */
    public boolean hasServertimestamp() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional int64 servertimestamp = 8;</code>
     */
    public long getServertimestamp() {
      return servertimestamp_;
    }

    // optional .HeartBeatConfig heartbeatconfig = 7;
    public static final int HEARTBEATCONFIG_FIELD_NUMBER = 7;
    private com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig heartbeatconfig_;
    /**
     * <code>optional .HeartBeatConfig heartbeatconfig = 7;</code>
     */
    public boolean hasHeartbeatconfig() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>optional .HeartBeatConfig heartbeatconfig = 7;</code>
     */
    public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig getHeartbeatconfig() {
      return heartbeatconfig_;
    }
    /**
     * <code>optional .HeartBeatConfig heartbeatconfig = 7;</code>
     */
    public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfigOrBuilder getHeartbeatconfigOrBuilder() {
      return heartbeatconfig_;
    }

    // repeated .Setting settings = 4;
    public static final int SETTINGS_FIELD_NUMBER = 4;
    private java.util.List<com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting> settings_;
    /**
     * <code>repeated .Setting settings = 4;</code>
     */
    public java.util.List<com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting> getSettingsList() {
      return settings_;
    }
    /**
     * <code>repeated .Setting settings = 4;</code>
     */
    public java.util.List<? extends com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.SettingOrBuilder> 
        getSettingsOrBuilderList() {
      return settings_;
    }
    /**
     * <code>repeated .Setting settings = 4;</code>
     */
    public int getSettingsCount() {
      return settings_.size();
    }
    /**
     * <code>repeated .Setting settings = 4;</code>
     */
    public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting getSettings(int index) {
      return settings_.get(index);
    }
    /**
     * <code>repeated .Setting settings = 4;</code>
     */
    public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.SettingOrBuilder getSettingsOrBuilder(
        int index) {
      return settings_.get(index);
    }

    // optional int32 laststreamid = 6;
    public static final int LASTSTREAMID_FIELD_NUMBER = 6;
    private int laststreamid_;
    /**
     * <code>optional int32 laststreamid = 6;</code>
     */
    public boolean hasLaststreamid() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>optional int32 laststreamid = 6;</code>
     */
    public int getLaststreamid() {
      return laststreamid_;
    }

    // optional int32 streamid = 5;
    public static final int STREAMID_FIELD_NUMBER = 5;
    private int streamid_;
    /**
     * <code>optional int32 streamid = 5;</code>
     */
    public boolean hasStreamid() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <code>optional int32 streamid = 5;</code>
     */
    public int getStreamid() {
      return streamid_;
    }

    // optional .XMPPError error = 3;
    public static final int ERROR_FIELD_NUMBER = 3;
    private com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError error_;
    /**
     * <code>optional .XMPPError error = 3;</code>
     */
    public boolean hasError() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * <code>optional .XMPPError error = 3;</code>
     */
    public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError getError() {
      return error_;
    }
    /**
     * <code>optional .XMPPError error = 3;</code>
     */
    public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPErrorOrBuilder getErrorOrBuilder() {
      return error_;
    }

    private void initFields() {
      packetid_ = "";
      jid_ = "";
      servertimestamp_ = 0L;
      heartbeatconfig_ = com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig.getDefaultInstance();
      settings_ = java.util.Collections.emptyList();
      laststreamid_ = 0;
      streamid_ = 0;
      error_ = com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getPacketidBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getJidBytes());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeMessage(3, error_);
      }
      for (int i = 0; i < settings_.size(); i++) {
        output.writeMessage(4, settings_.get(i));
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeInt32(5, streamid_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(6, laststreamid_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(7, heartbeatconfig_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt64(8, servertimestamp_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getPacketidBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getJidBytes());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, error_);
      }
      for (int i = 0; i < settings_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, settings_.get(i));
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, streamid_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(6, laststreamid_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, heartbeatconfig_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(8, servertimestamp_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code LoginResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_LoginResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_LoginResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginResponse.class, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginResponse.Builder.class);
      }

      // Construct using com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getHeartbeatconfigFieldBuilder();
          getSettingsFieldBuilder();
          getErrorFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        packetid_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        jid_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        servertimestamp_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000004);
        if (heartbeatconfigBuilder_ == null) {
          heartbeatconfig_ = com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig.getDefaultInstance();
        } else {
          heartbeatconfigBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        if (settingsBuilder_ == null) {
          settings_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
        } else {
          settingsBuilder_.clear();
        }
        laststreamid_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        streamid_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        if (errorBuilder_ == null) {
          error_ = com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.getDefaultInstance();
        } else {
          errorBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_LoginResponse_descriptor;
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginResponse getDefaultInstanceForType() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginResponse.getDefaultInstance();
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginResponse build() {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginResponse buildPartial() {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginResponse result = new com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginResponse(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.packetid_ = packetid_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.jid_ = jid_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.servertimestamp_ = servertimestamp_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (heartbeatconfigBuilder_ == null) {
          result.heartbeatconfig_ = heartbeatconfig_;
        } else {
          result.heartbeatconfig_ = heartbeatconfigBuilder_.build();
        }
        if (settingsBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            settings_ = java.util.Collections.unmodifiableList(settings_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.settings_ = settings_;
        } else {
          result.settings_ = settingsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000010;
        }
        result.laststreamid_ = laststreamid_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000020;
        }
        result.streamid_ = streamid_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000040;
        }
        if (errorBuilder_ == null) {
          result.error_ = error_;
        } else {
          result.error_ = errorBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginResponse) {
          return mergeFrom((com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginResponse other) {
        if (other == com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginResponse.getDefaultInstance()) return this;
        if (other.hasPacketid()) {
          bitField0_ |= 0x00000001;
          packetid_ = other.packetid_;
          onChanged();
        }
        if (other.hasJid()) {
          bitField0_ |= 0x00000002;
          jid_ = other.jid_;
          onChanged();
        }
        if (other.hasServertimestamp()) {
          setServertimestamp(other.getServertimestamp());
        }
        if (other.hasHeartbeatconfig()) {
          mergeHeartbeatconfig(other.getHeartbeatconfig());
        }
        if (settingsBuilder_ == null) {
          if (!other.settings_.isEmpty()) {
            if (settings_.isEmpty()) {
              settings_ = other.settings_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureSettingsIsMutable();
              settings_.addAll(other.settings_);
            }
            onChanged();
          }
        } else {
          if (!other.settings_.isEmpty()) {
            if (settingsBuilder_.isEmpty()) {
              settingsBuilder_.dispose();
              settingsBuilder_ = null;
              settings_ = other.settings_;
              bitField0_ = (bitField0_ & ~0x00000010);
              settingsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getSettingsFieldBuilder() : null;
            } else {
              settingsBuilder_.addAllMessages(other.settings_);
            }
          }
        }
        if (other.hasLaststreamid()) {
          setLaststreamid(other.getLaststreamid());
        }
        if (other.hasStreamid()) {
          setStreamid(other.getStreamid());
        }
        if (other.hasError()) {
          mergeError(other.getError());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.LoginResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional string packetid = 1;
      private java.lang.Object packetid_ = "";
      /**
       * <code>optional string packetid = 1;</code>
       */
      public boolean hasPacketid() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional string packetid = 1;</code>
       */
      public java.lang.String getPacketid() {
        java.lang.Object ref = packetid_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          packetid_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string packetid = 1;</code>
       */
      public com.google.protobuf.ByteString
          getPacketidBytes() {
        java.lang.Object ref = packetid_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          packetid_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string packetid = 1;</code>
       */
      public Builder setPacketid(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        packetid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string packetid = 1;</code>
       */
      public Builder clearPacketid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        packetid_ = getDefaultInstance().getPacketid();
        onChanged();
        return this;
      }
      /**
       * <code>optional string packetid = 1;</code>
       */
      public Builder setPacketidBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        packetid_ = value;
        onChanged();
        return this;
      }

      // optional string jid = 2;
      private java.lang.Object jid_ = "";
      /**
       * <code>optional string jid = 2;</code>
       */
      public boolean hasJid() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional string jid = 2;</code>
       */
      public java.lang.String getJid() {
        java.lang.Object ref = jid_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          jid_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string jid = 2;</code>
       */
      public com.google.protobuf.ByteString
          getJidBytes() {
        java.lang.Object ref = jid_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          jid_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string jid = 2;</code>
       */
      public Builder setJid(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        jid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string jid = 2;</code>
       */
      public Builder clearJid() {
        bitField0_ = (bitField0_ & ~0x00000002);
        jid_ = getDefaultInstance().getJid();
        onChanged();
        return this;
      }
      /**
       * <code>optional string jid = 2;</code>
       */
      public Builder setJidBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        jid_ = value;
        onChanged();
        return this;
      }

      // optional int64 servertimestamp = 8;
      private long servertimestamp_ ;
      /**
       * <code>optional int64 servertimestamp = 8;</code>
       */
      public boolean hasServertimestamp() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional int64 servertimestamp = 8;</code>
       */
      public long getServertimestamp() {
        return servertimestamp_;
      }
      /**
       * <code>optional int64 servertimestamp = 8;</code>
       */
      public Builder setServertimestamp(long value) {
        bitField0_ |= 0x00000004;
        servertimestamp_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 servertimestamp = 8;</code>
       */
      public Builder clearServertimestamp() {
        bitField0_ = (bitField0_ & ~0x00000004);
        servertimestamp_ = 0L;
        onChanged();
        return this;
      }

      // optional .HeartBeatConfig heartbeatconfig = 7;
      private com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig heartbeatconfig_ = com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig.Builder, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfigOrBuilder> heartbeatconfigBuilder_;
      /**
       * <code>optional .HeartBeatConfig heartbeatconfig = 7;</code>
       */
      public boolean hasHeartbeatconfig() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional .HeartBeatConfig heartbeatconfig = 7;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig getHeartbeatconfig() {
        if (heartbeatconfigBuilder_ == null) {
          return heartbeatconfig_;
        } else {
          return heartbeatconfigBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .HeartBeatConfig heartbeatconfig = 7;</code>
       */
      public Builder setHeartbeatconfig(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig value) {
        if (heartbeatconfigBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          heartbeatconfig_ = value;
          onChanged();
        } else {
          heartbeatconfigBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <code>optional .HeartBeatConfig heartbeatconfig = 7;</code>
       */
      public Builder setHeartbeatconfig(
          com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig.Builder builderForValue) {
        if (heartbeatconfigBuilder_ == null) {
          heartbeatconfig_ = builderForValue.build();
          onChanged();
        } else {
          heartbeatconfigBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <code>optional .HeartBeatConfig heartbeatconfig = 7;</code>
       */
      public Builder mergeHeartbeatconfig(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig value) {
        if (heartbeatconfigBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008) &&
              heartbeatconfig_ != com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig.getDefaultInstance()) {
            heartbeatconfig_ =
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig.newBuilder(heartbeatconfig_).mergeFrom(value).buildPartial();
          } else {
            heartbeatconfig_ = value;
          }
          onChanged();
        } else {
          heartbeatconfigBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <code>optional .HeartBeatConfig heartbeatconfig = 7;</code>
       */
      public Builder clearHeartbeatconfig() {
        if (heartbeatconfigBuilder_ == null) {
          heartbeatconfig_ = com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig.getDefaultInstance();
          onChanged();
        } else {
          heartbeatconfigBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       * <code>optional .HeartBeatConfig heartbeatconfig = 7;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig.Builder getHeartbeatconfigBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getHeartbeatconfigFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .HeartBeatConfig heartbeatconfig = 7;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfigOrBuilder getHeartbeatconfigOrBuilder() {
        if (heartbeatconfigBuilder_ != null) {
          return heartbeatconfigBuilder_.getMessageOrBuilder();
        } else {
          return heartbeatconfig_;
        }
      }
      /**
       * <code>optional .HeartBeatConfig heartbeatconfig = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig.Builder, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfigOrBuilder> 
          getHeartbeatconfigFieldBuilder() {
        if (heartbeatconfigBuilder_ == null) {
          heartbeatconfigBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfig.Builder, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartBeatConfigOrBuilder>(
                  heartbeatconfig_,
                  getParentForChildren(),
                  isClean());
          heartbeatconfig_ = null;
        }
        return heartbeatconfigBuilder_;
      }

      // repeated .Setting settings = 4;
      private java.util.List<com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting> settings_ =
        java.util.Collections.emptyList();
      private void ensureSettingsIsMutable() {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          settings_ = new java.util.ArrayList<com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting>(settings_);
          bitField0_ |= 0x00000010;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.Builder, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.SettingOrBuilder> settingsBuilder_;

      /**
       * <code>repeated .Setting settings = 4;</code>
       */
      public java.util.List<com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting> getSettingsList() {
        if (settingsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(settings_);
        } else {
          return settingsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .Setting settings = 4;</code>
       */
      public int getSettingsCount() {
        if (settingsBuilder_ == null) {
          return settings_.size();
        } else {
          return settingsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .Setting settings = 4;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting getSettings(int index) {
        if (settingsBuilder_ == null) {
          return settings_.get(index);
        } else {
          return settingsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .Setting settings = 4;</code>
       */
      public Builder setSettings(
          int index, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting value) {
        if (settingsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSettingsIsMutable();
          settings_.set(index, value);
          onChanged();
        } else {
          settingsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Setting settings = 4;</code>
       */
      public Builder setSettings(
          int index, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.Builder builderForValue) {
        if (settingsBuilder_ == null) {
          ensureSettingsIsMutable();
          settings_.set(index, builderForValue.build());
          onChanged();
        } else {
          settingsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Setting settings = 4;</code>
       */
      public Builder addSettings(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting value) {
        if (settingsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSettingsIsMutable();
          settings_.add(value);
          onChanged();
        } else {
          settingsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .Setting settings = 4;</code>
       */
      public Builder addSettings(
          int index, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting value) {
        if (settingsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSettingsIsMutable();
          settings_.add(index, value);
          onChanged();
        } else {
          settingsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Setting settings = 4;</code>
       */
      public Builder addSettings(
          com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.Builder builderForValue) {
        if (settingsBuilder_ == null) {
          ensureSettingsIsMutable();
          settings_.add(builderForValue.build());
          onChanged();
        } else {
          settingsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Setting settings = 4;</code>
       */
      public Builder addSettings(
          int index, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.Builder builderForValue) {
        if (settingsBuilder_ == null) {
          ensureSettingsIsMutable();
          settings_.add(index, builderForValue.build());
          onChanged();
        } else {
          settingsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Setting settings = 4;</code>
       */
      public Builder addAllSettings(
          java.lang.Iterable<? extends com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting> values) {
        if (settingsBuilder_ == null) {
          ensureSettingsIsMutable();
          super.addAll(values, settings_);
          onChanged();
        } else {
          settingsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .Setting settings = 4;</code>
       */
      public Builder clearSettings() {
        if (settingsBuilder_ == null) {
          settings_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          settingsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .Setting settings = 4;</code>
       */
      public Builder removeSettings(int index) {
        if (settingsBuilder_ == null) {
          ensureSettingsIsMutable();
          settings_.remove(index);
          onChanged();
        } else {
          settingsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .Setting settings = 4;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.Builder getSettingsBuilder(
          int index) {
        return getSettingsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .Setting settings = 4;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.SettingOrBuilder getSettingsOrBuilder(
          int index) {
        if (settingsBuilder_ == null) {
          return settings_.get(index);  } else {
          return settingsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .Setting settings = 4;</code>
       */
      public java.util.List<? extends com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.SettingOrBuilder> 
           getSettingsOrBuilderList() {
        if (settingsBuilder_ != null) {
          return settingsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(settings_);
        }
      }
      /**
       * <code>repeated .Setting settings = 4;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.Builder addSettingsBuilder() {
        return getSettingsFieldBuilder().addBuilder(
            com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.getDefaultInstance());
      }
      /**
       * <code>repeated .Setting settings = 4;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.Builder addSettingsBuilder(
          int index) {
        return getSettingsFieldBuilder().addBuilder(
            index, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.getDefaultInstance());
      }
      /**
       * <code>repeated .Setting settings = 4;</code>
       */
      public java.util.List<com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.Builder> 
           getSettingsBuilderList() {
        return getSettingsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.Builder, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.SettingOrBuilder> 
          getSettingsFieldBuilder() {
        if (settingsBuilder_ == null) {
          settingsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Setting.Builder, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.SettingOrBuilder>(
                  settings_,
                  ((bitField0_ & 0x00000010) == 0x00000010),
                  getParentForChildren(),
                  isClean());
          settings_ = null;
        }
        return settingsBuilder_;
      }

      // optional int32 laststreamid = 6;
      private int laststreamid_ ;
      /**
       * <code>optional int32 laststreamid = 6;</code>
       */
      public boolean hasLaststreamid() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>optional int32 laststreamid = 6;</code>
       */
      public int getLaststreamid() {
        return laststreamid_;
      }
      /**
       * <code>optional int32 laststreamid = 6;</code>
       */
      public Builder setLaststreamid(int value) {
        bitField0_ |= 0x00000020;
        laststreamid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 laststreamid = 6;</code>
       */
      public Builder clearLaststreamid() {
        bitField0_ = (bitField0_ & ~0x00000020);
        laststreamid_ = 0;
        onChanged();
        return this;
      }

      // optional int32 streamid = 5;
      private int streamid_ ;
      /**
       * <code>optional int32 streamid = 5;</code>
       */
      public boolean hasStreamid() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * <code>optional int32 streamid = 5;</code>
       */
      public int getStreamid() {
        return streamid_;
      }
      /**
       * <code>optional int32 streamid = 5;</code>
       */
      public Builder setStreamid(int value) {
        bitField0_ |= 0x00000040;
        streamid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 streamid = 5;</code>
       */
      public Builder clearStreamid() {
        bitField0_ = (bitField0_ & ~0x00000040);
        streamid_ = 0;
        onChanged();
        return this;
      }

      // optional .XMPPError error = 3;
      private com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError error_ = com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.Builder, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPErrorOrBuilder> errorBuilder_;
      /**
       * <code>optional .XMPPError error = 3;</code>
       */
      public boolean hasError() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * <code>optional .XMPPError error = 3;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError getError() {
        if (errorBuilder_ == null) {
          return error_;
        } else {
          return errorBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .XMPPError error = 3;</code>
       */
      public Builder setError(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError value) {
        if (errorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          error_ = value;
          onChanged();
        } else {
          errorBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * <code>optional .XMPPError error = 3;</code>
       */
      public Builder setError(
          com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.Builder builderForValue) {
        if (errorBuilder_ == null) {
          error_ = builderForValue.build();
          onChanged();
        } else {
          errorBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * <code>optional .XMPPError error = 3;</code>
       */
      public Builder mergeError(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError value) {
        if (errorBuilder_ == null) {
          if (((bitField0_ & 0x00000080) == 0x00000080) &&
              error_ != com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.getDefaultInstance()) {
            error_ =
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.newBuilder(error_).mergeFrom(value).buildPartial();
          } else {
            error_ = value;
          }
          onChanged();
        } else {
          errorBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       * <code>optional .XMPPError error = 3;</code>
       */
      public Builder clearError() {
        if (errorBuilder_ == null) {
          error_ = com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.getDefaultInstance();
          onChanged();
        } else {
          errorBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }
      /**
       * <code>optional .XMPPError error = 3;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.Builder getErrorBuilder() {
        bitField0_ |= 0x00000080;
        onChanged();
        return getErrorFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .XMPPError error = 3;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPErrorOrBuilder getErrorOrBuilder() {
        if (errorBuilder_ != null) {
          return errorBuilder_.getMessageOrBuilder();
        } else {
          return error_;
        }
      }
      /**
       * <code>optional .XMPPError error = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.Builder, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPErrorOrBuilder> 
          getErrorFieldBuilder() {
        if (errorBuilder_ == null) {
          errorBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.Builder, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPErrorOrBuilder>(
                  error_,
                  getParentForChildren(),
                  isClean());
          error_ = null;
        }
        return errorBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:LoginResponse)
    }

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

    // @@protoc_insertion_point(class_scope:LoginResponse)
  }

  public interface XMPPErrorOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional int32 code = 1;
    /**
     * <code>optional int32 code = 1;</code>
     */
    boolean hasCode();
    /**
     * <code>optional int32 code = 1;</code>
     */
    int getCode();

    // optional string message = 2;
    /**
     * <code>optional string message = 2;</code>
     */
    boolean hasMessage();
    /**
     * <code>optional string message = 2;</code>
     */
    java.lang.String getMessage();
    /**
     * <code>optional string message = 2;</code>
     */
    com.google.protobuf.ByteString
        getMessageBytes();

    // optional string type = 3;
    /**
     * <code>optional string type = 3;</code>
     */
    boolean hasType();
    /**
     * <code>optional string type = 3;</code>
     */
    java.lang.String getType();
    /**
     * <code>optional string type = 3;</code>
     */
    com.google.protobuf.ByteString
        getTypeBytes();

    // repeated .Extension extension = 4;
    /**
     * <code>repeated .Extension extension = 4;</code>
     */
    java.util.List<com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension> 
        getExtensionList();
    /**
     * <code>repeated .Extension extension = 4;</code>
     */
    com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension getExtension(int index);
    /**
     * <code>repeated .Extension extension = 4;</code>
     */
    int getExtensionCount();
    /**
     * <code>repeated .Extension extension = 4;</code>
     */
    java.util.List<? extends com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.ExtensionOrBuilder> 
        getExtensionOrBuilderList();
    /**
     * <code>repeated .Extension extension = 4;</code>
     */
    com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.ExtensionOrBuilder getExtensionOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code XMPPError}
   */
  public static final class XMPPError extends
      com.google.protobuf.GeneratedMessage
      implements XMPPErrorOrBuilder {
    // Use XMPPError.newBuilder() to construct.
    private XMPPError(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private XMPPError(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public XMPPError getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private XMPPError(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      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;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              code_ = input.readInt32();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              message_ = input.readBytes();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              type_ = input.readBytes();
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                extension_ = new java.util.ArrayList<com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension>();
                mutable_bitField0_ |= 0x00000008;
              }
              extension_.add(input.readMessage(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          extension_ = java.util.Collections.unmodifiableList(extension_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_XMPPError_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_XMPPError_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.class, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.Builder.class);
    }

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

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

    private int bitField0_;
    // optional int32 code = 1;
    public static final int CODE_FIELD_NUMBER = 1;
    private int code_;
    /**
     * <code>optional int32 code = 1;</code>
     */
    public boolean hasCode() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional int32 code = 1;</code>
     */
    public int getCode() {
      return code_;
    }

    // optional string message = 2;
    public static final int MESSAGE_FIELD_NUMBER = 2;
    private java.lang.Object message_;
    /**
     * <code>optional string message = 2;</code>
     */
    public boolean hasMessage() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional string message = 2;</code>
     */
    public java.lang.String getMessage() {
      java.lang.Object ref = message_;
      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();
        if (bs.isValidUtf8()) {
          message_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string message = 2;</code>
     */
    public com.google.protobuf.ByteString
        getMessageBytes() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        message_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string type = 3;
    public static final int TYPE_FIELD_NUMBER = 3;
    private java.lang.Object type_;
    /**
     * <code>optional string type = 3;</code>
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional string type = 3;</code>
     */
    public java.lang.String getType() {
      java.lang.Object ref = type_;
      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();
        if (bs.isValidUtf8()) {
          type_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string type = 3;</code>
     */
    public com.google.protobuf.ByteString
        getTypeBytes() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        type_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // repeated .Extension extension = 4;
    public static final int EXTENSION_FIELD_NUMBER = 4;
    private java.util.List<com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension> extension_;
    /**
     * <code>repeated .Extension extension = 4;</code>
     */
    public java.util.List<com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension> getExtensionList() {
      return extension_;
    }
    /**
     * <code>repeated .Extension extension = 4;</code>
     */
    public java.util.List<? extends com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.ExtensionOrBuilder> 
        getExtensionOrBuilderList() {
      return extension_;
    }
    /**
     * <code>repeated .Extension extension = 4;</code>
     */
    public int getExtensionCount() {
      return extension_.size();
    }
    /**
     * <code>repeated .Extension extension = 4;</code>
     */
    public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension getExtension(int index) {
      return extension_.get(index);
    }
    /**
     * <code>repeated .Extension extension = 4;</code>
     */
    public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.ExtensionOrBuilder getExtensionOrBuilder(
        int index) {
      return extension_.get(index);
    }

    private void initFields() {
      code_ = 0;
      message_ = "";
      type_ = "";
      extension_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, code_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getMessageBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getTypeBytes());
      }
      for (int i = 0; i < extension_.size(); i++) {
        output.writeMessage(4, extension_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, code_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getMessageBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getTypeBytes());
      }
      for (int i = 0; i < extension_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, extension_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code XMPPError}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPErrorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_XMPPError_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_XMPPError_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.class, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.Builder.class);
      }

      // Construct using com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        code_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        message_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        type_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        if (extensionBuilder_ == null) {
          extension_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          extensionBuilder_.clear();
        }
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_XMPPError_descriptor;
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError getDefaultInstanceForType() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.getDefaultInstance();
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError build() {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError buildPartial() {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError result = new com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.code_ = code_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.message_ = message_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.type_ = type_;
        if (extensionBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            extension_ = java.util.Collections.unmodifiableList(extension_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.extension_ = extension_;
        } else {
          result.extension_ = extensionBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError) {
          return mergeFrom((com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError other) {
        if (other == com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.getDefaultInstance()) return this;
        if (other.hasCode()) {
          setCode(other.getCode());
        }
        if (other.hasMessage()) {
          bitField0_ |= 0x00000002;
          message_ = other.message_;
          onChanged();
        }
        if (other.hasType()) {
          bitField0_ |= 0x00000004;
          type_ = other.type_;
          onChanged();
        }
        if (extensionBuilder_ == null) {
          if (!other.extension_.isEmpty()) {
            if (extension_.isEmpty()) {
              extension_ = other.extension_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureExtensionIsMutable();
              extension_.addAll(other.extension_);
            }
            onChanged();
          }
        } else {
          if (!other.extension_.isEmpty()) {
            if (extensionBuilder_.isEmpty()) {
              extensionBuilder_.dispose();
              extensionBuilder_ = null;
              extension_ = other.extension_;
              bitField0_ = (bitField0_ & ~0x00000008);
              extensionBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getExtensionFieldBuilder() : null;
            } else {
              extensionBuilder_.addAllMessages(other.extension_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional int32 code = 1;
      private int code_ ;
      /**
       * <code>optional int32 code = 1;</code>
       */
      public boolean hasCode() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional int32 code = 1;</code>
       */
      public int getCode() {
        return code_;
      }
      /**
       * <code>optional int32 code = 1;</code>
       */
      public Builder setCode(int value) {
        bitField0_ |= 0x00000001;
        code_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 code = 1;</code>
       */
      public Builder clearCode() {
        bitField0_ = (bitField0_ & ~0x00000001);
        code_ = 0;
        onChanged();
        return this;
      }

      // optional string message = 2;
      private java.lang.Object message_ = "";
      /**
       * <code>optional string message = 2;</code>
       */
      public boolean hasMessage() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional string message = 2;</code>
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          message_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string message = 2;</code>
       */
      public com.google.protobuf.ByteString
          getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string message = 2;</code>
       */
      public Builder setMessage(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        message_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string message = 2;</code>
       */
      public Builder clearMessage() {
        bitField0_ = (bitField0_ & ~0x00000002);
        message_ = getDefaultInstance().getMessage();
        onChanged();
        return this;
      }
      /**
       * <code>optional string message = 2;</code>
       */
      public Builder setMessageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        message_ = value;
        onChanged();
        return this;
      }

      // optional string type = 3;
      private java.lang.Object type_ = "";
      /**
       * <code>optional string type = 3;</code>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional string type = 3;</code>
       */
      public java.lang.String getType() {
        java.lang.Object ref = type_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          type_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string type = 3;</code>
       */
      public com.google.protobuf.ByteString
          getTypeBytes() {
        java.lang.Object ref = type_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          type_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string type = 3;</code>
       */
      public Builder setType(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string type = 3;</code>
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        type_ = getDefaultInstance().getType();
        onChanged();
        return this;
      }
      /**
       * <code>optional string type = 3;</code>
       */
      public Builder setTypeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        type_ = value;
        onChanged();
        return this;
      }

      // repeated .Extension extension = 4;
      private java.util.List<com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension> extension_ =
        java.util.Collections.emptyList();
      private void ensureExtensionIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          extension_ = new java.util.ArrayList<com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension>(extension_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.Builder, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.ExtensionOrBuilder> extensionBuilder_;

      /**
       * <code>repeated .Extension extension = 4;</code>
       */
      public java.util.List<com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension> getExtensionList() {
        if (extensionBuilder_ == null) {
          return java.util.Collections.unmodifiableList(extension_);
        } else {
          return extensionBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .Extension extension = 4;</code>
       */
      public int getExtensionCount() {
        if (extensionBuilder_ == null) {
          return extension_.size();
        } else {
          return extensionBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .Extension extension = 4;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension getExtension(int index) {
        if (extensionBuilder_ == null) {
          return extension_.get(index);
        } else {
          return extensionBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .Extension extension = 4;</code>
       */
      public Builder setExtension(
          int index, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension value) {
        if (extensionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureExtensionIsMutable();
          extension_.set(index, value);
          onChanged();
        } else {
          extensionBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Extension extension = 4;</code>
       */
      public Builder setExtension(
          int index, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.Builder builderForValue) {
        if (extensionBuilder_ == null) {
          ensureExtensionIsMutable();
          extension_.set(index, builderForValue.build());
          onChanged();
        } else {
          extensionBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Extension extension = 4;</code>
       */
      public Builder addExtension(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension value) {
        if (extensionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureExtensionIsMutable();
          extension_.add(value);
          onChanged();
        } else {
          extensionBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .Extension extension = 4;</code>
       */
      public Builder addExtension(
          int index, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension value) {
        if (extensionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureExtensionIsMutable();
          extension_.add(index, value);
          onChanged();
        } else {
          extensionBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .Extension extension = 4;</code>
       */
      public Builder addExtension(
          com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.Builder builderForValue) {
        if (extensionBuilder_ == null) {
          ensureExtensionIsMutable();
          extension_.add(builderForValue.build());
          onChanged();
        } else {
          extensionBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Extension extension = 4;</code>
       */
      public Builder addExtension(
          int index, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.Builder builderForValue) {
        if (extensionBuilder_ == null) {
          ensureExtensionIsMutable();
          extension_.add(index, builderForValue.build());
          onChanged();
        } else {
          extensionBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .Extension extension = 4;</code>
       */
      public Builder addAllExtension(
          java.lang.Iterable<? extends com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension> values) {
        if (extensionBuilder_ == null) {
          ensureExtensionIsMutable();
          super.addAll(values, extension_);
          onChanged();
        } else {
          extensionBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .Extension extension = 4;</code>
       */
      public Builder clearExtension() {
        if (extensionBuilder_ == null) {
          extension_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          extensionBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .Extension extension = 4;</code>
       */
      public Builder removeExtension(int index) {
        if (extensionBuilder_ == null) {
          ensureExtensionIsMutable();
          extension_.remove(index);
          onChanged();
        } else {
          extensionBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .Extension extension = 4;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.Builder getExtensionBuilder(
          int index) {
        return getExtensionFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .Extension extension = 4;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.ExtensionOrBuilder getExtensionOrBuilder(
          int index) {
        if (extensionBuilder_ == null) {
          return extension_.get(index);  } else {
          return extensionBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .Extension extension = 4;</code>
       */
      public java.util.List<? extends com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.ExtensionOrBuilder> 
           getExtensionOrBuilderList() {
        if (extensionBuilder_ != null) {
          return extensionBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(extension_);
        }
      }
      /**
       * <code>repeated .Extension extension = 4;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.Builder addExtensionBuilder() {
        return getExtensionFieldBuilder().addBuilder(
            com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.getDefaultInstance());
      }
      /**
       * <code>repeated .Extension extension = 4;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.Builder addExtensionBuilder(
          int index) {
        return getExtensionFieldBuilder().addBuilder(
            index, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.getDefaultInstance());
      }
      /**
       * <code>repeated .Extension extension = 4;</code>
       */
      public java.util.List<com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.Builder> 
           getExtensionBuilderList() {
        return getExtensionFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.Builder, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.ExtensionOrBuilder> 
          getExtensionFieldBuilder() {
        if (extensionBuilder_ == null) {
          extensionBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.Builder, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.ExtensionOrBuilder>(
                  extension_,
                  ((bitField0_ & 0x00000008) == 0x00000008),
                  getParentForChildren(),
                  isClean());
          extension_ = null;
        }
        return extensionBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:XMPPError)
    }

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

    // @@protoc_insertion_point(class_scope:XMPPError)
  }

  public interface ExtensionOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional int32 code = 1;
    /**
     * <code>optional int32 code = 1;</code>
     */
    boolean hasCode();
    /**
     * <code>optional int32 code = 1;</code>
     */
    int getCode();

    // optional string message = 2;
    /**
     * <code>optional string message = 2;</code>
     */
    boolean hasMessage();
    /**
     * <code>optional string message = 2;</code>
     */
    java.lang.String getMessage();
    /**
     * <code>optional string message = 2;</code>
     */
    com.google.protobuf.ByteString
        getMessageBytes();
  }
  /**
   * Protobuf type {@code Extension}
   */
  public static final class Extension extends
      com.google.protobuf.GeneratedMessage
      implements ExtensionOrBuilder {
    // Use Extension.newBuilder() to construct.
    private Extension(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Extension(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public Extension getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Extension(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      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;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              code_ = input.readInt32();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              message_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_Extension_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_Extension_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.class, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.Builder.class);
    }

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

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

    private int bitField0_;
    // optional int32 code = 1;
    public static final int CODE_FIELD_NUMBER = 1;
    private int code_;
    /**
     * <code>optional int32 code = 1;</code>
     */
    public boolean hasCode() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional int32 code = 1;</code>
     */
    public int getCode() {
      return code_;
    }

    // optional string message = 2;
    public static final int MESSAGE_FIELD_NUMBER = 2;
    private java.lang.Object message_;
    /**
     * <code>optional string message = 2;</code>
     */
    public boolean hasMessage() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional string message = 2;</code>
     */
    public java.lang.String getMessage() {
      java.lang.Object ref = message_;
      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();
        if (bs.isValidUtf8()) {
          message_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string message = 2;</code>
     */
    public com.google.protobuf.ByteString
        getMessageBytes() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        message_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      code_ = 0;
      message_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, code_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getMessageBytes());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, code_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getMessageBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code Extension}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.ExtensionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_Extension_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_Extension_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.class, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.Builder.class);
      }

      // Construct using com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        code_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        message_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_Extension_descriptor;
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension getDefaultInstanceForType() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.getDefaultInstance();
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension build() {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension buildPartial() {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension result = new com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.code_ = code_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.message_ = message_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension) {
          return mergeFrom((com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension other) {
        if (other == com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.getDefaultInstance()) return this;
        if (other.hasCode()) {
          setCode(other.getCode());
        }
        if (other.hasMessage()) {
          bitField0_ |= 0x00000002;
          message_ = other.message_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional int32 code = 1;
      private int code_ ;
      /**
       * <code>optional int32 code = 1;</code>
       */
      public boolean hasCode() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional int32 code = 1;</code>
       */
      public int getCode() {
        return code_;
      }
      /**
       * <code>optional int32 code = 1;</code>
       */
      public Builder setCode(int value) {
        bitField0_ |= 0x00000001;
        code_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 code = 1;</code>
       */
      public Builder clearCode() {
        bitField0_ = (bitField0_ & ~0x00000001);
        code_ = 0;
        onChanged();
        return this;
      }

      // optional string message = 2;
      private java.lang.Object message_ = "";
      /**
       * <code>optional string message = 2;</code>
       */
      public boolean hasMessage() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional string message = 2;</code>
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          message_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string message = 2;</code>
       */
      public com.google.protobuf.ByteString
          getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string message = 2;</code>
       */
      public Builder setMessage(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        message_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string message = 2;</code>
       */
      public Builder clearMessage() {
        bitField0_ = (bitField0_ & ~0x00000002);
        message_ = getDefaultInstance().getMessage();
        onChanged();
        return this;
      }
      /**
       * <code>optional string message = 2;</code>
       */
      public Builder setMessageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        message_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:Extension)
    }

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

    // @@protoc_insertion_point(class_scope:Extension)
  }

  public interface BindAccountRequestOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional string packetid = 1;
    /**
     * <code>optional string packetid = 1;</code>
     */
    boolean hasPacketid();
    /**
     * <code>optional string packetid = 1;</code>
     */
    java.lang.String getPacketid();
    /**
     * <code>optional string packetid = 1;</code>
     */
    com.google.protobuf.ByteString
        getPacketidBytes();

    // optional string domain = 2;
    /**
     * <code>optional string domain = 2;</code>
     */
    boolean hasDomain();
    /**
     * <code>optional string domain = 2;</code>
     */
    java.lang.String getDomain();
    /**
     * <code>optional string domain = 2;</code>
     */
    com.google.protobuf.ByteString
        getDomainBytes();

    // optional string user = 3;
    /**
     * <code>optional string user = 3;</code>
     */
    boolean hasUser();
    /**
     * <code>optional string user = 3;</code>
     */
    java.lang.String getUser();
    /**
     * <code>optional string user = 3;</code>
     */
    com.google.protobuf.ByteString
        getUserBytes();

    // optional string resource = 4;
    /**
     * <code>optional string resource = 4;</code>
     */
    boolean hasResource();
    /**
     * <code>optional string resource = 4;</code>
     */
    java.lang.String getResource();
    /**
     * <code>optional string resource = 4;</code>
     */
    com.google.protobuf.ByteString
        getResourceBytes();

    // optional int64 accountid = 9;
    /**
     * <code>optional int64 accountid = 9;</code>
     */
    boolean hasAccountid();
    /**
     * <code>optional int64 accountid = 9;</code>
     */
    long getAccountid();

    // optional string token = 5;
    /**
     * <code>optional string token = 5;</code>
     */
    boolean hasToken();
    /**
     * <code>optional string token = 5;</code>
     */
    java.lang.String getToken();
    /**
     * <code>optional string token = 5;</code>
     */
    com.google.protobuf.ByteString
        getTokenBytes();
  }
  /**
   * Protobuf type {@code BindAccountRequest}
   */
  public static final class BindAccountRequest extends
      com.google.protobuf.GeneratedMessage
      implements BindAccountRequestOrBuilder {
    // Use BindAccountRequest.newBuilder() to construct.
    private BindAccountRequest(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private BindAccountRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public BindAccountRequest getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private BindAccountRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      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;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              packetid_ = input.readBytes();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              domain_ = input.readBytes();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              user_ = input.readBytes();
              break;
            }
            case 34: {
              bitField0_ |= 0x00000008;
              resource_ = input.readBytes();
              break;
            }
            case 42: {
              bitField0_ |= 0x00000020;
              token_ = input.readBytes();
              break;
            }
            case 72: {
              bitField0_ |= 0x00000010;
              accountid_ = input.readInt64();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_BindAccountRequest_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_BindAccountRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountRequest.class, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountRequest.Builder.class);
    }

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

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

    private int bitField0_;
    // optional string packetid = 1;
    public static final int PACKETID_FIELD_NUMBER = 1;
    private java.lang.Object packetid_;
    /**
     * <code>optional string packetid = 1;</code>
     */
    public boolean hasPacketid() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional string packetid = 1;</code>
     */
    public java.lang.String getPacketid() {
      java.lang.Object ref = packetid_;
      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();
        if (bs.isValidUtf8()) {
          packetid_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string packetid = 1;</code>
     */
    public com.google.protobuf.ByteString
        getPacketidBytes() {
      java.lang.Object ref = packetid_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        packetid_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string domain = 2;
    public static final int DOMAIN_FIELD_NUMBER = 2;
    private java.lang.Object domain_;
    /**
     * <code>optional string domain = 2;</code>
     */
    public boolean hasDomain() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional string domain = 2;</code>
     */
    public java.lang.String getDomain() {
      java.lang.Object ref = domain_;
      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();
        if (bs.isValidUtf8()) {
          domain_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string domain = 2;</code>
     */
    public com.google.protobuf.ByteString
        getDomainBytes() {
      java.lang.Object ref = domain_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        domain_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string user = 3;
    public static final int USER_FIELD_NUMBER = 3;
    private java.lang.Object user_;
    /**
     * <code>optional string user = 3;</code>
     */
    public boolean hasUser() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional string user = 3;</code>
     */
    public java.lang.String getUser() {
      java.lang.Object ref = user_;
      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();
        if (bs.isValidUtf8()) {
          user_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string user = 3;</code>
     */
    public com.google.protobuf.ByteString
        getUserBytes() {
      java.lang.Object ref = user_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        user_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string resource = 4;
    public static final int RESOURCE_FIELD_NUMBER = 4;
    private java.lang.Object resource_;
    /**
     * <code>optional string resource = 4;</code>
     */
    public boolean hasResource() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>optional string resource = 4;</code>
     */
    public java.lang.String getResource() {
      java.lang.Object ref = resource_;
      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();
        if (bs.isValidUtf8()) {
          resource_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string resource = 4;</code>
     */
    public com.google.protobuf.ByteString
        getResourceBytes() {
      java.lang.Object ref = resource_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        resource_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional int64 accountid = 9;
    public static final int ACCOUNTID_FIELD_NUMBER = 9;
    private long accountid_;
    /**
     * <code>optional int64 accountid = 9;</code>
     */
    public boolean hasAccountid() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>optional int64 accountid = 9;</code>
     */
    public long getAccountid() {
      return accountid_;
    }

    // optional string token = 5;
    public static final int TOKEN_FIELD_NUMBER = 5;
    private java.lang.Object token_;
    /**
     * <code>optional string token = 5;</code>
     */
    public boolean hasToken() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <code>optional string token = 5;</code>
     */
    public java.lang.String getToken() {
      java.lang.Object ref = token_;
      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();
        if (bs.isValidUtf8()) {
          token_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string token = 5;</code>
     */
    public com.google.protobuf.ByteString
        getTokenBytes() {
      java.lang.Object ref = token_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        token_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      packetid_ = "";
      domain_ = "";
      user_ = "";
      resource_ = "";
      accountid_ = 0L;
      token_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getPacketidBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getDomainBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getUserBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBytes(4, getResourceBytes());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBytes(5, getTokenBytes());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt64(9, accountid_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getPacketidBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getDomainBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getUserBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, getResourceBytes());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(5, getTokenBytes());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(9, accountid_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountRequest prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code BindAccountRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_BindAccountRequest_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_BindAccountRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountRequest.class, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountRequest.Builder.class);
      }

      // Construct using com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        packetid_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        domain_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        user_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        resource_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        accountid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        token_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_BindAccountRequest_descriptor;
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountRequest getDefaultInstanceForType() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountRequest.getDefaultInstance();
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountRequest build() {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountRequest buildPartial() {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountRequest result = new com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountRequest(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.packetid_ = packetid_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.domain_ = domain_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.user_ = user_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.resource_ = resource_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.accountid_ = accountid_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.token_ = token_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountRequest) {
          return mergeFrom((com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountRequest other) {
        if (other == com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountRequest.getDefaultInstance()) return this;
        if (other.hasPacketid()) {
          bitField0_ |= 0x00000001;
          packetid_ = other.packetid_;
          onChanged();
        }
        if (other.hasDomain()) {
          bitField0_ |= 0x00000002;
          domain_ = other.domain_;
          onChanged();
        }
        if (other.hasUser()) {
          bitField0_ |= 0x00000004;
          user_ = other.user_;
          onChanged();
        }
        if (other.hasResource()) {
          bitField0_ |= 0x00000008;
          resource_ = other.resource_;
          onChanged();
        }
        if (other.hasAccountid()) {
          setAccountid(other.getAccountid());
        }
        if (other.hasToken()) {
          bitField0_ |= 0x00000020;
          token_ = other.token_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountRequest) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional string packetid = 1;
      private java.lang.Object packetid_ = "";
      /**
       * <code>optional string packetid = 1;</code>
       */
      public boolean hasPacketid() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional string packetid = 1;</code>
       */
      public java.lang.String getPacketid() {
        java.lang.Object ref = packetid_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          packetid_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string packetid = 1;</code>
       */
      public com.google.protobuf.ByteString
          getPacketidBytes() {
        java.lang.Object ref = packetid_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          packetid_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string packetid = 1;</code>
       */
      public Builder setPacketid(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        packetid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string packetid = 1;</code>
       */
      public Builder clearPacketid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        packetid_ = getDefaultInstance().getPacketid();
        onChanged();
        return this;
      }
      /**
       * <code>optional string packetid = 1;</code>
       */
      public Builder setPacketidBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        packetid_ = value;
        onChanged();
        return this;
      }

      // optional string domain = 2;
      private java.lang.Object domain_ = "";
      /**
       * <code>optional string domain = 2;</code>
       */
      public boolean hasDomain() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional string domain = 2;</code>
       */
      public java.lang.String getDomain() {
        java.lang.Object ref = domain_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          domain_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string domain = 2;</code>
       */
      public com.google.protobuf.ByteString
          getDomainBytes() {
        java.lang.Object ref = domain_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          domain_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string domain = 2;</code>
       */
      public Builder setDomain(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        domain_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string domain = 2;</code>
       */
      public Builder clearDomain() {
        bitField0_ = (bitField0_ & ~0x00000002);
        domain_ = getDefaultInstance().getDomain();
        onChanged();
        return this;
      }
      /**
       * <code>optional string domain = 2;</code>
       */
      public Builder setDomainBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        domain_ = value;
        onChanged();
        return this;
      }

      // optional string user = 3;
      private java.lang.Object user_ = "";
      /**
       * <code>optional string user = 3;</code>
       */
      public boolean hasUser() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional string user = 3;</code>
       */
      public java.lang.String getUser() {
        java.lang.Object ref = user_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          user_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string user = 3;</code>
       */
      public com.google.protobuf.ByteString
          getUserBytes() {
        java.lang.Object ref = user_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          user_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string user = 3;</code>
       */
      public Builder setUser(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        user_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string user = 3;</code>
       */
      public Builder clearUser() {
        bitField0_ = (bitField0_ & ~0x00000004);
        user_ = getDefaultInstance().getUser();
        onChanged();
        return this;
      }
      /**
       * <code>optional string user = 3;</code>
       */
      public Builder setUserBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        user_ = value;
        onChanged();
        return this;
      }

      // optional string resource = 4;
      private java.lang.Object resource_ = "";
      /**
       * <code>optional string resource = 4;</code>
       */
      public boolean hasResource() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional string resource = 4;</code>
       */
      public java.lang.String getResource() {
        java.lang.Object ref = resource_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          resource_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string resource = 4;</code>
       */
      public com.google.protobuf.ByteString
          getResourceBytes() {
        java.lang.Object ref = resource_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          resource_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string resource = 4;</code>
       */
      public Builder setResource(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        resource_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string resource = 4;</code>
       */
      public Builder clearResource() {
        bitField0_ = (bitField0_ & ~0x00000008);
        resource_ = getDefaultInstance().getResource();
        onChanged();
        return this;
      }
      /**
       * <code>optional string resource = 4;</code>
       */
      public Builder setResourceBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        resource_ = value;
        onChanged();
        return this;
      }

      // optional int64 accountid = 9;
      private long accountid_ ;
      /**
       * <code>optional int64 accountid = 9;</code>
       */
      public boolean hasAccountid() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>optional int64 accountid = 9;</code>
       */
      public long getAccountid() {
        return accountid_;
      }
      /**
       * <code>optional int64 accountid = 9;</code>
       */
      public Builder setAccountid(long value) {
        bitField0_ |= 0x00000010;
        accountid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 accountid = 9;</code>
       */
      public Builder clearAccountid() {
        bitField0_ = (bitField0_ & ~0x00000010);
        accountid_ = 0L;
        onChanged();
        return this;
      }

      // optional string token = 5;
      private java.lang.Object token_ = "";
      /**
       * <code>optional string token = 5;</code>
       */
      public boolean hasToken() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>optional string token = 5;</code>
       */
      public java.lang.String getToken() {
        java.lang.Object ref = token_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          token_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string token = 5;</code>
       */
      public com.google.protobuf.ByteString
          getTokenBytes() {
        java.lang.Object ref = token_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          token_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string token = 5;</code>
       */
      public Builder setToken(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        token_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string token = 5;</code>
       */
      public Builder clearToken() {
        bitField0_ = (bitField0_ & ~0x00000020);
        token_ = getDefaultInstance().getToken();
        onChanged();
        return this;
      }
      /**
       * <code>optional string token = 5;</code>
       */
      public Builder setTokenBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        token_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:BindAccountRequest)
    }

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

    // @@protoc_insertion_point(class_scope:BindAccountRequest)
  }

  public interface BindAccountResponseOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional string packetid = 1;
    /**
     * <code>optional string packetid = 1;</code>
     */
    boolean hasPacketid();
    /**
     * <code>optional string packetid = 1;</code>
     */
    java.lang.String getPacketid();
    /**
     * <code>optional string packetid = 1;</code>
     */
    com.google.protobuf.ByteString
        getPacketidBytes();

    // optional string jid = 2;
    /**
     * <code>optional string jid = 2;</code>
     */
    boolean hasJid();
    /**
     * <code>optional string jid = 2;</code>
     */
    java.lang.String getJid();
    /**
     * <code>optional string jid = 2;</code>
     */
    com.google.protobuf.ByteString
        getJidBytes();

    // optional int32 laststreamid = 5;
    /**
     * <code>optional int32 laststreamid = 5;</code>
     */
    boolean hasLaststreamid();
    /**
     * <code>optional int32 laststreamid = 5;</code>
     */
    int getLaststreamid();

    // optional int32 streamid = 4;
    /**
     * <code>optional int32 streamid = 4;</code>
     */
    boolean hasStreamid();
    /**
     * <code>optional int32 streamid = 4;</code>
     */
    int getStreamid();

    // optional .XMPPError error = 3;
    /**
     * <code>optional .XMPPError error = 3;</code>
     */
    boolean hasError();
    /**
     * <code>optional .XMPPError error = 3;</code>
     */
    com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError getError();
    /**
     * <code>optional .XMPPError error = 3;</code>
     */
    com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPErrorOrBuilder getErrorOrBuilder();
  }
  /**
   * Protobuf type {@code BindAccountResponse}
   */
  public static final class BindAccountResponse extends
      com.google.protobuf.GeneratedMessage
      implements BindAccountResponseOrBuilder {
    // Use BindAccountResponse.newBuilder() to construct.
    private BindAccountResponse(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private BindAccountResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public BindAccountResponse getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private BindAccountResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      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;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              packetid_ = input.readBytes();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              jid_ = input.readBytes();
              break;
            }
            case 26: {
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.Builder subBuilder = null;
              if (((bitField0_ & 0x00000010) == 0x00000010)) {
                subBuilder = error_.toBuilder();
              }
              error_ = input.readMessage(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(error_);
                error_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000010;
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              streamid_ = input.readInt32();
              break;
            }
            case 40: {
              bitField0_ |= 0x00000004;
              laststreamid_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_BindAccountResponse_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_BindAccountResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountResponse.class, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountResponse.Builder.class);
    }

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

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

    private int bitField0_;
    // optional string packetid = 1;
    public static final int PACKETID_FIELD_NUMBER = 1;
    private java.lang.Object packetid_;
    /**
     * <code>optional string packetid = 1;</code>
     */
    public boolean hasPacketid() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional string packetid = 1;</code>
     */
    public java.lang.String getPacketid() {
      java.lang.Object ref = packetid_;
      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();
        if (bs.isValidUtf8()) {
          packetid_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string packetid = 1;</code>
     */
    public com.google.protobuf.ByteString
        getPacketidBytes() {
      java.lang.Object ref = packetid_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        packetid_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string jid = 2;
    public static final int JID_FIELD_NUMBER = 2;
    private java.lang.Object jid_;
    /**
     * <code>optional string jid = 2;</code>
     */
    public boolean hasJid() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional string jid = 2;</code>
     */
    public java.lang.String getJid() {
      java.lang.Object ref = jid_;
      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();
        if (bs.isValidUtf8()) {
          jid_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string jid = 2;</code>
     */
    public com.google.protobuf.ByteString
        getJidBytes() {
      java.lang.Object ref = jid_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        jid_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional int32 laststreamid = 5;
    public static final int LASTSTREAMID_FIELD_NUMBER = 5;
    private int laststreamid_;
    /**
     * <code>optional int32 laststreamid = 5;</code>
     */
    public boolean hasLaststreamid() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional int32 laststreamid = 5;</code>
     */
    public int getLaststreamid() {
      return laststreamid_;
    }

    // optional int32 streamid = 4;
    public static final int STREAMID_FIELD_NUMBER = 4;
    private int streamid_;
    /**
     * <code>optional int32 streamid = 4;</code>
     */
    public boolean hasStreamid() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>optional int32 streamid = 4;</code>
     */
    public int getStreamid() {
      return streamid_;
    }

    // optional .XMPPError error = 3;
    public static final int ERROR_FIELD_NUMBER = 3;
    private com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError error_;
    /**
     * <code>optional .XMPPError error = 3;</code>
     */
    public boolean hasError() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>optional .XMPPError error = 3;</code>
     */
    public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError getError() {
      return error_;
    }
    /**
     * <code>optional .XMPPError error = 3;</code>
     */
    public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPErrorOrBuilder getErrorOrBuilder() {
      return error_;
    }

    private void initFields() {
      packetid_ = "";
      jid_ = "";
      laststreamid_ = 0;
      streamid_ = 0;
      error_ = com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getPacketidBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getJidBytes());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(3, error_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, streamid_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(5, laststreamid_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getPacketidBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getJidBytes());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, error_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, streamid_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(5, laststreamid_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountResponse prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code BindAccountResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_BindAccountResponse_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_BindAccountResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountResponse.class, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountResponse.Builder.class);
      }

      // Construct using com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        packetid_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        jid_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        laststreamid_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        streamid_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        if (errorBuilder_ == null) {
          error_ = com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.getDefaultInstance();
        } else {
          errorBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_BindAccountResponse_descriptor;
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountResponse getDefaultInstanceForType() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountResponse.getDefaultInstance();
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountResponse build() {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountResponse buildPartial() {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountResponse result = new com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountResponse(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.packetid_ = packetid_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.jid_ = jid_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.laststreamid_ = laststreamid_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.streamid_ = streamid_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        if (errorBuilder_ == null) {
          result.error_ = error_;
        } else {
          result.error_ = errorBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountResponse) {
          return mergeFrom((com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountResponse other) {
        if (other == com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountResponse.getDefaultInstance()) return this;
        if (other.hasPacketid()) {
          bitField0_ |= 0x00000001;
          packetid_ = other.packetid_;
          onChanged();
        }
        if (other.hasJid()) {
          bitField0_ |= 0x00000002;
          jid_ = other.jid_;
          onChanged();
        }
        if (other.hasLaststreamid()) {
          setLaststreamid(other.getLaststreamid());
        }
        if (other.hasStreamid()) {
          setStreamid(other.getStreamid());
        }
        if (other.hasError()) {
          mergeError(other.getError());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.BindAccountResponse) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional string packetid = 1;
      private java.lang.Object packetid_ = "";
      /**
       * <code>optional string packetid = 1;</code>
       */
      public boolean hasPacketid() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional string packetid = 1;</code>
       */
      public java.lang.String getPacketid() {
        java.lang.Object ref = packetid_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          packetid_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string packetid = 1;</code>
       */
      public com.google.protobuf.ByteString
          getPacketidBytes() {
        java.lang.Object ref = packetid_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          packetid_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string packetid = 1;</code>
       */
      public Builder setPacketid(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        packetid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string packetid = 1;</code>
       */
      public Builder clearPacketid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        packetid_ = getDefaultInstance().getPacketid();
        onChanged();
        return this;
      }
      /**
       * <code>optional string packetid = 1;</code>
       */
      public Builder setPacketidBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        packetid_ = value;
        onChanged();
        return this;
      }

      // optional string jid = 2;
      private java.lang.Object jid_ = "";
      /**
       * <code>optional string jid = 2;</code>
       */
      public boolean hasJid() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional string jid = 2;</code>
       */
      public java.lang.String getJid() {
        java.lang.Object ref = jid_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          jid_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string jid = 2;</code>
       */
      public com.google.protobuf.ByteString
          getJidBytes() {
        java.lang.Object ref = jid_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          jid_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string jid = 2;</code>
       */
      public Builder setJid(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        jid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string jid = 2;</code>
       */
      public Builder clearJid() {
        bitField0_ = (bitField0_ & ~0x00000002);
        jid_ = getDefaultInstance().getJid();
        onChanged();
        return this;
      }
      /**
       * <code>optional string jid = 2;</code>
       */
      public Builder setJidBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        jid_ = value;
        onChanged();
        return this;
      }

      // optional int32 laststreamid = 5;
      private int laststreamid_ ;
      /**
       * <code>optional int32 laststreamid = 5;</code>
       */
      public boolean hasLaststreamid() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional int32 laststreamid = 5;</code>
       */
      public int getLaststreamid() {
        return laststreamid_;
      }
      /**
       * <code>optional int32 laststreamid = 5;</code>
       */
      public Builder setLaststreamid(int value) {
        bitField0_ |= 0x00000004;
        laststreamid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 laststreamid = 5;</code>
       */
      public Builder clearLaststreamid() {
        bitField0_ = (bitField0_ & ~0x00000004);
        laststreamid_ = 0;
        onChanged();
        return this;
      }

      // optional int32 streamid = 4;
      private int streamid_ ;
      /**
       * <code>optional int32 streamid = 4;</code>
       */
      public boolean hasStreamid() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional int32 streamid = 4;</code>
       */
      public int getStreamid() {
        return streamid_;
      }
      /**
       * <code>optional int32 streamid = 4;</code>
       */
      public Builder setStreamid(int value) {
        bitField0_ |= 0x00000008;
        streamid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 streamid = 4;</code>
       */
      public Builder clearStreamid() {
        bitField0_ = (bitField0_ & ~0x00000008);
        streamid_ = 0;
        onChanged();
        return this;
      }

      // optional .XMPPError error = 3;
      private com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError error_ = com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.Builder, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPErrorOrBuilder> errorBuilder_;
      /**
       * <code>optional .XMPPError error = 3;</code>
       */
      public boolean hasError() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>optional .XMPPError error = 3;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError getError() {
        if (errorBuilder_ == null) {
          return error_;
        } else {
          return errorBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .XMPPError error = 3;</code>
       */
      public Builder setError(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError value) {
        if (errorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          error_ = value;
          onChanged();
        } else {
          errorBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .XMPPError error = 3;</code>
       */
      public Builder setError(
          com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.Builder builderForValue) {
        if (errorBuilder_ == null) {
          error_ = builderForValue.build();
          onChanged();
        } else {
          errorBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .XMPPError error = 3;</code>
       */
      public Builder mergeError(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError value) {
        if (errorBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010) &&
              error_ != com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.getDefaultInstance()) {
            error_ =
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.newBuilder(error_).mergeFrom(value).buildPartial();
          } else {
            error_ = value;
          }
          onChanged();
        } else {
          errorBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       * <code>optional .XMPPError error = 3;</code>
       */
      public Builder clearError() {
        if (errorBuilder_ == null) {
          error_ = com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.getDefaultInstance();
          onChanged();
        } else {
          errorBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       * <code>optional .XMPPError error = 3;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.Builder getErrorBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getErrorFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .XMPPError error = 3;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPErrorOrBuilder getErrorOrBuilder() {
        if (errorBuilder_ != null) {
          return errorBuilder_.getMessageOrBuilder();
        } else {
          return error_;
        }
      }
      /**
       * <code>optional .XMPPError error = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.Builder, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPErrorOrBuilder> 
          getErrorFieldBuilder() {
        if (errorBuilder_ == null) {
          errorBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.Builder, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPErrorOrBuilder>(
                  error_,
                  getParentForChildren(),
                  isClean());
          error_ = null;
        }
        return errorBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:BindAccountResponse)
    }

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

    // @@protoc_insertion_point(class_scope:BindAccountResponse)
  }

  public interface CloseOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code Close}
   */
  public static final class Close extends
      com.google.protobuf.GeneratedMessage
      implements CloseOrBuilder {
    // Use Close.newBuilder() to construct.
    private Close(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Close(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public Close getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Close(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_Close_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_Close_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Close.class, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Close.Builder.class);
    }

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

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

    private void initFields() {
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Close parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Close parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Close parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Close parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Close parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Close parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Close parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Close parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Close parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Close parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Close prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code Close}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.CloseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_Close_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_Close_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Close.class, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Close.Builder.class);
      }

      // Construct using com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Close.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_Close_descriptor;
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Close getDefaultInstanceForType() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Close.getDefaultInstance();
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Close build() {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Close result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Close buildPartial() {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Close result = new com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Close(this);
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Close) {
          return mergeFrom((com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Close)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Close other) {
        if (other == com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Close.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Close parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Close) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:Close)
    }

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

    // @@protoc_insertion_point(class_scope:Close)
  }

  public interface HeartbeatAckOrBuilder
      extends com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code HeartbeatAck}
   */
  public static final class HeartbeatAck extends
      com.google.protobuf.GeneratedMessage
      implements HeartbeatAckOrBuilder {
    // Use HeartbeatAck.newBuilder() to construct.
    private HeartbeatAck(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private HeartbeatAck(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public HeartbeatAck getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private HeartbeatAck(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_HeartbeatAck_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_HeartbeatAck_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartbeatAck.class, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartbeatAck.Builder.class);
    }

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

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

    private void initFields() {
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartbeatAck parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartbeatAck parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartbeatAck parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartbeatAck parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartbeatAck parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartbeatAck parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartbeatAck parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartbeatAck parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartbeatAck parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartbeatAck parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartbeatAck prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code HeartbeatAck}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartbeatAckOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_HeartbeatAck_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_HeartbeatAck_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartbeatAck.class, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartbeatAck.Builder.class);
      }

      // Construct using com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartbeatAck.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_HeartbeatAck_descriptor;
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartbeatAck getDefaultInstanceForType() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartbeatAck.getDefaultInstance();
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartbeatAck build() {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartbeatAck result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartbeatAck buildPartial() {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartbeatAck result = new com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartbeatAck(this);
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartbeatAck) {
          return mergeFrom((com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartbeatAck)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartbeatAck other) {
        if (other == com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartbeatAck.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartbeatAck parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.HeartbeatAck) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:HeartbeatAck)
    }

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

    // @@protoc_insertion_point(class_scope:HeartbeatAck)
  }

  public interface DataMessageStanzaOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional int64 rmqid = 1;
    /**
     * <code>optional int64 rmqid = 1;</code>
     */
    boolean hasRmqid();
    /**
     * <code>optional int64 rmqid = 1;</code>
     */
    long getRmqid();

    // optional string packetid = 2;
    /**
     * <code>optional string packetid = 2;</code>
     */
    boolean hasPacketid();
    /**
     * <code>optional string packetid = 2;</code>
     */
    java.lang.String getPacketid();
    /**
     * <code>optional string packetid = 2;</code>
     */
    com.google.protobuf.ByteString
        getPacketidBytes();

    // optional string from = 3;
    /**
     * <code>optional string from = 3;</code>
     */
    boolean hasFrom();
    /**
     * <code>optional string from = 3;</code>
     */
    java.lang.String getFrom();
    /**
     * <code>optional string from = 3;</code>
     */
    com.google.protobuf.ByteString
        getFromBytes();

    // optional string to = 4;
    /**
     * <code>optional string to = 4;</code>
     */
    boolean hasTo();
    /**
     * <code>optional string to = 4;</code>
     */
    java.lang.String getTo();
    /**
     * <code>optional string to = 4;</code>
     */
    com.google.protobuf.ByteString
        getToBytes();

    // optional string category = 5;
    /**
     * <code>optional string category = 5;</code>
     */
    boolean hasCategory();
    /**
     * <code>optional string category = 5;</code>
     */
    java.lang.String getCategory();
    /**
     * <code>optional string category = 5;</code>
     */
    com.google.protobuf.ByteString
        getCategoryBytes();

    // optional string token = 6;
    /**
     * <code>optional string token = 6;</code>
     */
    boolean hasToken();
    /**
     * <code>optional string token = 6;</code>
     */
    java.lang.String getToken();
    /**
     * <code>optional string token = 6;</code>
     */
    com.google.protobuf.ByteString
        getTokenBytes();

    // repeated .AppData appdata = 7;
    /**
     * <code>repeated .AppData appdata = 7;</code>
     */
    java.util.List<com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData> 
        getAppdataList();
    /**
     * <code>repeated .AppData appdata = 7;</code>
     */
    com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData getAppdata(int index);
    /**
     * <code>repeated .AppData appdata = 7;</code>
     */
    int getAppdataCount();
    /**
     * <code>repeated .AppData appdata = 7;</code>
     */
    java.util.List<? extends com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppDataOrBuilder> 
        getAppdataOrBuilderList();
    /**
     * <code>repeated .AppData appdata = 7;</code>
     */
    com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppDataOrBuilder getAppdataOrBuilder(
        int index);

    // optional bool fromtrustedserver = 8;
    /**
     * <code>optional bool fromtrustedserver = 8;</code>
     */
    boolean hasFromtrustedserver();
    /**
     * <code>optional bool fromtrustedserver = 8;</code>
     */
    boolean getFromtrustedserver();

    // optional string rmq2id = 9;
    /**
     * <code>optional string rmq2id = 9;</code>
     */
    boolean hasRmq2Id();
    /**
     * <code>optional string rmq2id = 9;</code>
     */
    java.lang.String getRmq2Id();
    /**
     * <code>optional string rmq2id = 9;</code>
     */
    com.google.protobuf.ByteString
        getRmq2IdBytes();

    // optional int32 streamid = 10;
    /**
     * <code>optional int32 streamid = 10;</code>
     */
    boolean hasStreamid();
    /**
     * <code>optional int32 streamid = 10;</code>
     */
    int getStreamid();

    // optional int32 laststreamid = 11;
    /**
     * <code>optional int32 laststreamid = 11;</code>
     */
    boolean hasLaststreamid();
    /**
     * <code>optional int32 laststreamid = 11;</code>
     */
    int getLaststreamid();

    // optional string permission = 12;
    /**
     * <code>optional string permission = 12;</code>
     */
    boolean hasPermission();
    /**
     * <code>optional string permission = 12;</code>
     */
    java.lang.String getPermission();
    /**
     * <code>optional string permission = 12;</code>
     */
    com.google.protobuf.ByteString
        getPermissionBytes();

    // optional string regid = 13;
    /**
     * <code>optional string regid = 13;</code>
     */
    boolean hasRegid();
    /**
     * <code>optional string regid = 13;</code>
     */
    java.lang.String getRegid();
    /**
     * <code>optional string regid = 13;</code>
     */
    com.google.protobuf.ByteString
        getRegidBytes();

    // optional string pkgsignature = 14;
    /**
     * <code>optional string pkgsignature = 14;</code>
     */
    boolean hasPkgsignature();
    /**
     * <code>optional string pkgsignature = 14;</code>
     */
    java.lang.String getPkgsignature();
    /**
     * <code>optional string pkgsignature = 14;</code>
     */
    com.google.protobuf.ByteString
        getPkgsignatureBytes();
  }
  /**
   * Protobuf type {@code DataMessageStanza}
   */
  public static final class DataMessageStanza extends
      com.google.protobuf.GeneratedMessage
      implements DataMessageStanzaOrBuilder {
    // Use DataMessageStanza.newBuilder() to construct.
    private DataMessageStanza(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private DataMessageStanza(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public DataMessageStanza getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private DataMessageStanza(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      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;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              rmqid_ = input.readInt64();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              packetid_ = input.readBytes();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              from_ = input.readBytes();
              break;
            }
            case 34: {
              bitField0_ |= 0x00000008;
              to_ = input.readBytes();
              break;
            }
            case 42: {
              bitField0_ |= 0x00000010;
              category_ = input.readBytes();
              break;
            }
            case 50: {
              bitField0_ |= 0x00000020;
              token_ = input.readBytes();
              break;
            }
            case 58: {
              if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
                appdata_ = new java.util.ArrayList<com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData>();
                mutable_bitField0_ |= 0x00000040;
              }
              appdata_.add(input.readMessage(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData.PARSER, extensionRegistry));
              break;
            }
            case 64: {
              bitField0_ |= 0x00000040;
              fromtrustedserver_ = input.readBool();
              break;
            }
            case 74: {
              bitField0_ |= 0x00000080;
              rmq2Id_ = input.readBytes();
              break;
            }
            case 80: {
              bitField0_ |= 0x00000100;
              streamid_ = input.readInt32();
              break;
            }
            case 88: {
              bitField0_ |= 0x00000200;
              laststreamid_ = input.readInt32();
              break;
            }
            case 98: {
              bitField0_ |= 0x00000400;
              permission_ = input.readBytes();
              break;
            }
            case 106: {
              bitField0_ |= 0x00000800;
              regid_ = input.readBytes();
              break;
            }
            case 114: {
              bitField0_ |= 0x00001000;
              pkgsignature_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
          appdata_ = java.util.Collections.unmodifiableList(appdata_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_DataMessageStanza_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_DataMessageStanza_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.DataMessageStanza.class, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.DataMessageStanza.Builder.class);
    }

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

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

    private int bitField0_;
    // optional int64 rmqid = 1;
    public static final int RMQID_FIELD_NUMBER = 1;
    private long rmqid_;
    /**
     * <code>optional int64 rmqid = 1;</code>
     */
    public boolean hasRmqid() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional int64 rmqid = 1;</code>
     */
    public long getRmqid() {
      return rmqid_;
    }

    // optional string packetid = 2;
    public static final int PACKETID_FIELD_NUMBER = 2;
    private java.lang.Object packetid_;
    /**
     * <code>optional string packetid = 2;</code>
     */
    public boolean hasPacketid() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional string packetid = 2;</code>
     */
    public java.lang.String getPacketid() {
      java.lang.Object ref = packetid_;
      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();
        if (bs.isValidUtf8()) {
          packetid_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string packetid = 2;</code>
     */
    public com.google.protobuf.ByteString
        getPacketidBytes() {
      java.lang.Object ref = packetid_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        packetid_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string from = 3;
    public static final int FROM_FIELD_NUMBER = 3;
    private java.lang.Object from_;
    /**
     * <code>optional string from = 3;</code>
     */
    public boolean hasFrom() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional string from = 3;</code>
     */
    public java.lang.String getFrom() {
      java.lang.Object ref = from_;
      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();
        if (bs.isValidUtf8()) {
          from_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string from = 3;</code>
     */
    public com.google.protobuf.ByteString
        getFromBytes() {
      java.lang.Object ref = from_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        from_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string to = 4;
    public static final int TO_FIELD_NUMBER = 4;
    private java.lang.Object to_;
    /**
     * <code>optional string to = 4;</code>
     */
    public boolean hasTo() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>optional string to = 4;</code>
     */
    public java.lang.String getTo() {
      java.lang.Object ref = to_;
      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();
        if (bs.isValidUtf8()) {
          to_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string to = 4;</code>
     */
    public com.google.protobuf.ByteString
        getToBytes() {
      java.lang.Object ref = to_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        to_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string category = 5;
    public static final int CATEGORY_FIELD_NUMBER = 5;
    private java.lang.Object category_;
    /**
     * <code>optional string category = 5;</code>
     */
    public boolean hasCategory() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>optional string category = 5;</code>
     */
    public java.lang.String getCategory() {
      java.lang.Object ref = category_;
      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();
        if (bs.isValidUtf8()) {
          category_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string category = 5;</code>
     */
    public com.google.protobuf.ByteString
        getCategoryBytes() {
      java.lang.Object ref = category_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        category_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string token = 6;
    public static final int TOKEN_FIELD_NUMBER = 6;
    private java.lang.Object token_;
    /**
     * <code>optional string token = 6;</code>
     */
    public boolean hasToken() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <code>optional string token = 6;</code>
     */
    public java.lang.String getToken() {
      java.lang.Object ref = token_;
      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();
        if (bs.isValidUtf8()) {
          token_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string token = 6;</code>
     */
    public com.google.protobuf.ByteString
        getTokenBytes() {
      java.lang.Object ref = token_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        token_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // repeated .AppData appdata = 7;
    public static final int APPDATA_FIELD_NUMBER = 7;
    private java.util.List<com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData> appdata_;
    /**
     * <code>repeated .AppData appdata = 7;</code>
     */
    public java.util.List<com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData> getAppdataList() {
      return appdata_;
    }
    /**
     * <code>repeated .AppData appdata = 7;</code>
     */
    public java.util.List<? extends com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppDataOrBuilder> 
        getAppdataOrBuilderList() {
      return appdata_;
    }
    /**
     * <code>repeated .AppData appdata = 7;</code>
     */
    public int getAppdataCount() {
      return appdata_.size();
    }
    /**
     * <code>repeated .AppData appdata = 7;</code>
     */
    public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData getAppdata(int index) {
      return appdata_.get(index);
    }
    /**
     * <code>repeated .AppData appdata = 7;</code>
     */
    public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppDataOrBuilder getAppdataOrBuilder(
        int index) {
      return appdata_.get(index);
    }

    // optional bool fromtrustedserver = 8;
    public static final int FROMTRUSTEDSERVER_FIELD_NUMBER = 8;
    private boolean fromtrustedserver_;
    /**
     * <code>optional bool fromtrustedserver = 8;</code>
     */
    public boolean hasFromtrustedserver() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * <code>optional bool fromtrustedserver = 8;</code>
     */
    public boolean getFromtrustedserver() {
      return fromtrustedserver_;
    }

    // optional string rmq2id = 9;
    public static final int RMQ2ID_FIELD_NUMBER = 9;
    private java.lang.Object rmq2Id_;
    /**
     * <code>optional string rmq2id = 9;</code>
     */
    public boolean hasRmq2Id() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * <code>optional string rmq2id = 9;</code>
     */
    public java.lang.String getRmq2Id() {
      java.lang.Object ref = rmq2Id_;
      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();
        if (bs.isValidUtf8()) {
          rmq2Id_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string rmq2id = 9;</code>
     */
    public com.google.protobuf.ByteString
        getRmq2IdBytes() {
      java.lang.Object ref = rmq2Id_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        rmq2Id_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional int32 streamid = 10;
    public static final int STREAMID_FIELD_NUMBER = 10;
    private int streamid_;
    /**
     * <code>optional int32 streamid = 10;</code>
     */
    public boolean hasStreamid() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * <code>optional int32 streamid = 10;</code>
     */
    public int getStreamid() {
      return streamid_;
    }

    // optional int32 laststreamid = 11;
    public static final int LASTSTREAMID_FIELD_NUMBER = 11;
    private int laststreamid_;
    /**
     * <code>optional int32 laststreamid = 11;</code>
     */
    public boolean hasLaststreamid() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     * <code>optional int32 laststreamid = 11;</code>
     */
    public int getLaststreamid() {
      return laststreamid_;
    }

    // optional string permission = 12;
    public static final int PERMISSION_FIELD_NUMBER = 12;
    private java.lang.Object permission_;
    /**
     * <code>optional string permission = 12;</code>
     */
    public boolean hasPermission() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    /**
     * <code>optional string permission = 12;</code>
     */
    public java.lang.String getPermission() {
      java.lang.Object ref = permission_;
      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();
        if (bs.isValidUtf8()) {
          permission_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string permission = 12;</code>
     */
    public com.google.protobuf.ByteString
        getPermissionBytes() {
      java.lang.Object ref = permission_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        permission_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string regid = 13;
    public static final int REGID_FIELD_NUMBER = 13;
    private java.lang.Object regid_;
    /**
     * <code>optional string regid = 13;</code>
     */
    public boolean hasRegid() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    /**
     * <code>optional string regid = 13;</code>
     */
    public java.lang.String getRegid() {
      java.lang.Object ref = regid_;
      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();
        if (bs.isValidUtf8()) {
          regid_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string regid = 13;</code>
     */
    public com.google.protobuf.ByteString
        getRegidBytes() {
      java.lang.Object ref = regid_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        regid_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string pkgsignature = 14;
    public static final int PKGSIGNATURE_FIELD_NUMBER = 14;
    private java.lang.Object pkgsignature_;
    /**
     * <code>optional string pkgsignature = 14;</code>
     */
    public boolean hasPkgsignature() {
      return ((bitField0_ & 0x00001000) == 0x00001000);
    }
    /**
     * <code>optional string pkgsignature = 14;</code>
     */
    public java.lang.String getPkgsignature() {
      java.lang.Object ref = pkgsignature_;
      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();
        if (bs.isValidUtf8()) {
          pkgsignature_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string pkgsignature = 14;</code>
     */
    public com.google.protobuf.ByteString
        getPkgsignatureBytes() {
      java.lang.Object ref = pkgsignature_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        pkgsignature_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      rmqid_ = 0L;
      packetid_ = "";
      from_ = "";
      to_ = "";
      category_ = "";
      token_ = "";
      appdata_ = java.util.Collections.emptyList();
      fromtrustedserver_ = false;
      rmq2Id_ = "";
      streamid_ = 0;
      laststreamid_ = 0;
      permission_ = "";
      regid_ = "";
      pkgsignature_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(1, rmqid_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getPacketidBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getFromBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBytes(4, getToBytes());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBytes(5, getCategoryBytes());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBytes(6, getTokenBytes());
      }
      for (int i = 0; i < appdata_.size(); i++) {
        output.writeMessage(7, appdata_.get(i));
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeBool(8, fromtrustedserver_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeBytes(9, getRmq2IdBytes());
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeInt32(10, streamid_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeInt32(11, laststreamid_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeBytes(12, getPermissionBytes());
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        output.writeBytes(13, getRegidBytes());
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        output.writeBytes(14, getPkgsignatureBytes());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, rmqid_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getPacketidBytes());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getFromBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, getToBytes());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(5, getCategoryBytes());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(6, getTokenBytes());
      }
      for (int i = 0; i < appdata_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, appdata_.get(i));
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(8, fromtrustedserver_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(9, getRmq2IdBytes());
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(10, streamid_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(11, laststreamid_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(12, getPermissionBytes());
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(13, getRegidBytes());
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(14, getPkgsignatureBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.DataMessageStanza parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.DataMessageStanza parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.DataMessageStanza parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.DataMessageStanza parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.DataMessageStanza parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.DataMessageStanza parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.DataMessageStanza parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.DataMessageStanza parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.DataMessageStanza parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.DataMessageStanza parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.DataMessageStanza prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code DataMessageStanza}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.DataMessageStanzaOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_DataMessageStanza_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_DataMessageStanza_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.DataMessageStanza.class, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.DataMessageStanza.Builder.class);
      }

      // Construct using com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.DataMessageStanza.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        rmqid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        packetid_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        from_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        to_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        category_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        token_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        if (appdataBuilder_ == null) {
          appdata_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
        } else {
          appdataBuilder_.clear();
        }
        fromtrustedserver_ = false;
        bitField0_ = (bitField0_ & ~0x00000080);
        rmq2Id_ = "";
        bitField0_ = (bitField0_ & ~0x00000100);
        streamid_ = 0;
        bitField0_ = (bitField0_ & ~0x00000200);
        laststreamid_ = 0;
        bitField0_ = (bitField0_ & ~0x00000400);
        permission_ = "";
        bitField0_ = (bitField0_ & ~0x00000800);
        regid_ = "";
        bitField0_ = (bitField0_ & ~0x00001000);
        pkgsignature_ = "";
        bitField0_ = (bitField0_ & ~0x00002000);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_DataMessageStanza_descriptor;
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.DataMessageStanza getDefaultInstanceForType() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.DataMessageStanza.getDefaultInstance();
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.DataMessageStanza build() {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.DataMessageStanza result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.DataMessageStanza buildPartial() {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.DataMessageStanza result = new com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.DataMessageStanza(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.rmqid_ = rmqid_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.packetid_ = packetid_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.from_ = from_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.to_ = to_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.category_ = category_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.token_ = token_;
        if (appdataBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040)) {
            appdata_ = java.util.Collections.unmodifiableList(appdata_);
            bitField0_ = (bitField0_ & ~0x00000040);
          }
          result.appdata_ = appdata_;
        } else {
          result.appdata_ = appdataBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000040;
        }
        result.fromtrustedserver_ = fromtrustedserver_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000080;
        }
        result.rmq2Id_ = rmq2Id_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000100;
        }
        result.streamid_ = streamid_;
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000200;
        }
        result.laststreamid_ = laststreamid_;
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000400;
        }
        result.permission_ = permission_;
        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
          to_bitField0_ |= 0x00000800;
        }
        result.regid_ = regid_;
        if (((from_bitField0_ & 0x00002000) == 0x00002000)) {
          to_bitField0_ |= 0x00001000;
        }
        result.pkgsignature_ = pkgsignature_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.DataMessageStanza) {
          return mergeFrom((com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.DataMessageStanza)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.DataMessageStanza other) {
        if (other == com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.DataMessageStanza.getDefaultInstance()) return this;
        if (other.hasRmqid()) {
          setRmqid(other.getRmqid());
        }
        if (other.hasPacketid()) {
          bitField0_ |= 0x00000002;
          packetid_ = other.packetid_;
          onChanged();
        }
        if (other.hasFrom()) {
          bitField0_ |= 0x00000004;
          from_ = other.from_;
          onChanged();
        }
        if (other.hasTo()) {
          bitField0_ |= 0x00000008;
          to_ = other.to_;
          onChanged();
        }
        if (other.hasCategory()) {
          bitField0_ |= 0x00000010;
          category_ = other.category_;
          onChanged();
        }
        if (other.hasToken()) {
          bitField0_ |= 0x00000020;
          token_ = other.token_;
          onChanged();
        }
        if (appdataBuilder_ == null) {
          if (!other.appdata_.isEmpty()) {
            if (appdata_.isEmpty()) {
              appdata_ = other.appdata_;
              bitField0_ = (bitField0_ & ~0x00000040);
            } else {
              ensureAppdataIsMutable();
              appdata_.addAll(other.appdata_);
            }
            onChanged();
          }
        } else {
          if (!other.appdata_.isEmpty()) {
            if (appdataBuilder_.isEmpty()) {
              appdataBuilder_.dispose();
              appdataBuilder_ = null;
              appdata_ = other.appdata_;
              bitField0_ = (bitField0_ & ~0x00000040);
              appdataBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getAppdataFieldBuilder() : null;
            } else {
              appdataBuilder_.addAllMessages(other.appdata_);
            }
          }
        }
        if (other.hasFromtrustedserver()) {
          setFromtrustedserver(other.getFromtrustedserver());
        }
        if (other.hasRmq2Id()) {
          bitField0_ |= 0x00000100;
          rmq2Id_ = other.rmq2Id_;
          onChanged();
        }
        if (other.hasStreamid()) {
          setStreamid(other.getStreamid());
        }
        if (other.hasLaststreamid()) {
          setLaststreamid(other.getLaststreamid());
        }
        if (other.hasPermission()) {
          bitField0_ |= 0x00000800;
          permission_ = other.permission_;
          onChanged();
        }
        if (other.hasRegid()) {
          bitField0_ |= 0x00001000;
          regid_ = other.regid_;
          onChanged();
        }
        if (other.hasPkgsignature()) {
          bitField0_ |= 0x00002000;
          pkgsignature_ = other.pkgsignature_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.DataMessageStanza parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.DataMessageStanza) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional int64 rmqid = 1;
      private long rmqid_ ;
      /**
       * <code>optional int64 rmqid = 1;</code>
       */
      public boolean hasRmqid() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional int64 rmqid = 1;</code>
       */
      public long getRmqid() {
        return rmqid_;
      }
      /**
       * <code>optional int64 rmqid = 1;</code>
       */
      public Builder setRmqid(long value) {
        bitField0_ |= 0x00000001;
        rmqid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 rmqid = 1;</code>
       */
      public Builder clearRmqid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        rmqid_ = 0L;
        onChanged();
        return this;
      }

      // optional string packetid = 2;
      private java.lang.Object packetid_ = "";
      /**
       * <code>optional string packetid = 2;</code>
       */
      public boolean hasPacketid() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional string packetid = 2;</code>
       */
      public java.lang.String getPacketid() {
        java.lang.Object ref = packetid_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          packetid_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string packetid = 2;</code>
       */
      public com.google.protobuf.ByteString
          getPacketidBytes() {
        java.lang.Object ref = packetid_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          packetid_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string packetid = 2;</code>
       */
      public Builder setPacketid(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        packetid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string packetid = 2;</code>
       */
      public Builder clearPacketid() {
        bitField0_ = (bitField0_ & ~0x00000002);
        packetid_ = getDefaultInstance().getPacketid();
        onChanged();
        return this;
      }
      /**
       * <code>optional string packetid = 2;</code>
       */
      public Builder setPacketidBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        packetid_ = value;
        onChanged();
        return this;
      }

      // optional string from = 3;
      private java.lang.Object from_ = "";
      /**
       * <code>optional string from = 3;</code>
       */
      public boolean hasFrom() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional string from = 3;</code>
       */
      public java.lang.String getFrom() {
        java.lang.Object ref = from_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          from_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string from = 3;</code>
       */
      public com.google.protobuf.ByteString
          getFromBytes() {
        java.lang.Object ref = from_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          from_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string from = 3;</code>
       */
      public Builder setFrom(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        from_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string from = 3;</code>
       */
      public Builder clearFrom() {
        bitField0_ = (bitField0_ & ~0x00000004);
        from_ = getDefaultInstance().getFrom();
        onChanged();
        return this;
      }
      /**
       * <code>optional string from = 3;</code>
       */
      public Builder setFromBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        from_ = value;
        onChanged();
        return this;
      }

      // optional string to = 4;
      private java.lang.Object to_ = "";
      /**
       * <code>optional string to = 4;</code>
       */
      public boolean hasTo() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional string to = 4;</code>
       */
      public java.lang.String getTo() {
        java.lang.Object ref = to_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          to_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string to = 4;</code>
       */
      public com.google.protobuf.ByteString
          getToBytes() {
        java.lang.Object ref = to_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          to_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string to = 4;</code>
       */
      public Builder setTo(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        to_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string to = 4;</code>
       */
      public Builder clearTo() {
        bitField0_ = (bitField0_ & ~0x00000008);
        to_ = getDefaultInstance().getTo();
        onChanged();
        return this;
      }
      /**
       * <code>optional string to = 4;</code>
       */
      public Builder setToBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        to_ = value;
        onChanged();
        return this;
      }

      // optional string category = 5;
      private java.lang.Object category_ = "";
      /**
       * <code>optional string category = 5;</code>
       */
      public boolean hasCategory() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>optional string category = 5;</code>
       */
      public java.lang.String getCategory() {
        java.lang.Object ref = category_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          category_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string category = 5;</code>
       */
      public com.google.protobuf.ByteString
          getCategoryBytes() {
        java.lang.Object ref = category_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          category_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string category = 5;</code>
       */
      public Builder setCategory(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        category_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string category = 5;</code>
       */
      public Builder clearCategory() {
        bitField0_ = (bitField0_ & ~0x00000010);
        category_ = getDefaultInstance().getCategory();
        onChanged();
        return this;
      }
      /**
       * <code>optional string category = 5;</code>
       */
      public Builder setCategoryBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        category_ = value;
        onChanged();
        return this;
      }

      // optional string token = 6;
      private java.lang.Object token_ = "";
      /**
       * <code>optional string token = 6;</code>
       */
      public boolean hasToken() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>optional string token = 6;</code>
       */
      public java.lang.String getToken() {
        java.lang.Object ref = token_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          token_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string token = 6;</code>
       */
      public com.google.protobuf.ByteString
          getTokenBytes() {
        java.lang.Object ref = token_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          token_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string token = 6;</code>
       */
      public Builder setToken(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        token_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string token = 6;</code>
       */
      public Builder clearToken() {
        bitField0_ = (bitField0_ & ~0x00000020);
        token_ = getDefaultInstance().getToken();
        onChanged();
        return this;
      }
      /**
       * <code>optional string token = 6;</code>
       */
      public Builder setTokenBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        token_ = value;
        onChanged();
        return this;
      }

      // repeated .AppData appdata = 7;
      private java.util.List<com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData> appdata_ =
        java.util.Collections.emptyList();
      private void ensureAppdataIsMutable() {
        if (!((bitField0_ & 0x00000040) == 0x00000040)) {
          appdata_ = new java.util.ArrayList<com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData>(appdata_);
          bitField0_ |= 0x00000040;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData.Builder, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppDataOrBuilder> appdataBuilder_;

      /**
       * <code>repeated .AppData appdata = 7;</code>
       */
      public java.util.List<com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData> getAppdataList() {
        if (appdataBuilder_ == null) {
          return java.util.Collections.unmodifiableList(appdata_);
        } else {
          return appdataBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .AppData appdata = 7;</code>
       */
      public int getAppdataCount() {
        if (appdataBuilder_ == null) {
          return appdata_.size();
        } else {
          return appdataBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .AppData appdata = 7;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData getAppdata(int index) {
        if (appdataBuilder_ == null) {
          return appdata_.get(index);
        } else {
          return appdataBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .AppData appdata = 7;</code>
       */
      public Builder setAppdata(
          int index, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData value) {
        if (appdataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAppdataIsMutable();
          appdata_.set(index, value);
          onChanged();
        } else {
          appdataBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .AppData appdata = 7;</code>
       */
      public Builder setAppdata(
          int index, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData.Builder builderForValue) {
        if (appdataBuilder_ == null) {
          ensureAppdataIsMutable();
          appdata_.set(index, builderForValue.build());
          onChanged();
        } else {
          appdataBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .AppData appdata = 7;</code>
       */
      public Builder addAppdata(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData value) {
        if (appdataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAppdataIsMutable();
          appdata_.add(value);
          onChanged();
        } else {
          appdataBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .AppData appdata = 7;</code>
       */
      public Builder addAppdata(
          int index, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData value) {
        if (appdataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAppdataIsMutable();
          appdata_.add(index, value);
          onChanged();
        } else {
          appdataBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .AppData appdata = 7;</code>
       */
      public Builder addAppdata(
          com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData.Builder builderForValue) {
        if (appdataBuilder_ == null) {
          ensureAppdataIsMutable();
          appdata_.add(builderForValue.build());
          onChanged();
        } else {
          appdataBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .AppData appdata = 7;</code>
       */
      public Builder addAppdata(
          int index, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData.Builder builderForValue) {
        if (appdataBuilder_ == null) {
          ensureAppdataIsMutable();
          appdata_.add(index, builderForValue.build());
          onChanged();
        } else {
          appdataBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .AppData appdata = 7;</code>
       */
      public Builder addAllAppdata(
          java.lang.Iterable<? extends com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData> values) {
        if (appdataBuilder_ == null) {
          ensureAppdataIsMutable();
          super.addAll(values, appdata_);
          onChanged();
        } else {
          appdataBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .AppData appdata = 7;</code>
       */
      public Builder clearAppdata() {
        if (appdataBuilder_ == null) {
          appdata_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
          onChanged();
        } else {
          appdataBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .AppData appdata = 7;</code>
       */
      public Builder removeAppdata(int index) {
        if (appdataBuilder_ == null) {
          ensureAppdataIsMutable();
          appdata_.remove(index);
          onChanged();
        } else {
          appdataBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .AppData appdata = 7;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData.Builder getAppdataBuilder(
          int index) {
        return getAppdataFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .AppData appdata = 7;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppDataOrBuilder getAppdataOrBuilder(
          int index) {
        if (appdataBuilder_ == null) {
          return appdata_.get(index);  } else {
          return appdataBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .AppData appdata = 7;</code>
       */
      public java.util.List<? extends com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppDataOrBuilder> 
           getAppdataOrBuilderList() {
        if (appdataBuilder_ != null) {
          return appdataBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(appdata_);
        }
      }
      /**
       * <code>repeated .AppData appdata = 7;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData.Builder addAppdataBuilder() {
        return getAppdataFieldBuilder().addBuilder(
            com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData.getDefaultInstance());
      }
      /**
       * <code>repeated .AppData appdata = 7;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData.Builder addAppdataBuilder(
          int index) {
        return getAppdataFieldBuilder().addBuilder(
            index, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData.getDefaultInstance());
      }
      /**
       * <code>repeated .AppData appdata = 7;</code>
       */
      public java.util.List<com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData.Builder> 
           getAppdataBuilderList() {
        return getAppdataFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData.Builder, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppDataOrBuilder> 
          getAppdataFieldBuilder() {
        if (appdataBuilder_ == null) {
          appdataBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData.Builder, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppDataOrBuilder>(
                  appdata_,
                  ((bitField0_ & 0x00000040) == 0x00000040),
                  getParentForChildren(),
                  isClean());
          appdata_ = null;
        }
        return appdataBuilder_;
      }

      // optional bool fromtrustedserver = 8;
      private boolean fromtrustedserver_ ;
      /**
       * <code>optional bool fromtrustedserver = 8;</code>
       */
      public boolean hasFromtrustedserver() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * <code>optional bool fromtrustedserver = 8;</code>
       */
      public boolean getFromtrustedserver() {
        return fromtrustedserver_;
      }
      /**
       * <code>optional bool fromtrustedserver = 8;</code>
       */
      public Builder setFromtrustedserver(boolean value) {
        bitField0_ |= 0x00000080;
        fromtrustedserver_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool fromtrustedserver = 8;</code>
       */
      public Builder clearFromtrustedserver() {
        bitField0_ = (bitField0_ & ~0x00000080);
        fromtrustedserver_ = false;
        onChanged();
        return this;
      }

      // optional string rmq2id = 9;
      private java.lang.Object rmq2Id_ = "";
      /**
       * <code>optional string rmq2id = 9;</code>
       */
      public boolean hasRmq2Id() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * <code>optional string rmq2id = 9;</code>
       */
      public java.lang.String getRmq2Id() {
        java.lang.Object ref = rmq2Id_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          rmq2Id_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string rmq2id = 9;</code>
       */
      public com.google.protobuf.ByteString
          getRmq2IdBytes() {
        java.lang.Object ref = rmq2Id_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          rmq2Id_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string rmq2id = 9;</code>
       */
      public Builder setRmq2Id(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000100;
        rmq2Id_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string rmq2id = 9;</code>
       */
      public Builder clearRmq2Id() {
        bitField0_ = (bitField0_ & ~0x00000100);
        rmq2Id_ = getDefaultInstance().getRmq2Id();
        onChanged();
        return this;
      }
      /**
       * <code>optional string rmq2id = 9;</code>
       */
      public Builder setRmq2IdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000100;
        rmq2Id_ = value;
        onChanged();
        return this;
      }

      // optional int32 streamid = 10;
      private int streamid_ ;
      /**
       * <code>optional int32 streamid = 10;</code>
       */
      public boolean hasStreamid() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * <code>optional int32 streamid = 10;</code>
       */
      public int getStreamid() {
        return streamid_;
      }
      /**
       * <code>optional int32 streamid = 10;</code>
       */
      public Builder setStreamid(int value) {
        bitField0_ |= 0x00000200;
        streamid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 streamid = 10;</code>
       */
      public Builder clearStreamid() {
        bitField0_ = (bitField0_ & ~0x00000200);
        streamid_ = 0;
        onChanged();
        return this;
      }

      // optional int32 laststreamid = 11;
      private int laststreamid_ ;
      /**
       * <code>optional int32 laststreamid = 11;</code>
       */
      public boolean hasLaststreamid() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       * <code>optional int32 laststreamid = 11;</code>
       */
      public int getLaststreamid() {
        return laststreamid_;
      }
      /**
       * <code>optional int32 laststreamid = 11;</code>
       */
      public Builder setLaststreamid(int value) {
        bitField0_ |= 0x00000400;
        laststreamid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 laststreamid = 11;</code>
       */
      public Builder clearLaststreamid() {
        bitField0_ = (bitField0_ & ~0x00000400);
        laststreamid_ = 0;
        onChanged();
        return this;
      }

      // optional string permission = 12;
      private java.lang.Object permission_ = "";
      /**
       * <code>optional string permission = 12;</code>
       */
      public boolean hasPermission() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      /**
       * <code>optional string permission = 12;</code>
       */
      public java.lang.String getPermission() {
        java.lang.Object ref = permission_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          permission_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string permission = 12;</code>
       */
      public com.google.protobuf.ByteString
          getPermissionBytes() {
        java.lang.Object ref = permission_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          permission_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string permission = 12;</code>
       */
      public Builder setPermission(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000800;
        permission_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string permission = 12;</code>
       */
      public Builder clearPermission() {
        bitField0_ = (bitField0_ & ~0x00000800);
        permission_ = getDefaultInstance().getPermission();
        onChanged();
        return this;
      }
      /**
       * <code>optional string permission = 12;</code>
       */
      public Builder setPermissionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000800;
        permission_ = value;
        onChanged();
        return this;
      }

      // optional string regid = 13;
      private java.lang.Object regid_ = "";
      /**
       * <code>optional string regid = 13;</code>
       */
      public boolean hasRegid() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }
      /**
       * <code>optional string regid = 13;</code>
       */
      public java.lang.String getRegid() {
        java.lang.Object ref = regid_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          regid_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string regid = 13;</code>
       */
      public com.google.protobuf.ByteString
          getRegidBytes() {
        java.lang.Object ref = regid_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          regid_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string regid = 13;</code>
       */
      public Builder setRegid(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00001000;
        regid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string regid = 13;</code>
       */
      public Builder clearRegid() {
        bitField0_ = (bitField0_ & ~0x00001000);
        regid_ = getDefaultInstance().getRegid();
        onChanged();
        return this;
      }
      /**
       * <code>optional string regid = 13;</code>
       */
      public Builder setRegidBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00001000;
        regid_ = value;
        onChanged();
        return this;
      }

      // optional string pkgsignature = 14;
      private java.lang.Object pkgsignature_ = "";
      /**
       * <code>optional string pkgsignature = 14;</code>
       */
      public boolean hasPkgsignature() {
        return ((bitField0_ & 0x00002000) == 0x00002000);
      }
      /**
       * <code>optional string pkgsignature = 14;</code>
       */
      public java.lang.String getPkgsignature() {
        java.lang.Object ref = pkgsignature_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          pkgsignature_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string pkgsignature = 14;</code>
       */
      public com.google.protobuf.ByteString
          getPkgsignatureBytes() {
        java.lang.Object ref = pkgsignature_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          pkgsignature_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string pkgsignature = 14;</code>
       */
      public Builder setPkgsignature(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00002000;
        pkgsignature_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string pkgsignature = 14;</code>
       */
      public Builder clearPkgsignature() {
        bitField0_ = (bitField0_ & ~0x00002000);
        pkgsignature_ = getDefaultInstance().getPkgsignature();
        onChanged();
        return this;
      }
      /**
       * <code>optional string pkgsignature = 14;</code>
       */
      public Builder setPkgsignatureBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00002000;
        pkgsignature_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:DataMessageStanza)
    }

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

    // @@protoc_insertion_point(class_scope:DataMessageStanza)
  }

  public interface AppDataOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

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

    // optional string value = 2;
    /**
     * <code>optional string value = 2;</code>
     */
    boolean hasValue();
    /**
     * <code>optional string value = 2;</code>
     */
    java.lang.String getValue();
    /**
     * <code>optional string value = 2;</code>
     */
    com.google.protobuf.ByteString
        getValueBytes();
  }
  /**
   * Protobuf type {@code AppData}
   */
  public static final class AppData extends
      com.google.protobuf.GeneratedMessage
      implements AppDataOrBuilder {
    // Use AppData.newBuilder() to construct.
    private AppData(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private AppData(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public AppData getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private AppData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      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;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              key_ = input.readBytes();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              value_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_AppData_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_AppData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData.class, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData.Builder.class);
    }

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

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

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

    // optional string value = 2;
    public static final int VALUE_FIELD_NUMBER = 2;
    private java.lang.Object value_;
    /**
     * <code>optional string value = 2;</code>
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional string value = 2;</code>
     */
    public java.lang.String getValue() {
      java.lang.Object ref = value_;
      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();
        if (bs.isValidUtf8()) {
          value_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string value = 2;</code>
     */
    public com.google.protobuf.ByteString
        getValueBytes() {
      java.lang.Object ref = value_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        value_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getKeyBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getValueBytes());
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getKeyBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, getValueBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code AppData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_AppData_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_AppData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData.class, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData.Builder.class);
      }

      // Construct using com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

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

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_AppData_descriptor;
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData getDefaultInstanceForType() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData.getDefaultInstance();
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData build() {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData buildPartial() {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData result = new com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.key_ = key_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.value_ = value_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData) {
          return mergeFrom((com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData other) {
        if (other == com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData.getDefaultInstance()) return this;
        if (other.hasKey()) {
          bitField0_ |= 0x00000001;
          key_ = other.key_;
          onChanged();
        }
        if (other.hasValue()) {
          bitField0_ |= 0x00000002;
          value_ = other.value_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.AppData) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

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

      // optional string value = 2;
      private java.lang.Object value_ = "";
      /**
       * <code>optional string value = 2;</code>
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional string value = 2;</code>
       */
      public java.lang.String getValue() {
        java.lang.Object ref = value_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          value_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string value = 2;</code>
       */
      public com.google.protobuf.ByteString
          getValueBytes() {
        java.lang.Object ref = value_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          value_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string value = 2;</code>
       */
      public Builder setValue(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string value = 2;</code>
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = getDefaultInstance().getValue();
        onChanged();
        return this;
      }
      /**
       * <code>optional string value = 2;</code>
       */
      public Builder setValueBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:AppData)
    }

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

    // @@protoc_insertion_point(class_scope:AppData)
  }

  public interface IQStanzaOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional int64 rmqid = 1;
    /**
     * <code>optional int64 rmqid = 1;</code>
     */
    boolean hasRmqid();
    /**
     * <code>optional int64 rmqid = 1;</code>
     */
    long getRmqid();

    // optional int32 type = 2;
    /**
     * <code>optional int32 type = 2;</code>
     */
    boolean hasType();
    /**
     * <code>optional int32 type = 2;</code>
     */
    int getType();

    // optional string packetid = 3;
    /**
     * <code>optional string packetid = 3;</code>
     */
    boolean hasPacketid();
    /**
     * <code>optional string packetid = 3;</code>
     */
    java.lang.String getPacketid();
    /**
     * <code>optional string packetid = 3;</code>
     */
    com.google.protobuf.ByteString
        getPacketidBytes();

    // optional string from = 4;
    /**
     * <code>optional string from = 4;</code>
     */
    boolean hasFrom();
    /**
     * <code>optional string from = 4;</code>
     */
    java.lang.String getFrom();
    /**
     * <code>optional string from = 4;</code>
     */
    com.google.protobuf.ByteString
        getFromBytes();

    // optional string to = 5;
    /**
     * <code>optional string to = 5;</code>
     */
    boolean hasTo();
    /**
     * <code>optional string to = 5;</code>
     */
    java.lang.String getTo();
    /**
     * <code>optional string to = 5;</code>
     */
    com.google.protobuf.ByteString
        getToBytes();

    // optional .XMPPError error = 6;
    /**
     * <code>optional .XMPPError error = 6;</code>
     */
    boolean hasError();
    /**
     * <code>optional .XMPPError error = 6;</code>
     */
    com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError getError();
    /**
     * <code>optional .XMPPError error = 6;</code>
     */
    com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPErrorOrBuilder getErrorOrBuilder();

    // optional .Extension extension = 7;
    /**
     * <code>optional .Extension extension = 7;</code>
     */
    boolean hasExtension();
    /**
     * <code>optional .Extension extension = 7;</code>
     */
    com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension getExtension();
    /**
     * <code>optional .Extension extension = 7;</code>
     */
    com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.ExtensionOrBuilder getExtensionOrBuilder();

    // optional string rmq2id = 8;
    /**
     * <code>optional string rmq2id = 8;</code>
     */
    boolean hasRmq2Id();
    /**
     * <code>optional string rmq2id = 8;</code>
     */
    java.lang.String getRmq2Id();
    /**
     * <code>optional string rmq2id = 8;</code>
     */
    com.google.protobuf.ByteString
        getRmq2IdBytes();

    // optional int32 streamid = 9;
    /**
     * <code>optional int32 streamid = 9;</code>
     */
    boolean hasStreamid();
    /**
     * <code>optional int32 streamid = 9;</code>
     */
    int getStreamid();

    // optional int32 laststreamid = 10;
    /**
     * <code>optional int32 laststreamid = 10;</code>
     */
    boolean hasLaststreamid();
    /**
     * <code>optional int32 laststreamid = 10;</code>
     */
    int getLaststreamid();

    // optional int64 accountid = 11;
    /**
     * <code>optional int64 accountid = 11;</code>
     */
    boolean hasAccountid();
    /**
     * <code>optional int64 accountid = 11;</code>
     */
    long getAccountid();
  }
  /**
   * Protobuf type {@code IQStanza}
   */
  public static final class IQStanza extends
      com.google.protobuf.GeneratedMessage
      implements IQStanzaOrBuilder {
    // Use IQStanza.newBuilder() to construct.
    private IQStanza(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private IQStanza(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public IQStanza getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private IQStanza(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      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;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              rmqid_ = input.readInt64();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              type_ = input.readInt32();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              packetid_ = input.readBytes();
              break;
            }
            case 34: {
              bitField0_ |= 0x00000008;
              from_ = input.readBytes();
              break;
            }
            case 42: {
              bitField0_ |= 0x00000010;
              to_ = input.readBytes();
              break;
            }
            case 50: {
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.Builder subBuilder = null;
              if (((bitField0_ & 0x00000020) == 0x00000020)) {
                subBuilder = error_.toBuilder();
              }
              error_ = input.readMessage(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(error_);
                error_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000020;
              break;
            }
            case 58: {
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.Builder subBuilder = null;
              if (((bitField0_ & 0x00000040) == 0x00000040)) {
                subBuilder = extension_.toBuilder();
              }
              extension_ = input.readMessage(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(extension_);
                extension_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000040;
              break;
            }
            case 66: {
              bitField0_ |= 0x00000080;
              rmq2Id_ = input.readBytes();
              break;
            }
            case 72: {
              bitField0_ |= 0x00000100;
              streamid_ = input.readInt32();
              break;
            }
            case 80: {
              bitField0_ |= 0x00000200;
              laststreamid_ = input.readInt32();
              break;
            }
            case 88: {
              bitField0_ |= 0x00000400;
              accountid_ = input.readInt64();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_IQStanza_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_IQStanza_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.IQStanza.class, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.IQStanza.Builder.class);
    }

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

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

    private int bitField0_;
    // optional int64 rmqid = 1;
    public static final int RMQID_FIELD_NUMBER = 1;
    private long rmqid_;
    /**
     * <code>optional int64 rmqid = 1;</code>
     */
    public boolean hasRmqid() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional int64 rmqid = 1;</code>
     */
    public long getRmqid() {
      return rmqid_;
    }

    // optional int32 type = 2;
    public static final int TYPE_FIELD_NUMBER = 2;
    private int type_;
    /**
     * <code>optional int32 type = 2;</code>
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional int32 type = 2;</code>
     */
    public int getType() {
      return type_;
    }

    // optional string packetid = 3;
    public static final int PACKETID_FIELD_NUMBER = 3;
    private java.lang.Object packetid_;
    /**
     * <code>optional string packetid = 3;</code>
     */
    public boolean hasPacketid() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional string packetid = 3;</code>
     */
    public java.lang.String getPacketid() {
      java.lang.Object ref = packetid_;
      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();
        if (bs.isValidUtf8()) {
          packetid_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string packetid = 3;</code>
     */
    public com.google.protobuf.ByteString
        getPacketidBytes() {
      java.lang.Object ref = packetid_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        packetid_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string from = 4;
    public static final int FROM_FIELD_NUMBER = 4;
    private java.lang.Object from_;
    /**
     * <code>optional string from = 4;</code>
     */
    public boolean hasFrom() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>optional string from = 4;</code>
     */
    public java.lang.String getFrom() {
      java.lang.Object ref = from_;
      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();
        if (bs.isValidUtf8()) {
          from_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string from = 4;</code>
     */
    public com.google.protobuf.ByteString
        getFromBytes() {
      java.lang.Object ref = from_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        from_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string to = 5;
    public static final int TO_FIELD_NUMBER = 5;
    private java.lang.Object to_;
    /**
     * <code>optional string to = 5;</code>
     */
    public boolean hasTo() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>optional string to = 5;</code>
     */
    public java.lang.String getTo() {
      java.lang.Object ref = to_;
      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();
        if (bs.isValidUtf8()) {
          to_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string to = 5;</code>
     */
    public com.google.protobuf.ByteString
        getToBytes() {
      java.lang.Object ref = to_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        to_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional .XMPPError error = 6;
    public static final int ERROR_FIELD_NUMBER = 6;
    private com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError error_;
    /**
     * <code>optional .XMPPError error = 6;</code>
     */
    public boolean hasError() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <code>optional .XMPPError error = 6;</code>
     */
    public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError getError() {
      return error_;
    }
    /**
     * <code>optional .XMPPError error = 6;</code>
     */
    public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPErrorOrBuilder getErrorOrBuilder() {
      return error_;
    }

    // optional .Extension extension = 7;
    public static final int EXTENSION_FIELD_NUMBER = 7;
    private com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension extension_;
    /**
     * <code>optional .Extension extension = 7;</code>
     */
    public boolean hasExtension() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * <code>optional .Extension extension = 7;</code>
     */
    public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension getExtension() {
      return extension_;
    }
    /**
     * <code>optional .Extension extension = 7;</code>
     */
    public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.ExtensionOrBuilder getExtensionOrBuilder() {
      return extension_;
    }

    // optional string rmq2id = 8;
    public static final int RMQ2ID_FIELD_NUMBER = 8;
    private java.lang.Object rmq2Id_;
    /**
     * <code>optional string rmq2id = 8;</code>
     */
    public boolean hasRmq2Id() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * <code>optional string rmq2id = 8;</code>
     */
    public java.lang.String getRmq2Id() {
      java.lang.Object ref = rmq2Id_;
      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();
        if (bs.isValidUtf8()) {
          rmq2Id_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string rmq2id = 8;</code>
     */
    public com.google.protobuf.ByteString
        getRmq2IdBytes() {
      java.lang.Object ref = rmq2Id_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        rmq2Id_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional int32 streamid = 9;
    public static final int STREAMID_FIELD_NUMBER = 9;
    private int streamid_;
    /**
     * <code>optional int32 streamid = 9;</code>
     */
    public boolean hasStreamid() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * <code>optional int32 streamid = 9;</code>
     */
    public int getStreamid() {
      return streamid_;
    }

    // optional int32 laststreamid = 10;
    public static final int LASTSTREAMID_FIELD_NUMBER = 10;
    private int laststreamid_;
    /**
     * <code>optional int32 laststreamid = 10;</code>
     */
    public boolean hasLaststreamid() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     * <code>optional int32 laststreamid = 10;</code>
     */
    public int getLaststreamid() {
      return laststreamid_;
    }

    // optional int64 accountid = 11;
    public static final int ACCOUNTID_FIELD_NUMBER = 11;
    private long accountid_;
    /**
     * <code>optional int64 accountid = 11;</code>
     */
    public boolean hasAccountid() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    /**
     * <code>optional int64 accountid = 11;</code>
     */
    public long getAccountid() {
      return accountid_;
    }

    private void initFields() {
      rmqid_ = 0L;
      type_ = 0;
      packetid_ = "";
      from_ = "";
      to_ = "";
      error_ = com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.getDefaultInstance();
      extension_ = com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.getDefaultInstance();
      rmq2Id_ = "";
      streamid_ = 0;
      laststreamid_ = 0;
      accountid_ = 0L;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(1, rmqid_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, type_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getPacketidBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBytes(4, getFromBytes());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBytes(5, getToBytes());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeMessage(6, error_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeMessage(7, extension_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeBytes(8, getRmq2IdBytes());
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeInt32(9, streamid_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeInt32(10, laststreamid_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeInt64(11, accountid_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, rmqid_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, type_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getPacketidBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, getFromBytes());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(5, getToBytes());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, error_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, extension_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(8, getRmq2IdBytes());
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(9, streamid_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(10, laststreamid_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(11, accountid_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.IQStanza parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.IQStanza parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.IQStanza parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.IQStanza parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.IQStanza parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.IQStanza parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.IQStanza parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.IQStanza parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.IQStanza parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.IQStanza parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.IQStanza prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code IQStanza}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.IQStanzaOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_IQStanza_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_IQStanza_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.IQStanza.class, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.IQStanza.Builder.class);
      }

      // Construct using com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.IQStanza.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        rmqid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        packetid_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        from_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        to_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        if (errorBuilder_ == null) {
          error_ = com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.getDefaultInstance();
        } else {
          errorBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        if (extensionBuilder_ == null) {
          extension_ = com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.getDefaultInstance();
        } else {
          extensionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        rmq2Id_ = "";
        bitField0_ = (bitField0_ & ~0x00000080);
        streamid_ = 0;
        bitField0_ = (bitField0_ & ~0x00000100);
        laststreamid_ = 0;
        bitField0_ = (bitField0_ & ~0x00000200);
        accountid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000400);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_IQStanza_descriptor;
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.IQStanza getDefaultInstanceForType() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.IQStanza.getDefaultInstance();
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.IQStanza build() {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.IQStanza result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.IQStanza buildPartial() {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.IQStanza result = new com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.IQStanza(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.rmqid_ = rmqid_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.packetid_ = packetid_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.from_ = from_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.to_ = to_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        if (errorBuilder_ == null) {
          result.error_ = error_;
        } else {
          result.error_ = errorBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        if (extensionBuilder_ == null) {
          result.extension_ = extension_;
        } else {
          result.extension_ = extensionBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.rmq2Id_ = rmq2Id_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.streamid_ = streamid_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        result.laststreamid_ = laststreamid_;
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000400;
        }
        result.accountid_ = accountid_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.IQStanza) {
          return mergeFrom((com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.IQStanza)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.IQStanza other) {
        if (other == com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.IQStanza.getDefaultInstance()) return this;
        if (other.hasRmqid()) {
          setRmqid(other.getRmqid());
        }
        if (other.hasType()) {
          setType(other.getType());
        }
        if (other.hasPacketid()) {
          bitField0_ |= 0x00000004;
          packetid_ = other.packetid_;
          onChanged();
        }
        if (other.hasFrom()) {
          bitField0_ |= 0x00000008;
          from_ = other.from_;
          onChanged();
        }
        if (other.hasTo()) {
          bitField0_ |= 0x00000010;
          to_ = other.to_;
          onChanged();
        }
        if (other.hasError()) {
          mergeError(other.getError());
        }
        if (other.hasExtension()) {
          mergeExtension(other.getExtension());
        }
        if (other.hasRmq2Id()) {
          bitField0_ |= 0x00000080;
          rmq2Id_ = other.rmq2Id_;
          onChanged();
        }
        if (other.hasStreamid()) {
          setStreamid(other.getStreamid());
        }
        if (other.hasLaststreamid()) {
          setLaststreamid(other.getLaststreamid());
        }
        if (other.hasAccountid()) {
          setAccountid(other.getAccountid());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.IQStanza parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.IQStanza) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional int64 rmqid = 1;
      private long rmqid_ ;
      /**
       * <code>optional int64 rmqid = 1;</code>
       */
      public boolean hasRmqid() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional int64 rmqid = 1;</code>
       */
      public long getRmqid() {
        return rmqid_;
      }
      /**
       * <code>optional int64 rmqid = 1;</code>
       */
      public Builder setRmqid(long value) {
        bitField0_ |= 0x00000001;
        rmqid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 rmqid = 1;</code>
       */
      public Builder clearRmqid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        rmqid_ = 0L;
        onChanged();
        return this;
      }

      // optional int32 type = 2;
      private int type_ ;
      /**
       * <code>optional int32 type = 2;</code>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional int32 type = 2;</code>
       */
      public int getType() {
        return type_;
      }
      /**
       * <code>optional int32 type = 2;</code>
       */
      public Builder setType(int value) {
        bitField0_ |= 0x00000002;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 type = 2;</code>
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        type_ = 0;
        onChanged();
        return this;
      }

      // optional string packetid = 3;
      private java.lang.Object packetid_ = "";
      /**
       * <code>optional string packetid = 3;</code>
       */
      public boolean hasPacketid() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional string packetid = 3;</code>
       */
      public java.lang.String getPacketid() {
        java.lang.Object ref = packetid_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          packetid_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string packetid = 3;</code>
       */
      public com.google.protobuf.ByteString
          getPacketidBytes() {
        java.lang.Object ref = packetid_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          packetid_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string packetid = 3;</code>
       */
      public Builder setPacketid(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        packetid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string packetid = 3;</code>
       */
      public Builder clearPacketid() {
        bitField0_ = (bitField0_ & ~0x00000004);
        packetid_ = getDefaultInstance().getPacketid();
        onChanged();
        return this;
      }
      /**
       * <code>optional string packetid = 3;</code>
       */
      public Builder setPacketidBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        packetid_ = value;
        onChanged();
        return this;
      }

      // optional string from = 4;
      private java.lang.Object from_ = "";
      /**
       * <code>optional string from = 4;</code>
       */
      public boolean hasFrom() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional string from = 4;</code>
       */
      public java.lang.String getFrom() {
        java.lang.Object ref = from_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          from_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string from = 4;</code>
       */
      public com.google.protobuf.ByteString
          getFromBytes() {
        java.lang.Object ref = from_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          from_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string from = 4;</code>
       */
      public Builder setFrom(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        from_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string from = 4;</code>
       */
      public Builder clearFrom() {
        bitField0_ = (bitField0_ & ~0x00000008);
        from_ = getDefaultInstance().getFrom();
        onChanged();
        return this;
      }
      /**
       * <code>optional string from = 4;</code>
       */
      public Builder setFromBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        from_ = value;
        onChanged();
        return this;
      }

      // optional string to = 5;
      private java.lang.Object to_ = "";
      /**
       * <code>optional string to = 5;</code>
       */
      public boolean hasTo() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>optional string to = 5;</code>
       */
      public java.lang.String getTo() {
        java.lang.Object ref = to_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          to_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string to = 5;</code>
       */
      public com.google.protobuf.ByteString
          getToBytes() {
        java.lang.Object ref = to_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          to_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string to = 5;</code>
       */
      public Builder setTo(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        to_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string to = 5;</code>
       */
      public Builder clearTo() {
        bitField0_ = (bitField0_ & ~0x00000010);
        to_ = getDefaultInstance().getTo();
        onChanged();
        return this;
      }
      /**
       * <code>optional string to = 5;</code>
       */
      public Builder setToBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        to_ = value;
        onChanged();
        return this;
      }

      // optional .XMPPError error = 6;
      private com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError error_ = com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.Builder, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPErrorOrBuilder> errorBuilder_;
      /**
       * <code>optional .XMPPError error = 6;</code>
       */
      public boolean hasError() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>optional .XMPPError error = 6;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError getError() {
        if (errorBuilder_ == null) {
          return error_;
        } else {
          return errorBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .XMPPError error = 6;</code>
       */
      public Builder setError(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError value) {
        if (errorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          error_ = value;
          onChanged();
        } else {
          errorBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * <code>optional .XMPPError error = 6;</code>
       */
      public Builder setError(
          com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.Builder builderForValue) {
        if (errorBuilder_ == null) {
          error_ = builderForValue.build();
          onChanged();
        } else {
          errorBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * <code>optional .XMPPError error = 6;</code>
       */
      public Builder mergeError(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError value) {
        if (errorBuilder_ == null) {
          if (((bitField0_ & 0x00000020) == 0x00000020) &&
              error_ != com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.getDefaultInstance()) {
            error_ =
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.newBuilder(error_).mergeFrom(value).buildPartial();
          } else {
            error_ = value;
          }
          onChanged();
        } else {
          errorBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       * <code>optional .XMPPError error = 6;</code>
       */
      public Builder clearError() {
        if (errorBuilder_ == null) {
          error_ = com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.getDefaultInstance();
          onChanged();
        } else {
          errorBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }
      /**
       * <code>optional .XMPPError error = 6;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.Builder getErrorBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return getErrorFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .XMPPError error = 6;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPErrorOrBuilder getErrorOrBuilder() {
        if (errorBuilder_ != null) {
          return errorBuilder_.getMessageOrBuilder();
        } else {
          return error_;
        }
      }
      /**
       * <code>optional .XMPPError error = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.Builder, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPErrorOrBuilder> 
          getErrorFieldBuilder() {
        if (errorBuilder_ == null) {
          errorBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPError.Builder, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.XMPPErrorOrBuilder>(
                  error_,
                  getParentForChildren(),
                  isClean());
          error_ = null;
        }
        return errorBuilder_;
      }

      // optional .Extension extension = 7;
      private com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension extension_ = com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.Builder, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.ExtensionOrBuilder> extensionBuilder_;
      /**
       * <code>optional .Extension extension = 7;</code>
       */
      public boolean hasExtension() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * <code>optional .Extension extension = 7;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension getExtension() {
        if (extensionBuilder_ == null) {
          return extension_;
        } else {
          return extensionBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .Extension extension = 7;</code>
       */
      public Builder setExtension(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension value) {
        if (extensionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          extension_ = value;
          onChanged();
        } else {
          extensionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * <code>optional .Extension extension = 7;</code>
       */
      public Builder setExtension(
          com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.Builder builderForValue) {
        if (extensionBuilder_ == null) {
          extension_ = builderForValue.build();
          onChanged();
        } else {
          extensionBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * <code>optional .Extension extension = 7;</code>
       */
      public Builder mergeExtension(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension value) {
        if (extensionBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040) &&
              extension_ != com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.getDefaultInstance()) {
            extension_ =
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.newBuilder(extension_).mergeFrom(value).buildPartial();
          } else {
            extension_ = value;
          }
          onChanged();
        } else {
          extensionBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       * <code>optional .Extension extension = 7;</code>
       */
      public Builder clearExtension() {
        if (extensionBuilder_ == null) {
          extension_ = com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.getDefaultInstance();
          onChanged();
        } else {
          extensionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }
      /**
       * <code>optional .Extension extension = 7;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.Builder getExtensionBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getExtensionFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .Extension extension = 7;</code>
       */
      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.ExtensionOrBuilder getExtensionOrBuilder() {
        if (extensionBuilder_ != null) {
          return extensionBuilder_.getMessageOrBuilder();
        } else {
          return extension_;
        }
      }
      /**
       * <code>optional .Extension extension = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.Builder, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.ExtensionOrBuilder> 
          getExtensionFieldBuilder() {
        if (extensionBuilder_ == null) {
          extensionBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.Extension.Builder, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.ExtensionOrBuilder>(
                  extension_,
                  getParentForChildren(),
                  isClean());
          extension_ = null;
        }
        return extensionBuilder_;
      }

      // optional string rmq2id = 8;
      private java.lang.Object rmq2Id_ = "";
      /**
       * <code>optional string rmq2id = 8;</code>
       */
      public boolean hasRmq2Id() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * <code>optional string rmq2id = 8;</code>
       */
      public java.lang.String getRmq2Id() {
        java.lang.Object ref = rmq2Id_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          rmq2Id_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string rmq2id = 8;</code>
       */
      public com.google.protobuf.ByteString
          getRmq2IdBytes() {
        java.lang.Object ref = rmq2Id_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          rmq2Id_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string rmq2id = 8;</code>
       */
      public Builder setRmq2Id(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000080;
        rmq2Id_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string rmq2id = 8;</code>
       */
      public Builder clearRmq2Id() {
        bitField0_ = (bitField0_ & ~0x00000080);
        rmq2Id_ = getDefaultInstance().getRmq2Id();
        onChanged();
        return this;
      }
      /**
       * <code>optional string rmq2id = 8;</code>
       */
      public Builder setRmq2IdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000080;
        rmq2Id_ = value;
        onChanged();
        return this;
      }

      // optional int32 streamid = 9;
      private int streamid_ ;
      /**
       * <code>optional int32 streamid = 9;</code>
       */
      public boolean hasStreamid() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * <code>optional int32 streamid = 9;</code>
       */
      public int getStreamid() {
        return streamid_;
      }
      /**
       * <code>optional int32 streamid = 9;</code>
       */
      public Builder setStreamid(int value) {
        bitField0_ |= 0x00000100;
        streamid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 streamid = 9;</code>
       */
      public Builder clearStreamid() {
        bitField0_ = (bitField0_ & ~0x00000100);
        streamid_ = 0;
        onChanged();
        return this;
      }

      // optional int32 laststreamid = 10;
      private int laststreamid_ ;
      /**
       * <code>optional int32 laststreamid = 10;</code>
       */
      public boolean hasLaststreamid() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * <code>optional int32 laststreamid = 10;</code>
       */
      public int getLaststreamid() {
        return laststreamid_;
      }
      /**
       * <code>optional int32 laststreamid = 10;</code>
       */
      public Builder setLaststreamid(int value) {
        bitField0_ |= 0x00000200;
        laststreamid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 laststreamid = 10;</code>
       */
      public Builder clearLaststreamid() {
        bitField0_ = (bitField0_ & ~0x00000200);
        laststreamid_ = 0;
        onChanged();
        return this;
      }

      // optional int64 accountid = 11;
      private long accountid_ ;
      /**
       * <code>optional int64 accountid = 11;</code>
       */
      public boolean hasAccountid() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       * <code>optional int64 accountid = 11;</code>
       */
      public long getAccountid() {
        return accountid_;
      }
      /**
       * <code>optional int64 accountid = 11;</code>
       */
      public Builder setAccountid(long value) {
        bitField0_ |= 0x00000400;
        accountid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int64 accountid = 11;</code>
       */
      public Builder clearAccountid() {
        bitField0_ = (bitField0_ & ~0x00000400);
        accountid_ = 0L;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:IQStanza)
    }

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

    // @@protoc_insertion_point(class_scope:IQStanza)
  }

  public interface StateOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional bool state1 = 1;
    /**
     * <code>optional bool state1 = 1;</code>
     */
    boolean hasState1();
    /**
     * <code>optional bool state1 = 1;</code>
     */
    boolean getState1();

    // optional bool state2 = 2;
    /**
     * <code>optional bool state2 = 2;</code>
     */
    boolean hasState2();
    /**
     * <code>optional bool state2 = 2;</code>
     */
    boolean getState2();
  }
  /**
   * Protobuf type {@code State}
   */
  public static final class State extends
      com.google.protobuf.GeneratedMessage
      implements StateOrBuilder {
    // Use State.newBuilder() to construct.
    private State(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private State(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public State getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private State(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      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;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              state1_ = input.readBool();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              state2_ = input.readBool();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_State_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_State_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.State.class, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.State.Builder.class);
    }

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

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

    private int bitField0_;
    // optional bool state1 = 1;
    public static final int STATE1_FIELD_NUMBER = 1;
    private boolean state1_;
    /**
     * <code>optional bool state1 = 1;</code>
     */
    public boolean hasState1() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional bool state1 = 1;</code>
     */
    public boolean getState1() {
      return state1_;
    }

    // optional bool state2 = 2;
    public static final int STATE2_FIELD_NUMBER = 2;
    private boolean state2_;
    /**
     * <code>optional bool state2 = 2;</code>
     */
    public boolean hasState2() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional bool state2 = 2;</code>
     */
    public boolean getState2() {
      return state2_;
    }

    private void initFields() {
      state1_ = false;
      state2_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBool(1, state1_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, state2_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, state1_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, state2_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.State parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.State parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.State parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.State parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.State parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.State parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.State parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.State parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.State parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.State parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.State prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code State}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.StateOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_State_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_State_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.State.class, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.State.Builder.class);
      }

      // Construct using com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.State.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        state1_ = false;
        bitField0_ = (bitField0_ & ~0x00000001);
        state2_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_State_descriptor;
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.State getDefaultInstanceForType() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.State.getDefaultInstance();
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.State build() {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.State result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.State buildPartial() {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.State result = new com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.State(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.state1_ = state1_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.state2_ = state2_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.State) {
          return mergeFrom((com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.State)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.State other) {
        if (other == com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.State.getDefaultInstance()) return this;
        if (other.hasState1()) {
          setState1(other.getState1());
        }
        if (other.hasState2()) {
          setState2(other.getState2());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.State parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.State) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional bool state1 = 1;
      private boolean state1_ ;
      /**
       * <code>optional bool state1 = 1;</code>
       */
      public boolean hasState1() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional bool state1 = 1;</code>
       */
      public boolean getState1() {
        return state1_;
      }
      /**
       * <code>optional bool state1 = 1;</code>
       */
      public Builder setState1(boolean value) {
        bitField0_ |= 0x00000001;
        state1_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool state1 = 1;</code>
       */
      public Builder clearState1() {
        bitField0_ = (bitField0_ & ~0x00000001);
        state1_ = false;
        onChanged();
        return this;
      }

      // optional bool state2 = 2;
      private boolean state2_ ;
      /**
       * <code>optional bool state2 = 2;</code>
       */
      public boolean hasState2() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional bool state2 = 2;</code>
       */
      public boolean getState2() {
        return state2_;
      }
      /**
       * <code>optional bool state2 = 2;</code>
       */
      public Builder setState2(boolean value) {
        bitField0_ |= 0x00000002;
        state2_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool state2 = 2;</code>
       */
      public Builder clearState2() {
        bitField0_ = (bitField0_ & ~0x00000002);
        state2_ = false;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:State)
    }

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

    // @@protoc_insertion_point(class_scope:State)
  }

  public interface PostAuthBatchQueryOrBuilder
      extends com.google.protobuf.MessageOrBuilder {

    // optional bool online = 1;
    /**
     * <code>optional bool online = 1;</code>
     */
    boolean hasOnline();
    /**
     * <code>optional bool online = 1;</code>
     */
    boolean getOnline();

    // optional bool deviceidle = 2;
    /**
     * <code>optional bool deviceidle = 2;</code>
     */
    boolean hasDeviceidle();
    /**
     * <code>optional bool deviceidle = 2;</code>
     */
    boolean getDeviceidle();

    // optional bool showmobileindicator = 3;
    /**
     * <code>optional bool showmobileindicator = 3;</code>
     */
    boolean hasShowmobileindicator();
    /**
     * <code>optional bool showmobileindicator = 3;</code>
     */
    boolean getShowmobileindicator();

    // optional int32 sharedstatusversion = 4;
    /**
     * <code>optional int32 sharedstatusversion = 4;</code>
     */
    boolean hasSharedstatusversion();
    /**
     * <code>optional int32 sharedstatusversion = 4;</code>
     */
    int getSharedstatusversion();

    // optional string rosteretag = 5;
    /**
     * <code>optional string rosteretag = 5;</code>
     */
    boolean hasRosteretag();
    /**
     * <code>optional string rosteretag = 5;</code>
     */
    java.lang.String getRosteretag();
    /**
     * <code>optional string rosteretag = 5;</code>
     */
    com.google.protobuf.ByteString
        getRosteretagBytes();

    // optional string otretag = 6;
    /**
     * <code>optional string otretag = 6;</code>
     */
    boolean hasOtretag();
    /**
     * <code>optional string otretag = 6;</code>
     */
    java.lang.String getOtretag();
    /**
     * <code>optional string otretag = 6;</code>
     */
    com.google.protobuf.ByteString
        getOtretagBytes();

    // optional string avatarhash = 7;
    /**
     * <code>optional string avatarhash = 7;</code>
     */
    boolean hasAvatarhash();
    /**
     * <code>optional string avatarhash = 7;</code>
     */
    java.lang.String getAvatarhash();
    /**
     * <code>optional string avatarhash = 7;</code>
     */
    com.google.protobuf.ByteString
        getAvatarhashBytes();

    // optional string vcardquerystanzaid = 8;
    /**
     * <code>optional string vcardquerystanzaid = 8;</code>
     */
    boolean hasVcardquerystanzaid();
    /**
     * <code>optional string vcardquerystanzaid = 8;</code>
     */
    java.lang.String getVcardquerystanzaid();
    /**
     * <code>optional string vcardquerystanzaid = 8;</code>
     */
    com.google.protobuf.ByteString
        getVcardquerystanzaidBytes();

    // optional int32 capabilities = 9;
    /**
     * <code>optional int32 capabilities = 9;</code>
     */
    boolean hasCapabilities();
    /**
     * <code>optional int32 capabilities = 9;</code>
     */
    int getCapabilities();
  }
  /**
   * Protobuf type {@code PostAuthBatchQuery}
   */
  public static final class PostAuthBatchQuery extends
      com.google.protobuf.GeneratedMessage
      implements PostAuthBatchQueryOrBuilder {
    // Use PostAuthBatchQuery.newBuilder() to construct.
    private PostAuthBatchQuery(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private PostAuthBatchQuery(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

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

    public PostAuthBatchQuery getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private PostAuthBatchQuery(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      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;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              online_ = input.readBool();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              deviceidle_ = input.readBool();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              showmobileindicator_ = input.readBool();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              sharedstatusversion_ = input.readInt32();
              break;
            }
            case 42: {
              bitField0_ |= 0x00000010;
              rosteretag_ = input.readBytes();
              break;
            }
            case 50: {
              bitField0_ |= 0x00000020;
              otretag_ = input.readBytes();
              break;
            }
            case 58: {
              bitField0_ |= 0x00000040;
              avatarhash_ = input.readBytes();
              break;
            }
            case 66: {
              bitField0_ |= 0x00000080;
              vcardquerystanzaid_ = input.readBytes();
              break;
            }
            case 72: {
              bitField0_ |= 0x00000100;
              capabilities_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_PostAuthBatchQuery_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_PostAuthBatchQuery_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.PostAuthBatchQuery.class, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.PostAuthBatchQuery.Builder.class);
    }

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

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

    private int bitField0_;
    // optional bool online = 1;
    public static final int ONLINE_FIELD_NUMBER = 1;
    private boolean online_;
    /**
     * <code>optional bool online = 1;</code>
     */
    public boolean hasOnline() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional bool online = 1;</code>
     */
    public boolean getOnline() {
      return online_;
    }

    // optional bool deviceidle = 2;
    public static final int DEVICEIDLE_FIELD_NUMBER = 2;
    private boolean deviceidle_;
    /**
     * <code>optional bool deviceidle = 2;</code>
     */
    public boolean hasDeviceidle() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional bool deviceidle = 2;</code>
     */
    public boolean getDeviceidle() {
      return deviceidle_;
    }

    // optional bool showmobileindicator = 3;
    public static final int SHOWMOBILEINDICATOR_FIELD_NUMBER = 3;
    private boolean showmobileindicator_;
    /**
     * <code>optional bool showmobileindicator = 3;</code>
     */
    public boolean hasShowmobileindicator() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional bool showmobileindicator = 3;</code>
     */
    public boolean getShowmobileindicator() {
      return showmobileindicator_;
    }

    // optional int32 sharedstatusversion = 4;
    public static final int SHAREDSTATUSVERSION_FIELD_NUMBER = 4;
    private int sharedstatusversion_;
    /**
     * <code>optional int32 sharedstatusversion = 4;</code>
     */
    public boolean hasSharedstatusversion() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>optional int32 sharedstatusversion = 4;</code>
     */
    public int getSharedstatusversion() {
      return sharedstatusversion_;
    }

    // optional string rosteretag = 5;
    public static final int ROSTERETAG_FIELD_NUMBER = 5;
    private java.lang.Object rosteretag_;
    /**
     * <code>optional string rosteretag = 5;</code>
     */
    public boolean hasRosteretag() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * <code>optional string rosteretag = 5;</code>
     */
    public java.lang.String getRosteretag() {
      java.lang.Object ref = rosteretag_;
      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();
        if (bs.isValidUtf8()) {
          rosteretag_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string rosteretag = 5;</code>
     */
    public com.google.protobuf.ByteString
        getRosteretagBytes() {
      java.lang.Object ref = rosteretag_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        rosteretag_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string otretag = 6;
    public static final int OTRETAG_FIELD_NUMBER = 6;
    private java.lang.Object otretag_;
    /**
     * <code>optional string otretag = 6;</code>
     */
    public boolean hasOtretag() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * <code>optional string otretag = 6;</code>
     */
    public java.lang.String getOtretag() {
      java.lang.Object ref = otretag_;
      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();
        if (bs.isValidUtf8()) {
          otretag_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string otretag = 6;</code>
     */
    public com.google.protobuf.ByteString
        getOtretagBytes() {
      java.lang.Object ref = otretag_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        otretag_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string avatarhash = 7;
    public static final int AVATARHASH_FIELD_NUMBER = 7;
    private java.lang.Object avatarhash_;
    /**
     * <code>optional string avatarhash = 7;</code>
     */
    public boolean hasAvatarhash() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * <code>optional string avatarhash = 7;</code>
     */
    public java.lang.String getAvatarhash() {
      java.lang.Object ref = avatarhash_;
      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();
        if (bs.isValidUtf8()) {
          avatarhash_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string avatarhash = 7;</code>
     */
    public com.google.protobuf.ByteString
        getAvatarhashBytes() {
      java.lang.Object ref = avatarhash_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        avatarhash_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional string vcardquerystanzaid = 8;
    public static final int VCARDQUERYSTANZAID_FIELD_NUMBER = 8;
    private java.lang.Object vcardquerystanzaid_;
    /**
     * <code>optional string vcardquerystanzaid = 8;</code>
     */
    public boolean hasVcardquerystanzaid() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * <code>optional string vcardquerystanzaid = 8;</code>
     */
    public java.lang.String getVcardquerystanzaid() {
      java.lang.Object ref = vcardquerystanzaid_;
      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();
        if (bs.isValidUtf8()) {
          vcardquerystanzaid_ = s;
        }
        return s;
      }
    }
    /**
     * <code>optional string vcardquerystanzaid = 8;</code>
     */
    public com.google.protobuf.ByteString
        getVcardquerystanzaidBytes() {
      java.lang.Object ref = vcardquerystanzaid_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        vcardquerystanzaid_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    // optional int32 capabilities = 9;
    public static final int CAPABILITIES_FIELD_NUMBER = 9;
    private int capabilities_;
    /**
     * <code>optional int32 capabilities = 9;</code>
     */
    public boolean hasCapabilities() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * <code>optional int32 capabilities = 9;</code>
     */
    public int getCapabilities() {
      return capabilities_;
    }

    private void initFields() {
      online_ = false;
      deviceidle_ = false;
      showmobileindicator_ = false;
      sharedstatusversion_ = 0;
      rosteretag_ = "";
      otretag_ = "";
      avatarhash_ = "";
      vcardquerystanzaid_ = "";
      capabilities_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBool(1, online_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, deviceidle_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, showmobileindicator_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, sharedstatusversion_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBytes(5, getRosteretagBytes());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBytes(6, getOtretagBytes());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeBytes(7, getAvatarhashBytes());
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeBytes(8, getVcardquerystanzaidBytes());
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeInt32(9, capabilities_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, online_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(2, deviceidle_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, showmobileindicator_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, sharedstatusversion_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(5, getRosteretagBytes());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(6, getOtretagBytes());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(7, getAvatarhashBytes());
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(8, getVcardquerystanzaidBytes());
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(9, capabilities_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

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

    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.PostAuthBatchQuery parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.PostAuthBatchQuery parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.PostAuthBatchQuery parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.PostAuthBatchQuery parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.PostAuthBatchQuery parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.PostAuthBatchQuery parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.PostAuthBatchQuery parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.PostAuthBatchQuery parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.PostAuthBatchQuery parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.PostAuthBatchQuery parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.PostAuthBatchQuery prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code PostAuthBatchQuery}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.PostAuthBatchQueryOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_PostAuthBatchQuery_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_PostAuthBatchQuery_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.PostAuthBatchQuery.class, com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.PostAuthBatchQuery.Builder.class);
      }

      // Construct using com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.PostAuthBatchQuery.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

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

      public Builder clear() {
        super.clear();
        online_ = false;
        bitField0_ = (bitField0_ & ~0x00000001);
        deviceidle_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        showmobileindicator_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        sharedstatusversion_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        rosteretag_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        otretag_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        avatarhash_ = "";
        bitField0_ = (bitField0_ & ~0x00000040);
        vcardquerystanzaid_ = "";
        bitField0_ = (bitField0_ & ~0x00000080);
        capabilities_ = 0;
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }

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

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.internal_static_PostAuthBatchQuery_descriptor;
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.PostAuthBatchQuery getDefaultInstanceForType() {
        return com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.PostAuthBatchQuery.getDefaultInstance();
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.PostAuthBatchQuery build() {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.PostAuthBatchQuery result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.PostAuthBatchQuery buildPartial() {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.PostAuthBatchQuery result = new com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.PostAuthBatchQuery(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.online_ = online_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.deviceidle_ = deviceidle_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.showmobileindicator_ = showmobileindicator_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.sharedstatusversion_ = sharedstatusversion_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.rosteretag_ = rosteretag_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.otretag_ = otretag_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.avatarhash_ = avatarhash_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.vcardquerystanzaid_ = vcardquerystanzaid_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.capabilities_ = capabilities_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.PostAuthBatchQuery) {
          return mergeFrom((com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.PostAuthBatchQuery)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.PostAuthBatchQuery other) {
        if (other == com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.PostAuthBatchQuery.getDefaultInstance()) return this;
        if (other.hasOnline()) {
          setOnline(other.getOnline());
        }
        if (other.hasDeviceidle()) {
          setDeviceidle(other.getDeviceidle());
        }
        if (other.hasShowmobileindicator()) {
          setShowmobileindicator(other.getShowmobileindicator());
        }
        if (other.hasSharedstatusversion()) {
          setSharedstatusversion(other.getSharedstatusversion());
        }
        if (other.hasRosteretag()) {
          bitField0_ |= 0x00000010;
          rosteretag_ = other.rosteretag_;
          onChanged();
        }
        if (other.hasOtretag()) {
          bitField0_ |= 0x00000020;
          otretag_ = other.otretag_;
          onChanged();
        }
        if (other.hasAvatarhash()) {
          bitField0_ |= 0x00000040;
          avatarhash_ = other.avatarhash_;
          onChanged();
        }
        if (other.hasVcardquerystanzaid()) {
          bitField0_ |= 0x00000080;
          vcardquerystanzaid_ = other.vcardquerystanzaid_;
          onChanged();
        }
        if (other.hasCapabilities()) {
          setCapabilities(other.getCapabilities());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.PostAuthBatchQuery parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.akdeniz.googleplaycrawler.gsf.GoogleServicesFramework.PostAuthBatchQuery) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      // optional bool online = 1;
      private boolean online_ ;
      /**
       * <code>optional bool online = 1;</code>
       */
      public boolean hasOnline() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional bool online = 1;</code>
       */
      public boolean getOnline() {
        return online_;
      }
      /**
       * <code>optional bool online = 1;</code>
       */
      public Builder setOnline(boolean value) {
        bitField0_ |= 0x00000001;
        online_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool online = 1;</code>
       */
      public Builder clearOnline() {
        bitField0_ = (bitField0_ & ~0x00000001);
        online_ = false;
        onChanged();
        return this;
      }

      // optional bool deviceidle = 2;
      private boolean deviceidle_ ;
      /**
       * <code>optional bool deviceidle = 2;</code>
       */
      public boolean hasDeviceidle() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional bool deviceidle = 2;</code>
       */
      public boolean getDeviceidle() {
        return deviceidle_;
      }
      /**
       * <code>optional bool deviceidle = 2;</code>
       */
      public Builder setDeviceidle(boolean value) {
        bitField0_ |= 0x00000002;
        deviceidle_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool deviceidle = 2;</code>
       */
      public Builder clearDeviceidle() {
        bitField0_ = (bitField0_ & ~0x00000002);
        deviceidle_ = false;
        onChanged();
        return this;
      }

      // optional bool showmobileindicator = 3;
      private boolean showmobileindicator_ ;
      /**
       * <code>optional bool showmobileindicator = 3;</code>
       */
      public boolean hasShowmobileindicator() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional bool showmobileindicator = 3;</code>
       */
      public boolean getShowmobileindicator() {
        return showmobileindicator_;
      }
      /**
       * <code>optional bool showmobileindicator = 3;</code>
       */
      public Builder setShowmobileindicator(boolean value) {
        bitField0_ |= 0x00000004;
        showmobileindicator_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool showmobileindicator = 3;</code>
       */
      public Builder clearShowmobileindicator() {
        bitField0_ = (bitField0_ & ~0x00000004);
        showmobileindicator_ = false;
        onChanged();
        return this;
      }

      // optional int32 sharedstatusversion = 4;
      private int sharedstatusversion_ ;
      /**
       * <code>optional int32 sharedstatusversion = 4;</code>
       */
      public boolean hasSharedstatusversion() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional int32 sharedstatusversion = 4;</code>
       */
      public int getSharedstatusversion() {
        return sharedstatusversion_;
      }
      /**
       * <code>optional int32 sharedstatusversion = 4;</code>
       */
      public Builder setSharedstatusversion(int value) {
        bitField0_ |= 0x00000008;
        sharedstatusversion_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 sharedstatusversion = 4;</code>
       */
      public Builder clearSharedstatusversion() {
        bitField0_ = (bitField0_ & ~0x00000008);
        sharedstatusversion_ = 0;
        onChanged();
        return this;
      }

      // optional string rosteretag = 5;
      private java.lang.Object rosteretag_ = "";
      /**
       * <code>optional string rosteretag = 5;</code>
       */
      public boolean hasRosteretag() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * <code>optional string rosteretag = 5;</code>
       */
      public java.lang.String getRosteretag() {
        java.lang.Object ref = rosteretag_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          rosteretag_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string rosteretag = 5;</code>
       */
      public com.google.protobuf.ByteString
          getRosteretagBytes() {
        java.lang.Object ref = rosteretag_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          rosteretag_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string rosteretag = 5;</code>
       */
      public Builder setRosteretag(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        rosteretag_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string rosteretag = 5;</code>
       */
      public Builder clearRosteretag() {
        bitField0_ = (bitField0_ & ~0x00000010);
        rosteretag_ = getDefaultInstance().getRosteretag();
        onChanged();
        return this;
      }
      /**
       * <code>optional string rosteretag = 5;</code>
       */
      public Builder setRosteretagBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        rosteretag_ = value;
        onChanged();
        return this;
      }

      // optional string otretag = 6;
      private java.lang.Object otretag_ = "";
      /**
       * <code>optional string otretag = 6;</code>
       */
      public boolean hasOtretag() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * <code>optional string otretag = 6;</code>
       */
      public java.lang.String getOtretag() {
        java.lang.Object ref = otretag_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          otretag_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string otretag = 6;</code>
       */
      public com.google.protobuf.ByteString
          getOtretagBytes() {
        java.lang.Object ref = otretag_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          otretag_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string otretag = 6;</code>
       */
      public Builder setOtretag(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        otretag_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string otretag = 6;</code>
       */
      public Builder clearOtretag() {
        bitField0_ = (bitField0_ & ~0x00000020);
        otretag_ = getDefaultInstance().getOtretag();
        onChanged();
        return this;
      }
      /**
       * <code>optional string otretag = 6;</code>
       */
      public Builder setOtretagBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        otretag_ = value;
        onChanged();
        return this;
      }

      // optional string avatarhash = 7;
      private java.lang.Object avatarhash_ = "";
      /**
       * <code>optional string avatarhash = 7;</code>
       */
      public boolean hasAvatarhash() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * <code>optional string avatarhash = 7;</code>
       */
      public java.lang.String getAvatarhash() {
        java.lang.Object ref = avatarhash_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          avatarhash_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string avatarhash = 7;</code>
       */
      public com.google.protobuf.ByteString
          getAvatarhashBytes() {
        java.lang.Object ref = avatarhash_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          avatarhash_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string avatarhash = 7;</code>
       */
      public Builder setAvatarhash(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        avatarhash_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string avatarhash = 7;</code>
       */
      public Builder clearAvatarhash() {
        bitField0_ = (bitField0_ & ~0x00000040);
        avatarhash_ = getDefaultInstance().getAvatarhash();
        onChanged();
        return this;
      }
      /**
       * <code>optional string avatarhash = 7;</code>
       */
      public Builder setAvatarhashBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000040;
        avatarhash_ = value;
        onChanged();
        return this;
      }

      // optional string vcardquerystanzaid = 8;
      private java.lang.Object vcardquerystanzaid_ = "";
      /**
       * <code>optional string vcardquerystanzaid = 8;</code>
       */
      public boolean hasVcardquerystanzaid() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * <code>optional string vcardquerystanzaid = 8;</code>
       */
      public java.lang.String getVcardquerystanzaid() {
        java.lang.Object ref = vcardquerystanzaid_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((com.google.protobuf.ByteString) ref)
              .toStringUtf8();
          vcardquerystanzaid_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>optional string vcardquerystanzaid = 8;</code>
       */
      public com.google.protobuf.ByteString
          getVcardquerystanzaidBytes() {
        java.lang.Object ref = vcardquerystanzaid_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          vcardquerystanzaid_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>optional string vcardquerystanzaid = 8;</code>
       */
      public Builder setVcardquerystanzaid(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000080;
        vcardquerystanzaid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional string vcardquerystanzaid = 8;</code>
       */
      public Builder clearVcardquerystanzaid() {
        bitField0_ = (bitField0_ & ~0x00000080);
        vcardquerystanzaid_ = getDefaultInstance().getVcardquerystanzaid();
        onChanged();
        return this;
      }
      /**
       * <code>optional string vcardquerystanzaid = 8;</code>
       */
      public Builder setVcardquerystanzaidBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000080;
        vcardquerystanzaid_ = value;
        onChanged();
        return this;
      }

      // optional int32 capabilities = 9;
      private int capabilities_ ;
      /**
       * <code>optional int32 capabilities = 9;</code>
       */
      public boolean hasCapabilities() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * <code>optional int32 capabilities = 9;</code>
       */
      public int getCapabilities() {
        return capabilities_;
      }
      /**
       * <code>optional int32 capabilities = 9;</code>
       */
      public Builder setCapabilities(int value) {
        bitField0_ |= 0x00000100;
        capabilities_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 capabilities = 9;</code>
       */
      public Builder clearCapabilities() {
        bitField0_ = (bitField0_ & ~0x00000100);
        capabilities_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:PostAuthBatchQuery)
    }

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

    // @@protoc_insertion_point(class_scope:PostAuthBatchQuery)
  }

  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_LoginRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_LoginRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_HeartBeatStat_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_HeartBeatStat_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_Setting_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Setting_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_HeartBeatConfig_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_HeartBeatConfig_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_LoginResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_LoginResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_XMPPError_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_XMPPError_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_Extension_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Extension_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_BindAccountRequest_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_BindAccountRequest_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_BindAccountResponse_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_BindAccountResponse_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_Close_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_Close_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_HeartbeatAck_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_HeartbeatAck_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_DataMessageStanza_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_DataMessageStanza_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_AppData_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_AppData_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_IQStanza_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_IQStanza_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_State_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_State_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_PostAuthBatchQuery_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_PostAuthBatchQuery_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\035GoogleServicesFramework.proto\"\371\002\n\014Logi" +
      "nRequest\022\020\n\010packetid\030\001 \001(\t\022\016\n\006domain\030\002 \001" +
      "(\t\022\014\n\004user\030\003 \001(\t\022\020\n\010resource\030\004 \001(\t\022\r\n\005to" +
      "ken\030\005 \001(\t\022\020\n\010deviceid\030\006 \001(\t\022\021\n\tlastrmqid" +
      "\030\007 \001(\003\022\032\n\010settings\030\010 \003(\0132\010.Setting\022\020\n\010co" +
      "mpress\030\t \001(\005\022\025\n\rpersistentids\030\n \003(\t\022!\n\031i" +
      "ncludestreamidinprotobuf\030\013 \001(\010\022\031\n\021adapti" +
      "veheartbeat\030\014 \001(\010\022%\n\rheartbeatstat\030\r \001(\013" +
      "2\016.HeartBeatStat\022\017\n\007usermq2\030\016 \001(\010\022\021\n\tacc" +
      "ountid\030\017 \001(\003\022\020\n\010unknown1\030\020 \001(\003\022\023\n\013networ",
      "ktype\030\021 \001(\005\">\n\rHeartBeatStat\022\n\n\002ip\030\001 \001(\t" +
      "\022\017\n\007timeout\030\002 \001(\010\022\020\n\010interval\030\003 \001(\003\"%\n\007S" +
      "etting\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t\"C\n\017He" +
      "artBeatConfig\022\020\n\010interval\030\003 \001(\003\022\n\n\002ip\030\002 " +
      "\001(\t\022\022\n\nuploadstat\030\001 \001(\010\"\321\001\n\rLoginRespons" +
      "e\022\020\n\010packetid\030\001 \001(\t\022\013\n\003jid\030\002 \001(\t\022\027\n\017serv" +
      "ertimestamp\030\010 \001(\003\022)\n\017heartbeatconfig\030\007 \001" +
      "(\0132\020.HeartBeatConfig\022\032\n\010settings\030\004 \003(\0132\010" +
      ".Setting\022\024\n\014laststreamid\030\006 \001(\005\022\020\n\010stream" +
      "id\030\005 \001(\005\022\031\n\005error\030\003 \001(\0132\n.XMPPError\"W\n\tX",
      "MPPError\022\014\n\004code\030\001 \001(\005\022\017\n\007message\030\002 \001(\t\022" +
      "\014\n\004type\030\003 \001(\t\022\035\n\textension\030\004 \003(\0132\n.Exten" +
      "sion\"*\n\tExtension\022\014\n\004code\030\001 \001(\005\022\017\n\007messa" +
      "ge\030\002 \001(\t\"x\n\022BindAccountRequest\022\020\n\010packet" +
      "id\030\001 \001(\t\022\016\n\006domain\030\002 \001(\t\022\014\n\004user\030\003 \001(\t\022\020" +
      "\n\010resource\030\004 \001(\t\022\021\n\taccountid\030\t \001(\003\022\r\n\005t" +
      "oken\030\005 \001(\t\"w\n\023BindAccountResponse\022\020\n\010pac" +
      "ketid\030\001 \001(\t\022\013\n\003jid\030\002 \001(\t\022\024\n\014laststreamid" +
      "\030\005 \001(\005\022\020\n\010streamid\030\004 \001(\005\022\031\n\005error\030\003 \001(\0132" +
      "\n.XMPPError\"\007\n\005Close\"\016\n\014HeartbeatAck\"\226\002\n",
      "\021DataMessageStanza\022\r\n\005rmqid\030\001 \001(\003\022\020\n\010pac" +
      "ketid\030\002 \001(\t\022\014\n\004from\030\003 \001(\t\022\n\n\002to\030\004 \001(\t\022\020\n" +
      "\010category\030\005 \001(\t\022\r\n\005token\030\006 \001(\t\022\031\n\007appdat" +
      "a\030\007 \003(\0132\010.AppData\022\031\n\021fromtrustedserver\030\010" +
      " \001(\010\022\016\n\006rmq2id\030\t \001(\t\022\020\n\010streamid\030\n \001(\005\022\024" +
      "\n\014laststreamid\030\013 \001(\005\022\022\n\npermission\030\014 \001(\t" +
      "\022\r\n\005regid\030\r \001(\t\022\024\n\014pkgsignature\030\016 \001(\t\"%\n" +
      "\007AppData\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t\"\330\001\n" +
      "\010IQStanza\022\r\n\005rmqid\030\001 \001(\003\022\014\n\004type\030\002 \001(\005\022\020" +
      "\n\010packetid\030\003 \001(\t\022\014\n\004from\030\004 \001(\t\022\n\n\002to\030\005 \001",
      "(\t\022\031\n\005error\030\006 \001(\0132\n.XMPPError\022\035\n\textensi" +
      "on\030\007 \001(\0132\n.Extension\022\016\n\006rmq2id\030\010 \001(\t\022\020\n\010" +
      "streamid\030\t \001(\005\022\024\n\014laststreamid\030\n \001(\005\022\021\n\t" +
      "accountid\030\013 \001(\003\"\'\n\005State\022\016\n\006state1\030\001 \001(\010" +
      "\022\016\n\006state2\030\002 \001(\010\"\335\001\n\022PostAuthBatchQuery\022" +
      "\016\n\006online\030\001 \001(\010\022\022\n\ndeviceidle\030\002 \001(\010\022\033\n\023s" +
      "howmobileindicator\030\003 \001(\010\022\033\n\023sharedstatus" +
      "version\030\004 \001(\005\022\022\n\nrosteretag\030\005 \001(\t\022\017\n\007otr" +
      "etag\030\006 \001(\t\022\022\n\navatarhash\030\007 \001(\t\022\032\n\022vcardq" +
      "uerystanzaid\030\010 \001(\t\022\024\n\014capabilities\030\t \001(\005",
      "B#\n!com.akdeniz.googleplaycrawler.gsf"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
        public com.google.protobuf.ExtensionRegistry assignDescriptors(
            com.google.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
          internal_static_LoginRequest_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_LoginRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_LoginRequest_descriptor,
              new java.lang.String[] { "Packetid", "Domain", "User", "Resource", "Token", "Deviceid", "Lastrmqid", "Settings", "Compress", "Persistentids", "Includestreamidinprotobuf", "Adaptiveheartbeat", "Heartbeatstat", "Usermq2", "Accountid", "Unknown1", "Networktype", });
          internal_static_HeartBeatStat_descriptor =
            getDescriptor().getMessageTypes().get(1);
          internal_static_HeartBeatStat_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_HeartBeatStat_descriptor,
              new java.lang.String[] { "Ip", "Timeout", "Interval", });
          internal_static_Setting_descriptor =
            getDescriptor().getMessageTypes().get(2);
          internal_static_Setting_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_Setting_descriptor,
              new java.lang.String[] { "Key", "Value", });
          internal_static_HeartBeatConfig_descriptor =
            getDescriptor().getMessageTypes().get(3);
          internal_static_HeartBeatConfig_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_HeartBeatConfig_descriptor,
              new java.lang.String[] { "Interval", "Ip", "Uploadstat", });
          internal_static_LoginResponse_descriptor =
            getDescriptor().getMessageTypes().get(4);
          internal_static_LoginResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_LoginResponse_descriptor,
              new java.lang.String[] { "Packetid", "Jid", "Servertimestamp", "Heartbeatconfig", "Settings", "Laststreamid", "Streamid", "Error", });
          internal_static_XMPPError_descriptor =
            getDescriptor().getMessageTypes().get(5);
          internal_static_XMPPError_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_XMPPError_descriptor,
              new java.lang.String[] { "Code", "Message", "Type", "Extension", });
          internal_static_Extension_descriptor =
            getDescriptor().getMessageTypes().get(6);
          internal_static_Extension_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_Extension_descriptor,
              new java.lang.String[] { "Code", "Message", });
          internal_static_BindAccountRequest_descriptor =
            getDescriptor().getMessageTypes().get(7);
          internal_static_BindAccountRequest_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_BindAccountRequest_descriptor,
              new java.lang.String[] { "Packetid", "Domain", "User", "Resource", "Accountid", "Token", });
          internal_static_BindAccountResponse_descriptor =
            getDescriptor().getMessageTypes().get(8);
          internal_static_BindAccountResponse_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_BindAccountResponse_descriptor,
              new java.lang.String[] { "Packetid", "Jid", "Laststreamid", "Streamid", "Error", });
          internal_static_Close_descriptor =
            getDescriptor().getMessageTypes().get(9);
          internal_static_Close_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_Close_descriptor,
              new java.lang.String[] { });
          internal_static_HeartbeatAck_descriptor =
            getDescriptor().getMessageTypes().get(10);
          internal_static_HeartbeatAck_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_HeartbeatAck_descriptor,
              new java.lang.String[] { });
          internal_static_DataMessageStanza_descriptor =
            getDescriptor().getMessageTypes().get(11);
          internal_static_DataMessageStanza_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_DataMessageStanza_descriptor,
              new java.lang.String[] { "Rmqid", "Packetid", "From", "To", "Category", "Token", "Appdata", "Fromtrustedserver", "Rmq2Id", "Streamid", "Laststreamid", "Permission", "Regid", "Pkgsignature", });
          internal_static_AppData_descriptor =
            getDescriptor().getMessageTypes().get(12);
          internal_static_AppData_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_AppData_descriptor,
              new java.lang.String[] { "Key", "Value", });
          internal_static_IQStanza_descriptor =
            getDescriptor().getMessageTypes().get(13);
          internal_static_IQStanza_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_IQStanza_descriptor,
              new java.lang.String[] { "Rmqid", "Type", "Packetid", "From", "To", "Error", "Extension", "Rmq2Id", "Streamid", "Laststreamid", "Accountid", });
          internal_static_State_descriptor =
            getDescriptor().getMessageTypes().get(14);
          internal_static_State_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_State_descriptor,
              new java.lang.String[] { "State1", "State2", });
          internal_static_PostAuthBatchQuery_descriptor =
            getDescriptor().getMessageTypes().get(15);
          internal_static_PostAuthBatchQuery_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_PostAuthBatchQuery_descriptor,
              new java.lang.String[] { "Online", "Deviceidle", "Showmobileindicator", "Sharedstatusversion", "Rosteretag", "Otretag", "Avatarhash", "Vcardquerystanzaid", "Capabilities", });
          return null;
        }
      };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        }, assigner);
  }

  // @@protoc_insertion_point(outer_class_scope)
}
